"Debian Sarge - Postfix - Open-Xchange - howto"
| La base | Service mail | Prépa Open-Xchange | OpenLDAP | Installation | Post-install | HylaFax | Alarme | BackupPC | Sync4j | Et encore |
Système de vidéo surveillance
Prérequis : Une ou des webcam fonctionnant sous Linux, connaitre comment fonctionne les devices sous Linux, installer des pilotes avec module-assistant ou bien sans pourrait bien être un plus, une petite dose de paranoïa mais pas trop.
Ayant été échaudé il y a quelques temps suites aux déboires d'amis ou collègues qui se sont fait cambriolé ou tout simplement squatté suite à la vente de leur maison (1 semaine après leur déménagement) j'ai mis en place un système de vidéo surveillance chez moi ainsi qu'à mon taf basé sur des Debian Sarge, Etch ou Ubuntu Dapper.
Roadmap
Installation de "Motion" pour la détection de mouvement
Test de différentes webcam usb, une bonne adresse et aussi { à finir }
Dissimulation des webcam { à faire }
Voir ce qui ce passe chez moi depuis internet { à faire }
Enregistrer c'est bien mais alerter c'est mieux et si c'est rapide c'est encore mieux...
Voilà, je vais essayer de me remémoriser toute les opérations nécessaire afin de les retranscrire ici même
Motion
Installation pour une webcam, rien de bien compliqué sous Debian,
~# apt-get install motion
Afin de créer des vidéos on rajoute le paquet qui va bien,
~# apt-get install ffmpeg
Comme bien souvent sous Debian les fichiers de configuration se trouve sous /etc et une bonne partie des exemples et des spécificités se retrouves dans /usr/share/doc. C'est d'ailleurs une des règles pour qu'un programme puisse faire partie de cette distribution si je ne m'abuse.
Le fichier de conf d'origne fourni une bonne base pour démarer, mais il faut au moins connaitre les possibilités de votre webcam, voici quelques options intéressante :
daemon off # pour les tests je reste sur off, ensuite quand tout sera au point je bascule sur on
videodevice /dev/video0 # si vous n'avez qu'une caméra c'est forcément celle la, un "dmesg" et "lsusb" peut vous aider
width 352 # suivant votre matos
height 288 # suivant votre matos
webcam_port 8000 # le port sur lequel un mini server http enverra le flux video, 0 pour le disable
webcam_localhost on # pour limiter l'utilisation au réseau local
ffmpeg_cap_new off # si vous voulez créer un fichier video
ffmpeg_video_codec msmpeg4 # le format d'encodage de la video
control_port 8010 # le port pour le mini server http de controle, toutes les options peuvent y être définie
control_localhost off # pour limiter l'utilisation du seveur de réglage au réseau local
Je n'entrerai pas plus dans l'utilisation et les réglages de Motion, le site est largement documenté, à vous de tester, c'est assez amusant
Le mini serveur web vous permet de visualiser la video en temps réel mais est assez limité, ça visualisation ne fonctionne pas sur tout les navigateurs (IE) mais firefox peut vous donner un bonne aperçu, il suffit de rentrer comme adresse :
http://mon.serveur.motion:8000
Si vous faites un refresh vous verrez la video en temps réel
Pour une meilleure utilisation vous pouvez utiliser cambozola
Les webcams
Logitech Quickcam comunicate
C'est la première webcam dont je disposais, la qualité est assez médiocre pour le prix. 
Je lui est donc fait une petite transformation.
Elle est correctement piloté avec le driver qc-usb-messenger
MSI Starcam 370i
La seule que je n'ai pas réussi à faire fonctionner sous Linux et c'est fort dommage car les diodes infrarouge fonctionnent super bien dans le noir sous M$ et la qualité d'image était au rendez vous. 
Elle est pourtant reconnue avec le driver spca5xx, affaire à suivre...
LDLC (cam à moins de 8 euro)
Driver spca5xx
Philips Toucam pro
Le top question image et prix (environ 70 euro)
Capteur ccd
Driver pwc
Motion, utilisation avancé pour system d'alarme
La suite à été élaboré pour mon utilisation, ce n'est peut être pas la meilleure mais c'est celle que j'utilise
ajout du script de démarrage
~# cp /usr/share/doc/motion/examples/motion.init-Debian /etc/init.d/motion
Une petite modification afin de ne pas utiliser Motion sous root mais sous un utilisateur de base (alarme dans notre cas)
L'utilisation d'un autre user que root pour mon alarme n'a pas été fait au départ pour des raison de sécurité (quoi que) mais j'avais besoin de faire cette différence pour mes alertes par mail et surtout exploiter une option de mon Blackberry.
Un autre avantage d'un user à droits très serrés permet éventuellement la création de clé SSH sans mot de passe afin de lancer ou stopper l'alarme d'un clic sous windows avec Putty, le tout bien paramétré pour limiter les accès par les adresses IP (dans les ./ssh/authorized_keys2)
~# adduser alarme
~# adduser alarme video
~# mkdir /var/run/motion
~# chown alarme:alarme /var/run/motion
~# vim /etc/init.d/motion
Attention à penser à rediriger les mails pour alarme sur un autre user
PIDFILE=/var/run/motion/$NAME.pid
Un petit test pour voir si tout fonctionne :
~# su - alarme /etc/init.d/motion start
et normallement,
~# ps aux | grep motion
doit donner
alarme 11585 1.0 0.2 29164 2392 ? Sl 16:41 0:00 /usr/bin/motion
Ouf, c'est déjà pas mal, évidemment pour stopper motion
~# /etc/init.d/motion stop
Voila, il ne reste plus qu'a utiliser la crontab pour enclencher votre system d'alarme tout beau tout neuf, par exemple:
~% crontab -e
# Video surveillance
5 8 * * 1-5 /etc/init.d/motion start
30 17 * * 1-5 /etc/init.d/motion stop
Lance Motion de 8h30 à 17h30 du lundi au vendredi
Script de nettoyage
Quand il enregistre, Motion fabrique énormément d'image jpg avant de les compiler en film, il faut donc écrire un petit bout de code afin de purger tout ça via un évènement crontab.
~% vim /usr/local/sbin/motion-clean
#!/bin/bash
# Script de nettoyage
find /home/alarme/cam0 -type f -name "*.jpg" -mtime +2 -exec rm {} \;
purgeras tout les jpg de /home/alarme/cam0 qui ont plus de 2 jours
Enregistrer c'est bien mais alerter c'est mieux et si c'est rapide c'est encore mieux...
Alerte par mail
L'envoi de mail par votre machiine qui supporte motion utilise la commande "mail", sur toutes les machines que j'ai utilisé pour installer motion, cette commande n'existait pas, on peut la retrouver en installant le paquet "mailx"
~# apt-get install mailx
Création d'un petit script d'envoi de mail (sous l'user alarme):
~% vim mailalarm
#!/bin/sh
# Envoi d'un mail d'alerte
echo "Mouvement détecté, ATTENTION!!" | /usr/bin/mail -s "INTRUSION ALERTE" mon.compte@mon.service.mail.fr
~% chmod +x mailalarm
et on test
~% ./mailalarm
Vous devez normalement recevoir un mail sur le compte que vous aurez paramétré, dans l'exemple : mon.compte@mon.service.mail.fr
Il ne reste plus qu'à utiliser une option de Motion pour s'en servir :
~# vim /etc/motion/motion.conf
# alerte par mail
on_movie_start /home/alarme/mailalarm
Cette option lance le script créé ci-dessus quand un film débute mais il en éxiste d'autre, à vous de trouver les réglage qui vous conviendrons.
J'ai testé en premier "on_motion_detected" mais dans ce cas, le script est lancé autant de fois que de mouvement, résultat, je me suis auto mail bombé !!
Alerte par mail pour les privilégiés
J'ai la chance de posséder un terminal Blackberry pour mon travail et une des options de cette appareil est de pouvoir utiliser une sonnerie différente lors de la réception de messages niveau 1, à vrai dire je n'avais jamais utilisé cette option auparavant, recevant énormément de mails tout les jours j'avais préféré lui couper le sifflet pour rester discret !!
Nous ne possédons pas de serveur spécifique pour les Blackberry, nous les utilisons en webmail, c'est à dire que nous avons un compte mail assez basique que l'on paramètre par le web sur lequel on rentre les différent comptes que l'on veut synchroniser (un genre de Fetchmail). Comme sur tout les webmail, on peut créer des rêgles et pour le coup, en voila une qui marche très fort :
Tous mails venant de alarme@mon.serveur.motion sont aussitôt transformé en mail de niveau 1.
J'ai modifié les sonneries du terminal pour les messages de niveau 1 afin qu'il fasse le maximum de bordel !!
Déjà ça marche pas mal mais le délai entre l'envoi du mail, la réception sur mon compte, la synchro du compte webmail du terminal et enfin l'envoi au terminal, celà prend un temps assez long, entre cinq à dix minutes dans le pire des cas.
La solution est de modifier le script pour envoyer le mail directement au compte du Blackberry
~% vim mailalarm
#!/bin/sh
# Envoi d'un mail d'alerte
echo "Mouvement détecté, ATTENTION!!" | /usr/bin/mail -s "INTRUSION ALERTE" mon.compte@mon.compte.blackberry.fr
L'alerte est quasi instantanée !!
Alerte par envoi de sms
J'ai pas encore trouvé de solution simple qui pourrait fonctionner pour tout le monde, je sais qu'il existe différents service payant pour envoyer des sms par internet et j'ai déjà quelques scripts dans mes tiroirs et Debian possède aussi des outils pour celà mais j'aimerais (si possible) rester dans du tout gratuit, je pense que celà viendra prochainement.
snoopyouaib.com - Toute reproduction conseillée !
Nous sommes le 30-07-2010 et il est 18:32