Script Shell detectare activitate pe mediile de stocare ale NAS-urilor/routerelor, unde camerele IP de securitate salveaza filmele si snapshot-urile; diverse modele de camere nu au firmware updatat si nu mai pot trimite alerte via e-mail (exemplu Gmail), pentru ca nu au implementat protocolul TLS (minim versiunea 1.0) - vezi atacurile Poodle din 2014. Acest script a fost creat si testat pe Debian (routere Asus) si CentOS. 1. Pentru ca sa nu existe probleme din punct de vedere al compatibilitatii clientului SMTP instalat pe masina Linux care executa cautarea snapshot-urilor cu mecanismele de autentificare ale serverelor Google, nu uitati sa setati in contul de Gmail: - "Allow less secure apps"; - enable POP3. In acest exemplu am setat ca expeditorul sa fie si destinatarul din punct de vedere al conturilor de e-mail utilizate. 2. Este necesara instalarea pachetului msmtp impreuna cu dependintele de rigoare: - CentOS: sudo yum install msmtp - Debian (router Asus) ipkg install msmtp sau opkg install msmtp - Ubuntu: sudo apt install msmtp 3. Editarea fisierului de configurare al msmtp post-instalare: - CentOS/Ubuntu sudo nano /etc/msmtprc sau sudo vi /etc/msmtprc - Debian (router Asus): nano (/opt)/etc/msmtprc sau vi (/opt)/etc/msmtprc In acest fisier de configurare, daca deja exista, se vor sterge toate liniile existente si se vor trece urmatoarele (veti schimba "utilizator" cu userul dvs, "parolautilizator" cu parola dvs): account default host smtp.gmail.com port 587 auth on user utilizator@gmail.com password parolautilizator auto_from off from utilizator@gmail.com tls on tls_starttls on tls_certcheck off logfile syslog LOG_MAIL 4. Testare client SMTP: msmtp -t < testmail.conf Fisierul de configurare pentru test (testmail.conf) care contine 3 linii de tip Header (From, To, Subject) si o linie tip Body: From: utilizator@gmail.com To: utilizator@gmail.com Subject: tls test Acesta este un mail de test utilizind TLS 5. In caz ca testul va reusi, se creaza un script Shell in /etc/attach_send.sh ((/opt)/etc/attach_send.sh pentru routerele Asus), care apoi se introduce in cron (pe routerele Asus in: (/opt)/etc/cron.d/detectare ); frecventa aleasa de a rula acest script este de un minut (se poate modifica dupa preferinte): fisier /etc/cron.d/detectare * * * * * root /etc/attach_send.sh 6. scriptul /etc/attach_send.sh Fisierele de tip JP(E)G detectate de script, trebuie sa aiba extensia JPG cu majuscule sau cu litere mici, dupa caz (cautarea este case sensitive). Camera IP trebuie sa fie instruita sa salveze snapshot-urile (si filmele) in folderul (de exemplu, pentru pc) /mnt sau pentru routerele Asus in /tmp/harddisk/ Acestea sint foldere partajate de Samba (in loc de "Samba" poate aparea scris cuvintul "CIFS" in setarile camerei din interfata GUI web). Anumite modele de camere de supraveghere pot face upload prin FTP in subnetul lor, pe mediile de stocare partajate. #!/usr/bin/sh FISIER=`find /mnt -name '*.JPG' -type f -cmin -1 | head -1` if [ ! -z "$FISIER" ]; then NUMECOMPLET=$(date +"%F_%T_captura_camera") CODARE=`base64 $FISIER` echo "From: utilizator@gmail.com To: utilizator@gmail.com Subject: IP-Cam Snapshot Date: `date` Content-Type: image/jpg; name="$NUMECOMPLET.jpg" Content-Transfer-Encoding: base64 Content-Disposition: inline $CODARE" | /usr/bin/msmtp -C /etc/msmtprc --from=utilizator@gmail.com -t utilizator@gmail.com fi 7. Mostra header e-mail primit (impreuna cu o parte din fisierul JPG atasat codat Base64): From - Mon Jul 16 22:52:41 2018 X-Account-Key: account1 X-UIDL: GmailIdxxxxxxxxxxxxxxxxx X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 X-Mozilla-Keys: Return-Path: Received: from localhost ([1.2.3.4]) by smtp.gmail.com with ESMTPSA id xxxxxxxxxxxxxxxxx.28.2018.07.16.12.52.36 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 16 Jul 2018 12:52:36 -0700 (PDT) Message-ID: Date: Mon, 16 Jul 2018 12:52:36 -0700 (PDT) X-Google-Original-Date: Mon Jul 16 22:52:36 EEST 2018 From: utilizator@gmail.com To: utilizator@gmail.com Subject: IP-Cam Snapshot Content-Type: image/jpg; name=2018-07-16_22:52:36_captura_camera.jpg Content-Transfer-Encoding: base64 Content-Disposition: inline /9j/4W+eRXhpZgAASUkqAAgAAAALAA8BAgAKAAAAkgAAABABAgAIAAAAnAAAABIBAwA