Le vacanze estive sono ormai arrivate per la maggior parte di noi. Chi su una spiaggia steso sotto il sole a prendere la tintarella, chi in montagna a fare una salutare passeggiata, siamo tutti “impegnati” a rilassarci senza pensare a nulla, lontani dallo stress della città e dal lavoro. Purtroppo, però, c’è sempre qualcuno che non va mai in vacanza: topi da appartamento e ladri di ogni genere approfittano della nostra assenza per intrufolarsi in casa e saccheggiare le nostre cose più care. Proprio per evitare brutte sorprese al nostro ritorno dalle vacanze impareremo come installare e configurare un sistema di videosorveglianza a “costo zero”, senza rinunciare, comunque, alla sicurezza e all’efficienza garantiti dalle piattaforme professionali. In pratica, è sufficiente un PC, ovviamente con GNU/ Linux installato, una normalissima webcam USB e, soprattutto, ZoneMinder. Ovviamente, è di fondamentale importanza disporre di una webcam compatibile con GNU/Linux, mentre come distribuzione è possibile utilizzare quella che vogliamo. Nel nostro caso, come sistema di riferimento abbiamo utilizzato una Kubuntu 8.04 Hardy Heron, l’ultima ad essere rilasciata e completamente aggiornata. La scelta è caduta su questa distribuzione perché permette di installare ZoneMinder in modo rapido e semplice. Inoltre, offre a noi la possibilità di dedicare meno spazio all’installazione dei programmi per poter passare subito alla più importante fase di configurazione e uso della piattaforma di videosorveglianza. Per le altre distribuzioni è disponibile una “nutrita” documentazione all’indirizzo www.zoneminder.com/ wiki/index.php/Documentation, dove, tra le altre cose, è spiegata anche l’installazione dai sorgenti. Per quanto riguarda la webcam è facile verificare se il modello in nostro possesso è compatibile all’indirizzo http://mxhaard.free.fr (vedi box “Driver per 250 webcam!” ).
Driver per 250 webcam!
È tutto opera di un fisico francese
È proprio il caso di dirlo: l’Open Source è grande! Sembra incredibile ma è proprio così: il fisico francese Michel Xhaard, grande sostenitore del Software Libero, armato di tanta pazienza e buona volontà, ha sviluppato in modo indipendente e senza l’aiuto di nessuno i driver per ben 250 modelli di webcam diversi.
Cosa possiamo fare con Zoneminder
Il software ha raggiunto un livello di maturità eccezionale ed è ormai in grado di soddisfare le esigenze più disparate. Tra le altre cose, supporta webcam USB e IP Camera di numerose marche, gestisce più sorgenti video contemporaneamente e ha un efficiente sistema di cattura e analisi di immagini e video (in formato MPEG e JPG). Inoltre, può essere configurato per monitorare solo determinate “zone” dell’ambiente posto sotto controllo, è in grado di rilevare e catturare i movimenti, inviare e-mail di avviso o SMS e molto altro ancora. In questo caso specifico, ci occuperemo della configurazione di base, tra cui il setup della sorgente video per ricevere le immagini e, infine, faremo in modo che ZoneMinder si attivi quando qualcuno o qualcosa passa davanti alla webcam e, infine, registri il video sull’hard disk in formato MPEG. La registrazione costante occuperebbe troppo spazio, quindi, selezioneremo solo gli “spezzoni” che ci servono. E per finire, configureremo il sistema di videosorveglianza affinché ci invii una e-mail di avviso quando succede qualcosa di strano.
Accesso da e verso internet
Abbiamo detto che per quanto riguarda l’hardware è sufficiente una comune webcam, ovviamente nulla vieta di utilizzare dispositivi professionali, molti dei quali, tra l’altro, sono perfettamente supportati da ZoneMinder. Ma per quanto riguarda il software, quanto indicato non è ancora sufficiente. ZoneMinder è accessibile e gestibile mediante interfaccia web (in pratica tramite un comune browser come Firefox, Opera o Konqueror) per cui, per poter funzionare, necessità di un server web installato e attivo. Ovviamente, in questo caso, la scelta è quasi obbligata e si chiama Apache. Inoltre, è necessario che siano installati anche il database server MySQL e la piattaforma di sviluppo PHP (ZoneMinder è sviluppato anche con questo linguaggio insieme a Perl). Infine, ma questo dipende da esigenze personali, potrebbe essere necessario un server di posta tipo Sendmail o Qmail. Il database è in dispensabile per consentire a ZoneMinder di archiviare le immagini acquisite, mentre il server di posta serve per sfruttare la possibilità di inviare automaticamente messaggi di avviso se il sistema di sorveglianza rivela qualche cosa di anomalo. Inoltre, affinché sia possibile accedere al sistema di videosorveglianza è necessario che il computer sul quale è installato ZoneMinder sia sempre acceso e connesso costantemente a Internet. L’ideale sarebbe ottenere un indirizzo di rete fisso (un IP statico) assegnato direttamente dal provider della connessione, possibilmente di tipo ADSL, o addirittura possedere un proprio dominio. Altrimenti, è possibile utilizzare un servizio di Dynamic DNS (vedi box “Ottenere un indirizzo fisso”).
Installare tutto l’occorrente
La prima cosa da fare, ovviamente, è installare i programmi necessari. Nella maggior parte dei casi, infatti, si tratta di software non presente di default nelle distribuzioni. Per quanto riguarda la Kubuntu 8.04, scelta per eseguire la prova, tutti i programmi necessari sono disponibili in formato precompilato, quindi possiamo installarli utilizzando il package manager. Possiamo farlo in due modi: in modalità grafica con Adept, avviabile da K/Sistema/Gestore Adept, oppure dalla riga di comando con apt-get. In questo caso, bisogna per prima cosa avviare un terminale da K/Sistema/Konsole e diventare root con sudo -s. A questo punto basta eseguire il comando seguente:
apt-get install zoneminder apache2 mysql-server-5.0 php5
Il comando precedente installerà tutto il necessario, comprese le dipendenze, in un colpo solo. In alternativa, è possibile utilizzare apt-build, simile ad apt-get ma con l’unica differenza che non usa pacchetti precompilati ma scarica i sorgenti e li compila localmente, fatto che dovrebbe offrire prestazioni migliori a scapito però di notevoli tempi di installazione che variano a seconda del tipo di macchina. Ma per prima cosa bisogna installare questo tool: sudo apt-get install apt-build. Nella schermata che ci viene proposta scegliamo Intermedio, premiamo OK, poi indichiamo il modello del processore che equipaggia il nostro PC, dopodiché, una volta pronto apt-build, installiamo i programmi nel modo seguente: sudo aptbuild install zoneminder apache mysql php. A questo punto, ci verrà chiesto anche di installare tutte le dipendenze e di configurare il database MySQL: rispondiamo e attendiamo il tempo necessario per l’installazione (lungo nel caso di apt-build).
Se non si vede nulla
Potrebbe essere un problema di permessi Se per caso non dovesse apparire nessuna immagine proveniente dalla webcam, niente paura: dipende dal fatto che non abbiamo accesso in lettura/scrittura al dispositivo che identifica la webcam. Per risolvere il problema, bisogna eseguire i comandi seguenti, sempre sul PC sul quale è installato ZoneMinder:
chmod 666 /dev/video
chmod 475 /usr/bin/zmfix
Ottenere un indirizzo fisso
Il nostro PC sempre raggiungibile In pratica un sistema di Dynamic DNS permette di collegarsi ad una macchina remota, in questo caso il nostro PC con ZoneMinder installato, utilizzando un hostname a nostra scelta, come se avessimo registrato un nostro dominio (ad esempio, www.miosito.it) pur utilizzando un indirizzo IP dinamico. Tutto questo è possibile in quanto viene creata un’associazione tra il nostro IP variabile, tipico delle normali connessioni a Internet, con un indirizzo web. Sono disponibili diversi servizi di questo tipo offerti gratuitamente. Quelli più utilizzati sono DynDNS (www.dyndns.com), EasyDNS (www.easydns.com) e ZoneEdit (www.zoneedit.com).
Configurazione del server web
Adesso che abbiamo installato tutto il necessario, non ci resta che configurare il sistema di videosorveglianza iniziando proprio da Apache. In pratica, bisogna indicare al server web di “prendere” le immagini catturate da ZoneMinder (il flusso audio/video) e trasmetterle sulla porta 80, che è proprio quella sulla quale operano i server web come Apache: in pratica si tratta del protocollo HTTP. Per fare questo basta creare un link simbolico nel modo seguente:
ln -s /etc/zm/apache.conf /etc/apache2/
conf.d/zoneminder.conf
Arrivati a questo punto, dobbiamo rendere attiva la nuova configurazione riavviando Apache: /etc/init.d/apache2 restart. Non resta che procedere con la configurazione di ZoneMinder.
Il setup di Zoneminder
Tutto il sistema a questo punto dovrebbe essere funzionante. Per fare una prova, non ci resta che avviare il browser, ad esempio Firefox (menu K/Internet/Firefox Browser Web) e collegarci all’indirizzo IP del PC sul quale è in esecuzione ZoneMinder: http://127.0.0.1/zm. In questo caso ZoneMinder è presente in locale, cioè sullo stesso PC nel quale abbiamo eseguito il browser, ed è stato possibile utilizzare l’indirizzo di loopback (localhost è uguale), in caso contrario, cioè per PC remoti raggiungibili via rete, anche Internet, bisogna indicare l’indirizzo IP o il nome di dominio. Ad esempio, 192.168.0.1 per una macchina presente nella rete locale (LAN), www.miosito.it, o il relativo indirizzo IP nel caso di macchine esterne. Oppure ancora, l’hostname assegnatoci dai servizi di Dynamic DNS. Resta il fatto che se tutto è andato a buon fine dovrebbe apparire l’interfaccia di gestione. Per prima cosa configuriamo la lingua. Andiamo su Options, in alto a destra, selezioniamo ZM_LANG_DEFAULT e inseriamo it_it. Premiamo su Save per confermare. Le opzioni sono tantissime, ma per il momento non ci interessano, starà a noi, in seguito, sperimentare e arrivare alla configurazione ottimale. Terminata questa prima parte, bisogna aggiungere almeno un “monitor”, in pratica la telecamera (in questo caso la webcam) che catturerà video e immagini, come mostrato nel tutorial “Aggiungere una telecamera”. Ricordiamo che bisogna eseguire questa operazione per ogni sorgente video (webcam o IPCamera ) che utilizzeremo.
Aggiungere una telecamera
ZoneMinder supporta sorgenti video multiple, ma almeno bisogna configurarne una
Aggiungiamo un nuovo monitor
Premiamo su Aggiungi nuovo Monitor: apparirà una finestra con una form in cui inserire alcune opzioni. Nella scheda General indichiamo un nome qualsiasi per identificare la webcam (ad esempio Ingresso). In Sorgente, invece, alla voce Percorso Dispositivo, inseriamo /dev/video0 che è (nel nostro caso) il file di dispositivo della webcam.
Caratteristiche della webcam
Per conoscere il canale e le risoluzioni massime a cui è in grado di lavorare la nostra webcam bisogna eseguire, ovviamente sul PC a cui questa è collegata, il comando zmu -q -d / dev/video0 -v e leggere l’output. Nel nostro caso abbiamo canale 0, formato PAL, Paletta img Catturata YUV420P, risoluzione a 640×480. Inseriamoli e premiamo Salva.
Connessione lenta risoluzione bassa
Questi dati, ovviamente, variano da modello a modello ma, ad esempio, possiamo inserire una risoluzione minore, come 320×240, per avere meno carico sulla connessione. Impostato questo valore, premiamo su Salva per ritornare alla schermata iniziale e poter così continuare con la configurazione della sorgente video.
Finalmente si vede qualcosa
Premiamo sul nome del file di dispositivo sotto la voce Sorgente e in Linked Monitor andiamo su Seleziona. Qui scegliamo il monitor creato prima, Ingresso. A questo punto, sotto Funzione scegliamo None. Dal menu selezioniamo Monitor, spuntiamo la casella Attiva e premiamo Salva. Per vedere le immagini selezioniamo Ingresso.
Monitoraggi diversi
Ognuno ha una funzione particolare Modect registra una serie di immagini, le analizza e genera un evento quando rileva un cambiamento nell’area selezionata. Record registra video di lunghezza fissa, senza preoccuparsi di eventuali cambiamenti (eventi). Mocord registra video di lunghezza fissa e evidenzia tutti i movimenti rilevati. Nel nostro caso selezioniamo Mocord.
Controllo degli accessi
Proprio perché installato su PC raggiungibili via rete, anche Internet, è necessario bloccare, o almeno limitare solo a chi vogliamo noi, gli accessi dall’esterno. Per gestire questo aspetto, premiamo sul pulsante Opzioni e spuntiamo Authenticate user logins to ZoneMinder e premiamo su Salva. A questo punto ZoneMinder verrà riavviato e sarà necessario effettuare l’accesso tramite username e password, che di default sono admin e admin. Effettuato il nuovo accesso, premiamo ancora Opzioni e poi scegliamo Utenti. Qui eliminiamo l’utente admin e creiamone uno nuovo da Aggiungi nuovo Utente.
Zoneminder ci avvisa con una e-mail
A questo punto abbiamo quasi finito, non rimane che configurare ZoneMinder per inviare un avviso tramite e-mail nel caso catturi qualcosa di anomalo. Per farlo è necessario che insieme a Zone- Minder e tutto il resto sia anche installato un server di posta in uscita (SMTP). Fatto ciò, la configurazione, ma solo per quel che riguarda ZoneMinder, è abbastanza semplice. Premiamo su Options e poi su Email per aprire la relativa pagina di configurazione e per prima cosa spuntiamo la voce ZM_OPT_EMAIL; serve ad abilitare la possibilità di inviare messaggi di avviso. A questo punto, su ZM_ EMAIL_ADDRESS inseriamo il nostro indirizzo e-mail. L’oggetto del messaggio possiamo anche lasciarlo invariato, oppure cambiare la voce ZM_EMAIL_SUBJECT. Il corpo dell’e-mail possiamo indicarlo nel campo di testo accanto. In ZM_EMAIL_HOST inseriamo l’hostname del nostro server di posta, in ZM_FROM_EMAIL l’indirizzo del mittente e, infine, su ZM_URL l’indirizzo del server. Questo è tutto! Non vi resta che esercitarvi il più possibile per rendere il sistema adatto alle vostre esigenze. Il software, come avete capito, è molto potente e nell’articolo abbiamo potuto trattare solo le funzioni di base, quanto serve per iniziare. Per quanto riguarda la legge sulla privacy, ricordiamo che in Italia chi utilizza un sistema di videosorveglianza è obbligato a mostrare un cartello di avviso.
Cattura dei movimenti
Quando ZoneMinder rileva un cambiamento registra subito il video dell’accaduto
Monitoraggio a zone
Nella schermata principale premiamo su Ingresso e poi su Zone. A questo punto apparirà una nuova finestra tutta colorata di rosso. Premiamo sull’immagine fissa per accedere alla pagina di configurazione della zona da monitorare.
Nuove coordinate
A questo punto, la finestra cambierà colore e tutta la zona diventerà verde. Adesso possiamo cambiare le coordinate presenti nei campi di testo e stabilire l’area da controllare (la zona interessata cambierà colore).
Funzioni diverse
Premiamo Salva e torniamo alla schermata principale. Prima avevamo selezionato la funzione base Monitor, ma premendoci sopra è possibile cambiarla con Modect, Record o Mocord (vedi box “Monitoraggi diversi”).