Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… ·...

39
Matteo Serafini Matteo Serafini Venezia Free Software Users Group Come realizzare un semplice sistema di rilevamento intrusione con MOTION MOTION e poi esagerare ...

Transcript of Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… ·...

Page 1: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

Come realizzare un semplice sistemadi rilevamento intrusione con

MOTIONMOTIONe poi esagerare ...

Page 2: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

PREMESSA

Negli ultimi due anni la casa delle associazioni ha avuto ben tre visite da parte di visitatori notturni.

La nostra stanza ha ricevuto quindi una prima visita con il furto delle nostre amatissime casse e del relativo piccolo woofer e con il danneggiamento della porta.

Page 3: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

PREMESSA

La seconda visita sono entrati spaccando di nuovo la nostra povera porta, hanno provato a rubarci il server (probabilmente inesperti non avevano capito che c'erano i cavi attaccati) e alla fine hanno lasciato il tutto senza portare via niente.

L'ultima volta hanno sfondato di nuovo la porta e per qualche strano motivo non hanno portato via nulla (neanche 50 euro abbandonati in un cassettino sul tavolo). Da una prima verifica non sono nenache entrati.

Forse sono stati terrorizzati da una presenza inquietante messa all'entrata !

Page 4: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

IL PINGUINO VAMPIRO

Ma purtroppo avevano di nuovo spaccato la nostra povera porta ...

Page 5: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

V

CI SIAMO “INCAZZATI VERAMENTE”

A QUESTO PUNTO ...

Page 6: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

DECISIONEVolevamo avere una soluzione veloce, semplice e specialmente efficace ma sopratutto …

ECONOMICAECONOMICA

Page 7: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

PROGRAMMA

La nostra attenzione quindi si è rivolta a un piccolo programmino facilmente installabile e facilmente configurabile

MOTIONMOTION

http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHomehttp://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome

Page 8: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

MATERIALE

Cosa ci serviva per realizzare il nostro sistema anti intrusione ?

1 computer (in questo caso su linux)1 telecamera1 collegamento in internet

(se rubano la macchina come vediamo chi entra ?)

Page 9: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

MATERIALE

Tutte queste cose erano a nostra disposizione … Il nostro server Una telecamera E sopratutto … il collegamento internet 24 ore su 24

Page 10: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

INSTALLARE IL PROGRAMMA

Per installare il programma (se non già presente) ci e bastato semplicemente digitare da una shell (terminale) il seguente comando :

sudo apt-get install motion

Page 11: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

INSTALLARE IL PROGRAMMALettura elenco dei pacchetti... FattoGenerazione albero delle dipendenze Lettura informazioni sullo stato... FattoI seguenti pacchetti saranno inoltre installati: ffmpeg libav-tools libavdevice53 libavfilter2 libpq5Pacchetti suggeriti: postgresql-clientI seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53 libavfilter2 libpq5 motion0 aggiornati, 6 installati, 0 da rimuovere e 6 non aggiornati.È necessario scaricare 1141 kB di archivi.Dopo quest'operazione, verranno occupati 3517 kB di spazio su disco.Continuare [S/n]?

Page 12: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

VERIFICA DELLA TELECAMERA

Una volta installato il nostro programma abbiamo avuto la necessita di controllare se la nostra telecamera era funzionante.

Utilizzando il programma Cheese

Se non presente basta semplicemente installarla da terminale :Sudo apt-get install cheese

Page 13: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

VERIFICA DELLA TELECAMERA

Una volta collegata la telecamera abbiamo verificato se quella in nostro possesso era corretta e funzionante, oltre a verificare se la qualità del video era decente.

Page 14: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTIONInstallato il programma motion, verificata la telecamera siamo passati alla configurazione in quanto il programma MOTION non serve a nulla se non lo gestito correttamente:

Quindi dobbiamo fare dei semplici passaggi per poterla gestirla al meglio.

Nella cartella /etc/motion esiste il file di configurazione :motion.conf

per maggiori informazioni :http://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions

Page 15: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

Siamo andati ad editare il nostro file :

sudo nano /etc/motion/motion.conf

oppure

sudo vi /etc/motion/motion.conf

Page 16: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTIONSiamo andati a toccare i seguenti parametri :Width portato a 320 (default 352)Height portato a 240 (default 288) Motivo diminuire la grandezza immagine e pesantezza

framerate portato a 5 (default 100) Sono il numero di frame catturati al secondo

minimum_frame_rate oppure (dipende dalla versione)minimum_frame_time portato a 1 (default = 0) 0 = lo gestisce la telecamera 1 = al secondo

Page 17: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

auto_brightness offBrightness 0Contrast 0Saturation 0

Li abbiamo lasciati invariati ma possono essere utilizzati per impostare luminosita, contrasto e saturazione

Page 18: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

Nella sessione “motion Detection Settings” possiamo gestire le impostazioni che detreminano il rilevamento dei movimenti. Abbiamo lasciato i valori di default ma possono essere toccati per migliorare a seconda della propria telecamera.

Page 19: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

Importanti sono invece i parametri :

output_normal on (default off) Serve per abilitare lo scatto delle foto. Messo on effettua le fotografie, se si desidera solo una foto portarlo a “first”

output_motion off Non eravamo interessati a realizzare dei video dell'intrusione

Quality 85 (default 75)Preferito aumentare un po la qualità immagine

Page 20: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

Abbiamo quindi saltato la sezione “FFMPEG” in quanto non ci interessava fare il video e siamo passati direttamente alla sezione “target directory”

target_dir /home/matteos/motionE stata definita una cartella dove tutte le nostre foto/video verranno salvatejpeg_filename (si definisce il nome del file da salvare)Abbiamo lasciato invriati i parametri in quanto erano gia indicativi con un nome che salva date e time al secondo.

Page 21: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

I parametri successiviwebcam_port 8081 Serve per idicare su che porta via web possiamo gestire la nostra telecamera webcam_localhost offSe si desidera che altri pc possano vedere le immagini.

Page 22: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

Importanti per noi sono stati :control_port 8080 Porta di controlloControl_authentication username:password

Questa porta ci consente quindi di avviare, vedere lo status, fermare il servizio via web Verra richiesto login e password cosi da limitare l'accesso solamente a chi è alla conoscenza delle stesse

http://localhost:8080

Page 23: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

webcam_quality 70( default : 50) Qualita' del jpeg

webcam_motion on (default off)

vebcam_maxrate 1Nomero di frame al movimento

Page 24: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

A questo punto avevamo terminato la configurazione della nostro sistema di videosorveglianza e ci bastava lanciarlo.

MA … e se chi entrava per rubare ci rubava la cosa più preziosa ?

Page 25: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

Il server con il programma e quindi

tutto il suo servizio fotografico !

Page 26: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONFIGURAZIONE MOTION

A questo punto abbiamo deciso di esagerare:

Uno dei campi serve per indicare che dopo ogni immagine può avvenire un comando:

on_picture_save /home/matteos/motion_send_picture.sh %f

Il comando dice : ad ogni immagine effettua uno script chiamato “moion_send_picture.sh” pasando il nome dell'immagine appena generata

Page 27: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

motion_send_picture.sh

Abbiamo scritto all'interno :

echo -e “this is an automated message generation to motion.\n\nMotion detected: $1\n\n” | sendmail -f [email protected] -t [email protected],[email protected] -u “motion generated” -s smtp.gmail.com -ux “user” -xp “password” -m “intrusione in stanza” -a $1

Page 28: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

motion_send_picture.sh

Avevamo anche aggiunto anche :

Su matteos -c “cvlc –play-and-exit /home/matteos/Musica/sirena.mp3” &

Ma abbiamo preferito non abilitarlo in quanto troppo numeroso e metteva subito in allarme il ladro.

Page 29: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

AVVIO PROGRAMMAUna volta configurato il tutto abbiamo dovuto :

Aggiungere l'utente motion

Sudo adduser VOSTRO_USER motion

A qusto punto lanciamo motion :

motion

Se nel file di configurazione alla prima riga indichiamo

Daemon on

Verrà lanciato come demone

Page 30: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

CONTROLLO DEL PROGRAMMAColleghiamo alla webcam scrivendo nel nostro browser (se siamo sulla sessa macchina)

http://localhost:8081

o al server di controllo

http://localhost:8080

Cosa succede se io entro quindi :

Il programma motion scatta una foto e la invia via email

Page 31: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

FOTO ESEMPIO DI UN INTRUSO

Page 32: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

ESAGERIAMO ANCORAIn quanto chi entrava probabilmente entrava senza accendere le luci abbiamo provveduto ad installare un sensore anche di movimento per la luce :

Page 33: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

RISULTATO

Page 34: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

DISATTIVAZIONE E ATTIVAZIONEPer gestire il tutto da fuori stanza abbiamo abilitato una rete wifi del Velug. Utilizzandola possiamo scrivendo il seguente link:

http://192.168.0.1:8080

Riusciamo ad avviare o fermare il servizio collegandoci alla rete.

Page 35: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

DISATTIVAZIONE E ATTIVAZIONEPer semplificarci il tutto abbiamo quindi creato una piccola APP che ci richiama il seguente indirizzo utilizzando i sistemi on-line esempio :

http://www.appsgeyser.com

Che porta a una visione del genere

Page 36: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

DISATTIVAZIONE E ATTIVAZIONEIn seguito abbiamo usato appinventor2 e abbiamo creato una applicazione più performante della precedente (e sicuramente più veloce e più intuitiva)

Page 37: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

DISATTIVAZIONE E ATTIVAZIONEPurtroppo alcune volte il cellulare può essere privo di batteria o peggio inutilizzabile, quindi dobbiamo disattivare il sistema entrando e andado direttamante sul server per metterlo in pausa.

Questo comporta che nel frattempo del percorso porta--> server arrivano a noi stessi un set fotografico compreso (minimo 30 foto).

Il prossimo passo sara invece quello di utilizzare le QT e il gestire il tutto attraverso una tastiera numerica che attivi o disattivi direttamante da fuori stanza

Page 38: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

DISATTIVAZIONE E ATTIVAZIONEQuindi il prossimo passo sara invece quello di utilizzare le QT e una una tastiera numerica che attivi o disattivi direttamante da fuori stanza.

Ma questo è il futuro !!!!!

Page 39: Come realizzare un semplice sistema di rilevamento ... un sistema antiintrusio… · postgresql-client I seguenti pacchetti NUOVI saranno installati: ffmpeg libav-tools libavdevice53

Matteo SerafiniMatteo Serafini

Venezia Free Software Users Group

GRAZIE DELL'ATTENZIONE

Matteo Serafini (Matteos)Velug Free Software

http://www.velug.it

la mia email é la seguente:

[email protected]@velug.it