Le telecamere di sicurezza sono ormai dispositivi di uso comune. Le più economiche costano poche decine di euro ma non sempre i programmi per eseguire il loro monitoraggio sono tra i più comodi. Ecco perché con il tempo sono nati diversi software open source che garantiscono una gestione centralizzata di più telecamere connesse alla medesima rete locale. Uno dei più comuni è ZoneMinder, questa utility è davvero completa e può gestire una moltitudine di videocamere di sorveglianza, monitorare una determinata area selezionata dall'utente ed eseguire screenshot al passaggio di un oggetto. I dati possono essere salvati in locale dunque viene assicurato anche un alto livello di privacy.
Nella guida di oggi parleremo di come configurare ZoneMinder su Raspberry Pi, cosi da ottenere una centrale di videosorveglianza di dimensioni ridotte che può rimanere operativa ininterrottamente 7 giorni su 7. Raspberry Pi è infatti il dispositivo perfetto per tali progetti, la sua architettura hardware, ARM64, consuma davvero pochissima energia e lasciarlo accesso anche 24 ore su 24 non sarà un problema. Inoltre il sistema operativo Raspberry Pi OS è davvero versatile e si adatta ad ogni contesto e necessità senza la necessità di eseguire modifiche profonde.
Requisiti hardware
Per realizzare tale progetto è necessario dotarsi di un Raspberry Pi, noi vi consigliamo di affidarvi al modello più recente con almeno 8GB di RAM. Questo perché la gestione dei flussi video può richiedere un discreto quantitativo di risorse. Inoltre è auspicabile acquistare di una o più IP Camera compatibile con ZoneMinder. Il software è compatibile con un vasto bacino di device ma è sempre meglio controllare in rete se il modello che desideriamo può integrarsi con ZoneMinder.
Oltretutto dovremo dotarci anche di: microSD, dove installare il sistema operativo Raspberry Pi OS, display, mouse e tastiera.
Configurazione preliminare di Raspberry Pi OS
Dopo aver terminato la configurazione iniziale di Raspberry Pi OS possiamo procedere all'installazione di alcune librerie e programmi che ci saranno necessari in seguito. Apriamo il terminale e scriviamo:
sudo apt install apache2 mariadb-server
Abbiamo appena installato un Web server, Apache, ed un database, MariaDB. Procediamo quindi a configurare quest'ultimo:
sudo mysql_secure_installation
Alla domanda di inserire una password lasciamo il campo vuoto e digitiamo "Invio". Dopo le prossime due successive digitiamo "N" mentre alle ultime "Y".
Installazione di ZoneMinder
Procediamo quindi importando il repository ufficiale di ZoneMinder:
curl -L https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/zoneminder-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/zoneminder-archive-keyring.gpg] https://zmrepo.zoneminder.com/debian/master $(lsb_release -cs)/" | sudo tee /etc/apt/sources.list.d/zoneminder.list
sudo apt update
Successivamente avviamo l'installazione tramite il gestore di pacchetti APT:
sudo apt install zoneminder
Configurazione di ZoneMinder
Avviamo il setup di ZoneMinder andando a creare il nuovo database:
sudo mysql
CREATE DATABASE zm;
CREATE USER 'zoneminder_usr'@'localhost' IDENTIFIED BY 'LATUAPASSWORD';
GRANT ALL PRIVILEGES on zm.* to 'zoneminder_usr'@'localhost';
FLUSH PRIVILEGES;
exit;
sudo mysql < /usr/share/zoneminder/db/zm_create.sql
Modifica della timezone ed impostazione di PHP
Ora dobbiamo accertarci di aver impostato una timezone sul sistema operativo. Quindi torniamo in bash e digitiamo:
sudo raspi-config
Ci ritroveremo all'interno di un tool da shell. Navighiamo all'interno di esso con le frecce della tastiera e spostiamoci in "Localisation Options>Timezone". Selezioniamo quest'ultima opzione e seguiamo la procedura guidata. Chiudiamo il tool e torniamo nella shell. A questo punto possiamo modificare la timezone in PHP:
sudo nano /etc/php/8/apache2/php.ini
Il numero 8 si riferisce alla versione di PHP. Tale numero ovviamente varia in base alla propria distribuzione ed alla versione del sistema operativo. Quindi per sicurezza verifichiamo sempre quale sia la release di PHP che abbiamo installato, cosi da essere sicuri di trovare il file che cerchiamo.
Una volta aperto il file con l'editor di testo nano cerchiano la seguente stringa di testo:
;date.timezone =
che deve essere modificata in questo modo:
date.timezone = Europe/Rome
Salviamo quindi le modifiche con CTRL+O e chiudiamo con CTRL+X. Ora eseguiamo un'operazione simile con ZoneMinder:
sudo nano /etc/zm/zm.conf
e modifichiamo questo parametro:
ZM_DB_USER=zmuser
in questo modo:
ZM_DB_USER=zoneminder_usr
Adesso passiamo alla creazione delle credenziali d'accesso di ZoneMinder, nel medesimo file cerchiamo questa opzione:
ZM_DB_PASS=zmpass
e settiamola inserendo la nostra password:
ZM_DB_PASS=LATUAPASSWORD
Infine salviamo e chiudiamo il documento. Ora rendiamo operative tali modifiche cosi:
sudo chown www-data: /etc/zm/zm.conf
Accesso alle telecamere ed attivazione del Web server
Per garantire a ZoneMinder di poter catturare i flussi video delle telecamere dobbiamo lanciare questo comando:
sudo usermod -aG video www-data
Successivamente passiamo alla configurazione del Web server Apache2 e del demone di ZoneMinder:
sudo a2enconf zoneminder
sudo a2enmod rewrite
sudo systemctl restart apache2
sudo systemctl enable zoneminder
sudo systemctl start zoneminder
Accedere alla Web interface di ZoneMinder
Siamo finalmente pronti per accedere all'interfaccia Web di ZoneMinder. Per farlo basta digitare nella barra degli URL del nostro browser l'IP locale del Raspberry Pi seguito da /zm
. Se non conosciamo tale dato possiamo sfruttare questo pratico comando nella shell:
hostname -I
ed otterremo un output del genere:
192.168.1.2
quindi nel browser dobbiamo scrivere:
http://192.168.1.2/zm
Adesso nel browser dovrebbe apparire la welcomescreen di ZoneMinder. In tale riquadro ci viene richiesto di accettare i TOS (Term of Service) del programma, clicchiamo ovviamente sul pulsante "Accetta" e proseguiamo con il wizard di configurazione. Per aggiungere le nostre videocamere bisogna cliccare su "Aggiungi" e seguire la procedura guidata.
Noi consigliamo di utilizzare un nome specifico, tramite l'apposita funzione del setup integrata, alle diverse telecamere dedicate alla video sorveglianza. Cosi facendo avrete un colpo d'occhio sulle diverse posizioni sorvegliate e potrete capire al volo la videocamera utilizzata per una determinata ripresa.
Dopo aver scelto la denominazione dei device si passa alla selezione delle sorgenti audio e video. In buona sostanza bisogna indicare a ZoneMinder il dispositivo connesso in rete a cui vogliamo associare il nome scelto. Per farlo spostiamoci nella tab in alto chiamata "Sources" e successivamente inseriamo l'RTSP link della IP Camera connessa alla rete locale. Clicchiamo infine su "Save" per salvare le impostazioni appena immesse all'interno dell'applicativo.