<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmelyn</id>
	<title>Lea Linux - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmelyn"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Jmelyn"/>
	<updated>2026-04-20T11:27:20Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14674</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14674"/>
		<updated>2007-06-06T15:11:53Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Pour finir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11) grâce à des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus complet est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisi à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&amp;lt;br&amp;gt;&lt;br /&gt;
La commande&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz : &amp;quot;Ouais, il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt&amp;quot;. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre Heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que des volets électriques s&#039;ouvrent à l&#039;aube et se ferment au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques montée/descente. Pour simplifier les choses, nous leur affecterons le même code Maison/Unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (longitude/latitude) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utiliser la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;émetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Les X10 et Heyu offrent de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14673</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14673"/>
		<updated>2007-06-06T15:11:22Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Cas concret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11) grâce à des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus complet est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisi à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&amp;lt;br&amp;gt;&lt;br /&gt;
La commande&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz : &amp;quot;Ouais, il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt&amp;quot;. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre Heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que des volets électriques s&#039;ouvrent à l&#039;aube et se ferment au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques montée/descente. Pour simplifier les choses, nous leur affecterons le même code Maison/Unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (longitude/latitude) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utiliser la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;émetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Les X10 et heyu offrent de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14672</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14672"/>
		<updated>2007-06-06T15:09:21Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Pour finir */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11) grâce à des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus complet est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisi à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&amp;lt;br&amp;gt;&lt;br /&gt;
La commande&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz : &amp;quot;Ouais, il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt&amp;quot;. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que des volets électriques s&#039;ouvrent à l&#039;aube et se ferment au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques montée/descente. Pour simplifier les choses, nous leur affecterons le même code Maison/Unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (longitude/latitude) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utiliser la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;émetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Les X10 et heyu offrent de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14671</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14671"/>
		<updated>2007-06-06T15:08:30Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Cas concret */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11) grâce à des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus complet est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisi à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&amp;lt;br&amp;gt;&lt;br /&gt;
La commande&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz : &amp;quot;Ouais, il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt&amp;quot;. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que des volets électriques s&#039;ouvrent à l&#039;aube et se ferment au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques montée/descente. Pour simplifier les choses, nous leur affecterons le même code Maison/Unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (longitude/latitude) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utiliser la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;émetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Le x10 et heyu offre de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14670</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14670"/>
		<updated>2007-06-06T15:05:09Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Petit test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11) grâce à des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus complet est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisi à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&amp;lt;br&amp;gt;&lt;br /&gt;
La commande&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz : &amp;quot;Ouais, il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt&amp;quot;. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que soit ouvert des volets électriques à l&#039;aube et fermer au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques monté/descente. Pour simplifier les choses, nous leur affecterons le même code maison/unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (LONGITUDE/LATITUDE) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utilisez la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;emetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui lui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Le x10 et heyu offre de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14669</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14669"/>
		<updated>2007-06-06T15:02:58Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11) grâce à des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus complet est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisi à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz, ouaih il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que soit ouvert des volets électriques à l&#039;aube et fermer au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques monté/descente. Pour simplifier les choses, nous leur affecterons le même code maison/unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (LONGITUDE/LATITUDE) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utilisez la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;emetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui lui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Le x10 et heyu offre de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14668</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14668"/>
		<updated>2007-06-06T15:01:17Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* But recherché */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11) grâce à des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus complet est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisit à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz, ouaih il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que soit ouvert des volets électriques à l&#039;aube et fermer au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques monté/descente. Pour simplifier les choses, nous leur affecterons le même code maison/unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (LONGITUDE/LATITUDE) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utilisez la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;emetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui lui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Le x10 et heyu offre de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14667</id>
		<title>Domotique et Norme X10</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Domotique_et_Norme_X10&amp;diff=14667"/>
		<updated>2007-06-06T14:57:51Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Configurer_votre_matériel]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Le X10 est un protocole de communication par courant porteur qui permet de faire dialogeur ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci [http://www.si.ens-cachan.fr/ressource/r5/r5.htm Domotique et Norme X10].&lt;br /&gt;
&lt;br /&gt;
Pour résumer très rapidement, il permet, avec la mise en place d&#039;émetteurs et de récepteurs, d&#039;automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Le but de cet article est d&#039;expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l&#039;émetteur PC vers X10 (CM11)  suivant des macros.&lt;br /&gt;
Il existe sous Linux quelques projects qui permettent de mettre en place une &#039;maison domotique&#039;, le plus important est [http://misterhouse.net/ MisterHouse]. C&#039;est une application complexe à mettre en oeuvre et que l&#039;on peut plus apparenter à un logiciel pour HTPC.&lt;br /&gt;
J&#039;ai choisi pour ma part d&#039;utiliser [http://heyu.tanj.com Heyu]. C&#039;est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l&#039;utilisation.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Le matériel minimum à acquérir pour tester son utilisation est :&lt;br /&gt;
* un pc équipé d&#039;un port série&lt;br /&gt;
* un émetteur CM11&lt;br /&gt;
* un récepteur type AM12&lt;br /&gt;
&lt;br /&gt;
A noter, il existe 2 versions de CM11, l&#039;une USB et l&#039;autre série, j&#039;ai choisi d&#039;acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.&lt;br /&gt;
&lt;br /&gt;
= Heyu =&lt;br /&gt;
== Installation ==&lt;br /&gt;
Vérifier que vous disposez de la dernière version sur le site de l&#039;auteur :&lt;br /&gt;
&amp;lt;code&amp;gt;$ wget http://heyu.tanj.com/download/heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ tar zxvf heyu-2.0beta.6.2.tgz&lt;br /&gt;
$ cd heyu-2.0beta.6.2&lt;br /&gt;
$ ./Configure&lt;br /&gt;
$ make&lt;br /&gt;
$ su (pour devenir root)&lt;br /&gt;
Password :&lt;br /&gt;
# make install&lt;br /&gt;
mkdir -p -m 755 /usr/local/bin&lt;br /&gt;
cp heyu /usr/local/bin&lt;br /&gt;
chgrp root /usr/local/bin/heyu&lt;br /&gt;
chmod 755 /usr/local/bin/heyu&lt;br /&gt;
chown root /usr/local/bin/heyu&lt;br /&gt;
./install.sh&lt;br /&gt;
&lt;br /&gt;
I did not find a Heyu configuration file.&lt;br /&gt;
Where would you like the sample Heyu configuration file installed?&lt;br /&gt;
  1. In directory /home/dimitri/.heyu/&lt;br /&gt;
  2. In subdirectory .heyu/ under a different user home directory&lt;br /&gt;
  3. In directory /etc/heyu  (for system-wide access)&lt;br /&gt;
  4. No thanks, I&#039;ll take care of it myself&lt;br /&gt;
Choice [1, 2, 3, or 4] ? 3&lt;br /&gt;
Creating directory /etc/heyu with permissions rwxrwxrwx.&lt;br /&gt;
Adjust ownership and permissions as required.&lt;br /&gt;
The sample configuration file will be installed as /etc/heyu/x10.conf&lt;br /&gt;
&lt;br /&gt;
I will add the TTY port for your CM11 to the config file&lt;br /&gt;
Specify /dev/ttyS0, /dev/ttyS1, etc.&lt;br /&gt;
To which port is the CM11 attached?&lt;br /&gt;
/dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisit à l&#039;étape d&#039;installation, ici /etc/heyu.&lt;br /&gt;
Le fichier de configuration principal est heyu.conf&lt;br /&gt;
&amp;lt;code&amp;gt;TTY     /dev/ttyS0&lt;br /&gt;
HOUSECODE         A&lt;br /&gt;
LOG_DIR  NONE&lt;br /&gt;
SCRIPT_MODE  SCRIPTS&lt;br /&gt;
SCHEDULE_FILE    x10.sched&lt;br /&gt;
MODE              COMPATIBLE&lt;br /&gt;
PROGRAM_DAYS       366&lt;br /&gt;
COMBINE_EVENTS    YES&lt;br /&gt;
COMPRESS_MACROS   NO&lt;br /&gt;
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]&lt;br /&gt;
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]&lt;br /&gt;
DAWN_OPTION       FIRST&lt;br /&gt;
DUSK_OPTION       FIRST&lt;br /&gt;
MIN_DAWN         OFF           &lt;br /&gt;
MAX_DAWN         OFF &lt;br /&gt;
MIN_DUSK         OFF&lt;br /&gt;
MAX_DUSK         OFF&lt;br /&gt;
REPL_DELAYED_MACROS      YES&lt;br /&gt;
WRITE_CHECK_FILES  YES&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :&lt;br /&gt;
&amp;lt;code&amp;gt;# /bin/chmod a+rw /dev/ttyS0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Petit test ==&lt;br /&gt;
Tout d&#039;abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$ /usr/local/bin/heyu on A1&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
permet d&#039;allumer le récepteur A1.&lt;br /&gt;
Et si tout va bien, l&#039;équipement électrique connecté sur le module doit s&#039;allumer.&lt;br /&gt;
Vous me direz, ouaih il est gentil mais cela n&#039;a pas beaucoup d&#039;intérêt. Mais ce n&#039;est que le début.&lt;br /&gt;
&lt;br /&gt;
== Cas concret ==&lt;br /&gt;
A présent que nous avons validé le bon fonctionnement entre heyu et le CM11, passons à un cas concret.&lt;br /&gt;
Disons que nous voulons que soit ouvert des volets électriques à l&#039;aube et fermer au coucher du soleil.&lt;br /&gt;
Pour cela il faut acquérir des modules SW10 que l&#039;on branche en lieu et place des interrupteurs classiques monté/descente. Pour simplifier les choses, nous leur affecterons le même code maison/unité A2.&lt;br /&gt;
&lt;br /&gt;
Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :&lt;br /&gt;
&amp;lt;code&amp;gt;timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null&lt;br /&gt;
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null&lt;br /&gt;
macro allumer  0  on  a2&lt;br /&gt;
macro eteindre 0  off a2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
smtwtfs correspond au jour de la semaine (Sunday, Monday...)&lt;br /&gt;
&lt;br /&gt;
01/01 - 12/31 à la période d&#039;exécution souhaitée&lt;br /&gt;
&lt;br /&gt;
dusk au lever du soleil et dawn au coucher du soleil&lt;br /&gt;
&lt;br /&gt;
Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (LONGITUDE/LATITUDE) que l&#039;on indique dans le fichier /etc/heyu/x10.conf. &lt;br /&gt;
&lt;br /&gt;
Pour vérifier les heures calculées, utilisez la commande suivante :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu utility suntable&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois le fichier complété, il faut l&#039;envoyer à l&#039;emetteur CM11, pour cela :&lt;br /&gt;
&amp;lt;code&amp;gt;$/usr/local/bin/heyu upload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives du fichier x10.sched sont envoyées au CM11 qui lui exécutera l&#039;ensemble des macros de façon autonome.&lt;br /&gt;
&lt;br /&gt;
= Pour finir =&lt;br /&gt;
Le x10 et heyu offre de nombreuses possibilités dont je ne vous ai fait découvrir qu&#039;une mince partie.&lt;br /&gt;
N&#039;hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.&lt;br /&gt;
&lt;br /&gt;
{{Copy|01/09/2006|D. Clatot|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=S%27identifier_par_une_cl%C3%A9_USB&amp;diff=14666</id>
		<title>S&#039;identifier par une clé USB</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=S%27identifier_par_une_cl%C3%A9_USB&amp;diff=14666"/>
		<updated>2007-06-06T14:56:37Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Faire les essais ! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Sécurité]]&lt;br /&gt;
[[Catégorie:Administration_système]]&lt;br /&gt;
== Objectif ==&lt;br /&gt;
Permettre l&#039;identification d&#039;un utilisateur par une clé USB, en remplacement ou en complèment du mot de passe&lt;br /&gt;
&lt;br /&gt;
== Logiciels et matériel utilisés ==&lt;br /&gt;
Distribution : Debian, mais cela est normalement possible avec toutes...&lt;br /&gt;
&lt;br /&gt;
Logiciel : pam_usb, un module dédié à cette utilisation pour PAM. PAM est un méchanisme d&#039;authentification intégré à beaucoup de distributions GNU/Linux.&lt;br /&gt;
Attention cette méthode ne fonctionne pas avec les gestionnaires de connexion graphique comme KDM, GDM, XDM, etc. Elle est uniquement valable pour un login en mode texte.&lt;br /&gt;
&lt;br /&gt;
N&#039;importe quelle clé USB reconnue sous Linux devrait convenir. La capacité nécessaire est infime : 1 Ko suffit pour un utilisateur, avec une clé DSA de 1024 bits !&lt;br /&gt;
&lt;br /&gt;
Une bonne solution pour encore plus de sécurité est de partionner votre clé : vous pouvez créer une petite partition à la fin de la clé, d&#039;environ 1 Mo (ce qui est largement suffisant pour stocker quelques clés, en théorie on pourrait en mettre 500 dans 1 Mo !)&lt;br /&gt;
Ainsi, vos clés ne seront pas confondues avec le reste de vos données et il n&#039;y a pas de risque de les effacer.&lt;br /&gt;
&lt;br /&gt;
== Installation du module ==&lt;br /&gt;
Il n&#039;existe malheureusement pas (encore) de paquet pour Debian. Si vous utilisez une autre distribution, essayer de vérifier s&#039;il n&#039;existe pas un paquet, si vous êtes sous Debian, téléchargez les sources sur le site officiel : [http://www.pamusb.org]&lt;br /&gt;
&lt;br /&gt;
Sur une Debian &amp;quot;&#039;sarge&amp;quot; les dépendances requises sont : libssl-dev, libreadline4-dev, libpam0g-dev, libpam-usb, que vous pouvez installer par apt-get. Sur Debian &amp;quot;etch&amp;quot; (testing&amp;quot;, il faut installer tout ca et en plus libreadline5 et libreadline5-dev&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut extraire les sources et lancer la compilation :&lt;br /&gt;
&amp;lt;code&amp;gt;$ tar xvzf pam_usb-version.tar.gz&lt;br /&gt;
$ cd pam_usb_version&lt;br /&gt;
$ make&lt;br /&gt;
$ su puis taper le mot de passe &#039;&#039;root&#039;&#039;&lt;br /&gt;
# make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et c&#039;est tout, le module est normalement installé, s&#039;il vous n&#039;obtenez pas d&#039;erreur à la compilation, auquel cas il vous faut vérifier que toutes les dépendances sont bien installées...&lt;br /&gt;
&lt;br /&gt;
== Préparation du système ==&lt;br /&gt;
=== Montage automatique de la clé ===&lt;br /&gt;
Il faut que votre clé soit montée automatiquement lorsque vous l&#039;insérez, sinon, ca ne fonctionnera pas (encore que sur mon système cela à fonctionné sans monter la clé...)&lt;br /&gt;
Il faut donc créer une ligne dans votre /etc/fstab qui ressemble à celle-ci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;/dev/sda1 /media/cle auto rw,user,auto 0 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en remplacant /dev/sda1 par le périphérique qui correspond à votre clé, /media/cle par son point de montage, et auto par son système de fichiers (vous pouvez aussi laisser auto pour une détection automatique)&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails sur l&#039;utilisation des clés USB vous pouvez consulter cet article&lt;br /&gt;
[[Hardware-hard stock-cleusb]]&lt;br /&gt;
&lt;br /&gt;
== Génération des clés ==&lt;br /&gt;
=== Génération des clés ===&lt;br /&gt;
Il faut à présent générer la paire de clés publique/privée qui sera utilisée pour vous identifier.&lt;br /&gt;
Dans une console tapez &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% usbadm keygen /media/cle login 2048&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en remplacant /media/cle par le point de montage de votre clé et login par le nom d&#039;utilsateur pour lequel vous voulez générer les clés. 2048 correspond à la taille de la clé,  on estime que c&#039;est suffisant, compte tenu de la puissance des ordinateurs actuels, pour une assez grande sécurité. Cependant, n&#039;oubliez pas que n&#039;importe quelle clé sera &#039;&#039;toujours&#039;&#039; &amp;quot;piratable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Vous obtiendrez :&lt;br /&gt;
&amp;lt;code&amp;gt;[!] Generating 2048 DSA key pair for thomas@p3thomas&lt;br /&gt;
[!] Extracting private key...&lt;br /&gt;
[+] Private key extracted.&lt;br /&gt;
[+] Private key successfully written.&lt;br /&gt;
[!] Writing public key...&lt;br /&gt;
[+] Public key successfully written.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vos clés ont donc été générées dans un dossier caché nommé .auth de votre clé USB.&lt;br /&gt;
&lt;br /&gt;
Il faut répéter cette opération pour tous les utilsateurs qui veulent utiliser leur clé pour s&#039;identifier.&lt;br /&gt;
&lt;br /&gt;
=== Facultatif : cryptage des clés ===&lt;br /&gt;
Pour plus de sécurité, il est possible de crypter les clés, par la commande&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% usbadm cipher /media/cle login&amp;lt;/code&amp;gt;&lt;br /&gt;
il vous sera demandé l&#039;algorythme à utiliser : &lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
[!] Importing the private key...&lt;br /&gt;
[+] Private key imported&lt;br /&gt;
[!] Encrypting the private key may prevent someone to authenticate with&lt;br /&gt;
your key. The drawback is that pam_usb will prompt you for password&lt;br /&gt;
every time you authenticate.&lt;br /&gt;
[?] Which algorithm want you to use ? (none/des3/twofish): &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir protéger votre clé par une &#039;&#039;passphrase&#039;&#039;, il faut choisir des3.&lt;br /&gt;
&lt;br /&gt;
Il vous sera demandé la &#039;&#039;passphrase&#039;&#039;, qu&#039;il vous sera ensuite nécessaire de taper à chaque utilisation de la clé, c&#039;est à dire à chaque identification.&lt;br /&gt;
&lt;br /&gt;
Et votre clé est cryptée !&lt;br /&gt;
&lt;br /&gt;
== Paramètrage du système ==&lt;br /&gt;
Il ne reste plus qu&#039;à modifier le comportement de PAM pour qu&#039;il prenne en compte le module pam_usb.&lt;br /&gt;
Trois cas (ou plus ?) sont possibles :&lt;br /&gt;
* Identification par clé USB uniquement. Aucun mot de passe (sauf la &#039;&#039;passphrase&#039;&#039; de la clé DSA si vous en avez une) ne sera requis&lt;br /&gt;
* Identification par clé &#039;&#039;&#039;et&#039;&#039;&#039; par mot de passe. Votre mot de passe sera comme avant demandé, mais si la clé USB n&#039;est pas présente vous ne pourrez pas vous identifier. C&#039;est la solution la plus sure, mais aussi la moin pratique.&lt;br /&gt;
* Identification par clé USB &#039;&#039;&#039;ou&#039;&#039;&#039; par mot de passe. L&#039;un ou l&#039;autre suffit.&lt;br /&gt;
&lt;br /&gt;
Dans les trois cas tout se passera dans les fichiers du répertoire /etc/pam.d&lt;br /&gt;
Pour utiliser cette méthode uniquement au moment du login, il faut modifier le fichier /etc/pam.d/login. Pour l&#039;utiliser à toutes les identifications, il faut agir sur le fichier /etc/pam.d/common-auth&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Identification par clé uniquement ===&lt;br /&gt;
Il faut modifier le fichier /etc/pam.d/common-auth comme suit :&lt;br /&gt;
&amp;lt;code&amp;gt;auth	required	usb_pam.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
et commenter la ligne :&lt;br /&gt;
&amp;lt;code&amp;gt;auth	required	pam_unix.so nullok_secure&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identification par clé et mot de passe ===&lt;br /&gt;
Il faut comme précèdemment ajouter la ligne&lt;br /&gt;
&amp;lt;code&amp;gt;auth	required	usb_pam.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
et laisser le reste du fichier tel quel.&lt;br /&gt;
&lt;br /&gt;
=== Identification par clé ou par mot de passe ===&lt;br /&gt;
Ajouter la ligne au fichier /etc/pam.d/common-auth&lt;br /&gt;
&amp;lt;code&amp;gt;auth	sufficient	usb_pam.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Faire les essais ! ==&lt;br /&gt;
Normalement vous pouvez vous délogguer, et faire l&#039;essai !&lt;br /&gt;
Dans un premier temps je vous conseille d&#039;utiliser l&#039;authentification par clé ou par mot de passe, car, si l&#039;identification par clé ne fonctionne pas, vous pourrez toujours vous logguer avec votre mot de passe pour corriger ce qui ne va pas.&lt;br /&gt;
&lt;br /&gt;
=== Rattrapper les erreurs ===&lt;br /&gt;
Si par malheur vous avez modifié le fichier en mettant&lt;br /&gt;
auth required pam_sub.so&lt;br /&gt;
et que votre clé ne fonctionne plus, alors vous ne pouvez plus vous loguer !&lt;br /&gt;
La solution consiste à booter sur un Live-CD, monter votre partition système, et modifier le fichier pour supprimer l&#039;identification par clé.&lt;br /&gt;
&lt;br /&gt;
(à tester) Une autre solution consiste à booter sur un kernel avec l&#039;option &#039;&#039;&#039;single&#039;&#039;&#039;. En général les kernels marqués par &#039;&#039;&#039;failsafe&#039;&#039;&#039; dans le bootloader comportent cette option.&lt;br /&gt;
&lt;br /&gt;
{{Copy|28 fév 2006|[[Utilisateur:Thomas.debay|Thomas.debay]]|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=S%27identifier_par_une_cl%C3%A9_USB&amp;diff=14665</id>
		<title>S&#039;identifier par une clé USB</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=S%27identifier_par_une_cl%C3%A9_USB&amp;diff=14665"/>
		<updated>2007-06-06T14:52:53Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Logiciels et matériel utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Catégorie:Sécurité]]&lt;br /&gt;
[[Catégorie:Administration_système]]&lt;br /&gt;
== Objectif ==&lt;br /&gt;
Permettre l&#039;identification d&#039;un utilisateur par une clé USB, en remplacement ou en complèment du mot de passe&lt;br /&gt;
&lt;br /&gt;
== Logiciels et matériel utilisés ==&lt;br /&gt;
Distribution : Debian, mais cela est normalement possible avec toutes...&lt;br /&gt;
&lt;br /&gt;
Logiciel : pam_usb, un module dédié à cette utilisation pour PAM. PAM est un méchanisme d&#039;authentification intégré à beaucoup de distributions GNU/Linux.&lt;br /&gt;
Attention cette méthode ne fonctionne pas avec les gestionnaires de connexion graphique comme KDM, GDM, XDM, etc. Elle est uniquement valable pour un login en mode texte.&lt;br /&gt;
&lt;br /&gt;
N&#039;importe quelle clé USB reconnue sous Linux devrait convenir. La capacité nécessaire est infime : 1 Ko suffit pour un utilisateur, avec une clé DSA de 1024 bits !&lt;br /&gt;
&lt;br /&gt;
Une bonne solution pour encore plus de sécurité est de partionner votre clé : vous pouvez créer une petite partition à la fin de la clé, d&#039;environ 1 Mo (ce qui est largement suffisant pour stocker quelques clés, en théorie on pourrait en mettre 500 dans 1 Mo !)&lt;br /&gt;
Ainsi, vos clés ne seront pas confondues avec le reste de vos données et il n&#039;y a pas de risque de les effacer.&lt;br /&gt;
&lt;br /&gt;
== Installation du module ==&lt;br /&gt;
Il n&#039;existe malheureusement pas (encore) de paquet pour Debian. Si vous utilisez une autre distribution, essayer de vérifier s&#039;il n&#039;existe pas un paquet, si vous êtes sous Debian, téléchargez les sources sur le site officiel : [http://www.pamusb.org]&lt;br /&gt;
&lt;br /&gt;
Sur une Debian &amp;quot;&#039;sarge&amp;quot; les dépendances requises sont : libssl-dev, libreadline4-dev, libpam0g-dev, libpam-usb, que vous pouvez installer par apt-get. Sur Debian &amp;quot;etch&amp;quot; (testing&amp;quot;, il faut installer tout ca et en plus libreadline5 et libreadline5-dev&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut extraire les sources et lancer la compilation :&lt;br /&gt;
&amp;lt;code&amp;gt;$ tar xvzf pam_usb-version.tar.gz&lt;br /&gt;
$ cd pam_usb_version&lt;br /&gt;
$ make&lt;br /&gt;
$ su puis taper le mot de passe &#039;&#039;root&#039;&#039;&lt;br /&gt;
# make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et c&#039;est tout, le module est normalement installé, s&#039;il vous n&#039;obtenez pas d&#039;erreur à la compilation, auquel cas il vous faut vérifier que toutes les dépendances sont bien installées...&lt;br /&gt;
&lt;br /&gt;
== Préparation du système ==&lt;br /&gt;
=== Montage automatique de la clé ===&lt;br /&gt;
Il faut que votre clé soit montée automatiquement lorsque vous l&#039;insérez, sinon, ca ne fonctionnera pas (encore que sur mon système cela à fonctionné sans monter la clé...)&lt;br /&gt;
Il faut donc créer une ligne dans votre /etc/fstab qui ressemble à celle-ci :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code multi&amp;gt;/dev/sda1 /media/cle auto rw,user,auto 0 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en remplacant /dev/sda1 par le périphérique qui correspond à votre clé, /media/cle par son point de montage, et auto par son système de fichiers (vous pouvez aussi laisser auto pour une détection automatique)&lt;br /&gt;
&lt;br /&gt;
Pour plus de détails sur l&#039;utilisation des clés USB vous pouvez consulter cet article&lt;br /&gt;
[[Hardware-hard stock-cleusb]]&lt;br /&gt;
&lt;br /&gt;
== Génération des clés ==&lt;br /&gt;
=== Génération des clés ===&lt;br /&gt;
Il faut à présent générer la paire de clés publique/privée qui sera utilisée pour vous identifier.&lt;br /&gt;
Dans une console tapez &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% usbadm keygen /media/cle login 2048&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en remplacant /media/cle par le point de montage de votre clé et login par le nom d&#039;utilsateur pour lequel vous voulez générer les clés. 2048 correspond à la taille de la clé,  on estime que c&#039;est suffisant, compte tenu de la puissance des ordinateurs actuels, pour une assez grande sécurité. Cependant, n&#039;oubliez pas que n&#039;importe quelle clé sera &#039;&#039;toujours&#039;&#039; &amp;quot;piratable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Vous obtiendrez :&lt;br /&gt;
&amp;lt;code&amp;gt;[!] Generating 2048 DSA key pair for thomas@p3thomas&lt;br /&gt;
[!] Extracting private key...&lt;br /&gt;
[+] Private key extracted.&lt;br /&gt;
[+] Private key successfully written.&lt;br /&gt;
[!] Writing public key...&lt;br /&gt;
[+] Public key successfully written.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vos clés ont donc été générées dans un dossier caché nommé .auth de votre clé USB.&lt;br /&gt;
&lt;br /&gt;
Il faut répéter cette opération pour tous les utilsateurs qui veulent utiliser leur clé pour s&#039;identifier.&lt;br /&gt;
&lt;br /&gt;
=== Facultatif : cryptage des clés ===&lt;br /&gt;
Pour plus de sécurité, il est possible de crypter les clés, par la commande&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
% usbadm cipher /media/cle login&amp;lt;/code&amp;gt;&lt;br /&gt;
il vous sera demandé l&#039;algorythme à utiliser : &lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
[!] Importing the private key...&lt;br /&gt;
[+] Private key imported&lt;br /&gt;
[!] Encrypting the private key may prevent someone to authenticate with&lt;br /&gt;
your key. The drawback is that pam_usb will prompt you for password&lt;br /&gt;
every time you authenticate.&lt;br /&gt;
[?] Which algorithm want you to use ? (none/des3/twofish): &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir protéger votre clé par une &#039;&#039;passphrase&#039;&#039;, il faut choisir des3.&lt;br /&gt;
&lt;br /&gt;
Il vous sera demandé la &#039;&#039;passphrase&#039;&#039;, qu&#039;il vous sera ensuite nécessaire de taper à chaque utilisation de la clé, c&#039;est à dire à chaque identification.&lt;br /&gt;
&lt;br /&gt;
Et votre clé est cryptée !&lt;br /&gt;
&lt;br /&gt;
== Paramètrage du système ==&lt;br /&gt;
Il ne reste plus qu&#039;à modifier le comportement de PAM pour qu&#039;il prenne en compte le module pam_usb.&lt;br /&gt;
Trois cas (ou plus ?) sont possibles :&lt;br /&gt;
* Identification par clé USB uniquement. Aucun mot de passe (sauf la &#039;&#039;passphrase&#039;&#039; de la clé DSA si vous en avez une) ne sera requis&lt;br /&gt;
* Identification par clé &#039;&#039;&#039;et&#039;&#039;&#039; par mot de passe. Votre mot de passe sera comme avant demandé, mais si la clé USB n&#039;est pas présente vous ne pourrez pas vous identifier. C&#039;est la solution la plus sure, mais aussi la moin pratique.&lt;br /&gt;
* Identification par clé USB &#039;&#039;&#039;ou&#039;&#039;&#039; par mot de passe. L&#039;un ou l&#039;autre suffit.&lt;br /&gt;
&lt;br /&gt;
Dans les trois cas tout se passera dans les fichiers du répertoire /etc/pam.d&lt;br /&gt;
Pour utiliser cette méthode uniquement au moment du login, il faut modifier le fichier /etc/pam.d/login. Pour l&#039;utiliser à toutes les identifications, il faut agir sur le fichier /etc/pam.d/common-auth&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Identification par clé uniquement ===&lt;br /&gt;
Il faut modifier le fichier /etc/pam.d/common-auth comme suit :&lt;br /&gt;
&amp;lt;code&amp;gt;auth	required	usb_pam.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
et commenter la ligne :&lt;br /&gt;
&amp;lt;code&amp;gt;auth	required	pam_unix.so nullok_secure&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identification par clé et mot de passe ===&lt;br /&gt;
Il faut comme précèdemment ajouter la ligne&lt;br /&gt;
&amp;lt;code&amp;gt;auth	required	usb_pam.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
et laisser le reste du fichier tel quel.&lt;br /&gt;
&lt;br /&gt;
=== Identification par clé ou par mot de passe ===&lt;br /&gt;
Ajouter la ligne au fichier /etc/pam.d/common-auth&lt;br /&gt;
&amp;lt;code&amp;gt;auth	sufficient	usb_pam.so&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Faire les essais ! ==&lt;br /&gt;
Normalement vous pouvez vous délogguer, et faire l&#039;essai !&lt;br /&gt;
Dans un premier temps je vous conseille d&#039;utiliser l&#039;authentification par clé ou par mot de passe, car, si l&#039;identification par clé ne fonctionne pas, vous pourrez toujours vous logguer avec votre mot de passe pour corriger ce qui ne vas pas.&lt;br /&gt;
&lt;br /&gt;
=== Rattrapper les erreurs ===&lt;br /&gt;
Si par malheur vous avez modifié le fichier en mettant&lt;br /&gt;
auth required pam_sub.so&lt;br /&gt;
et que votre clé ne fonctionne plus, alors vous ne pouvez plus vous loogguer !&lt;br /&gt;
La solution consiste en booter sur un Live-CD, monter votre partition système, et modifier le fichier pour supprimer l&#039;identification par clé.&lt;br /&gt;
&lt;br /&gt;
(à tester) Une autre solution consiste à booter sur un kernel avec l&#039;option &#039;&#039;&#039;single&#039;&#039;&#039;. En général les kernels marqués par &#039;&#039;&#039;failsafe&#039;&#039;&#039; dans le bootloader comportent cette option.&lt;br /&gt;
&lt;br /&gt;
{{Copy|28 fév 2006|[[Utilisateur:Thomas.debay|Thomas.debay]]|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=13984</id>
		<title>Tenir compte de la sécurité au quotidien</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=13984"/>
		<updated>2006-11-27T20:23:06Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* chkrootkit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fiche sécurité]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [[Utilisateur:Merlin8282|merlin8282]] et [[Utilisateur:Fleury|Fleury]].&amp;lt;/div&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Un ordinateur n&#039;est jamais en sécurité, quand bien même on croit qu&#039;il l&#039;est. Un dicton informatique dit d&#039;ailleurs que l&#039;ordinateur le plus sûr est celui qui est éteint. Cet article est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur connecté à un réseau, ainsi que les bonnes habitudes à prendre afin de sécuriser sa machine personnelle (nous ne parlerons pas de la sécurisation de serveur en production). Enfin nous aborderons les différents moyens d&#039;analyse post-mortem d&#039;une machine après une attaque et comment la nettoyer avant de la remettre en ligne.&lt;br /&gt;
&lt;br /&gt;
Pour tout le document (et de manière générale), il est évidemment conseillé de lire les pages de manuel des commandes avant de poser des questions.&lt;br /&gt;
Lisez aussi les articles connexes en cliquant sur les hyperliens dans le texte car dans ce document je ne m&#039;étale justement pas sur les sujets pour lesquels il existe déjà un article.&lt;br /&gt;
&lt;br /&gt;
Pour lire ce document, il est aussi important d&#039;être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux comprendre ce que vous faîtes et d&#039;autre part de mieux réagir en cas d&#039;attaque, donc, documentez vous sur ce système et son langage de commande ([[Admin-admin_env-shell|shell]]). Lisez aussi la documentation expliquant ce que sont [[Admin-admin_boot-daemons|les daemons et comment ils fonctionnent]], comment fonctionne un réseau, comment gérer les permissions des fichiers, et tout ce qui pourrait être relatif à l&#039;administration Linux. Plus vous en saurez à propos de Linux mieux vous serez armé pour démarrer avec ce document.&lt;br /&gt;
&lt;br /&gt;
== Petit survol de la sécurité informatique ==&lt;br /&gt;
La sécurité informatique est un domaine que l&#039;on pourrait séparer en trois parties. La première s&#039;occupe de la sécurité des données, c&#039;est la cryptologie, la plus connue et la plus théorique des trois. La seconde s&#039;occupe de la sécurité des protocoles, elle comprend notamment la sécurité réseau. Enfin, la dernière et la moins connue des trois est la sécurité logicielle, elle s&#039;occupe notamment des failles du genre débordement de tampon (buffer-overflow) et autres (format string, integer overflow, etc). &lt;br /&gt;
&lt;br /&gt;
Dans ce petit survol des risques potentiels en matière de sécurité informatique nous aborderons la sécurité réseau et la sécurité logicielle. La cryptologie ne sera pas abordée car c&#039;est une science très complexe et de toute façon inaccessible au simple utilisateur. Pour finir nous aborderons l&#039;ingénierie sociale qui reste inclassable mais qui est un risque non négligeable.&lt;br /&gt;
&lt;br /&gt;
=== La sécurité réseau ===&lt;br /&gt;
Le but de la sécurité réseau est de connaître les forces et les faiblesses des protocoles. Du point de vue de l&#039;attaquant, on se posera des questions comme: &#039;&#039;Comment abuser un firewall ? Comment tirer un maximum d&#039;informations d&#039;un serveur ? Comment aveugler un système de détection d&#039;intrusion ?&#039;&#039; Du point de vue du défenseur, les questions qui se posent sont surtout comment détecter les comportements réseaux anormaux et empêcher (ou au moins réagir face à) une attaque.&lt;br /&gt;
&lt;br /&gt;
Un certain nombre de mots clefs sont associés à la sécurité réseau. Ainsi on parle de firewalls, d&#039;IDS, d&#039;IPS, de scanneurs réseaux, de sniffeurs et autres. Nous allons ici définir quelques-uns de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise, un firewall (pare-feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de trafic qu&#039;ils analysent et à quel niveau ils se placent sur la couche OSI on va parler de plusieurs types de firewalls:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stateless firewall&#039;&#039;&#039;: Ce firewall est le plus basique, il ne fait que regarder les paquets réseau un par un et les accepte ou les rejette uniquement sur la base de son fichier de configuration.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stateful firewall&#039;&#039;&#039;: Aussi appelé &#039;&#039;connection tracking firewall&#039;&#039;, ce firewall permet de tirer parti d&#039;une connaissance du protocole (TCP par exemple). Il garde en mémoire les connections qui sont en cours et l&#039;état dans lequel elles sont (en cours d&#039;établissement, établie, en train d&#039;être achevées, etc). L&#039;avantage de ce firewall est qu&#039;il permet une configuration plus fine avec moins de lignes mais son inconvénient est qu&#039;il utilise un peu de mémoire pour chaque connexion et qu&#039;il est susceptible de se faire saturer (Déni de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes : les proxy, les filtres de contenu (clamav), etc. sont tous des firewalls applicatifs. Contrairement aux firewalls précédents qui résident habituellement dans le noyau, les firewalls applicatifs sont habituellement basés dans l&#039;espace utilisateur. Ces firewalls servent le plus souvent de relais avec éventuellement un contrôle sur le contenu de ce qui transite (quoique le plus souvent les proxy web ne contrôlent pas le contenu des requêtes même s&#039;ils le pourraient).&lt;br /&gt;
&lt;br /&gt;
Sous Linux, le firewall par défaut est [http://www.netfilter.org/ Netfilter], il possède la capacité de faire du Stateless et du Stateful pour divers protocoles. Les firewalls applicatifs existent aussi mais ne sont pas gérés par Netfilter. Nous verrons plus loin comment piloter Netfilter à l&#039;aide de iptables.&lt;br /&gt;
&lt;br /&gt;
==== Scanneur réseau ====&lt;br /&gt;
Un scanneur réseau est simplement un petit logiciel qui tente d&#039;explorer un réseau ou une machine de façon distante (c&#039;est à dire via le réseau). Pour cette exploration le scanneur va tenter de se connecter à une ou plusieurs machines de façon directe ou indirecte. Il faut bien comprendre que le but premier du scanneur de réseau est de collecter de l&#039;information (présence/abscence de services) sur un réseau ou une machine et uniquement cela. L&#039;usage d&#039;un scanneur est par conséquent légal (sauf si vous avez signé une charte qui dit le contraire) mais collecter beaucoup d&#039;informations sur un réseau peut vous rendre suspect aux yeux de ceux qui le gèrent.&lt;br /&gt;
&lt;br /&gt;
Le plus connu des scanneur est sans conteste [http://www.insecure.org/nmap/ nmap]. Il possède un grand nombre d&#039;options et permet d&#039;extraire beaucoup d&#039;informations sur votre environnement réseau. Pour peu que vous soyez root sur la machine que vous utilisez, vous pouvez tenter le jeu d&#039;options suivant (regardez le manuel pour savoir ce qu&#039;elles font): &amp;lt;code&amp;gt;nmap -F -O -sV &amp;lt;ip_cible&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; est bien sûr un scanneur réseau &#039;&#039;basique&#039;&#039;, il en existe des bien plus avancés qui utilisent nmap comme brique de base mais qui scannent non plus les services réseau mais les vulnérabilités. On peut ainsi citer [http://www.nessus.org/ nessus] qui permet de tester son réseau contre un grand nombre d&#039;attaques.&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un pirate veut s&#039;en prendre à vous, la première chose qu&#039;il fera sera de vous scanner et extraire un maximum d&#039;informations sur votre réseau. Mieux vaut savoir quelles informations vous laissez filtrer à l&#039;extérieur pour connaître vos faiblesses.&lt;br /&gt;
&lt;br /&gt;
==== Sniffeurs ====&lt;br /&gt;
Un sniffeur est un petit logiciel qui va se mettre à l&#039;écoute de tous les paquets réseau qui passent à la portée de votre ordinateur. Habituellement votre machine ne va considérer que les paquets qui vous sont addressés mais l&#039;on peut pervertir l&#039;usage habituel et faire en sorte que votre machine vous permette d&#039;accéder aussi aux paquets qui ne vous sont pas adressés. On appelle cela le mode &#039;&#039;promiscuous&#039;&#039; pour les cartes ethernet et le mode &#039;&#039;monitor&#039;&#039; pour les cartes wifi.&lt;br /&gt;
&lt;br /&gt;
Les sniffeurs sont largement utilisés à la fois par les pirates et par les ingénieurs systèmes. Les pirates les utilisent essentiellement pour récupérer des informations sur un réseau ou même plus. En effet, lorsqu&#039;ils ont compromis une machine de votre réseau, il peuvent laisser tourner de façon cachée un de ces sniffeurs qui va collecter des informations qui transitent par la carte réseau de la machine piratée. Par exemple, tous les mots de passe en clair peuvent être récupérés à moindre frais. D&#039;un autre coté, les administrateurs réseaux ont aussi un grand usage des sniffeurs, ils servent le plus souvent de débogueur réseau mais aussi d&#039;espion pour essayer d&#039;identifier des comportements sur le réseau qui ne seraient pas normal ou qui laisseraient supposer à une attaque (voir les IDS plus loin).&lt;br /&gt;
&lt;br /&gt;
Il existe un très grand nombre de sniffeurs réseau, les deux plus connus sont sans doute [http://www.wireshark.org wireshark] (ex-[http://www.ethereal.com/ ethereal]) et [http://www.tcpdump.org tcpdump]. D&#039;autres sont plus spécialisés comme par exemple [http://lcamtuf.coredump.cx/p0f.shtml p0f] (sniffeur passif de détection d&#039;OS), [http://www.monkey.org/~dugsong/dsniff/ dsniff] (sniffeur de mots de passe) ou encore [http://www.kismetwireless.net/ kismet] (sniffeur wifi).&lt;br /&gt;
&lt;br /&gt;
==== IDS, IPS et honeypots ====&lt;br /&gt;
Pour finir ce petit tour de la sécurité réseau nous allons faire un tour du coté des armes auxquelles vous avez accès pour vous défendre. &lt;br /&gt;
&lt;br /&gt;
Pour faire court, les IDS (Intrusion Detection Systems) sont des sondes qui espionnent votre réseau et enregistrent les phénomènes bizarres ou qui pourraient ressembler à des attaques potentielles. Le rôle d&#039;un IDS n&#039;est pas de prévenir des attaques mais vraiment de jouer un rôle similaire à celui de la boîte noire d&#039;un avion après une catastrophe afin de savoir ce qui s&#039;est passé et éventuellement collecter des preuves contre les attaquants.&lt;br /&gt;
&lt;br /&gt;
Il y a trois types d&#039;IDS :&lt;br /&gt;
* les &#039;&#039;&#039;IDS réseaux&#039;&#039;&#039; du genre [http://www.snort.org snort] qui s&#039;assurent de l&#039;intégrité d&#039;un réseau par une analyse du trafic qu&#039;il y a dessus,&lt;br /&gt;
* les &#039;&#039;&#039;IDS systèmes&#039;&#039;&#039; du genre [http://sourceforge.net/projects/tripwire/ tripwire] qui s&#039;assurent de l&#039;intégrité d&#039;un système en stockant un [http://fr.wikipedia.org/wiki/Cyclic_redundancy_check CRC] des principaux fichiers de configuration et des binaires pour s&#039;assurer qu&#039;ils n&#039;ont pas été corrompu,&lt;br /&gt;
* les &#039;&#039;&#039;IDS hybrides&#039;&#039;&#039; qui tentent de rassembler les deux précédents, du genre [http://www.prelude-ids.org/ prelude-IDS].&lt;br /&gt;
&lt;br /&gt;
Les IPS (Intrusion Prevention Systems) sont à peine différents des IDS puisqu&#039;en cas de détection d&#039;une attaque probable, alors que l&#039;IDS se contente d&#039;enregistrer les logs, l&#039;IPS tente de contrer l&#039;attaque en réagissant. &lt;br /&gt;
&lt;br /&gt;
Enfin, les [http://fr.wikipedia.org/wiki/Honeypot honeypots] (pots de miel) sont des simulations de machines faibles. La constatation est simple, les pirates s&#039;attaquent logiquement toujours au point le plus faible de votre réseau. Avoir des points faibles factices et bardés d&#039;alarmes discrètes vous permet non seulement de détourner momentanément les pirates des vraies machines et de les freiner mais aussi de détecter plus facilement les intrus qui se laissent prendre au piège.&lt;br /&gt;
&lt;br /&gt;
Voila, nous avons fait un (très) rapide tour des mots clefs importants en matière de sécurité réseau. Nous allons à présent quitter le réseau et nous intéresser de plus près à ce qui se passe sur vos serveurs et vos machines.&lt;br /&gt;
&lt;br /&gt;
=== La sécurité logicielle ===&lt;br /&gt;
Lorsque les pirates n&#039;en ont pas après ce qui circule sur votre réseau, c&#039;est qu&#039;ils tentent de pénétrer une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Contrairement à ce que vous pourriez croire, la plupart du temps, les attaques que subi votre ordinateur ne sont pas dûes à des humains mais plutôt à des logiciels automatiques. Les failles listées dans la catégorie &#039;&#039;sécurité logicielle&#039;&#039; sont donc exploitées le plus souvent par des logiciels &#039;&#039;malveillants&#039;&#039; ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des &#039;&#039;virus&#039;&#039;, des &#039;&#039;vers&#039;&#039;, des &#039;&#039;chevaux de Troie&#039;&#039; ou encore des &#039;&#039;rootkits&#039;&#039; mais ils ont tous en commun d&#039;exploiter des failles classiques ou de rendre les systèmes sur lesquels ils résident plus faibles face à des attaquants extérieurs. Nous allons ici lister ces malware et tenter d&#039;en donner une définition succinte.&lt;br /&gt;
&lt;br /&gt;
==== Virii et Vers ====&lt;br /&gt;
Un virus est un petit programme qui a la particularité de se reproduire et de se propager d&#039;un système à l&#039;autre suivant certains vecteurs. Cela peut être les mails ou même l&#039;utilisateur lui-même qui va copier le logiciel sur d&#039;autres systèmes. Les vers sont une sorte particulière de virus qui se propagent uniquement via le réseau Internet (l&#039;un des plus célèbre fut Blaster en 2003 qui visait essentiellement des systèmes Microsoft Windows). Certains virus fonctionnent et infectent les systèmes linux, mais leur nombre est plus réduit que ceux qui attaquent les systèmes Windows. Grâce à la rareté de ces virus et à la réactivité de la communauté libre face aux nouvelles failles découvertes, ce genre de malware ne se propage que très difficilement sur les systèmes Linux, et par conséquent Unix.&lt;br /&gt;
&lt;br /&gt;
Il est à signaler que le terme de &#039;&#039;virus&#039;&#039; n&#039;est pas anodin, l&#039;application des patchs de sécurité (l&#039;équivalent d&#039;un vaccin pour reprendre l&#039;analogie biologique) pendant une attaque virale revient réellement à enrayer une épidémie. Ne pas &#039;&#039;vacciner&#039;&#039; votre PC pendant une épidémie virale revient presque exactement au même que refuser de vous vacciner contre la grippe en pleine épidémie (avec la différence que la propagation des virii informatiques est environs cent à mille fois plus rapide qu&#039;avec les virii biologiques). Non seulement vous vous exposez au virus mais en plus vous créez un nouveau foyer d&#039;infection qui va permettre au virus de se propager encore un peu plus. Il faut donc être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des virii, qui pourraient alors s&#039;infiltrer facilement via les failles que vous auriez laissé béantes. &lt;br /&gt;
&lt;br /&gt;
==== Chevaux de Troie ====&lt;br /&gt;
Les chevaux de Troie sont des logiciels qui tentent d&#039;abuser l&#039;utilisateur en se faisant passer pour autre chose que ce qu&#039;ils sont réellement (un jeu, un petit utilitaire, ou encore une commande classique comme &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, etc). Ces logiciels semblent fonctionner exactement comme ils devraient mais peuvent accomplir des actions malveillantes contre votre système. Par exemple, si la commande &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt; a été remplacée, on pourrait imaginer qu&#039;un login particulier permette de se connecter en root de façon distante en plus de remplir sa tâche normalement. S&#039;il s&#039;agissait de la commande &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, on pourrait effectuer une sauvegarde de toutes machines, les logins et les machines, les clefs privées, etc qui passent à travers cette commande (et même les envoyer vers un dépot quelque part sur l&#039;Internet). Enfin, on peut imaginer un logiciel de jeu qui tous les vendredi 13 se mette à effacer le contenu de votre compte.&lt;br /&gt;
&lt;br /&gt;
Les chevaux de Troie peuvent être aussi un vecteur de propagation pour les virus comme le célèbre ver &amp;quot;I love you&amp;quot; qui se propageait par mail ou aussi être contenu dans un virus qui  va l&#039;installer sur le système qu&#039;il a infecté avant de tenter de se propager vers d&#039;autres systèmes.&lt;br /&gt;
&lt;br /&gt;
==== Rootkits ====&lt;br /&gt;
Enfin, les [http://fr.wikipedia.org/wiki/Rootkit rootkits] sont des logiciels qui facilitent l&#039;accès réseau discret des pirates sur le système. Leur nom vient du fait qu&#039;ils permettent aux pirates d&#039;accéder au système infecté avec des droits équivalents (ou même supérieurs) au root. À l&#039;origine ces rootkits étaient un ensemble de chevaux de Troie mimant les commandes classiques du système (&amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;, etc). De nos jours, les rootkits sont quasi-essentiellement des kernel-rootkits, c&#039;est à dire qu&#039;ils se branchent directement sur le noyau pour modifier les informations que pourraient lire les utilisateurs du système. Ce dernier type de rootkit permet aux pirates une réelle invisibilité du point de vue des autres utilisateurs (y compris du root). Vous l&#039;aurez compris, ces rootkits sont très difficiles à repérer avec des moyens standards et compromettent très profondément votre système. C&#039;est pour cela qu&#039;il n&#039;est jamais mauvais d&#039;installer et de lancer régulièrement des logiciels du type [http://www.chkrootkit.org/ chkrootkit], qui vérifient la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tous ces malwares peuvent se combiner entre eux pour former des combinaisons souvent difficiles à contrer. On peut citer l&#039;exemple du vers 1i0n ([http://www.cert.org/incident_notes/IN-2001-03.html rapport CERT], Mars 2001) qui ciblait essentiellement des failles sur les systèmes Unix faisant tourner un serveur BIND et qui installait le rootkit &#039;&#039;erkms&#039;&#039; avant de continuer à se propager. Ce malware combinait à la fois un ver et un rootkit lui-même composé d&#039;un certain nombre de chevaux de Troie.&lt;br /&gt;
&lt;br /&gt;
=== Ingénierie sociale ===&lt;br /&gt;
Une dernière technique de piratage existe. Et bien qu&#039;elle soit inclassable du point de vue technique, c&#039;est probablement la plus efficace. &lt;br /&gt;
&lt;br /&gt;
Souvent, si le pirate est humain, c&#039;est un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), ou quelqu&#039;un qui peut avoir un accès physique aux machines (stagiaire, agent d&#039;entretien, ou simplement qui connaît votre numéro de téléphone ou votre adresse e-mail). Dans ces conditions, il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ingénierie_sociale ingénierie sociale]. Cette méthode consiste à profiter de la crédulité des gens qui souvent écrivent leurs mots de passe sur un bout de papier et les laissent à proximité de l&#039;ordinateur. D&#039;autres victimes sont par exemple appelées par téléphone ou contactées via e-mail par l&#039;attaquant qui se fait alors passer pour l&#039;agent d&#039;un service technique quelconque, il prétend avoir besoin de leur mot de passe pour faire des tests.&lt;br /&gt;
&lt;br /&gt;
Cela peut paraître trivial mais c&#039;est la technique qui donne le plus de résultats avec le moins d&#039;investissement en temps et en connaissance. [http://fr.wikipedia.org/wiki/Kevin_Mitnick Kevin Mitnick], un des rois du piratage était passé maître dans ce type d&#039;attaques. Il avait un aplomb et un génie de l&#039;improvisation alliés à des connaissances techniques hors du commun qui lui ont permis de réaliser des miracles (du mauvais côté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
Se prémunir contre ce genre d&#039;attaques est simple: Ne confiez vos mots de passe à personne et méfiez-vous lorsqu&#039;on vous les demande.&lt;br /&gt;
&lt;br /&gt;
== Sécuriser sa machine ==&lt;br /&gt;
[http://fr.wikipedia.org/wiki/Bruce_Schneier Bruce Schneier], un des pontes de la sécurité informatique, a dit un jour: &amp;quot;&#039;&#039;La sécurité n&#039;est pas un produit, c&#039;est un processus&#039;&#039;&amp;quot; (&#039;&#039;Security is not a product, it&#039;s a process&#039;&#039;). L&#039;idée que vous pourriez sécuriser votre machine une bonne fois pour toute lors de l&#039;installation et ne plus y toucher ensuite n&#039;est tout simplement pas envisageable. Tout comme les virii biologiques qui mutent pour contourner les défenses immunitaires de leurs hôtes et pouvoir survivre, les pirates inventent constamment de nouvelles techniques ou se servent de failles inédites et produisent des malwares qui pourront contourner des défenses qui étaient parfaitement sûres quelques semaines auparavant. Maintenir une défense contre les agressions des pirates est une veille constante de l&#039;état de votre machine. Évidemment, sans sombrer dans la paranoïa, il va vous falloir accorder une attention à la sécurité de votre machine qui est proportionnelle à la valeur que vous accordez à ce qu&#039;elle protège.&lt;br /&gt;
&lt;br /&gt;
Cette section essaye de donner quelques conseils pour rendre votre machine plus sûre en vous donnant les moyens de résister à la plupart des attaques. &#039;&#039;&#039;Attention&#039;&#039;&#039;, même si vous suivez tous ces conseils votre machine ne sera pas invulnérable, elle sera seulement plus difficile d&#039;accès (ce qui décourage déjà 99% des malwares et des attaquants).&lt;br /&gt;
&lt;br /&gt;
=== Les 10 règles d&#039;or en sécurité ===&lt;br /&gt;
Il existe certaines règles qui permettent de se prémunir contre la plupart des attaques. Certaines sont simples et faciles à mettre en œuvre, d&#039;autres sont plus complexes. Voici une liste (non exhaustive) de dix règles à suivre pour sécuriser votre ordinateur. Ces règles sont classées dans un ordre de difficulté croissant. Suivre les règles les plus simples est &#039;&#039;&#039;indispensable&#039;&#039;&#039; alors que les plus complexes permettent de sécuriser un peu plus votre machine mais ne sont pas forcément aussi importantes. Le mieux est de s&#039;arrêter à l&#039;endroit de la liste qui vous semble trop obscur. Une mesure de protection mal configurée étant souvent pire qu&#039;une absence de protection.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Attention à vos mots de passe&#039;&#039;&#039; (choisissez les bien et ne les confiez pas à des inconnu(e)s)&lt;br /&gt;
# &#039;&#039;&#039;Préférez les protocoles chiffrés&#039;&#039;&#039; (préférez ssh à telnet, scp à ftp, pop+ssl à pop, ...)&lt;br /&gt;
# &#039;&#039;&#039;N&#039;executez et/ou installez pas n&#039;importe quoi&#039;&#039;&#039; (attention aux chevaux de Troie)&lt;br /&gt;
# &#039;&#039;&#039;Passez root le moins souvent possible&#039;&#039;&#039; (root a beaucoup de droits et cela peut se retourner contre vous)&lt;br /&gt;
# &#039;&#039;&#039;Appliquez le principe du privilège minimum&#039;&#039;&#039; (Ne donnez un droit que s&#039;il est nécessaire)&lt;br /&gt;
# &#039;&#039;&#039;Minimisez vos services&#039;&#039;&#039; (Si c&#039;est inutile alors c&#039;est dangereux)&lt;br /&gt;
# &#039;&#039;&#039;Mettez votre distribution à jour&#039;&#039;&#039; (Appliquez les correctifs de sécurité aussi souvent que possible)&lt;br /&gt;
# &#039;&#039;&#039;Filtrez et surveillez votre trafic réseau&#039;&#039;&#039; (Activez le firewall et éventuellement un IDS)&lt;br /&gt;
# &#039;&#039;&#039;Gardez un œil sur vos données&#039;&#039;&#039; (Sauvegardez-les et utilisez des logiciels comme tripwire)&lt;br /&gt;
# &#039;&#039;&#039;Renforcez votre noyau&#039;&#039;&#039; (Ajoutez des modules de sécurité optionnels: SELinux, ASLR, ...)&lt;br /&gt;
&lt;br /&gt;
Une fois ces dix règles édictées, nous allons creuser celles qui valent la peine de l&#039;être.&lt;br /&gt;
&lt;br /&gt;
=== Un bon mot de passe, c&#039;est quoi ? ===&lt;br /&gt;
Votre mot de passe est la clef de voûte de votre sécurité, il est extrêmement important de le choisir correctement... mais aussi de le mémoriser facilement. &lt;br /&gt;
&lt;br /&gt;
Pour commencer, un &#039;&#039;mauvais&#039;&#039; mot de passe est un mot de passe pour lequel vous pouvez répondre &amp;quot;oui&amp;quot; à l&#039;une des 7 questions suivantes:&lt;br /&gt;
&lt;br /&gt;
# Avez vous écrit sur un bout de papier votre mot de passe ?&lt;br /&gt;
# Votre mot de passe est-il un mot commun que l&#039;on peut trouver dans le dictionnaire ?&lt;br /&gt;
# Votre mot de passe est-il un mot commun suivi de 2 chiffres ?&lt;br /&gt;
# Votre mot de passe est-il un nom de personne, de lieu ou d&#039;animal ?&lt;br /&gt;
# Quelqu&#039;un d&#039;autre connait-il votre mot de passe ?&lt;br /&gt;
# Utilisez vous le meme mot de passe pour plusieurs comptes et pour une longue période ?&lt;br /&gt;
# Utilisez vous le mot de passe par défaut du constructeur ou de l&#039;éditeur ?&lt;br /&gt;
&lt;br /&gt;
Si vous vous trouvez dans la situation de générer un nouveau mot de passe, voici une technique simple mais qui a fait ses preuves:&lt;br /&gt;
&lt;br /&gt;
# Choisissez un mot ou une phrase qui a un sens pour vous (mais qui reste obscur aux yeux des autres). Par exemple votre personnage préféré dans une pièce, l&#039;animal que vous aviez pendant votre enfance, etc... Notre exemple pour la suite sera &amp;quot;&#039;&#039;&#039;mot de passe&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Enlevez les espaces et le remplacez caractères non ASCII (difficile de trouver l&#039;accent sur un clavier QWERTY-us si vous êtes en déplacement). Par exemple: &amp;quot;&#039;&#039;&#039;motdepasse&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Substituez les lettres qui s&#039;y prêtent par des nombres. Par exemple: &amp;quot;&#039;&#039;&#039;m0tdep4ss3&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Mettez en majuscule certaines lettres. Par exemple: &amp;quot;&#039;&#039;&#039;m0TDep4SS3&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Ajoutez des nombres en fin du mot de passe. Par exemple: &amp;quot;&#039;&#039;&#039;m0TDep4SS301&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Ajoutez un ou plusieurs caractères qui ne sont ni des lettres, ni des nombres. Par exemple: &amp;quot;&#039;&#039;&#039;m0T&#039;De&#039;p4SS3#01&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Et voilà, vous avez un beau mot de passe difficilement reconaissable mais mémorisable.&lt;br /&gt;
&lt;br /&gt;
Enfin, si vous n&#039;avez toujours pas confiance dans votre mot de passe, il existe un certain nombre de logiciels de crackage de mots de passe qui peuvent tourner en tâche de fond et vous indiquer quand il est temps de changer de mot de passe. [http://www.openwall.com/john/ John The Ripper] est sans doute le plus célèbre de ces logiciels (un paquetage doit exister pour votre distribution).&lt;br /&gt;
&lt;br /&gt;
=== Politique de restriction des privilèges ===&lt;br /&gt;
Comme nous l&#039;avons dit plus haut, accorder des privilèges non nécessaires à des utilisateurs ou des programmes peut s&#039;avérer très dangereux si l&#039;attaquant prend leur contrôle. Il pourra profiter de ces privilèges supplémentaires et les exploiter comme des failles de votre système.&lt;br /&gt;
&lt;br /&gt;
==== Principe du privilège minimum ====&lt;br /&gt;
Le principe du privilège minimum est apparu au milieu des années 70 et sa formulation originale était la suivante: &amp;quot;&#039;&#039;&#039;Chaque programme et chaque utilisateur du système devrait opérer en utilisant le plus petit nombre de privilèges possible pour accomplir sa tâche.&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sous Linux, le [http://lea-linux.org/cached/index/Permissions.html modèle des privilèges] de base identifie des objets (les fichiers), des actions (read, write, execute) et des acteurs (les utilisateurs et les groupes). Le type de contrôle que l&#039;on peut exercer sur les privilèges est donné par le modèle du &#039;&#039;Discretionary Access Control&#039;&#039; (DAC) qui veut qu&#039;une fois un utilisateur authentifié il ait tous les droits sur tous les objets qu&#039;il possède.&lt;br /&gt;
&lt;br /&gt;
Pour appliquer le principe du privilège minimum, il faut vous demander si chaque objet qui vous appartient a vraiment besoin d&#039;être ouvert en lecture, écriture ou encore exécution. Si ce n&#039;est pas le cas, supprimez ce droit. Par exemple, pourquoi laisser les autres utilisateurs avoir accès à votre compte en lecture ? C&#039;est certes plus pratiques de temps en temps, mais si vous n&#039;y prêtez pas attention, un attaquant pourrait s&#039;infiltrer dans votre compte et voler des informations que vous ne voudriez pas voir partir. Le mieux est donc de mettre votre &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt; et de restreindre ainsi l&#039;accès à votre compte.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: D&#039;autres modèles de contrôle existent, notamment de le &#039;&#039;Mandatory Access Control&#039;&#039; (MAC) implémenté par SELinux et d&#039;autres (&#039;&#039;Role-Based Access Control&#039;&#039;, RBAC).&lt;br /&gt;
&lt;br /&gt;
==== Bit setuid et sudo, avantages et inconvénients ====&lt;br /&gt;
Le bit setuid permet d&#039;exécuter un binaire avec les droits, non pas de celui qui lance le programme, mais de celui qui le possède. Évidemment, les bit setuid sont très pratiques mais provoquent souvent des failles importantes dans le système. L&#039;exemple le plus flagrant étant celui d&#039;une commande comme &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; qui n&#039;est habituellement utilisable que par root mais qui est bien pratique pour l&#039;utilisateur de la machine. Mettre le bit setuid sur la commande &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; permettra à n&#039;importe quel utilisateur de stopper la machine... Si un attaquant arrive sur votre machine via un compte crée à la va vite, il peut provoquer l&#039;arrêt inconditionnel de votre machine même si vous êtes en train de travailler dessus.&lt;br /&gt;
&lt;br /&gt;
En fait, si c&#039;est votre propre machine, ce que vous désireriez, c&#039;est simplement donner à l&#039;utilisateur principal le droit de faire cela (sans avoir à passer root) et non pas à TOUS les utilisateurs à la fois. Un programme nommé &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; permet de gérer les autorisations de ce type (exécution ou accès sur la base de l&#039;utilisateur et non des groupes).&lt;br /&gt;
&lt;br /&gt;
=== Restreindre les failles de votre système ===&lt;br /&gt;
==== Mise à jour de votre distribution ====&lt;br /&gt;
Toutes les distributions classiques ont un système qui permet la mise à jour automatique de vos logiciels. D&#039;autres ont même des mises à jour spécifiquement orientées sécurité (Debian, RedHat, Mandriva). Si votre machine est importante n&#039;hésitez pas à le faire souvent.&lt;br /&gt;
&lt;br /&gt;
==== Fermer les services inutiles ====&lt;br /&gt;
Apprenez à gérer vos [http://lea-linux.org/cached/index/Admin-admin_boot-daemons.html services].&lt;br /&gt;
&lt;br /&gt;
=== Firewalls et IDS réseaux ===&lt;br /&gt;
==== Configuration minimale de Netfilter ====&lt;br /&gt;
Une fois limité les ports réseau attendant des connexions, il faut mettre en place un firewall filtrant grâce à iptables (ou autre). Netfilter est le nom de la couche du noyau qui permet de filtrer tout ce qui passe par les interfaces réseau, tandis que iptables est une interface permettant de piloter Netfilter. Ne pas confondre, donc.&lt;br /&gt;
Des articles ont déjà été écrits à ce propos :&lt;br /&gt;
* [[Reseau-secu-iptables|iptables par l&#039;exemple]]&lt;br /&gt;
* [[Reseau-secu-murdefeu|Mur de feu pas à pas]]&lt;br /&gt;
* [[Leapro-pro_reseau-qos|QoS via iptables]]&lt;br /&gt;
&lt;br /&gt;
De manière très succincte, il faut fermer tous les ports puis ouvrir ceux dont on a besoin : le port 80 (et le 443 pour du https) doit être ouvert si l&#039;on a un serveur web, le port 110 si l&#039;on a un serveur pop dont on veut qu&#039;il soit accessible d&#039;internet, etc.&lt;br /&gt;
&lt;br /&gt;
Voici un bon script de base qu&#039;on peut adapter :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/bin/sh&lt;br /&gt;
# firewall v1.0.1 Oct 13 09:48:57 PDT 2003 written by : Kernel &amp;lt;kernel@trustonme.net&amp;gt;&lt;br /&gt;
# Modifié par merlin8282 (je ne sais plus où j&#039;ai pioché l&#039;original mais il y ressemble encore vraiment beaucoup).&lt;br /&gt;
# this script is free software according to the GNU General Public License (see [www.gnu.org])&lt;br /&gt;
# Start/stop/restart/status firewall:&lt;br /&gt;
&lt;br /&gt;
firewall_start() {&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Démarrage du firewall]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
############################### REGLES PAR DEFAUT ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation de la table filter]&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Politique par défaut de la table filter]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# On ignore tout ce qui entre ou transite par la passerelle&lt;br /&gt;
iptables -P INPUT DROP&lt;br /&gt;
iptables -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
# On accepte, ce qui sort&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Pour éviter les mauvaises suprises, on va autoriser l&#039;accès à la loopback :&lt;br /&gt;
iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LOCAL-INTERNET ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[On autorise les clients à accéder à internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#On créé une nouvelle chaîne, le nom est indifférent&lt;br /&gt;
# appelons-la &amp;quot;local-internet&amp;quot;&lt;br /&gt;
iptables -N local-internet&lt;br /&gt;
&lt;br /&gt;
# On définit le profil de ceux qui appartiendront à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# &amp;quot;local-internet&amp;quot; concerne toutes les connections sauf celles venant d&#039;internet ( ! = non)&lt;br /&gt;
# En gros avec ça, vous rendez, vos serveurs inaccessibles depuis internet.&lt;br /&gt;
# Pas de panique, certains serveurs seront autorisés explicitement dans la suite.&lt;br /&gt;
# (Remplacer ppp0 en fonction de votre configuration)&lt;br /&gt;
iptables -A local-internet -m state --state NEW -i ! ppp0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Evidemment, une fois acceptées comme &amp;quot;local-internet&amp;quot;, les connections peuvent continuer&lt;br /&gt;
# et faire des petits :&lt;br /&gt;
iptables -A local-internet -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# On termine en indiquant que les connections appartenant à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# accèdent à internet de manière transparente.&lt;br /&gt;
iptables -A INPUT -j local-internet&lt;br /&gt;
iptables -A FORWARD -j local-internet&lt;br /&gt;
&lt;br /&gt;
############################### LES TABLES NAT ET MANGLE #############################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation des tables nat et mangle]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LE MASQUERADING #########################&lt;br /&gt;
&lt;br /&gt;
# Commentez ces 2 lignes, si vous ne faîtes pas du masquerading (nat)&lt;br /&gt;
#echo &amp;quot;[Mise en place du masquerading]&amp;quot;&lt;br /&gt;
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
########################### ACTIVATION DE LA PASSERELLE ##################&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[Activation de la passerelle]&amp;quot;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
############################## PAS DE SPOOFING ##########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de spoofing]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then&lt;br /&gt;
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter&lt;br /&gt;
do&lt;br /&gt;
echo 1 &amp;gt; $filtre&lt;br /&gt;
done&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
########################## PAS DE SYNFLOOD ####################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de synflood]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############################### PAS DE PING ############################&lt;br /&gt;
&lt;br /&gt;
# commentez ces 6 lignes, si vous autorisez les pings sur votre passerelle&lt;br /&gt;
echo &amp;quot;[Pas ping]&amp;quot;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############# Priorisation de la bande passante et des connections - QoS ############&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections ssh ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 443 -j TOS --set-tos Minimize-Delay&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections http ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport http -j TOS --set-tos Maximize-throughput&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 3129 -j TOS --set-tos Maximize-throughput&lt;br /&gt;
&lt;br /&gt;
############################ Fonctionnalités serveurs #####################################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Etude des fonctionalités serveurs, visibles depuis internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# A ce stade, tous vos clients du réseau local et de la passerelle ont accès à internet. Mieux,&lt;br /&gt;
# vos clients du réseau local, ont accès à vos serveurs apache, proftp ... localement. Mais personne&lt;br /&gt;
# depuis internet ne peux accéder à l&#039;un des serveurs que vous hébergez.&lt;br /&gt;
&lt;br /&gt;
# Il est bien-sûr possible de dévérrouiller pontuellement l&#039;accès à un serveur depuis internet,&lt;br /&gt;
# en décommentant les 2 ou 3 lignes correspondantes.&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur ssh(22) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur smtp(25) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport smtp -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur http(80) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport www -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur https(443) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur DNS(53) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p udp --dport domain -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport domain -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur irc(6667) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ircd -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur cvs (2401) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport cvspserver -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur FTP(21 et 20) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Ne pas décommenter les 3 lignes qui suivent.&lt;br /&gt;
# Plus généralement :&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur Mon_truc(10584) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 10584 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur aMule (4662/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 4662 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur BitTorrent (6881-6889/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 6881:6889 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[firewall activé !]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_stop() {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot; [firewall descativé!]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_restart() {&lt;br /&gt;
firewall_stop&lt;br /&gt;
sleep 2&lt;br /&gt;
firewall_start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&#039;start&#039;)&lt;br /&gt;
firewall_start&lt;br /&gt;
;;&lt;br /&gt;
&#039;stop&#039;)&lt;br /&gt;
firewall_stop&lt;br /&gt;
;;&lt;br /&gt;
&#039;restart&#039;)&lt;br /&gt;
firewall_restart&lt;br /&gt;
;;&lt;br /&gt;
&#039;status&#039;)&lt;br /&gt;
iptables -L&lt;br /&gt;
iptables -t nat -L&lt;br /&gt;
iptables -t mangle -L&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
echo &amp;quot;Usage: firewall {start|stop|restart|status}&amp;quot;&lt;br /&gt;
esac&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce script est à mettre généralement dans un fichier du dossier &amp;lt;code&amp;gt;/etc/init.d/&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Configuration minimale de Snort ====&lt;br /&gt;
Voir : [http://lea-linux.org/cached/index/Reseau-secu-SNORT.html Installation de SNORT] (doc Lea).&lt;br /&gt;
&lt;br /&gt;
=== Sauvegardes et IDS systèmes ===&lt;br /&gt;
==== Mettre en place un système de sauvegarde ====&lt;br /&gt;
Le mieux est encore de lire une [http://lea-linux.org/nocache/index/Catégorie:Trucs_Sauvegarde.html# documentation correcte à ce sujet], en l&#039;occurence [http://lea-linux.org/nocache/index/Les_sauvegardes.html cet article].&lt;br /&gt;
&lt;br /&gt;
==== Configuration minimale de Tripwire ====&lt;br /&gt;
&lt;br /&gt;
== Détecter les intrusions, connaître les outils ==&lt;br /&gt;
=== Les symptômes ===&lt;br /&gt;
&lt;br /&gt;
# Votre système a un comportement étrange ou inhabituel.&lt;br /&gt;
# Un des comptes a été utilisé ou des fichiers ont été modifiés à l&#039;insu de son propriétaire légitime.&lt;br /&gt;
# Un programme ou un utilisateur inconnu se balade sur votre système.&lt;br /&gt;
# L&#039;un de vos IDS vous signale une trace très probablement dûe à une attaque (attention aux faux positifs) ou une corruption anormale de votre système de fichiers.&lt;br /&gt;
# Des outils d&#039;audit révèlent des anomalies sur votre système.&lt;br /&gt;
&lt;br /&gt;
=== who ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; permet de voir les utilisateurs actuellement connectés (loggés) au système. Attention cependant car un agresseur peut être -- et l&#039;est certainement si c&#039;est le cas -- connecté sous votre nom, s&#039;il est parvenu à s&#039;immiscer dans votre système.&lt;br /&gt;
&lt;br /&gt;
=== ps ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt; liste tous les processus actuellement en cours d&#039;exécution sur le système. S&#039;il en est un que vous ne connaissez pas, identifiez-le. Si vous ne savez toujours pas ce que c&#039;est, pas d&#039;affollement : utilisez la commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; et voyez si vous trouvez des fichiers en rapport avec ce processus. Vous pouvez alors identifier le processus et déterminer si c&#039;est un processus &amp;quot;inoffensif&amp;quot;. Si ce n&#039;est pas le cas, vous pouvez supprimer les fichiers qu&#039;il faut. Attention toutefois à bien être certain que ce soit un logiciel malveillant que vous supprimez ! En revanche, si c&#039;est un logiciel qui s&#039;est fait infecter (par exemple apache) il suffit de réinstaller celui-ci, après avoir vidé le cache des paquets de votre gestionnaire de packages. Vérifiez aussi la configuration après réinstallation. Nul besoin de redémarrer, sauf si évidemment c&#039;est le noyau qui est corrompu, chose qui est à mon avis très rare.&lt;br /&gt;
&lt;br /&gt;
=== netstat ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;netstat&amp;lt;/code&amp;gt; est une commande qui liste toutes les connexions réseau actives sur votre machine ainsi que l&#039;état dans lequel elles sont (listening, connected, established, etc.) :&lt;br /&gt;
&amp;lt;code&amp;gt;Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat&lt;br /&gt;
tcp     0             0            0.0.0.0:3129               0.0.0.0:*                        LISTEN&lt;br /&gt;
tcp6   0             0            :::443                           :::*                                   LISTEN&amp;lt;/code&amp;gt;&lt;br /&gt;
On voit ici par exemple que le port 3129 écoute (LISTEN) sur la machine locale (0.0.0.0) et que le port 443 en fait de même.&lt;br /&gt;
Vérifiez les connexions actives, les ports ouverts, et faites le lien avec vos démons et autres programmes qui tournent. Si un port ne vous dit rien, informez-vous.&lt;br /&gt;
&lt;br /&gt;
=== lsof ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; liste tous les fichiers ouverts actuellement. Elle indique aussi quel utilisateur utilise quel fichier.&lt;br /&gt;
&amp;lt;code&amp;gt;COMMAND     PID       USER   FD      TYPE     DEVICE     SIZE       NODE      NAME&lt;br /&gt;
init                    1            root       mem  REG      3,65           31432     1720343 /sbin/init&lt;br /&gt;
apache2         597        root      mem   REG      3,65           385484  25423      /usr/sbin/apache2&amp;lt;/code&amp;gt;&lt;br /&gt;
Les informations parlent d&#039;elle-mêmes. Ce sont deux cas précis parce-que le processus &amp;lt;code&amp;gt;init&amp;lt;/code&amp;gt; a le fichier &amp;lt;code&amp;gt;/sbin/init&amp;lt;/code&amp;gt; d&#039;ouvert (de même pour apache).&lt;br /&gt;
&lt;br /&gt;
=== fcheck ===&lt;br /&gt;
C&#039;est un utilitaire qui notifie l&#039;administrateur en cas de modification de fichiers. On précise dans le fichier de configuration quels fichiers ou dossiers on veut surveiller et un mail est envoyé en cas de changement.&lt;br /&gt;
&lt;br /&gt;
=== logcheck ===&lt;br /&gt;
&amp;lt;code&amp;gt;logcheck&amp;lt;/code&amp;gt; est un outil qui scrute les logs, en fait un résumé et envoie un courriel à l&#039;administrateur (généralement root en local) régulièrement. Evidemment, il est possible de configurer le niveau de ce qui est rapporté.&lt;br /&gt;
&lt;br /&gt;
=== chkrootkit ===&lt;br /&gt;
C&#039;est un logiciel important, puisqu&#039;il détecte la présence de rootkits. Son principe de fonctionnement est l&#039;écoute des ports réseau. Relativement souvent, cependant, des logiciels tels les clients peer2peer sont détectés comme une menace, bien qu&#039;ils soient inoffensifs. En effet, ils utilisent des ports qui ne sont pas &amp;quot;officiellement&amp;quot; connus (contrairement au port 80, par exemple, qui est celui de tout serveur web). Donc pas d&#039;affolement.&lt;br /&gt;
&lt;br /&gt;
== Récupération d&#039;une machine corrompue ==&lt;br /&gt;
&lt;br /&gt;
==== Règles d&#039;urgence ====&lt;br /&gt;
Que faut-il faire avant toute chose ? Comment réagir ? Comment se prémunir d&#039;autres attaques ?&lt;br /&gt;
&lt;br /&gt;
# Mettre la machine hors-ligne (débranchez simplement la prise réseau)&lt;br /&gt;
# Faites une sauvegarde &#039;&#039;&#039;complète&#039;&#039;&#039; du système sur des supports qui seront mis en lieu sûr (cette image du système servira à l&#039;analyse post-mortem).&lt;br /&gt;
# Redémarrez à partir d&#039;une image sûre de votre système, restaurez les données. Dans l&#039;idéal, réinstallez complètement votre système (si possible).&lt;br /&gt;
# Changez tous les mots de passe.&lt;br /&gt;
# Faites une mise à jour &#039;&#039;&#039;complète&#039;&#039;&#039; de la distribution (installez éventuellement quelques contre-mesures supplémentaires).&lt;br /&gt;
# Remettez-la en ligne (en la surveillant plus attentivement que d&#039;habitude, les pirates reviennent souvent sur les machines qu&#039;ils ont réussi à pirater).&lt;br /&gt;
&lt;br /&gt;
Une fois ceci fait, rien ne vous dit que la ou les failles utilisées par les pirates ont disparues. Il vous faut donc procéder à l&#039;analyse post-mortem de l&#039;image de votre système pour déterminer quelle méthode ont utilisé les pirates pour compromettre votre ordinateur et vérifier que la ou les failles ont bien disparues sur votre système actuel.&lt;br /&gt;
&lt;br /&gt;
==== Analyse Post-mortem ====&lt;br /&gt;
==== À qui signaler les intrusions et comment réagir face à la loi ? ====&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Logiciel_de_s%C3%A9curit%C3%A9_informatique Wikipédia : Catégorie:Logiciel de sécurité informatique]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/S%C3%A9curit%C3%A9_informatique Wikipédia : Sécurité des systèmes d&#039;information]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Risques_en_s%C3%A9curit%C3%A9_informatique Wikipédia : Risques en sécurité informatique]&lt;br /&gt;
* [http://www.debian.org/doc/manuals/securing-debian-howto/index.fr.html Une excellente documentation concernant la sécurisation de la distribution Debian GNU/Linux]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Même si l&#039;on connaît les risques, il est toujours impératif de rester sur ses gardes. De nouvelles menaces apparaissent régulièrement, de nouvelles failles sont découvertes chaque jour, de nouveaux virus aussi, etc. L&#039;avenir nous dira si un jour on aura des ordinateurs sûrs à 100%, chose qui n&#039;est pas impossible mais cependant improbable.&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=13983</id>
		<title>Tenir compte de la sécurité au quotidien</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=13983"/>
		<updated>2006-11-27T20:16:15Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Ingénierie sociale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fiche sécurité]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [[Utilisateur:Merlin8282|merlin8282]] et [[Utilisateur:Fleury|Fleury]].&amp;lt;/div&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Un ordinateur n&#039;est jamais en sécurité, quand bien même on croit qu&#039;il l&#039;est. Un dicton informatique dit d&#039;ailleurs que l&#039;ordinateur le plus sûr est celui qui est éteint. Cet article est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur connecté à un réseau, ainsi que les bonnes habitudes à prendre afin de sécuriser sa machine personnelle (nous ne parlerons pas de la sécurisation de serveur en production). Enfin nous aborderons les différents moyens d&#039;analyse post-mortem d&#039;une machine après une attaque et comment la nettoyer avant de la remettre en ligne.&lt;br /&gt;
&lt;br /&gt;
Pour tout le document (et de manière générale), il est évidemment conseillé de lire les pages de manuel des commandes avant de poser des questions.&lt;br /&gt;
Lisez aussi les articles connexes en cliquant sur les hyperliens dans le texte car dans ce document je ne m&#039;étale justement pas sur les sujets pour lesquels il existe déjà un article.&lt;br /&gt;
&lt;br /&gt;
Pour lire ce document, il est aussi important d&#039;être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux comprendre ce que vous faîtes et d&#039;autre part de mieux réagir en cas d&#039;attaque, donc, documentez vous sur ce système et son langage de commande ([[Admin-admin_env-shell|shell]]). Lisez aussi la documentation expliquant ce que sont [[Admin-admin_boot-daemons|les daemons et comment ils fonctionnent]], comment fonctionne un réseau, comment gérer les permissions des fichiers, et tout ce qui pourrait être relatif à l&#039;administration Linux. Plus vous en saurez à propos de Linux mieux vous serez armé pour démarrer avec ce document.&lt;br /&gt;
&lt;br /&gt;
== Petit survol de la sécurité informatique ==&lt;br /&gt;
La sécurité informatique est un domaine que l&#039;on pourrait séparer en trois parties. La première s&#039;occupe de la sécurité des données, c&#039;est la cryptologie, la plus connue et la plus théorique des trois. La seconde s&#039;occupe de la sécurité des protocoles, elle comprend notamment la sécurité réseau. Enfin, la dernière et la moins connue des trois est la sécurité logicielle, elle s&#039;occupe notamment des failles du genre débordement de tampon (buffer-overflow) et autres (format string, integer overflow, etc). &lt;br /&gt;
&lt;br /&gt;
Dans ce petit survol des risques potentiels en matière de sécurité informatique nous aborderons la sécurité réseau et la sécurité logicielle. La cryptologie ne sera pas abordée car c&#039;est une science très complexe et de toute façon inaccessible au simple utilisateur. Pour finir nous aborderons l&#039;ingénierie sociale qui reste inclassable mais qui est un risque non négligeable.&lt;br /&gt;
&lt;br /&gt;
=== La sécurité réseau ===&lt;br /&gt;
Le but de la sécurité réseau est de connaître les forces et les faiblesses des protocoles. Du point de vue de l&#039;attaquant, on se posera des questions comme: &#039;&#039;Comment abuser un firewall ? Comment tirer un maximum d&#039;informations d&#039;un serveur ? Comment aveugler un système de détection d&#039;intrusion ?&#039;&#039; Du point de vue du défenseur, les questions qui se posent sont surtout comment détecter les comportements réseaux anormaux et empêcher (ou au moins réagir face à) une attaque.&lt;br /&gt;
&lt;br /&gt;
Un certain nombre de mots clefs sont associés à la sécurité réseau. Ainsi on parle de firewalls, d&#039;IDS, d&#039;IPS, de scanneurs réseaux, de sniffeurs et autres. Nous allons ici définir quelques-uns de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise, un firewall (pare-feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de trafic qu&#039;ils analysent et à quel niveau ils se placent sur la couche OSI on va parler de plusieurs types de firewalls:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stateless firewall&#039;&#039;&#039;: Ce firewall est le plus basique, il ne fait que regarder les paquets réseau un par un et les accepte ou les rejette uniquement sur la base de son fichier de configuration.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stateful firewall&#039;&#039;&#039;: Aussi appelé &#039;&#039;connection tracking firewall&#039;&#039;, ce firewall permet de tirer parti d&#039;une connaissance du protocole (TCP par exemple). Il garde en mémoire les connections qui sont en cours et l&#039;état dans lequel elles sont (en cours d&#039;établissement, établie, en train d&#039;être achevées, etc). L&#039;avantage de ce firewall est qu&#039;il permet une configuration plus fine avec moins de lignes mais son inconvénient est qu&#039;il utilise un peu de mémoire pour chaque connexion et qu&#039;il est susceptible de se faire saturer (Déni de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes : les proxy, les filtres de contenu (clamav), etc. sont tous des firewalls applicatifs. Contrairement aux firewalls précédents qui résident habituellement dans le noyau, les firewalls applicatifs sont habituellement basés dans l&#039;espace utilisateur. Ces firewalls servent le plus souvent de relais avec éventuellement un contrôle sur le contenu de ce qui transite (quoique le plus souvent les proxy web ne contrôlent pas le contenu des requêtes même s&#039;ils le pourraient).&lt;br /&gt;
&lt;br /&gt;
Sous Linux, le firewall par défaut est [http://www.netfilter.org/ Netfilter], il possède la capacité de faire du Stateless et du Stateful pour divers protocoles. Les firewalls applicatifs existent aussi mais ne sont pas gérés par Netfilter. Nous verrons plus loin comment piloter Netfilter à l&#039;aide de iptables.&lt;br /&gt;
&lt;br /&gt;
==== Scanneur réseau ====&lt;br /&gt;
Un scanneur réseau est simplement un petit logiciel qui tente d&#039;explorer un réseau ou une machine de façon distante (c&#039;est à dire via le réseau). Pour cette exploration le scanneur va tenter de se connecter à une ou plusieurs machines de façon directe ou indirecte. Il faut bien comprendre que le but premier du scanneur de réseau est de collecter de l&#039;information (présence/abscence de services) sur un réseau ou une machine et uniquement cela. L&#039;usage d&#039;un scanneur est par conséquent légal (sauf si vous avez signé une charte qui dit le contraire) mais collecter beaucoup d&#039;informations sur un réseau peut vous rendre suspect aux yeux de ceux qui le gèrent.&lt;br /&gt;
&lt;br /&gt;
Le plus connu des scanneur est sans conteste [http://www.insecure.org/nmap/ nmap]. Il possède un grand nombre d&#039;options et permet d&#039;extraire beaucoup d&#039;informations sur votre environnement réseau. Pour peu que vous soyez root sur la machine que vous utilisez, vous pouvez tenter le jeu d&#039;options suivant (regardez le manuel pour savoir ce qu&#039;elles font): &amp;lt;code&amp;gt;nmap -F -O -sV &amp;lt;ip_cible&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; est bien sûr un scanneur réseau &#039;&#039;basique&#039;&#039;, il en existe des bien plus avancés qui utilisent nmap comme brique de base mais qui scannent non plus les services réseau mais les vulnérabilités. On peut ainsi citer [http://www.nessus.org/ nessus] qui permet de tester son réseau contre un grand nombre d&#039;attaques.&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un pirate veut s&#039;en prendre à vous, la première chose qu&#039;il fera sera de vous scanner et extraire un maximum d&#039;informations sur votre réseau. Mieux vaut savoir quelles informations vous laissez filtrer à l&#039;extérieur pour connaître vos faiblesses.&lt;br /&gt;
&lt;br /&gt;
==== Sniffeurs ====&lt;br /&gt;
Un sniffeur est un petit logiciel qui va se mettre à l&#039;écoute de tous les paquets réseau qui passent à la portée de votre ordinateur. Habituellement votre machine ne va considérer que les paquets qui vous sont addressés mais l&#039;on peut pervertir l&#039;usage habituel et faire en sorte que votre machine vous permette d&#039;accéder aussi aux paquets qui ne vous sont pas adressés. On appelle cela le mode &#039;&#039;promiscuous&#039;&#039; pour les cartes ethernet et le mode &#039;&#039;monitor&#039;&#039; pour les cartes wifi.&lt;br /&gt;
&lt;br /&gt;
Les sniffeurs sont largement utilisés à la fois par les pirates et par les ingénieurs systèmes. Les pirates les utilisent essentiellement pour récupérer des informations sur un réseau ou même plus. En effet, lorsqu&#039;ils ont compromis une machine de votre réseau, il peuvent laisser tourner de façon cachée un de ces sniffeurs qui va collecter des informations qui transitent par la carte réseau de la machine piratée. Par exemple, tous les mots de passe en clair peuvent être récupérés à moindre frais. D&#039;un autre coté, les administrateurs réseaux ont aussi un grand usage des sniffeurs, ils servent le plus souvent de débogueur réseau mais aussi d&#039;espion pour essayer d&#039;identifier des comportements sur le réseau qui ne seraient pas normal ou qui laisseraient supposer à une attaque (voir les IDS plus loin).&lt;br /&gt;
&lt;br /&gt;
Il existe un très grand nombre de sniffeurs réseau, les deux plus connus sont sans doute [http://www.wireshark.org wireshark] (ex-[http://www.ethereal.com/ ethereal]) et [http://www.tcpdump.org tcpdump]. D&#039;autres sont plus spécialisés comme par exemple [http://lcamtuf.coredump.cx/p0f.shtml p0f] (sniffeur passif de détection d&#039;OS), [http://www.monkey.org/~dugsong/dsniff/ dsniff] (sniffeur de mots de passe) ou encore [http://www.kismetwireless.net/ kismet] (sniffeur wifi).&lt;br /&gt;
&lt;br /&gt;
==== IDS, IPS et honeypots ====&lt;br /&gt;
Pour finir ce petit tour de la sécurité réseau nous allons faire un tour du coté des armes auxquelles vous avez accès pour vous défendre. &lt;br /&gt;
&lt;br /&gt;
Pour faire court, les IDS (Intrusion Detection Systems) sont des sondes qui espionnent votre réseau et enregistrent les phénomènes bizarres ou qui pourraient ressembler à des attaques potentielles. Le rôle d&#039;un IDS n&#039;est pas de prévenir des attaques mais vraiment de jouer un rôle similaire à celui de la boîte noire d&#039;un avion après une catastrophe afin de savoir ce qui s&#039;est passé et éventuellement collecter des preuves contre les attaquants.&lt;br /&gt;
&lt;br /&gt;
Il y a trois types d&#039;IDS :&lt;br /&gt;
* les &#039;&#039;&#039;IDS réseaux&#039;&#039;&#039; du genre [http://www.snort.org snort] qui s&#039;assurent de l&#039;intégrité d&#039;un réseau par une analyse du trafic qu&#039;il y a dessus,&lt;br /&gt;
* les &#039;&#039;&#039;IDS systèmes&#039;&#039;&#039; du genre [http://sourceforge.net/projects/tripwire/ tripwire] qui s&#039;assurent de l&#039;intégrité d&#039;un système en stockant un [http://fr.wikipedia.org/wiki/Cyclic_redundancy_check CRC] des principaux fichiers de configuration et des binaires pour s&#039;assurer qu&#039;ils n&#039;ont pas été corrompu,&lt;br /&gt;
* les &#039;&#039;&#039;IDS hybrides&#039;&#039;&#039; qui tentent de rassembler les deux précédents, du genre [http://www.prelude-ids.org/ prelude-IDS].&lt;br /&gt;
&lt;br /&gt;
Les IPS (Intrusion Prevention Systems) sont à peine différents des IDS puisqu&#039;en cas de détection d&#039;une attaque probable, alors que l&#039;IDS se contente d&#039;enregistrer les logs, l&#039;IPS tente de contrer l&#039;attaque en réagissant. &lt;br /&gt;
&lt;br /&gt;
Enfin, les [http://fr.wikipedia.org/wiki/Honeypot honeypots] (pots de miel) sont des simulations de machines faibles. La constatation est simple, les pirates s&#039;attaquent logiquement toujours au point le plus faible de votre réseau. Avoir des points faibles factices et bardés d&#039;alarmes discrètes vous permet non seulement de détourner momentanément les pirates des vraies machines et de les freiner mais aussi de détecter plus facilement les intrus qui se laissent prendre au piège.&lt;br /&gt;
&lt;br /&gt;
Voila, nous avons fait un (très) rapide tour des mots clefs importants en matière de sécurité réseau. Nous allons à présent quitter le réseau et nous intéresser de plus près à ce qui se passe sur vos serveurs et vos machines.&lt;br /&gt;
&lt;br /&gt;
=== La sécurité logicielle ===&lt;br /&gt;
Lorsque les pirates n&#039;en ont pas après ce qui circule sur votre réseau, c&#039;est qu&#039;ils tentent de pénétrer une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Contrairement à ce que vous pourriez croire, la plupart du temps, les attaques que subi votre ordinateur ne sont pas dûes à des humains mais plutôt à des logiciels automatiques. Les failles listées dans la catégorie &#039;&#039;sécurité logicielle&#039;&#039; sont donc exploitées le plus souvent par des logiciels &#039;&#039;malveillants&#039;&#039; ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des &#039;&#039;virus&#039;&#039;, des &#039;&#039;vers&#039;&#039;, des &#039;&#039;chevaux de Troie&#039;&#039; ou encore des &#039;&#039;rootkits&#039;&#039; mais ils ont tous en commun d&#039;exploiter des failles classiques ou de rendre les systèmes sur lesquels ils résident plus faibles face à des attaquants extérieurs. Nous allons ici lister ces malware et tenter d&#039;en donner une définition succinte.&lt;br /&gt;
&lt;br /&gt;
==== Virii et Vers ====&lt;br /&gt;
Un virus est un petit programme qui a la particularité de se reproduire et de se propager d&#039;un système à l&#039;autre suivant certains vecteurs. Cela peut être les mails ou même l&#039;utilisateur lui-même qui va copier le logiciel sur d&#039;autres systèmes. Les vers sont une sorte particulière de virus qui se propagent uniquement via le réseau Internet (l&#039;un des plus célèbre fut Blaster en 2003 qui visait essentiellement des systèmes Microsoft Windows). Certains virus fonctionnent et infectent les systèmes linux, mais leur nombre est plus réduit que ceux qui attaquent les systèmes Windows. Grâce à la rareté de ces virus et à la réactivité de la communauté libre face aux nouvelles failles découvertes, ce genre de malware ne se propage que très difficilement sur les systèmes Linux, et par conséquent Unix.&lt;br /&gt;
&lt;br /&gt;
Il est à signaler que le terme de &#039;&#039;virus&#039;&#039; n&#039;est pas anodin, l&#039;application des patchs de sécurité (l&#039;équivalent d&#039;un vaccin pour reprendre l&#039;analogie biologique) pendant une attaque virale revient réellement à enrayer une épidémie. Ne pas &#039;&#039;vacciner&#039;&#039; votre PC pendant une épidémie virale revient presque exactement au même que refuser de vous vacciner contre la grippe en pleine épidémie (avec la différence que la propagation des virii informatiques est environs cent à mille fois plus rapide qu&#039;avec les virii biologiques). Non seulement vous vous exposez au virus mais en plus vous créez un nouveau foyer d&#039;infection qui va permettre au virus de se propager encore un peu plus. Il faut donc être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des virii, qui pourraient alors s&#039;infiltrer facilement via les failles que vous auriez laissé béantes. &lt;br /&gt;
&lt;br /&gt;
==== Chevaux de Troie ====&lt;br /&gt;
Les chevaux de Troie sont des logiciels qui tentent d&#039;abuser l&#039;utilisateur en se faisant passer pour autre chose que ce qu&#039;ils sont réellement (un jeu, un petit utilitaire, ou encore une commande classique comme &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, etc). Ces logiciels semblent fonctionner exactement comme ils devraient mais peuvent accomplir des actions malveillantes contre votre système. Par exemple, si la commande &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt; a été remplacée, on pourrait imaginer qu&#039;un login particulier permette de se connecter en root de façon distante en plus de remplir sa tâche normalement. S&#039;il s&#039;agissait de la commande &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, on pourrait effectuer une sauvegarde de toutes machines, les logins et les machines, les clefs privées, etc qui passent à travers cette commande (et même les envoyer vers un dépot quelque part sur l&#039;Internet). Enfin, on peut imaginer un logiciel de jeu qui tous les vendredi 13 se mette à effacer le contenu de votre compte.&lt;br /&gt;
&lt;br /&gt;
Les chevaux de Troie peuvent être aussi un vecteur de propagation pour les virus comme le célèbre ver &amp;quot;I love you&amp;quot; qui se propageait par mail ou aussi être contenu dans un virus qui  va l&#039;installer sur le système qu&#039;il a infecté avant de tenter de se propager vers d&#039;autres systèmes.&lt;br /&gt;
&lt;br /&gt;
==== Rootkits ====&lt;br /&gt;
Enfin, les [http://fr.wikipedia.org/wiki/Rootkit rootkits] sont des logiciels qui facilitent l&#039;accès réseau discret des pirates sur le système. Leur nom vient du fait qu&#039;ils permettent aux pirates d&#039;accéder au système infecté avec des droits équivalents (ou même supérieurs) au root. À l&#039;origine ces rootkits étaient un ensemble de chevaux de Troie mimant les commandes classiques du système (&amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;, etc). De nos jours, les rootkits sont quasi-essentiellement des kernel-rootkits, c&#039;est à dire qu&#039;ils se branchent directement sur le noyau pour modifier les informations que pourraient lire les utilisateurs du système. Ce dernier type de rootkit permet aux pirates une réelle invisibilité du point de vue des autres utilisateurs (y compris du root). Vous l&#039;aurez compris, ces rootkits sont très difficiles à repérer avec des moyens standards et compromettent très profondément votre système. C&#039;est pour cela qu&#039;il n&#039;est jamais mauvais d&#039;installer et de lancer régulièrement des logiciels du type [http://www.chkrootkit.org/ chkrootkit], qui vérifient la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tous ces malwares peuvent se combiner entre eux pour former des combinaisons souvent difficiles à contrer. On peut citer l&#039;exemple du vers 1i0n ([http://www.cert.org/incident_notes/IN-2001-03.html rapport CERT], Mars 2001) qui ciblait essentiellement des failles sur les systèmes Unix faisant tourner un serveur BIND et qui installait le rootkit &#039;&#039;erkms&#039;&#039; avant de continuer à se propager. Ce malware combinait à la fois un ver et un rootkit lui-même composé d&#039;un certain nombre de chevaux de Troie.&lt;br /&gt;
&lt;br /&gt;
=== Ingénierie sociale ===&lt;br /&gt;
Une dernière technique de piratage existe. Et bien qu&#039;elle soit inclassable du point de vue technique, c&#039;est probablement la plus efficace. &lt;br /&gt;
&lt;br /&gt;
Souvent, si le pirate est humain, c&#039;est un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), ou quelqu&#039;un qui peut avoir un accès physique aux machines (stagiaire, agent d&#039;entretien, ou simplement qui connaît votre numéro de téléphone ou votre adresse e-mail). Dans ces conditions, il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ingénierie_sociale ingénierie sociale]. Cette méthode consiste à profiter de la crédulité des gens qui souvent écrivent leurs mots de passe sur un bout de papier et les laissent à proximité de l&#039;ordinateur. D&#039;autres victimes sont par exemple appelées par téléphone ou contactées via e-mail par l&#039;attaquant qui se fait alors passer pour l&#039;agent d&#039;un service technique quelconque, il prétend avoir besoin de leur mot de passe pour faire des tests.&lt;br /&gt;
&lt;br /&gt;
Cela peut paraître trivial mais c&#039;est la technique qui donne le plus de résultats avec le moins d&#039;investissement en temps et en connaissance. [http://fr.wikipedia.org/wiki/Kevin_Mitnick Kevin Mitnick], un des rois du piratage était passé maître dans ce type d&#039;attaques. Il avait un aplomb et un génie de l&#039;improvisation alliés à des connaissances techniques hors du commun qui lui ont permis de réaliser des miracles (du mauvais côté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
Se prémunir contre ce genre d&#039;attaques est simple: Ne confiez vos mots de passe à personne et méfiez-vous lorsqu&#039;on vous les demande.&lt;br /&gt;
&lt;br /&gt;
== Sécuriser sa machine ==&lt;br /&gt;
[http://fr.wikipedia.org/wiki/Bruce_Schneier Bruce Schneier], un des pontes de la sécurité informatique, a dit un jour: &amp;quot;&#039;&#039;La sécurité n&#039;est pas un produit, c&#039;est un processus&#039;&#039;&amp;quot; (&#039;&#039;Security is not a product, it&#039;s a process&#039;&#039;). L&#039;idée que vous pourriez sécuriser votre machine une bonne fois pour toute lors de l&#039;installation et ne plus y toucher ensuite n&#039;est tout simplement pas envisageable. Tout comme les virii biologiques qui mutent pour contourner les défenses immunitaires de leurs hôtes et pouvoir survivre, les pirates inventent constamment de nouvelles techniques ou se servent de failles inédites et produisent des malwares qui pourront contourner des défenses qui étaient parfaitement sûres quelques semaines auparavant. Maintenir une défense contre les agressions des pirates est une veille constante de l&#039;état de votre machine. Évidemment, sans sombrer dans la paranoïa, il va vous falloir accorder une attention à la sécurité de votre machine qui est proportionnelle à la valeur que vous accordez à ce qu&#039;elle protège.&lt;br /&gt;
&lt;br /&gt;
Cette section essaye de donner quelques conseils pour rendre votre machine plus sûre en vous donnant les moyens de résister à la plupart des attaques. &#039;&#039;&#039;Attention&#039;&#039;&#039;, même si vous suivez tous ces conseils votre machine ne sera pas invulnérable, elle sera seulement plus difficile d&#039;accès (ce qui décourage déjà 99% des malwares et des attaquants).&lt;br /&gt;
&lt;br /&gt;
=== Les 10 règles d&#039;or en sécurité ===&lt;br /&gt;
Il existe certaines règles qui permettent de se prémunir contre la plupart des attaques. Certaines sont simples et faciles à mettre en œuvre, d&#039;autres sont plus complexes. Voici une liste (non exhaustive) de dix règles à suivre pour sécuriser votre ordinateur. Ces règles sont classées dans un ordre de difficulté croissant. Suivre les règles les plus simples est &#039;&#039;&#039;indispensable&#039;&#039;&#039; alors que les plus complexes permettent de sécuriser un peu plus votre machine mais ne sont pas forcément aussi importantes. Le mieux est de s&#039;arrêter à l&#039;endroit de la liste qui vous semble trop obscur. Une mesure de protection mal configurée étant souvent pire qu&#039;une absence de protection.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Attention à vos mots de passe&#039;&#039;&#039; (choisissez les bien et ne les confiez pas à des inconnu(e)s)&lt;br /&gt;
# &#039;&#039;&#039;Préférez les protocoles chiffrés&#039;&#039;&#039; (préférez ssh à telnet, scp à ftp, pop+ssl à pop, ...)&lt;br /&gt;
# &#039;&#039;&#039;N&#039;executez et/ou installez pas n&#039;importe quoi&#039;&#039;&#039; (attention aux chevaux de Troie)&lt;br /&gt;
# &#039;&#039;&#039;Passez root le moins souvent possible&#039;&#039;&#039; (root a beaucoup de droits et cela peut se retourner contre vous)&lt;br /&gt;
# &#039;&#039;&#039;Appliquez le principe du privilège minimum&#039;&#039;&#039; (Ne donnez un droit que s&#039;il est nécessaire)&lt;br /&gt;
# &#039;&#039;&#039;Minimisez vos services&#039;&#039;&#039; (Si c&#039;est inutile alors c&#039;est dangereux)&lt;br /&gt;
# &#039;&#039;&#039;Mettez votre distribution à jour&#039;&#039;&#039; (Appliquez les correctifs de sécurité aussi souvent que possible)&lt;br /&gt;
# &#039;&#039;&#039;Filtrez et surveillez votre trafic réseau&#039;&#039;&#039; (Activez le firewall et éventuellement un IDS)&lt;br /&gt;
# &#039;&#039;&#039;Gardez un œil sur vos données&#039;&#039;&#039; (Sauvegardez-les et utilisez des logiciels comme tripwire)&lt;br /&gt;
# &#039;&#039;&#039;Renforcez votre noyau&#039;&#039;&#039; (Ajoutez des modules de sécurité optionnels: SELinux, ASLR, ...)&lt;br /&gt;
&lt;br /&gt;
Une fois ces dix règles édictées, nous allons creuser celles qui valent la peine de l&#039;être.&lt;br /&gt;
&lt;br /&gt;
=== Un bon mot de passe, c&#039;est quoi ? ===&lt;br /&gt;
Votre mot de passe est la clef de voûte de votre sécurité, il est extrêmement important de le choisir correctement... mais aussi de le mémoriser facilement. &lt;br /&gt;
&lt;br /&gt;
Pour commencer, un &#039;&#039;mauvais&#039;&#039; mot de passe est un mot de passe pour lequel vous pouvez répondre &amp;quot;oui&amp;quot; à l&#039;une des 7 questions suivantes:&lt;br /&gt;
&lt;br /&gt;
# Avez vous écrit sur un bout de papier votre mot de passe ?&lt;br /&gt;
# Votre mot de passe est-il un mot commun que l&#039;on peut trouver dans le dictionnaire ?&lt;br /&gt;
# Votre mot de passe est-il un mot commun suivi de 2 chiffres ?&lt;br /&gt;
# Votre mot de passe est-il un nom de personne, de lieu ou d&#039;animal ?&lt;br /&gt;
# Quelqu&#039;un d&#039;autre connait-il votre mot de passe ?&lt;br /&gt;
# Utilisez vous le meme mot de passe pour plusieurs comptes et pour une longue période ?&lt;br /&gt;
# Utilisez vous le mot de passe par défaut du constructeur ou de l&#039;éditeur ?&lt;br /&gt;
&lt;br /&gt;
Si vous vous trouvez dans la situation de générer un nouveau mot de passe, voici une technique simple mais qui a fait ses preuves:&lt;br /&gt;
&lt;br /&gt;
# Choisissez un mot ou une phrase qui a un sens pour vous (mais qui reste obscur aux yeux des autres). Par exemple votre personnage préféré dans une pièce, l&#039;animal que vous aviez pendant votre enfance, etc... Notre exemple pour la suite sera &amp;quot;&#039;&#039;&#039;mot de passe&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Enlevez les espaces et le remplacez caractères non ASCII (difficile de trouver l&#039;accent sur un clavier QWERTY-us si vous êtes en déplacement). Par exemple: &amp;quot;&#039;&#039;&#039;motdepasse&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Substituez les lettres qui s&#039;y prêtent par des nombres. Par exemple: &amp;quot;&#039;&#039;&#039;m0tdep4ss3&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Mettez en majuscule certaines lettres. Par exemple: &amp;quot;&#039;&#039;&#039;m0TDep4SS3&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Ajoutez des nombres en fin du mot de passe. Par exemple: &amp;quot;&#039;&#039;&#039;m0TDep4SS301&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Ajoutez un ou plusieurs caractères qui ne sont ni des lettres, ni des nombres. Par exemple: &amp;quot;&#039;&#039;&#039;m0T&#039;De&#039;p4SS3#01&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Et voilà, vous avez un beau mot de passe difficilement reconaissable mais mémorisable.&lt;br /&gt;
&lt;br /&gt;
Enfin, si vous n&#039;avez toujours pas confiance dans votre mot de passe, il existe un certain nombre de logiciels de crackage de mots de passe qui peuvent tourner en tâche de fond et vous indiquer quand il est temps de changer de mot de passe. [http://www.openwall.com/john/ John The Ripper] est sans doute le plus célèbre de ces logiciels (un paquetage doit exister pour votre distribution).&lt;br /&gt;
&lt;br /&gt;
=== Politique de restriction des privilèges ===&lt;br /&gt;
Comme nous l&#039;avons dit plus haut, accorder des privilèges non nécessaires à des utilisateurs ou des programmes peut s&#039;avérer très dangereux si l&#039;attaquant prend leur contrôle. Il pourra profiter de ces privilèges supplémentaires et les exploiter comme des failles de votre système.&lt;br /&gt;
&lt;br /&gt;
==== Principe du privilège minimum ====&lt;br /&gt;
Le principe du privilège minimum est apparu au milieu des années 70 et sa formulation originale était la suivante: &amp;quot;&#039;&#039;&#039;Chaque programme et chaque utilisateur du système devrait opérer en utilisant le plus petit nombre de privilèges possible pour accomplir sa tâche.&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sous Linux, le [http://lea-linux.org/cached/index/Permissions.html modèle des privilèges] de base identifie des objets (les fichiers), des actions (read, write, execute) et des acteurs (les utilisateurs et les groupes). Le type de contrôle que l&#039;on peut exercer sur les privilèges est donné par le modèle du &#039;&#039;Discretionary Access Control&#039;&#039; (DAC) qui veut qu&#039;une fois un utilisateur authentifié il ait tous les droits sur tous les objets qu&#039;il possède.&lt;br /&gt;
&lt;br /&gt;
Pour appliquer le principe du privilège minimum, il faut vous demander si chaque objet qui vous appartient a vraiment besoin d&#039;être ouvert en lecture, écriture ou encore exécution. Si ce n&#039;est pas le cas, supprimez ce droit. Par exemple, pourquoi laisser les autres utilisateurs avoir accès à votre compte en lecture ? C&#039;est certes plus pratiques de temps en temps, mais si vous n&#039;y prêtez pas attention, un attaquant pourrait s&#039;infiltrer dans votre compte et voler des informations que vous ne voudriez pas voir partir. Le mieux est donc de mettre votre &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt; et de restreindre ainsi l&#039;accès à votre compte.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: D&#039;autres modèles de contrôle existent, notamment de le &#039;&#039;Mandatory Access Control&#039;&#039; (MAC) implémenté par SELinux et d&#039;autres (&#039;&#039;Role-Based Access Control&#039;&#039;, RBAC).&lt;br /&gt;
&lt;br /&gt;
==== Bit setuid et sudo, avantages et inconvénients ====&lt;br /&gt;
Le bit setuid permet d&#039;exécuter un binaire avec les droits, non pas de celui qui lance le programme, mais de celui qui le possède. Évidemment, les bit setuid sont très pratiques mais provoquent souvent des failles importantes dans le système. L&#039;exemple le plus flagrant étant celui d&#039;une commande comme &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; qui n&#039;est habituellement utilisable que par root mais qui est bien pratique pour l&#039;utilisateur de la machine. Mettre le bit setuid sur la commande &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; permettra à n&#039;importe quel utilisateur de stopper la machine... Si un attaquant arrive sur votre machine via un compte crée à la va vite, il peut provoquer l&#039;arrêt inconditionnel de votre machine même si vous êtes en train de travailler dessus.&lt;br /&gt;
&lt;br /&gt;
En fait, si c&#039;est votre propre machine, ce que vous désireriez, c&#039;est simplement donner à l&#039;utilisateur principal le droit de faire cela (sans avoir à passer root) et non pas à TOUS les utilisateurs à la fois. Un programme nommé &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; permet de gérer les autorisations de ce type (exécution ou accès sur la base de l&#039;utilisateur et non des groupes).&lt;br /&gt;
&lt;br /&gt;
=== Restreindre les failles de votre système ===&lt;br /&gt;
==== Mise à jour de votre distribution ====&lt;br /&gt;
Toutes les distributions classiques ont un système qui permet la mise à jour automatique de vos logiciels. D&#039;autres ont même des mises à jour spécifiquement orientées sécurité (Debian, RedHat, Mandriva). Si votre machine est importante n&#039;hésitez pas à le faire souvent.&lt;br /&gt;
&lt;br /&gt;
==== Fermer les services inutiles ====&lt;br /&gt;
Apprenez à gérer vos [http://lea-linux.org/cached/index/Admin-admin_boot-daemons.html services].&lt;br /&gt;
&lt;br /&gt;
=== Firewalls et IDS réseaux ===&lt;br /&gt;
==== Configuration minimale de Netfilter ====&lt;br /&gt;
Une fois limité les ports réseau attendant des connexions, il faut mettre en place un firewall filtrant grâce à iptables (ou autre). Netfilter est le nom de la couche du noyau qui permet de filtrer tout ce qui passe par les interfaces réseau, tandis que iptables est une interface permettant de piloter Netfilter. Ne pas confondre, donc.&lt;br /&gt;
Des articles ont déjà été écrits à ce propos :&lt;br /&gt;
* [[Reseau-secu-iptables|iptables par l&#039;exemple]]&lt;br /&gt;
* [[Reseau-secu-murdefeu|Mur de feu pas à pas]]&lt;br /&gt;
* [[Leapro-pro_reseau-qos|QoS via iptables]]&lt;br /&gt;
&lt;br /&gt;
De manière très succincte, il faut fermer tous les ports puis ouvrir ceux dont on a besoin : le port 80 (et le 443 pour du https) doit être ouvert si l&#039;on a un serveur web, le port 110 si l&#039;on a un serveur pop dont on veut qu&#039;il soit accessible d&#039;internet, etc.&lt;br /&gt;
&lt;br /&gt;
Voici un bon script de base qu&#039;on peut adapter :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/bin/sh&lt;br /&gt;
# firewall v1.0.1 Oct 13 09:48:57 PDT 2003 written by : Kernel &amp;lt;kernel@trustonme.net&amp;gt;&lt;br /&gt;
# Modifié par merlin8282 (je ne sais plus où j&#039;ai pioché l&#039;original mais il y ressemble encore vraiment beaucoup).&lt;br /&gt;
# this script is free software according to the GNU General Public License (see [www.gnu.org])&lt;br /&gt;
# Start/stop/restart/status firewall:&lt;br /&gt;
&lt;br /&gt;
firewall_start() {&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Démarrage du firewall]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
############################### REGLES PAR DEFAUT ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation de la table filter]&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Politique par défaut de la table filter]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# On ignore tout ce qui entre ou transite par la passerelle&lt;br /&gt;
iptables -P INPUT DROP&lt;br /&gt;
iptables -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
# On accepte, ce qui sort&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Pour éviter les mauvaises suprises, on va autoriser l&#039;accès à la loopback :&lt;br /&gt;
iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LOCAL-INTERNET ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[On autorise les clients à accéder à internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#On créé une nouvelle chaîne, le nom est indifférent&lt;br /&gt;
# appelons-la &amp;quot;local-internet&amp;quot;&lt;br /&gt;
iptables -N local-internet&lt;br /&gt;
&lt;br /&gt;
# On définit le profil de ceux qui appartiendront à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# &amp;quot;local-internet&amp;quot; concerne toutes les connections sauf celles venant d&#039;internet ( ! = non)&lt;br /&gt;
# En gros avec ça, vous rendez, vos serveurs inaccessibles depuis internet.&lt;br /&gt;
# Pas de panique, certains serveurs seront autorisés explicitement dans la suite.&lt;br /&gt;
# (Remplacer ppp0 en fonction de votre configuration)&lt;br /&gt;
iptables -A local-internet -m state --state NEW -i ! ppp0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Evidemment, une fois acceptées comme &amp;quot;local-internet&amp;quot;, les connections peuvent continuer&lt;br /&gt;
# et faire des petits :&lt;br /&gt;
iptables -A local-internet -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# On termine en indiquant que les connections appartenant à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# accèdent à internet de manière transparente.&lt;br /&gt;
iptables -A INPUT -j local-internet&lt;br /&gt;
iptables -A FORWARD -j local-internet&lt;br /&gt;
&lt;br /&gt;
############################### LES TABLES NAT ET MANGLE #############################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation des tables nat et mangle]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LE MASQUERADING #########################&lt;br /&gt;
&lt;br /&gt;
# Commentez ces 2 lignes, si vous ne faîtes pas du masquerading (nat)&lt;br /&gt;
#echo &amp;quot;[Mise en place du masquerading]&amp;quot;&lt;br /&gt;
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
########################### ACTIVATION DE LA PASSERELLE ##################&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[Activation de la passerelle]&amp;quot;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
############################## PAS DE SPOOFING ##########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de spoofing]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then&lt;br /&gt;
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter&lt;br /&gt;
do&lt;br /&gt;
echo 1 &amp;gt; $filtre&lt;br /&gt;
done&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
########################## PAS DE SYNFLOOD ####################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de synflood]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############################### PAS DE PING ############################&lt;br /&gt;
&lt;br /&gt;
# commentez ces 6 lignes, si vous autorisez les pings sur votre passerelle&lt;br /&gt;
echo &amp;quot;[Pas ping]&amp;quot;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############# Priorisation de la bande passante et des connections - QoS ############&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections ssh ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 443 -j TOS --set-tos Minimize-Delay&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections http ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport http -j TOS --set-tos Maximize-throughput&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 3129 -j TOS --set-tos Maximize-throughput&lt;br /&gt;
&lt;br /&gt;
############################ Fonctionnalités serveurs #####################################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Etude des fonctionalités serveurs, visibles depuis internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# A ce stade, tous vos clients du réseau local et de la passerelle ont accès à internet. Mieux,&lt;br /&gt;
# vos clients du réseau local, ont accès à vos serveurs apache, proftp ... localement. Mais personne&lt;br /&gt;
# depuis internet ne peux accéder à l&#039;un des serveurs que vous hébergez.&lt;br /&gt;
&lt;br /&gt;
# Il est bien-sûr possible de dévérrouiller pontuellement l&#039;accès à un serveur depuis internet,&lt;br /&gt;
# en décommentant les 2 ou 3 lignes correspondantes.&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur ssh(22) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur smtp(25) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport smtp -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur http(80) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport www -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur https(443) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur DNS(53) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p udp --dport domain -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport domain -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur irc(6667) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ircd -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur cvs (2401) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport cvspserver -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur FTP(21 et 20) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Ne pas décommenter les 3 lignes qui suivent.&lt;br /&gt;
# Plus généralement :&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur Mon_truc(10584) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 10584 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur aMule (4662/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 4662 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur BitTorrent (6881-6889/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 6881:6889 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[firewall activé !]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_stop() {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot; [firewall descativé!]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_restart() {&lt;br /&gt;
firewall_stop&lt;br /&gt;
sleep 2&lt;br /&gt;
firewall_start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&#039;start&#039;)&lt;br /&gt;
firewall_start&lt;br /&gt;
;;&lt;br /&gt;
&#039;stop&#039;)&lt;br /&gt;
firewall_stop&lt;br /&gt;
;;&lt;br /&gt;
&#039;restart&#039;)&lt;br /&gt;
firewall_restart&lt;br /&gt;
;;&lt;br /&gt;
&#039;status&#039;)&lt;br /&gt;
iptables -L&lt;br /&gt;
iptables -t nat -L&lt;br /&gt;
iptables -t mangle -L&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
echo &amp;quot;Usage: firewall {start|stop|restart|status}&amp;quot;&lt;br /&gt;
esac&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce script est à mettre généralement dans un fichier du dossier &amp;lt;code&amp;gt;/etc/init.d/&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Configuration minimale de Snort ====&lt;br /&gt;
Voir : [http://lea-linux.org/cached/index/Reseau-secu-SNORT.html Installation de SNORT] (doc Lea).&lt;br /&gt;
&lt;br /&gt;
=== Sauvegardes et IDS systèmes ===&lt;br /&gt;
==== Mettre en place un système de sauvegarde ====&lt;br /&gt;
Le mieux est encore de lire une [http://lea-linux.org/nocache/index/Catégorie:Trucs_Sauvegarde.html# documentation correcte à ce sujet], en l&#039;occurence [http://lea-linux.org/nocache/index/Les_sauvegardes.html cet article].&lt;br /&gt;
&lt;br /&gt;
==== Configuration minimale de Tripwire ====&lt;br /&gt;
&lt;br /&gt;
== Détecter les intrusions, connaître les outils ==&lt;br /&gt;
=== Les symptômes ===&lt;br /&gt;
&lt;br /&gt;
# Votre système a un comportement étrange ou inhabituel.&lt;br /&gt;
# Un des comptes a été utilisé ou des fichiers ont été modifiés à l&#039;insu de son propriétaire légitime.&lt;br /&gt;
# Un programme ou un utilisateur inconnu se balade sur votre système.&lt;br /&gt;
# L&#039;un de vos IDS vous signale une trace très probablement dûe à une attaque (attention aux faux positifs) ou une corruption anormale de votre système de fichiers.&lt;br /&gt;
# Des outils d&#039;audit révèlent des anomalies sur votre système.&lt;br /&gt;
&lt;br /&gt;
=== who ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; permet de voir les utilisateurs actuellement connectés (loggés) au système. Attention cependant car un agresseur peut être -- et l&#039;est certainement si c&#039;est le cas -- connecté sous votre nom, s&#039;il est parvenu à s&#039;immiscer dans votre système.&lt;br /&gt;
&lt;br /&gt;
=== ps ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt; liste tous les processus actuellement en cours d&#039;exécution sur le système. S&#039;il en est un que vous ne connaissez pas, identifiez-le. Si vous ne savez toujours pas ce que c&#039;est, pas d&#039;affollement : utilisez la commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; et voyez si vous trouvez des fichiers en rapport avec ce processus. Vous pouvez alors identifier le processus et déterminer si c&#039;est un processus &amp;quot;inoffensif&amp;quot;. Si ce n&#039;est pas le cas, vous pouvez supprimer les fichiers qu&#039;il faut. Attention toutefois à bien être certain que ce soit un logiciel malveillant que vous supprimez ! En revanche, si c&#039;est un logiciel qui s&#039;est fait infecter (par exemple apache) il suffit de réinstaller celui-ci, après avoir vidé le cache des paquets de votre gestionnaire de packages. Vérifiez aussi la configuration après réinstallation. Nul besoin de redémarrer, sauf si évidemment c&#039;est le noyau qui est corrompu, chose qui est à mon avis très rare.&lt;br /&gt;
&lt;br /&gt;
=== netstat ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;netstat&amp;lt;/code&amp;gt; est une commande qui liste toutes les connexions réseau actives sur votre machine ainsi que l&#039;état dans lequel elles sont (listening, connected, established, etc.) :&lt;br /&gt;
&amp;lt;code&amp;gt;Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat&lt;br /&gt;
tcp     0             0            0.0.0.0:3129               0.0.0.0:*                        LISTEN&lt;br /&gt;
tcp6   0             0            :::443                           :::*                                   LISTEN&amp;lt;/code&amp;gt;&lt;br /&gt;
On voit ici par exemple que le port 3129 écoute (LISTEN) sur la machine locale (0.0.0.0) et que le port 443 en fait de même.&lt;br /&gt;
Vérifiez les connexions actives, les ports ouverts, et faites le lien avec vos démons et autres programmes qui tournent. Si un port ne vous dit rien, informez-vous.&lt;br /&gt;
&lt;br /&gt;
=== lsof ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; liste tous les fichiers ouverts actuellement. Elle indique aussi quel utilisateur utilise quel fichier.&lt;br /&gt;
&amp;lt;code&amp;gt;COMMAND     PID       USER   FD      TYPE     DEVICE     SIZE       NODE      NAME&lt;br /&gt;
init                    1            root       mem  REG      3,65           31432     1720343 /sbin/init&lt;br /&gt;
apache2         597        root      mem   REG      3,65           385484  25423      /usr/sbin/apache2&amp;lt;/code&amp;gt;&lt;br /&gt;
Les informations parlent d&#039;elle-mêmes. Ce sont deux cas précis parce-que le processus &amp;lt;code&amp;gt;init&amp;lt;/code&amp;gt; a le fichier &amp;lt;code&amp;gt;/sbin/init&amp;lt;/code&amp;gt; d&#039;ouvert (de même pour apache).&lt;br /&gt;
&lt;br /&gt;
=== fcheck ===&lt;br /&gt;
C&#039;est un utilitaire qui notifie l&#039;administrateur en cas de modification de fichiers. On précise dans le fichier de configuration quels fichiers ou dossiers on veut surveiller et un mail est envoyé en cas de changement.&lt;br /&gt;
&lt;br /&gt;
=== logcheck ===&lt;br /&gt;
&amp;lt;code&amp;gt;logcheck&amp;lt;/code&amp;gt; est un outil qui scrute les logs, en fait un résumé et envoie un courriel à l&#039;administrateur (généralement root en local) régulièrement. Evidemment, il est possible de configurer le niveau de ce qui est rapporté.&lt;br /&gt;
&lt;br /&gt;
=== chkrootkit ===&lt;br /&gt;
C&#039;est un logiciel important, puisqu&#039;il détecte la présence de rootkits. Son principe de fonctionnement est l&#039;écoute des ports réseau. Relativement souvent, cependant, des logiciels tels les clients peer2peer sont détectés comme une menace, bien qu&#039;ils soient innofensifs. En effet, ils utilisent des ports qui ne sont pas &amp;quot;officiellement&amp;quot; connus (contrairement au port 80, par exemple, qui est celui de tout serveur web). Donc pas d&#039;affollement.&lt;br /&gt;
&lt;br /&gt;
== Récupération d&#039;une machine corrompue ==&lt;br /&gt;
&lt;br /&gt;
==== Règles d&#039;urgence ====&lt;br /&gt;
Que faut-il faire avant toute chose ? Comment réagir ? Comment se prémunir d&#039;autres attaques ?&lt;br /&gt;
&lt;br /&gt;
# Mettre la machine hors-ligne (débranchez simplement la prise réseau)&lt;br /&gt;
# Faites une sauvegarde &#039;&#039;&#039;complète&#039;&#039;&#039; du système sur des supports qui seront mis en lieu sûr (cette image du système servira à l&#039;analyse post-mortem).&lt;br /&gt;
# Redémarrez à partir d&#039;une image sûre de votre système, restaurez les données. Dans l&#039;idéal, réinstallez complètement votre système (si possible).&lt;br /&gt;
# Changez tous les mots de passe.&lt;br /&gt;
# Faites une mise à jour &#039;&#039;&#039;complète&#039;&#039;&#039; de la distribution (installez éventuellement quelques contre-mesures supplémentaires).&lt;br /&gt;
# Remettez-la en ligne (en la surveillant plus attentivement que d&#039;habitude, les pirates reviennent souvent sur les machines qu&#039;ils ont réussi à pirater).&lt;br /&gt;
&lt;br /&gt;
Une fois ceci fait, rien ne vous dit que la ou les failles utilisées par les pirates ont disparues. Il vous faut donc procéder à l&#039;analyse post-mortem de l&#039;image de votre système pour déterminer quelle méthode ont utilisé les pirates pour compromettre votre ordinateur et vérifier que la ou les failles ont bien disparues sur votre système actuel.&lt;br /&gt;
&lt;br /&gt;
==== Analyse Post-mortem ====&lt;br /&gt;
==== À qui signaler les intrusions et comment réagir face à la loi ? ====&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Logiciel_de_s%C3%A9curit%C3%A9_informatique Wikipédia : Catégorie:Logiciel de sécurité informatique]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/S%C3%A9curit%C3%A9_informatique Wikipédia : Sécurité des systèmes d&#039;information]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Risques_en_s%C3%A9curit%C3%A9_informatique Wikipédia : Risques en sécurité informatique]&lt;br /&gt;
* [http://www.debian.org/doc/manuals/securing-debian-howto/index.fr.html Une excellente documentation concernant la sécurisation de la distribution Debian GNU/Linux]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Même si l&#039;on connaît les risques, il est toujours impératif de rester sur ses gardes. De nouvelles menaces apparaissent régulièrement, de nouvelles failles sont découvertes chaque jour, de nouveaux virus aussi, etc. L&#039;avenir nous dira si un jour on aura des ordinateurs sûrs à 100%, chose qui n&#039;est pas impossible mais cependant improbable.&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=13982</id>
		<title>Tenir compte de la sécurité au quotidien</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Tenir_compte_de_la_s%C3%A9curit%C3%A9_au_quotidien&amp;diff=13982"/>
		<updated>2006-11-27T20:05:19Z</updated>

		<summary type="html">&lt;p&gt;Jmelyn : /* Ingénierie sociale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Fiche sécurité]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;Par [[Utilisateur:Merlin8282|merlin8282]] et [[Utilisateur:Fleury|Fleury]].&amp;lt;/div&amp;gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Un ordinateur n&#039;est jamais en sécurité, quand bien même on croit qu&#039;il l&#039;est. Un dicton informatique dit d&#039;ailleurs que l&#039;ordinateur le plus sûr est celui qui est éteint. Cet article est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur connecté à un réseau, ainsi que les bonnes habitudes à prendre afin de sécuriser sa machine personnelle (nous ne parlerons pas de la sécurisation de serveur en production). Enfin nous aborderons les différents moyens d&#039;analyse post-mortem d&#039;une machine après une attaque et comment la nettoyer avant de la remettre en ligne.&lt;br /&gt;
&lt;br /&gt;
Pour tout le document (et de manière générale), il est évidemment conseillé de lire les pages de manuel des commandes avant de poser des questions.&lt;br /&gt;
Lisez aussi les articles connexes en cliquant sur les hyperliens dans le texte car dans ce document je ne m&#039;étale justement pas sur les sujets pour lesquels il existe déjà un article.&lt;br /&gt;
&lt;br /&gt;
Pour lire ce document, il est aussi important d&#039;être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux comprendre ce que vous faîtes et d&#039;autre part de mieux réagir en cas d&#039;attaque, donc, documentez vous sur ce système et son langage de commande ([[Admin-admin_env-shell|shell]]). Lisez aussi la documentation expliquant ce que sont [[Admin-admin_boot-daemons|les daemons et comment ils fonctionnent]], comment fonctionne un réseau, comment gérer les permissions des fichiers, et tout ce qui pourrait être relatif à l&#039;administration Linux. Plus vous en saurez à propos de Linux mieux vous serez armé pour démarrer avec ce document.&lt;br /&gt;
&lt;br /&gt;
== Petit survol de la sécurité informatique ==&lt;br /&gt;
La sécurité informatique est un domaine que l&#039;on pourrait séparer en trois parties. La première s&#039;occupe de la sécurité des données, c&#039;est la cryptologie, la plus connue et la plus théorique des trois. La seconde s&#039;occupe de la sécurité des protocoles, elle comprend notamment la sécurité réseau. Enfin, la dernière et la moins connue des trois est la sécurité logicielle, elle s&#039;occupe notamment des failles du genre débordement de tampon (buffer-overflow) et autres (format string, integer overflow, etc). &lt;br /&gt;
&lt;br /&gt;
Dans ce petit survol des risques potentiels en matière de sécurité informatique nous aborderons la sécurité réseau et la sécurité logicielle. La cryptologie ne sera pas abordée car c&#039;est une science très complexe et de toute façon inaccessible au simple utilisateur. Pour finir nous aborderons l&#039;ingénierie sociale qui reste inclassable mais qui est un risque non négligeable.&lt;br /&gt;
&lt;br /&gt;
=== La sécurité réseau ===&lt;br /&gt;
Le but de la sécurité réseau est de connaître les forces et les faiblesses des protocoles. Du point de vue de l&#039;attaquant, on se posera des questions comme: &#039;&#039;Comment abuser un firewall ? Comment tirer un maximum d&#039;informations d&#039;un serveur ? Comment aveugler un système de détection d&#039;intrusion ?&#039;&#039; Du point de vue du défenseur, les questions qui se posent sont surtout comment détecter les comportements réseaux anormaux et empêcher (ou au moins réagir face à) une attaque.&lt;br /&gt;
&lt;br /&gt;
Un certain nombre de mots clefs sont associés à la sécurité réseau. Ainsi on parle de firewalls, d&#039;IDS, d&#039;IPS, de scanneurs réseaux, de sniffeurs et autres. Nous allons ici définir quelques-uns de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise, un firewall (pare-feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de trafic qu&#039;ils analysent et à quel niveau ils se placent sur la couche OSI on va parler de plusieurs types de firewalls:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stateless firewall&#039;&#039;&#039;: Ce firewall est le plus basique, il ne fait que regarder les paquets réseau un par un et les accepte ou les rejette uniquement sur la base de son fichier de configuration.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Stateful firewall&#039;&#039;&#039;: Aussi appelé &#039;&#039;connection tracking firewall&#039;&#039;, ce firewall permet de tirer parti d&#039;une connaissance du protocole (TCP par exemple). Il garde en mémoire les connections qui sont en cours et l&#039;état dans lequel elles sont (en cours d&#039;établissement, établie, en train d&#039;être achevées, etc). L&#039;avantage de ce firewall est qu&#039;il permet une configuration plus fine avec moins de lignes mais son inconvénient est qu&#039;il utilise un peu de mémoire pour chaque connexion et qu&#039;il est susceptible de se faire saturer (Déni de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes : les proxy, les filtres de contenu (clamav), etc. sont tous des firewalls applicatifs. Contrairement aux firewalls précédents qui résident habituellement dans le noyau, les firewalls applicatifs sont habituellement basés dans l&#039;espace utilisateur. Ces firewalls servent le plus souvent de relais avec éventuellement un contrôle sur le contenu de ce qui transite (quoique le plus souvent les proxy web ne contrôlent pas le contenu des requêtes même s&#039;ils le pourraient).&lt;br /&gt;
&lt;br /&gt;
Sous Linux, le firewall par défaut est [http://www.netfilter.org/ Netfilter], il possède la capacité de faire du Stateless et du Stateful pour divers protocoles. Les firewalls applicatifs existent aussi mais ne sont pas gérés par Netfilter. Nous verrons plus loin comment piloter Netfilter à l&#039;aide de iptables.&lt;br /&gt;
&lt;br /&gt;
==== Scanneur réseau ====&lt;br /&gt;
Un scanneur réseau est simplement un petit logiciel qui tente d&#039;explorer un réseau ou une machine de façon distante (c&#039;est à dire via le réseau). Pour cette exploration le scanneur va tenter de se connecter à une ou plusieurs machines de façon directe ou indirecte. Il faut bien comprendre que le but premier du scanneur de réseau est de collecter de l&#039;information (présence/abscence de services) sur un réseau ou une machine et uniquement cela. L&#039;usage d&#039;un scanneur est par conséquent légal (sauf si vous avez signé une charte qui dit le contraire) mais collecter beaucoup d&#039;informations sur un réseau peut vous rendre suspect aux yeux de ceux qui le gèrent.&lt;br /&gt;
&lt;br /&gt;
Le plus connu des scanneur est sans conteste [http://www.insecure.org/nmap/ nmap]. Il possède un grand nombre d&#039;options et permet d&#039;extraire beaucoup d&#039;informations sur votre environnement réseau. Pour peu que vous soyez root sur la machine que vous utilisez, vous pouvez tenter le jeu d&#039;options suivant (regardez le manuel pour savoir ce qu&#039;elles font): &amp;lt;code&amp;gt;nmap -F -O -sV &amp;lt;ip_cible&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; est bien sûr un scanneur réseau &#039;&#039;basique&#039;&#039;, il en existe des bien plus avancés qui utilisent nmap comme brique de base mais qui scannent non plus les services réseau mais les vulnérabilités. On peut ainsi citer [http://www.nessus.org/ nessus] qui permet de tester son réseau contre un grand nombre d&#039;attaques.&lt;br /&gt;
&lt;br /&gt;
Lorsqu&#039;un pirate veut s&#039;en prendre à vous, la première chose qu&#039;il fera sera de vous scanner et extraire un maximum d&#039;informations sur votre réseau. Mieux vaut savoir quelles informations vous laissez filtrer à l&#039;extérieur pour connaître vos faiblesses.&lt;br /&gt;
&lt;br /&gt;
==== Sniffeurs ====&lt;br /&gt;
Un sniffeur est un petit logiciel qui va se mettre à l&#039;écoute de tous les paquets réseau qui passent à la portée de votre ordinateur. Habituellement votre machine ne va considérer que les paquets qui vous sont addressés mais l&#039;on peut pervertir l&#039;usage habituel et faire en sorte que votre machine vous permette d&#039;accéder aussi aux paquets qui ne vous sont pas adressés. On appelle cela le mode &#039;&#039;promiscuous&#039;&#039; pour les cartes ethernet et le mode &#039;&#039;monitor&#039;&#039; pour les cartes wifi.&lt;br /&gt;
&lt;br /&gt;
Les sniffeurs sont largement utilisés à la fois par les pirates et par les ingénieurs systèmes. Les pirates les utilisent essentiellement pour récupérer des informations sur un réseau ou même plus. En effet, lorsqu&#039;ils ont compromis une machine de votre réseau, il peuvent laisser tourner de façon cachée un de ces sniffeurs qui va collecter des informations qui transitent par la carte réseau de la machine piratée. Par exemple, tous les mots de passe en clair peuvent être récupérés à moindre frais. D&#039;un autre coté, les administrateurs réseaux ont aussi un grand usage des sniffeurs, ils servent le plus souvent de débogueur réseau mais aussi d&#039;espion pour essayer d&#039;identifier des comportements sur le réseau qui ne seraient pas normal ou qui laisseraient supposer à une attaque (voir les IDS plus loin).&lt;br /&gt;
&lt;br /&gt;
Il existe un très grand nombre de sniffeurs réseau, les deux plus connus sont sans doute [http://www.wireshark.org wireshark] (ex-[http://www.ethereal.com/ ethereal]) et [http://www.tcpdump.org tcpdump]. D&#039;autres sont plus spécialisés comme par exemple [http://lcamtuf.coredump.cx/p0f.shtml p0f] (sniffeur passif de détection d&#039;OS), [http://www.monkey.org/~dugsong/dsniff/ dsniff] (sniffeur de mots de passe) ou encore [http://www.kismetwireless.net/ kismet] (sniffeur wifi).&lt;br /&gt;
&lt;br /&gt;
==== IDS, IPS et honeypots ====&lt;br /&gt;
Pour finir ce petit tour de la sécurité réseau nous allons faire un tour du coté des armes auxquelles vous avez accès pour vous défendre. &lt;br /&gt;
&lt;br /&gt;
Pour faire court, les IDS (Intrusion Detection Systems) sont des sondes qui espionnent votre réseau et enregistrent les phénomènes bizarres ou qui pourraient ressembler à des attaques potentielles. Le rôle d&#039;un IDS n&#039;est pas de prévenir des attaques mais vraiment de jouer un rôle similaire à celui de la boîte noire d&#039;un avion après une catastrophe afin de savoir ce qui s&#039;est passé et éventuellement collecter des preuves contre les attaquants.&lt;br /&gt;
&lt;br /&gt;
Il y a trois types d&#039;IDS :&lt;br /&gt;
* les &#039;&#039;&#039;IDS réseaux&#039;&#039;&#039; du genre [http://www.snort.org snort] qui s&#039;assurent de l&#039;intégrité d&#039;un réseau par une analyse du trafic qu&#039;il y a dessus,&lt;br /&gt;
* les &#039;&#039;&#039;IDS systèmes&#039;&#039;&#039; du genre [http://sourceforge.net/projects/tripwire/ tripwire] qui s&#039;assurent de l&#039;intégrité d&#039;un système en stockant un [http://fr.wikipedia.org/wiki/Cyclic_redundancy_check CRC] des principaux fichiers de configuration et des binaires pour s&#039;assurer qu&#039;ils n&#039;ont pas été corrompu,&lt;br /&gt;
* les &#039;&#039;&#039;IDS hybrides&#039;&#039;&#039; qui tentent de rassembler les deux précédents, du genre [http://www.prelude-ids.org/ prelude-IDS].&lt;br /&gt;
&lt;br /&gt;
Les IPS (Intrusion Prevention Systems) sont à peine différents des IDS puisqu&#039;en cas de détection d&#039;une attaque probable, alors que l&#039;IDS se contente d&#039;enregistrer les logs, l&#039;IPS tente de contrer l&#039;attaque en réagissant. &lt;br /&gt;
&lt;br /&gt;
Enfin, les [http://fr.wikipedia.org/wiki/Honeypot honeypots] (pots de miel) sont des simulations de machines faibles. La constatation est simple, les pirates s&#039;attaquent logiquement toujours au point le plus faible de votre réseau. Avoir des points faibles factices et bardés d&#039;alarmes discrètes vous permet non seulement de détourner momentanément les pirates des vraies machines et de les freiner mais aussi de détecter plus facilement les intrus qui se laissent prendre au piège.&lt;br /&gt;
&lt;br /&gt;
Voila, nous avons fait un (très) rapide tour des mots clefs importants en matière de sécurité réseau. Nous allons à présent quitter le réseau et nous intéresser de plus près à ce qui se passe sur vos serveurs et vos machines.&lt;br /&gt;
&lt;br /&gt;
=== La sécurité logicielle ===&lt;br /&gt;
Lorsque les pirates n&#039;en ont pas après ce qui circule sur votre réseau, c&#039;est qu&#039;ils tentent de pénétrer une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Contrairement à ce que vous pourriez croire, la plupart du temps, les attaques que subi votre ordinateur ne sont pas dûes à des humains mais plutôt à des logiciels automatiques. Les failles listées dans la catégorie &#039;&#039;sécurité logicielle&#039;&#039; sont donc exploitées le plus souvent par des logiciels &#039;&#039;malveillants&#039;&#039; ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des &#039;&#039;virus&#039;&#039;, des &#039;&#039;vers&#039;&#039;, des &#039;&#039;chevaux de Troie&#039;&#039; ou encore des &#039;&#039;rootkits&#039;&#039; mais ils ont tous en commun d&#039;exploiter des failles classiques ou de rendre les systèmes sur lesquels ils résident plus faibles face à des attaquants extérieurs. Nous allons ici lister ces malware et tenter d&#039;en donner une définition succinte.&lt;br /&gt;
&lt;br /&gt;
==== Virii et Vers ====&lt;br /&gt;
Un virus est un petit programme qui a la particularité de se reproduire et de se propager d&#039;un système à l&#039;autre suivant certains vecteurs. Cela peut être les mails ou même l&#039;utilisateur lui-même qui va copier le logiciel sur d&#039;autres systèmes. Les vers sont une sorte particulière de virus qui se propagent uniquement via le réseau Internet (l&#039;un des plus célèbre fut Blaster en 2003 qui visait essentiellement des systèmes Microsoft Windows). Certains virus fonctionnent et infectent les systèmes linux, mais leur nombre est plus réduit que ceux qui attaquent les systèmes Windows. Grâce à la rareté de ces virus et à la réactivité de la communauté libre face aux nouvelles failles découvertes, ce genre de malware ne se propage que très difficilement sur les systèmes Linux, et par conséquent Unix.&lt;br /&gt;
&lt;br /&gt;
Il est à signaler que le terme de &#039;&#039;virus&#039;&#039; n&#039;est pas anodin, l&#039;application des patchs de sécurité (l&#039;équivalent d&#039;un vaccin pour reprendre l&#039;analogie biologique) pendant une attaque virale revient réellement à enrayer une épidémie. Ne pas &#039;&#039;vacciner&#039;&#039; votre PC pendant une épidémie virale revient presque exactement au même que refuser de vous vacciner contre la grippe en pleine épidémie (avec la différence que la propagation des virii informatiques est environs cent à mille fois plus rapide qu&#039;avec les virii biologiques). Non seulement vous vous exposez au virus mais en plus vous créez un nouveau foyer d&#039;infection qui va permettre au virus de se propager encore un peu plus. Il faut donc être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des virii, qui pourraient alors s&#039;infiltrer facilement via les failles que vous auriez laissé béantes. &lt;br /&gt;
&lt;br /&gt;
==== Chevaux de Troie ====&lt;br /&gt;
Les chevaux de Troie sont des logiciels qui tentent d&#039;abuser l&#039;utilisateur en se faisant passer pour autre chose que ce qu&#039;ils sont réellement (un jeu, un petit utilitaire, ou encore une commande classique comme &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, etc). Ces logiciels semblent fonctionner exactement comme ils devraient mais peuvent accomplir des actions malveillantes contre votre système. Par exemple, si la commande &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt; a été remplacée, on pourrait imaginer qu&#039;un login particulier permette de se connecter en root de façon distante en plus de remplir sa tâche normalement. S&#039;il s&#039;agissait de la commande &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, on pourrait effectuer une sauvegarde de toutes machines, les logins et les machines, les clefs privées, etc qui passent à travers cette commande (et même les envoyer vers un dépot quelque part sur l&#039;Internet). Enfin, on peut imaginer un logiciel de jeu qui tous les vendredi 13 se mette à effacer le contenu de votre compte.&lt;br /&gt;
&lt;br /&gt;
Les chevaux de Troie peuvent être aussi un vecteur de propagation pour les virus comme le célèbre ver &amp;quot;I love you&amp;quot; qui se propageait par mail ou aussi être contenu dans un virus qui  va l&#039;installer sur le système qu&#039;il a infecté avant de tenter de se propager vers d&#039;autres systèmes.&lt;br /&gt;
&lt;br /&gt;
==== Rootkits ====&lt;br /&gt;
Enfin, les [http://fr.wikipedia.org/wiki/Rootkit rootkits] sont des logiciels qui facilitent l&#039;accès réseau discret des pirates sur le système. Leur nom vient du fait qu&#039;ils permettent aux pirates d&#039;accéder au système infecté avec des droits équivalents (ou même supérieurs) au root. À l&#039;origine ces rootkits étaient un ensemble de chevaux de Troie mimant les commandes classiques du système (&amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ls&amp;lt;/code&amp;gt;, etc). De nos jours, les rootkits sont quasi-essentiellement des kernel-rootkits, c&#039;est à dire qu&#039;ils se branchent directement sur le noyau pour modifier les informations que pourraient lire les utilisateurs du système. Ce dernier type de rootkit permet aux pirates une réelle invisibilité du point de vue des autres utilisateurs (y compris du root). Vous l&#039;aurez compris, ces rootkits sont très difficiles à repérer avec des moyens standards et compromettent très profondément votre système. C&#039;est pour cela qu&#039;il n&#039;est jamais mauvais d&#039;installer et de lancer régulièrement des logiciels du type [http://www.chkrootkit.org/ chkrootkit], qui vérifient la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tous ces malwares peuvent se combiner entre eux pour former des combinaisons souvent difficiles à contrer. On peut citer l&#039;exemple du vers 1i0n ([http://www.cert.org/incident_notes/IN-2001-03.html rapport CERT], Mars 2001) qui ciblait essentiellement des failles sur les systèmes Unix faisant tourner un serveur BIND et qui installait le rootkit &#039;&#039;erkms&#039;&#039; avant de continuer à se propager. Ce malware combinait à la fois un ver et un rootkit lui-même composé d&#039;un certain nombre de chevaux de Troie.&lt;br /&gt;
&lt;br /&gt;
=== Ingénierie sociale ===&lt;br /&gt;
Une dernière technique de piratage existe. Et bien qu&#039;elle soit inclassable du point de vue technique, c&#039;est probablement la plus efficace. &lt;br /&gt;
&lt;br /&gt;
Souvent, si le pirate est humain, c&#039;est un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), ou quelqu&#039;un qui peut avoir un accès physique aux machines (stagiaire, agent d&#039;entretien, ou simplement qui connaît votre numéro de téléphone ou votre adresse e-mail). Dans ces conditions, il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ingénierie_sociale ingénierie sociale]. Cette méthode consiste à profiter de la crédulité des gens qui souvent écrivent leurs mots de passe sur un bout de papier et le laissent à proximité de l&#039;ordinateur. D&#039;autres victimes sont par exemple appelées par téléphone ou contactées via e-mail par l&#039;attaquant qui se fait alors passer pour l&#039;agent d&#039;un service technique quelconque, il prétend avoir besoin de votre mot de passe pour faire des tests.&lt;br /&gt;
&lt;br /&gt;
Cela peut paraître trivial mais c&#039;est la technique qui donne le plus de résultats avec le moins d&#039;investissement en temps et en connaissance. [http://fr.wikipedia.org/wiki/Kevin_Mitnick Kevin Mitnick], un des rois du piratage était passé maître dans ce type d&#039;attaques. Il avait un aplomb et un génie de l&#039;improvisation alliés à des connaissances techniques hors du commun qui lui ont permis de réaliser des miracles (du mauvais côté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
Se prémunir contre ce genre d&#039;attaques est simple: Ne confiez vos mots de passe à personne et méfiez-vous lorsqu&#039;on vous les demande.&lt;br /&gt;
&lt;br /&gt;
== Sécuriser sa machine ==&lt;br /&gt;
[http://fr.wikipedia.org/wiki/Bruce_Schneier Bruce Schneier], un des pontes de la sécurité informatique, a dit un jour: &amp;quot;&#039;&#039;La sécurité n&#039;est pas un produit, c&#039;est un processus&#039;&#039;&amp;quot; (&#039;&#039;Security is not a product, it&#039;s a process&#039;&#039;). L&#039;idée que vous pourriez sécuriser votre machine une bonne fois pour toute lors de l&#039;installation et ne plus y toucher ensuite n&#039;est tout simplement pas envisageable. Tout comme les virii biologiques qui mutent pour contourner les défenses immunitaires de leurs hôtes et pouvoir survivre, les pirates inventent constamment de nouvelles techniques ou se servent de failles inédites et produisent des malwares qui pourront contourner des défenses qui étaient parfaitement sûres quelques semaines auparavant. Maintenir une défense contre les agressions des pirates est une veille constante de l&#039;état de votre machine. Évidemment, sans sombrer dans la paranoïa, il va vous falloir accorder une attention à la sécurité de votre machine qui est proportionnelle à la valeur que vous accordez à ce qu&#039;elle protège.&lt;br /&gt;
&lt;br /&gt;
Cette section essaye de donner quelques conseils pour rendre votre machine plus sûre en vous donnant les moyens de résister à la plupart des attaques. &#039;&#039;&#039;Attention&#039;&#039;&#039;, même si vous suivez tous ces conseils votre machine ne sera pas invulnérable, elle sera seulement plus difficile d&#039;accès (ce qui décourage déjà 99% des malwares et des attaquants).&lt;br /&gt;
&lt;br /&gt;
=== Les 10 règles d&#039;or en sécurité ===&lt;br /&gt;
Il existe certaines règles qui permettent de se prémunir contre la plupart des attaques. Certaines sont simples et faciles à mettre en œuvre, d&#039;autres sont plus complexes. Voici une liste (non exhaustive) de dix règles à suivre pour sécuriser votre ordinateur. Ces règles sont classées dans un ordre de difficulté croissant. Suivre les règles les plus simples est &#039;&#039;&#039;indispensable&#039;&#039;&#039; alors que les plus complexes permettent de sécuriser un peu plus votre machine mais ne sont pas forcément aussi importantes. Le mieux est de s&#039;arrêter à l&#039;endroit de la liste qui vous semble trop obscur. Une mesure de protection mal configurée étant souvent pire qu&#039;une absence de protection.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Attention à vos mots de passe&#039;&#039;&#039; (choisissez les bien et ne les confiez pas à des inconnu(e)s)&lt;br /&gt;
# &#039;&#039;&#039;Préférez les protocoles chiffrés&#039;&#039;&#039; (préférez ssh à telnet, scp à ftp, pop+ssl à pop, ...)&lt;br /&gt;
# &#039;&#039;&#039;N&#039;executez et/ou installez pas n&#039;importe quoi&#039;&#039;&#039; (attention aux chevaux de Troie)&lt;br /&gt;
# &#039;&#039;&#039;Passez root le moins souvent possible&#039;&#039;&#039; (root a beaucoup de droits et cela peut se retourner contre vous)&lt;br /&gt;
# &#039;&#039;&#039;Appliquez le principe du privilège minimum&#039;&#039;&#039; (Ne donnez un droit que s&#039;il est nécessaire)&lt;br /&gt;
# &#039;&#039;&#039;Minimisez vos services&#039;&#039;&#039; (Si c&#039;est inutile alors c&#039;est dangereux)&lt;br /&gt;
# &#039;&#039;&#039;Mettez votre distribution à jour&#039;&#039;&#039; (Appliquez les correctifs de sécurité aussi souvent que possible)&lt;br /&gt;
# &#039;&#039;&#039;Filtrez et surveillez votre trafic réseau&#039;&#039;&#039; (Activez le firewall et éventuellement un IDS)&lt;br /&gt;
# &#039;&#039;&#039;Gardez un œil sur vos données&#039;&#039;&#039; (Sauvegardez-les et utilisez des logiciels comme tripwire)&lt;br /&gt;
# &#039;&#039;&#039;Renforcez votre noyau&#039;&#039;&#039; (Ajoutez des modules de sécurité optionnels: SELinux, ASLR, ...)&lt;br /&gt;
&lt;br /&gt;
Une fois ces dix règles édictées, nous allons creuser celles qui valent la peine de l&#039;être.&lt;br /&gt;
&lt;br /&gt;
=== Un bon mot de passe, c&#039;est quoi ? ===&lt;br /&gt;
Votre mot de passe est la clef de voûte de votre sécurité, il est extrêmement important de le choisir correctement... mais aussi de le mémoriser facilement. &lt;br /&gt;
&lt;br /&gt;
Pour commencer, un &#039;&#039;mauvais&#039;&#039; mot de passe est un mot de passe pour lequel vous pouvez répondre &amp;quot;oui&amp;quot; à l&#039;une des 7 questions suivantes:&lt;br /&gt;
&lt;br /&gt;
# Avez vous écrit sur un bout de papier votre mot de passe ?&lt;br /&gt;
# Votre mot de passe est-il un mot commun que l&#039;on peut trouver dans le dictionnaire ?&lt;br /&gt;
# Votre mot de passe est-il un mot commun suivi de 2 chiffres ?&lt;br /&gt;
# Votre mot de passe est-il un nom de personne, de lieu ou d&#039;animal ?&lt;br /&gt;
# Quelqu&#039;un d&#039;autre connait-il votre mot de passe ?&lt;br /&gt;
# Utilisez vous le meme mot de passe pour plusieurs comptes et pour une longue période ?&lt;br /&gt;
# Utilisez vous le mot de passe par défaut du constructeur ou de l&#039;éditeur ?&lt;br /&gt;
&lt;br /&gt;
Si vous vous trouvez dans la situation de générer un nouveau mot de passe, voici une technique simple mais qui a fait ses preuves:&lt;br /&gt;
&lt;br /&gt;
# Choisissez un mot ou une phrase qui a un sens pour vous (mais qui reste obscur aux yeux des autres). Par exemple votre personnage préféré dans une pièce, l&#039;animal que vous aviez pendant votre enfance, etc... Notre exemple pour la suite sera &amp;quot;&#039;&#039;&#039;mot de passe&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Enlevez les espaces et le remplacez caractères non ASCII (difficile de trouver l&#039;accent sur un clavier QWERTY-us si vous êtes en déplacement). Par exemple: &amp;quot;&#039;&#039;&#039;motdepasse&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Substituez les lettres qui s&#039;y prêtent par des nombres. Par exemple: &amp;quot;&#039;&#039;&#039;m0tdep4ss3&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Mettez en majuscule certaines lettres. Par exemple: &amp;quot;&#039;&#039;&#039;m0TDep4SS3&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Ajoutez des nombres en fin du mot de passe. Par exemple: &amp;quot;&#039;&#039;&#039;m0TDep4SS301&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
# Ajoutez un ou plusieurs caractères qui ne sont ni des lettres, ni des nombres. Par exemple: &amp;quot;&#039;&#039;&#039;m0T&#039;De&#039;p4SS3#01&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Et voilà, vous avez un beau mot de passe difficilement reconaissable mais mémorisable.&lt;br /&gt;
&lt;br /&gt;
Enfin, si vous n&#039;avez toujours pas confiance dans votre mot de passe, il existe un certain nombre de logiciels de crackage de mots de passe qui peuvent tourner en tâche de fond et vous indiquer quand il est temps de changer de mot de passe. [http://www.openwall.com/john/ John The Ripper] est sans doute le plus célèbre de ces logiciels (un paquetage doit exister pour votre distribution).&lt;br /&gt;
&lt;br /&gt;
=== Politique de restriction des privilèges ===&lt;br /&gt;
Comme nous l&#039;avons dit plus haut, accorder des privilèges non nécessaires à des utilisateurs ou des programmes peut s&#039;avérer très dangereux si l&#039;attaquant prend leur contrôle. Il pourra profiter de ces privilèges supplémentaires et les exploiter comme des failles de votre système.&lt;br /&gt;
&lt;br /&gt;
==== Principe du privilège minimum ====&lt;br /&gt;
Le principe du privilège minimum est apparu au milieu des années 70 et sa formulation originale était la suivante: &amp;quot;&#039;&#039;&#039;Chaque programme et chaque utilisateur du système devrait opérer en utilisant le plus petit nombre de privilèges possible pour accomplir sa tâche.&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sous Linux, le [http://lea-linux.org/cached/index/Permissions.html modèle des privilèges] de base identifie des objets (les fichiers), des actions (read, write, execute) et des acteurs (les utilisateurs et les groupes). Le type de contrôle que l&#039;on peut exercer sur les privilèges est donné par le modèle du &#039;&#039;Discretionary Access Control&#039;&#039; (DAC) qui veut qu&#039;une fois un utilisateur authentifié il ait tous les droits sur tous les objets qu&#039;il possède.&lt;br /&gt;
&lt;br /&gt;
Pour appliquer le principe du privilège minimum, il faut vous demander si chaque objet qui vous appartient a vraiment besoin d&#039;être ouvert en lecture, écriture ou encore exécution. Si ce n&#039;est pas le cas, supprimez ce droit. Par exemple, pourquoi laisser les autres utilisateurs avoir accès à votre compte en lecture ? C&#039;est certes plus pratiques de temps en temps, mais si vous n&#039;y prêtez pas attention, un attaquant pourrait s&#039;infiltrer dans votre compte et voler des informations que vous ne voudriez pas voir partir. Le mieux est donc de mettre votre &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;700&amp;lt;/code&amp;gt; et de restreindre ainsi l&#039;accès à votre compte.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: D&#039;autres modèles de contrôle existent, notamment de le &#039;&#039;Mandatory Access Control&#039;&#039; (MAC) implémenté par SELinux et d&#039;autres (&#039;&#039;Role-Based Access Control&#039;&#039;, RBAC).&lt;br /&gt;
&lt;br /&gt;
==== Bit setuid et sudo, avantages et inconvénients ====&lt;br /&gt;
Le bit setuid permet d&#039;exécuter un binaire avec les droits, non pas de celui qui lance le programme, mais de celui qui le possède. Évidemment, les bit setuid sont très pratiques mais provoquent souvent des failles importantes dans le système. L&#039;exemple le plus flagrant étant celui d&#039;une commande comme &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; qui n&#039;est habituellement utilisable que par root mais qui est bien pratique pour l&#039;utilisateur de la machine. Mettre le bit setuid sur la commande &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; permettra à n&#039;importe quel utilisateur de stopper la machine... Si un attaquant arrive sur votre machine via un compte crée à la va vite, il peut provoquer l&#039;arrêt inconditionnel de votre machine même si vous êtes en train de travailler dessus.&lt;br /&gt;
&lt;br /&gt;
En fait, si c&#039;est votre propre machine, ce que vous désireriez, c&#039;est simplement donner à l&#039;utilisateur principal le droit de faire cela (sans avoir à passer root) et non pas à TOUS les utilisateurs à la fois. Un programme nommé &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; permet de gérer les autorisations de ce type (exécution ou accès sur la base de l&#039;utilisateur et non des groupes).&lt;br /&gt;
&lt;br /&gt;
=== Restreindre les failles de votre système ===&lt;br /&gt;
==== Mise à jour de votre distribution ====&lt;br /&gt;
Toutes les distributions classiques ont un système qui permet la mise à jour automatique de vos logiciels. D&#039;autres ont même des mises à jour spécifiquement orientées sécurité (Debian, RedHat, Mandriva). Si votre machine est importante n&#039;hésitez pas à le faire souvent.&lt;br /&gt;
&lt;br /&gt;
==== Fermer les services inutiles ====&lt;br /&gt;
Apprenez à gérer vos [http://lea-linux.org/cached/index/Admin-admin_boot-daemons.html services].&lt;br /&gt;
&lt;br /&gt;
=== Firewalls et IDS réseaux ===&lt;br /&gt;
==== Configuration minimale de Netfilter ====&lt;br /&gt;
Une fois limité les ports réseau attendant des connexions, il faut mettre en place un firewall filtrant grâce à iptables (ou autre). Netfilter est le nom de la couche du noyau qui permet de filtrer tout ce qui passe par les interfaces réseau, tandis que iptables est une interface permettant de piloter Netfilter. Ne pas confondre, donc.&lt;br /&gt;
Des articles ont déjà été écrits à ce propos :&lt;br /&gt;
* [[Reseau-secu-iptables|iptables par l&#039;exemple]]&lt;br /&gt;
* [[Reseau-secu-murdefeu|Mur de feu pas à pas]]&lt;br /&gt;
* [[Leapro-pro_reseau-qos|QoS via iptables]]&lt;br /&gt;
&lt;br /&gt;
De manière très succincte, il faut fermer tous les ports puis ouvrir ceux dont on a besoin : le port 80 (et le 443 pour du https) doit être ouvert si l&#039;on a un serveur web, le port 110 si l&#039;on a un serveur pop dont on veut qu&#039;il soit accessible d&#039;internet, etc.&lt;br /&gt;
&lt;br /&gt;
Voici un bon script de base qu&#039;on peut adapter :&lt;br /&gt;
&amp;lt;code&amp;gt;#!/bin/sh&lt;br /&gt;
# firewall v1.0.1 Oct 13 09:48:57 PDT 2003 written by : Kernel &amp;lt;kernel@trustonme.net&amp;gt;&lt;br /&gt;
# Modifié par merlin8282 (je ne sais plus où j&#039;ai pioché l&#039;original mais il y ressemble encore vraiment beaucoup).&lt;br /&gt;
# this script is free software according to the GNU General Public License (see [www.gnu.org])&lt;br /&gt;
# Start/stop/restart/status firewall:&lt;br /&gt;
&lt;br /&gt;
firewall_start() {&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Démarrage du firewall]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
############################### REGLES PAR DEFAUT ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation de la table filter]&amp;quot;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Politique par défaut de la table filter]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# On ignore tout ce qui entre ou transite par la passerelle&lt;br /&gt;
iptables -P INPUT DROP&lt;br /&gt;
iptables -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
# On accepte, ce qui sort&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Pour éviter les mauvaises suprises, on va autoriser l&#039;accès à la loopback :&lt;br /&gt;
iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
iptables -A OUTPUT -o lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LOCAL-INTERNET ###########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[On autorise les clients à accéder à internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#On créé une nouvelle chaîne, le nom est indifférent&lt;br /&gt;
# appelons-la &amp;quot;local-internet&amp;quot;&lt;br /&gt;
iptables -N local-internet&lt;br /&gt;
&lt;br /&gt;
# On définit le profil de ceux qui appartiendront à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# &amp;quot;local-internet&amp;quot; concerne toutes les connections sauf celles venant d&#039;internet ( ! = non)&lt;br /&gt;
# En gros avec ça, vous rendez, vos serveurs inaccessibles depuis internet.&lt;br /&gt;
# Pas de panique, certains serveurs seront autorisés explicitement dans la suite.&lt;br /&gt;
# (Remplacer ppp0 en fonction de votre configuration)&lt;br /&gt;
iptables -A local-internet -m state --state NEW -i ! ppp0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#Evidemment, une fois acceptées comme &amp;quot;local-internet&amp;quot;, les connections peuvent continuer&lt;br /&gt;
# et faire des petits :&lt;br /&gt;
iptables -A local-internet -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# On termine en indiquant que les connections appartenant à &amp;quot;local-internet&amp;quot;&lt;br /&gt;
# accèdent à internet de manière transparente.&lt;br /&gt;
iptables -A INPUT -j local-internet&lt;br /&gt;
iptables -A FORWARD -j local-internet&lt;br /&gt;
&lt;br /&gt;
############################### LES TABLES NAT ET MANGLE #############################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Initialisation des tables nat et mangle]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
############################### LE MASQUERADING #########################&lt;br /&gt;
&lt;br /&gt;
# Commentez ces 2 lignes, si vous ne faîtes pas du masquerading (nat)&lt;br /&gt;
#echo &amp;quot;[Mise en place du masquerading]&amp;quot;&lt;br /&gt;
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
########################### ACTIVATION DE LA PASSERELLE ##################&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[Activation de la passerelle]&amp;quot;&lt;br /&gt;
#echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
############################## PAS DE SPOOFING ##########################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de spoofing]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then&lt;br /&gt;
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter&lt;br /&gt;
do&lt;br /&gt;
echo 1 &amp;gt; $filtre&lt;br /&gt;
done&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
########################## PAS DE SYNFLOOD ####################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Pas de synflood]&amp;quot;&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############################### PAS DE PING ############################&lt;br /&gt;
&lt;br /&gt;
# commentez ces 6 lignes, si vous autorisez les pings sur votre passerelle&lt;br /&gt;
echo &amp;quot;[Pas ping]&amp;quot;&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
############# Priorisation de la bande passante et des connections - QoS ############&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections ssh ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 443 -j TOS --set-tos Minimize-Delay&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[priorisation des connections http ...]&amp;quot;;&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport http -j TOS --set-tos Maximize-throughput&lt;br /&gt;
iptables -A PREROUTING -t mangle -p tcp --sport 3129 -j TOS --set-tos Maximize-throughput&lt;br /&gt;
&lt;br /&gt;
############################ Fonctionnalités serveurs #####################################&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[Etude des fonctionalités serveurs, visibles depuis internet]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# A ce stade, tous vos clients du réseau local et de la passerelle ont accès à internet. Mieux,&lt;br /&gt;
# vos clients du réseau local, ont accès à vos serveurs apache, proftp ... localement. Mais personne&lt;br /&gt;
# depuis internet ne peux accéder à l&#039;un des serveurs que vous hébergez.&lt;br /&gt;
&lt;br /&gt;
# Il est bien-sûr possible de dévérrouiller pontuellement l&#039;accès à un serveur depuis internet,&lt;br /&gt;
# en décommentant les 2 ou 3 lignes correspondantes.&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur ssh(22) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ssh -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur smtp(25) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport smtp -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur http(80) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport www -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur https(443) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur DNS(53) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p udp --dport domain -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport domain -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur irc(6667) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ircd -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur cvs (2401) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport cvspserver -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur FTP(21 et 20) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp -j ACCEPT&lt;br /&gt;
#iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# Ne pas décommenter les 3 lignes qui suivent.&lt;br /&gt;
# Plus généralement :&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur Mon_truc(10584) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 10584 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur aMule (4662/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 4662 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
#echo &amp;quot;[autorisation du serveur BitTorrent (6881-6889/tcp) ...]&amp;quot;&lt;br /&gt;
#iptables -A INPUT -p tcp --dport 6881:6889 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;[firewall activé !]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_stop() {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -t mangle -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t mangle -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot; [firewall descativé!]&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
firewall_restart() {&lt;br /&gt;
firewall_stop&lt;br /&gt;
sleep 2&lt;br /&gt;
firewall_start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&#039;start&#039;)&lt;br /&gt;
firewall_start&lt;br /&gt;
;;&lt;br /&gt;
&#039;stop&#039;)&lt;br /&gt;
firewall_stop&lt;br /&gt;
;;&lt;br /&gt;
&#039;restart&#039;)&lt;br /&gt;
firewall_restart&lt;br /&gt;
;;&lt;br /&gt;
&#039;status&#039;)&lt;br /&gt;
iptables -L&lt;br /&gt;
iptables -t nat -L&lt;br /&gt;
iptables -t mangle -L&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
echo &amp;quot;Usage: firewall {start|stop|restart|status}&amp;quot;&lt;br /&gt;
esac&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce script est à mettre généralement dans un fichier du dossier &amp;lt;code&amp;gt;/etc/init.d/&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
==== Configuration minimale de Snort ====&lt;br /&gt;
Voir : [http://lea-linux.org/cached/index/Reseau-secu-SNORT.html Installation de SNORT] (doc Lea).&lt;br /&gt;
&lt;br /&gt;
=== Sauvegardes et IDS systèmes ===&lt;br /&gt;
==== Mettre en place un système de sauvegarde ====&lt;br /&gt;
Le mieux est encore de lire une [http://lea-linux.org/nocache/index/Catégorie:Trucs_Sauvegarde.html# documentation correcte à ce sujet], en l&#039;occurence [http://lea-linux.org/nocache/index/Les_sauvegardes.html cet article].&lt;br /&gt;
&lt;br /&gt;
==== Configuration minimale de Tripwire ====&lt;br /&gt;
&lt;br /&gt;
== Détecter les intrusions, connaître les outils ==&lt;br /&gt;
=== Les symptômes ===&lt;br /&gt;
&lt;br /&gt;
# Votre système a un comportement étrange ou inhabituel.&lt;br /&gt;
# Un des comptes a été utilisé ou des fichiers ont été modifiés à l&#039;insu de son propriétaire légitime.&lt;br /&gt;
# Un programme ou un utilisateur inconnu se balade sur votre système.&lt;br /&gt;
# L&#039;un de vos IDS vous signale une trace très probablement dûe à une attaque (attention aux faux positifs) ou une corruption anormale de votre système de fichiers.&lt;br /&gt;
# Des outils d&#039;audit révèlent des anomalies sur votre système.&lt;br /&gt;
&lt;br /&gt;
=== who ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;who&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt; permet de voir les utilisateurs actuellement connectés (loggés) au système. Attention cependant car un agresseur peut être -- et l&#039;est certainement si c&#039;est le cas -- connecté sous votre nom, s&#039;il est parvenu à s&#039;immiscer dans votre système.&lt;br /&gt;
&lt;br /&gt;
=== ps ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt; liste tous les processus actuellement en cours d&#039;exécution sur le système. S&#039;il en est un que vous ne connaissez pas, identifiez-le. Si vous ne savez toujours pas ce que c&#039;est, pas d&#039;affollement : utilisez la commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; et voyez si vous trouvez des fichiers en rapport avec ce processus. Vous pouvez alors identifier le processus et déterminer si c&#039;est un processus &amp;quot;inoffensif&amp;quot;. Si ce n&#039;est pas le cas, vous pouvez supprimer les fichiers qu&#039;il faut. Attention toutefois à bien être certain que ce soit un logiciel malveillant que vous supprimez ! En revanche, si c&#039;est un logiciel qui s&#039;est fait infecter (par exemple apache) il suffit de réinstaller celui-ci, après avoir vidé le cache des paquets de votre gestionnaire de packages. Vérifiez aussi la configuration après réinstallation. Nul besoin de redémarrer, sauf si évidemment c&#039;est le noyau qui est corrompu, chose qui est à mon avis très rare.&lt;br /&gt;
&lt;br /&gt;
=== netstat ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;netstat&amp;lt;/code&amp;gt; est une commande qui liste toutes les connexions réseau actives sur votre machine ainsi que l&#039;état dans lequel elles sont (listening, connected, established, etc.) :&lt;br /&gt;
&amp;lt;code&amp;gt;Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat&lt;br /&gt;
tcp     0             0            0.0.0.0:3129               0.0.0.0:*                        LISTEN&lt;br /&gt;
tcp6   0             0            :::443                           :::*                                   LISTEN&amp;lt;/code&amp;gt;&lt;br /&gt;
On voit ici par exemple que le port 3129 écoute (LISTEN) sur la machine locale (0.0.0.0) et que le port 443 en fait de même.&lt;br /&gt;
Vérifiez les connexions actives, les ports ouverts, et faites le lien avec vos démons et autres programmes qui tournent. Si un port ne vous dit rien, informez-vous.&lt;br /&gt;
&lt;br /&gt;
=== lsof ===&lt;br /&gt;
La commande &amp;lt;code&amp;gt;lsof&amp;lt;/code&amp;gt; liste tous les fichiers ouverts actuellement. Elle indique aussi quel utilisateur utilise quel fichier.&lt;br /&gt;
&amp;lt;code&amp;gt;COMMAND     PID       USER   FD      TYPE     DEVICE     SIZE       NODE      NAME&lt;br /&gt;
init                    1            root       mem  REG      3,65           31432     1720343 /sbin/init&lt;br /&gt;
apache2         597        root      mem   REG      3,65           385484  25423      /usr/sbin/apache2&amp;lt;/code&amp;gt;&lt;br /&gt;
Les informations parlent d&#039;elle-mêmes. Ce sont deux cas précis parce-que le processus &amp;lt;code&amp;gt;init&amp;lt;/code&amp;gt; a le fichier &amp;lt;code&amp;gt;/sbin/init&amp;lt;/code&amp;gt; d&#039;ouvert (de même pour apache).&lt;br /&gt;
&lt;br /&gt;
=== fcheck ===&lt;br /&gt;
C&#039;est un utilitaire qui notifie l&#039;administrateur en cas de modification de fichiers. On précise dans le fichier de configuration quels fichiers ou dossiers on veut surveiller et un mail est envoyé en cas de changement.&lt;br /&gt;
&lt;br /&gt;
=== logcheck ===&lt;br /&gt;
&amp;lt;code&amp;gt;logcheck&amp;lt;/code&amp;gt; est un outil qui scrute les logs, en fait un résumé et envoie un courriel à l&#039;administrateur (généralement root en local) régulièrement. Evidemment, il est possible de configurer le niveau de ce qui est rapporté.&lt;br /&gt;
&lt;br /&gt;
=== chkrootkit ===&lt;br /&gt;
C&#039;est un logiciel important, puisqu&#039;il détecte la présence de rootkits. Son principe de fonctionnement est l&#039;écoute des ports réseau. Relativement souvent, cependant, des logiciels tels les clients peer2peer sont détectés comme une menace, bien qu&#039;ils soient innofensifs. En effet, ils utilisent des ports qui ne sont pas &amp;quot;officiellement&amp;quot; connus (contrairement au port 80, par exemple, qui est celui de tout serveur web). Donc pas d&#039;affollement.&lt;br /&gt;
&lt;br /&gt;
== Récupération d&#039;une machine corrompue ==&lt;br /&gt;
&lt;br /&gt;
==== Règles d&#039;urgence ====&lt;br /&gt;
Que faut-il faire avant toute chose ? Comment réagir ? Comment se prémunir d&#039;autres attaques ?&lt;br /&gt;
&lt;br /&gt;
# Mettre la machine hors-ligne (débranchez simplement la prise réseau)&lt;br /&gt;
# Faites une sauvegarde &#039;&#039;&#039;complète&#039;&#039;&#039; du système sur des supports qui seront mis en lieu sûr (cette image du système servira à l&#039;analyse post-mortem).&lt;br /&gt;
# Redémarrez à partir d&#039;une image sûre de votre système, restaurez les données. Dans l&#039;idéal, réinstallez complètement votre système (si possible).&lt;br /&gt;
# Changez tous les mots de passe.&lt;br /&gt;
# Faites une mise à jour &#039;&#039;&#039;complète&#039;&#039;&#039; de la distribution (installez éventuellement quelques contre-mesures supplémentaires).&lt;br /&gt;
# Remettez-la en ligne (en la surveillant plus attentivement que d&#039;habitude, les pirates reviennent souvent sur les machines qu&#039;ils ont réussi à pirater).&lt;br /&gt;
&lt;br /&gt;
Une fois ceci fait, rien ne vous dit que la ou les failles utilisées par les pirates ont disparues. Il vous faut donc procéder à l&#039;analyse post-mortem de l&#039;image de votre système pour déterminer quelle méthode ont utilisé les pirates pour compromettre votre ordinateur et vérifier que la ou les failles ont bien disparues sur votre système actuel.&lt;br /&gt;
&lt;br /&gt;
==== Analyse Post-mortem ====&lt;br /&gt;
==== À qui signaler les intrusions et comment réagir face à la loi ? ====&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Logiciel_de_s%C3%A9curit%C3%A9_informatique Wikipédia : Catégorie:Logiciel de sécurité informatique]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/S%C3%A9curit%C3%A9_informatique Wikipédia : Sécurité des systèmes d&#039;information]&lt;br /&gt;
* [http://fr.wikipedia.org/wiki/Risques_en_s%C3%A9curit%C3%A9_informatique Wikipédia : Risques en sécurité informatique]&lt;br /&gt;
* [http://www.debian.org/doc/manuals/securing-debian-howto/index.fr.html Une excellente documentation concernant la sécurisation de la distribution Debian GNU/Linux]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Même si l&#039;on connaît les risques, il est toujours impératif de rester sur ses gardes. De nouvelles menaces apparaissent régulièrement, de nouvelles failles sont découvertes chaque jour, de nouveaux virus aussi, etc. L&#039;avenir nous dira si un jour on aura des ordinateurs sûrs à 100%, chose qui n&#039;est pas impossible mais cependant improbable.&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Jmelyn</name></author>
	</entry>
</feed>