jeudi 29 juin 2006

Les webcams sous Linux


Les webcams sous Linux

Les webcams sont de plus en plus utilisées. Elle permette d'ajouter une autre dimension lors de communication avec des logiciels de messageries instantanés. Il est enfin de possible de voir la personne. Un autre aspect non négligeable est la sécurité, les webcams permettent de surveiller un endroit à très faible coût.

Les webcams sont supportées sous Linux grâce au driver spca5xx. La liste des caméras supportées est disponible à mxhaard.

Installation

Les caméras sont maintenant détecté automatiquement. La procédures ci-dessous est gardé à des fins informatiques et n'est donc plus nécessaire.

Débranchez votre caméra avant de continuer. Télécharger le paquet de votre distribution (rpm, deb...).

Si aucun n'est disponible, télécharger les sources des drivers.
L'installation des sources nécessite d'avoir les sources du noyau, gcc, make, SDL-devel. Effectuer les commandes ci-dessous avec le compte administrateur (root).
make clean
make
make install

Ensuite exécutez la commande
modprobe spca5xx

Branchez votre caméra, si vous tapez dans une console la commande dmesg, vous devriez avoir de l'information concernant votre caméra. Si rien n'apparait, débrancher votre caméra et redémarrer votre machine. Ensuite rebrancher votre caméra et vérifier si vous obtenez bien les informations décrites plutôt. Si vous n'obtenez toujours rien, demander de l'aide sur notre forum.

Utilisation de votre webcam

Messagerie instantanée

Kopete gère de multiples protocoles de messagerie instantanée. Vous pouvez utiliser votre caméra avec les protocoles de Yahoo et de msn. Pour tester si votre caméra fonctionne, démarrez kopete, cliquer sur le menu Configuration et ensuite sur Configurer.... Finalement cliqué sur l'icône représentant une caméra. Après quelques secondes, vous devriez voir les images capturées par la caméra. Assurez-vous d'avoir la version la plus récente de kopete.

CamStream

CamStream est un logiciel qui permet d'enregistrer des images et de les envoyer sur un serveur. Des vidéos peuvent être enregistrés.





Nous pouvons remarquer qu'il est possible d'employer camstream pour surveiller un lieu. Il suffit de spécifier un serveur ftp afin qu'il puisse recevoir les images capturées. Ce logiciel prend des captures à intervalles réguliers, il y a pas de détection de mouvement de réalisée. Si l'interface de temps entre deux captures est faible, l'espace pris peut rapidement devenir important.

Motion

Motion est un logiciel parfait pour effectuer de la surveillance. Une tonne de paramètres sont disponibles.

Installation

L'installation de motion n'est pas très évidente. Motion nécessite ffmpeg, mais seul quelques versions bien spécifiques fonctionne. Si votre distribution offre un paquet pour motion employé le.

Téléchargez la version de ffmpeg disponible ici spécialement pour motion.
Effectuez les commandes suivantes
./configure --enable-shared
make
make install

FFMPEG est maintenant installé. Assurez-vous d'avoir MySQL ou PostgreSQL pour installer Motion. La librairie jpeg est aussi nécessaire. Tapez les commandes suivantes
./configure
make
make install

Une fois que motion est installé, il faut le configurer. Rechercher le fichier motion-dist.conf et changer son nom pour motion.conf. Copiez le fichier qui a été renommé dans le répertoire de votre usager. Sous Suse, ce fichier ce trouve dans le répertoire /usr/local/etc/.
Quelques propriétés doivent être modifiées.
Changer la valeur pour la norme employée dans votre région.
# The video norm to use (only for video capture and TV tuner cards)
# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
norm 1

Changez la hauteur et largeur des images capturées.
# Image width (pixels). Valid range: Camera dependent, default: 352
width 640 

# Image height (pixels). Valid range: Camera dependent, default: 288
height 480 
Indiquez le nombre maximal d'images que votre caméra peut capturé, la plupart son limité à 30 images par seconde.
# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 30 

Ajustez les différents paramètres disponibles pour la caméra au niveau de l'image. Il peut être utile de démarrer motion, changer les valeurs et ainsi de suite jusqu'à ce que le résultat réponde à nos attentes.
# Set the initial brightness of a video device.
# If auto_brightness is enabled, this value defines the average brightness level
# which Motion will try and adjust to.
# Valid range 0-255, default 0 = disabled
brightness 150

# Set the contrast of a video device.
# Valid range 0-255, default 0 = disabled
contrast 150

# Set the saturation of a video device.
# Valid range 0-255, default 0 = disabled
saturation 0

# Set the hue of a video device (NTSC feature).
# Valid range 0-255, default 0 = disabled
hue 0

La quantité de détails différents dans une image afin de détecter qu'il y a eu réellement un mouvement. Cette valeur peut s'avérer importante si votre webcam est située près d'une fenêtre ouverte. Une valeur plus élevée que 1 évitera de prendre des images du rideau qui bouge.
# Picture frames must contain motion at least the specified number of frames
# in a row before they are detected as true motion. At the default of 1, all
# motion is detected. Valid range: 1 to thousands, recommended 1-10
minimum_motion_frames 1
La dernière possibilité qui sera vue est la gestion des évènements. Motion permet d'effectuer des actions lorsqu'un évènement démarre, termine... Il est ainsi possible d'exécuter un script. Les possibilités deviennent alors illimitées. Il y a un évènement qui se produit lorsqu'un enregistrement vidéo débute et se termine. Il y en a un autre lorsque capture est effectué.
# Do not sound beeps when detecting motion (default: on)
# Note: Motion never beeps when running in daemon mode.
quiet on

# Command to be executed when an event starts. (default: none)
# An event starts at first motion detected after a period of no motion defined by gap 
; on_event_start value

# Command to be executed when an event ends after a period of no motion
# (default: none). The period of no motion is defined by option gap.
; on_event_end value

# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
# To give the filename as an argument to a command append it with %f
#; on_picture_save value
on_picture_save /home/paul/bin/send_email.sh %f

# Command to be executed when a motion frame is detected (default: none)
; on_motion_detected value

# Command to be executed when a movie file (.mpg|.avi) is created. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_start value

# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_end value

Il est possible de remarquer avec le code ci-dessus que le script send_email.sh est excuté lorsqu'une image est sauvegardé, %f est envoyé en paramètre à ce script. À toutes les fois qu'une image est sauvegardée, elle est envoyée par courriel.
Motion sauvegarde en local les images. Si un voleur réussit à voler votre ordinateur, vos images seront perdues. Il est donc important que vous sauvegardez vos images et vidéo à un autre endroit. Si votre voleur est futé, il analysera votre ordinateur et pourrait trouver le lieu distant de sauvegarde que vous avez employé. Une solution peut consister à crypter votre disque dur. Pensez sécurité!
En parcourant le fichier de configuration de Motion, regarder bien les options, il y en a beaucoup. Il est possible par exemple de tout entreposé dans une base de données.

Démarrage de motion

Motion intègre un serveur Web, le port 8080 est utilisé. Il est possible de configuré motion, d'effectuer des captures d'écran, démarré l'enregistrement vidéo.... avec l'interface Web. Motion ne possède pas d'interface graphique mise à part cet interface là.
motion -c /home/paul/motion.conf

Nous avons vu comment utiliser sa caméra web sous Linux ainsi que divers logiciels qui peuvent mettre à contribution votre caméra.

dimanche 25 juin 2006

Serveur FTP - vsftpd


Serveur FTP - vsftpd

Un serveur FTP est très utile pour permettre à des usagers d'accéder à certains de nos fichiers sans consommer beaucoup de ressource. Nous allons voir comment mettre en oeuvre un serveur FTP sous Linux. Le serveur FTP choisi est vsftpd et la distribution est Suse.

Installation

Installez vsftpd à l'aide de votre gestionnaire de paquet où à l'aide des sources. Sous Suse, il est inclus sur les CD ou DVD

Configuration

Un fichier de configuration est inclus avec ce serveur FTP, il se nomme vsftpd.conf et devrait être situé dans le répertoire etc.

Le fichier inclus permet d'avoir un serveur FTP qui accepte les connexions anonymes seulement.

La chaîne ftpd_banner, permet de définir un message lorsqu'un usager se connecte
ftpd_banner="Bienvenue au serveur ftp La boîte à prog."

Si vous désirez avoir un accès passif, vous devez mettre la chaîne pasv_enable à yes. De plus, vous devez ajouter
pasv_min_port=9999
pasv_max_port=9999

Si vous désirez démarré vsfpd en tant que programme, listen doit être à yes. Si vous mettez cette chaîne à no, sous Suse vous allez devoir activer vsftp en tant que service. Activez ce service à partir de yast xinetd (service réseau). N'oubliez par d'ouvrir le port 21 si vous avez un pare-feu, de plus activé le port 20 et 9999 si vous avez activé le mode passif.

Sous Suse, le répertoire pour le serveur FTP est: /srv/ftp/. Les usagers du FTP verront les fichiers qui s'y trouvent.

Les usagers qui ont un compte sur la machine peuvent accéder au FTP avec leur nom d'usager et mot de passe si la chaîne local_enable est à yes.

jeudi 15 juin 2006

Linux, Apache, Mysql, Php


Linux, Apache, Mysql, Php

Installation

Sous suse, assurez-vous que la case Vérification automatique soit cochée et installer les paquets apache2, apache2-mod_php5, apache2-prefork, php5, php5-gd, php5-mbstring, php5-mysql, php5-odbc, phpMyAdmin, mysql, mysql-client, mysql-devel, mysql-shared, perl-DBD-mysql, php5-bz2, php5-zlib, php5-iconv, php5-mcrypt, pwgen.

Configuration de mysql

Nous allons démarrer mysql et ensuite assigner un mot de passe pour l'administrateur.
linux64:/home/collinm # /etc/init.d/mysql start
Creating/Updating MySQL privilege database...
Installing all prepared tables
Fill help tables
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h linux64.site password 'new-password'
See the manual for more instructions.

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com
Updating MySQL privilege database...
Fixing privilege tables...
Starting service MySQL                                                done
Inscrivez le mot de passe de l'administrateur de la base de donnée
/usr/bin/mysqladmin -u root password 'votremotpasse'
/usr/bin/mysqladmin -u root -h votreHostName.site password 'votremotpasse'

Configuration de apache

Nous allons maintenant modifier quelques valeurs du fichier httpd.conf. Ce fichier est situé dans /etc/apache2.

La première valeur qui sera modifiée sera la chaîne DirectoryIndex. Cette chaîne liste les ressources qui sont regardées lorsqu'une requête a lieu. Si vous spécifiez que le nom de votre hôte ou votre adresse IP sans spécifier de page web, le serveur vérifiera la présence des fichiers de cette chaîne.
DirectoryIndex index.html index.html.var index.htm index.php

Si rien n'est spécifié par le client, le serveur affichera la page index.html si elle existe et ainsi de site.

Configuration de phpMyAdmin

Recherchez le fichier config.inc.php. Il est situé dans le répertoire /srv/www/htdocs/phpMyAdmin/libraries/ sous Suse 10.1

Recherchez la chaîne PmaAbsoluteUri et inscrivez
$cfg['PmaAbsoluteUri'] = 'localhost/phpMyAdmin';

Nous allons ensuite écrire le nom de l'usager ainsi que son mot de passe dans la configuration de phpMyAdmin.
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = 'votremotpasse';

Si vous désirez plus de sécurité, créez un autre usager dans mysql. Ensuite, utiliser cet usager dans la configuration de phpMyAdmin. Cet usager devrait avoir des droits limités. La documentation de mysql sur le sujet est disponible ici.

Démarrage

Nous allons démarrer apache.
/etc/init.d/apache start
/etc/init.d/mysql start

Vos pages Web doivent être copiées dans le répertoire: /srv/www/htdocs/. Les droits de lectures doivent leurs être attribués. Démarrez votre navigateur et tapez: http://localhost/. Si vous avez une page Web qui a un nom qui est inclus dans la chaîne DirectoryIndex décrite plus haut, elle s'affichera. Sinon inscrivez le nom d'une page Web que vous avez dans le répertoire.

Si vous avez des problèmes, vérifier le fichier d'erreur qui se trouve dans: /var/log/apache2.
Si vous inscrivez : http://localhost/phpMyAdmin, vous allez avoir un accès graphique à votre base de donnée mysql.

Vous voilà avec un serveur Web avec de nombreuses fonctionnalités qui demande qu'à être exploité