Este un mic ghid pentru a evita sau a afla cine incearca sa ne faca glume proaste, sau pentru a ne ajuta sa identificam un "intrus". Este facut si testat pe Ubuntu 14.04, cel mai probabil variaza de la distributie la distributie, dar se rezolva din configurare. 1. Instalam streamer pentru a captura poza. Puteti folosi si altceva: ffmpeg, mplayer etc. sudo apt-get install streamer 2. Instalam mutt pentru a trimite mail cu atasament: sudo apt-get install mutt 3. Gasim camera pe care vrem sa o folosim. De obicei este video0 (in special in cazul laptopurilor, fiind incorporata): ls /dev | grep video 4. Acum avem doua fisiere: config.cfg si script.sh. >>> config.cfg # The string to look forstringName = unix_chkpwd # The file to look into logFile = /var/log/auth.log # The device address deviceAddress = /dev/video0 # Screenshot save location saveLocation = /home/path # E-mail address emailAddress = yourmail@gmail.com # Body text bodyText =/home/path/message.txt >>> script.sh #!/bin/bash # CONFIGURATION FILE_NO_FILE=/tmp/file_net FILE_NO=1 STRING=`cat config.cfg | grep stringName | cut -d'=' -f 2` DEVICE=`cat config.cfg | grep deviceAddress | cut -d'=' -f 2` LOGFILE=`cat config.cfg | grep logFile | cut -d'=' -f 2` LOCATION=`cat config.cfg | grep saveLocation | cut -d'=' -f 2` EMAIL=`cat config.cfg | grep emailAddress | cut -d'=' -f 2` BODY=`cat config.cfg | grep bodyText | cut -d'=' -f 2` #DO IT while : do if grep $STRING $LOGFILE then # CHECK FILE NUMBER if [ -f $FILE_NO_FILE ]; then FILE_NO=`cat $FILE_NO_FILE` fi let FILE_NO=FILE_NO+1 echo $FILE_NO > $FILE_NO_FILE streamer -c $DEVICE -b 16 -o $LOCATION/file_$FILE_NO.jpeg mutt -s "Photo for failed login attempt!" $EMAIL -a $LOCATION/file_$FILE_NO.jpeg < $BODY cat /dev/null > /var/log/auth.log sleep 1 # SECONDS fi done Acum sa vedem ce si cum: >>> config.cfg stringName tine un string care este scris in log-ul de autentificare (in cazul Ubuntu) in momentul in care exista un failed login attempt. logFile este log-ul unde cautam stringul. deviceAddress este locatia camerei web cu care facem poza. saveLocation este locatia unde vrem sa salvam pozele. emailAddress este adresa de mail la care sa trimita poza. bodyText este body-ul mail-ului. >>> script.sh FILE_NO_FILE este un fisier unde stocam un numar pe care il adaugam la sfarsitul pozei pentru a nu rescrie poza. FILE_NO este variabila unde tinem numarul initial. STRING, LOGFILE, LOCATION, DEVICE, BODY si EMAIL sunt variabilele in care stocam datele scrise in fisierul de configurare. Putem totul intr-un loop infinit pentru a ne asigura ca ruleaza permanent. Mai departe, verificam daca FILE_NO_FILE exista, apoi incrementam numarul. Daca string-ul este gasit in log, comanda pentru captura poza este executata si mail-ul este trimis catre noi. Am adaugat si un timeout de 1 secunda intre executii pentru a evita alte situatii. Ulterior golim logul. 5. Executarea scriptului Pentru a evita terminarea executiei in momentul in care se face log off/lock, vom rula scriptul cu nohup: sudo nohup ./script.sh & Acum asteptati "intrusi". Se poate adauga la startup daca aveti nevoie. Cu siguranta exista si variante mai bune, le astept.