<?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=Lolotux+%28phorum%29</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=Lolotux+%28phorum%29"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Lolotux_(phorum)"/>
	<updated>2026-04-28T08:12:51Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16064</id>
		<title>Discussion:Point d&#039;accès sécurisé par hostAPd</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16064"/>
		<updated>2008-10-01T23:27:25Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Ben euh ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sur cette page, vous pouvez laisser tout ce qui vous passe par la tête, mais en rapport avec la page bien sûr :) --[[Utilisateur:Glandos|Glandos]] 22 mai 2006 à 18:57 (CEST)&lt;br /&gt;
&lt;br /&gt;
est ce que quelqu&#039;un peut nous dire comment realiser un hostap avec integrated eap server&lt;br /&gt;
qu&#039;est qu&#039;on met dans le fichier de configuration!!!&lt;br /&gt;
&lt;br /&gt;
Ahem, le mieux est quand même de bien formuler la demande... Avec une signature tout ça :)&lt;br /&gt;
Sinon, désolé, je ne suis pas au fait de ce genre de solution, je ne me suis intéressé qu&#039;à l&#039;authentification WPA PSK :( --[[Utilisateur:Glandos|Glandos]] 8 oct 2006 à 12:52 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Installation avec Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Bonsoir,&lt;br /&gt;
&lt;br /&gt;
J&#039;essay actuellement et ce depuis une semaine d&#039;installer hostapd sur mon portable afin de disposer d&#039;un accessPoint pour me connecter dessus avec ma Wii.&lt;br /&gt;
&lt;br /&gt;
Une semaine que les &amp;quot;make&amp;quot; me crachent des erreurs, que des librairies me manquent et que des erreurs m&#039;assomment.&lt;br /&gt;
&lt;br /&gt;
J&#039;ai une carte réseau intel&lt;br /&gt;
http://www3.intel.com/network/connectivity/products/wireless/wireless_n/overview.htm&lt;br /&gt;
&lt;br /&gt;
je pense que le chip est un chip intel. --&amp;gt; Est-ce compatible avec ce chip?&lt;br /&gt;
&lt;br /&gt;
Si ce n&#039;est pas le cas, ce n&#039;est pas perdu j&#039;ai un deuxième PC, avec une carte NetGear&lt;br /&gt;
http://www.netgear.com/Products/Adapters/GWirelessAdapters/WG311.aspx&lt;br /&gt;
Je suppose que le chip est un Atheros... (je n&#039;y connais rien)&lt;br /&gt;
&lt;br /&gt;
Est-ce que quelqun pourrais m&#039;expliquer comment faire??? De plus j&#039;aimerais bien réussir a insaller un logiciel sur ce foutu OS de M*****&lt;br /&gt;
&lt;br /&gt;
J&#039;espère que quelqun passera pas la et trouvera cette note...&lt;br /&gt;
&lt;br /&gt;
Merci d&#039;avance&lt;br /&gt;
&lt;br /&gt;
== Précision ==&lt;br /&gt;
&lt;br /&gt;
Bonjour&lt;br /&gt;
&lt;br /&gt;
Il y a quoi dans :&lt;br /&gt;
deny_mac_file=/etc/hostapd/hostapd.deny&lt;br /&gt;
&lt;br /&gt;
== Ben euh ? ==&lt;br /&gt;
&lt;br /&gt;
Bonjour,&lt;br /&gt;
&lt;br /&gt;
Sous Ubuntu aujourd&#039;hui est dispo dans les paquets, donc fini la compilation (bien que formateur) !&lt;br /&gt;
&lt;br /&gt;
Pour notre inconnu :&lt;br /&gt;
Sans les message d&#039;erreurs de la compil comment veux-tu qu&#039;on t&#039;aide ?&lt;br /&gt;
La carte WG311 à un chipset Marvell : Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03), donc pas de pilote accèdant aux fonctions &amp;quot;master&amp;quot; de la carte :(&lt;br /&gt;
&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan0 destroy&lt;br /&gt;
&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan1 create wlandev wlan0 wlanmode ap&lt;br /&gt;
&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
Une carte que j&#039;utilise pour les AP est : http://www.netgear.fr/produits/produit.php?prod=WPN311&lt;br /&gt;
&lt;br /&gt;
Lolotux le 02/09/2008&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16063</id>
		<title>Discussion:Point d&#039;accès sécurisé par hostAPd</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16063"/>
		<updated>2008-10-01T23:26:44Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Ben euh ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sur cette page, vous pouvez laisser tout ce qui vous passe par la tête, mais en rapport avec la page bien sûr :) --[[Utilisateur:Glandos|Glandos]] 22 mai 2006 à 18:57 (CEST)&lt;br /&gt;
&lt;br /&gt;
est ce que quelqu&#039;un peut nous dire comment realiser un hostap avec integrated eap server&lt;br /&gt;
qu&#039;est qu&#039;on met dans le fichier de configuration!!!&lt;br /&gt;
&lt;br /&gt;
Ahem, le mieux est quand même de bien formuler la demande... Avec une signature tout ça :)&lt;br /&gt;
Sinon, désolé, je ne suis pas au fait de ce genre de solution, je ne me suis intéressé qu&#039;à l&#039;authentification WPA PSK :( --[[Utilisateur:Glandos|Glandos]] 8 oct 2006 à 12:52 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Installation avec Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Bonsoir,&lt;br /&gt;
&lt;br /&gt;
J&#039;essay actuellement et ce depuis une semaine d&#039;installer hostapd sur mon portable afin de disposer d&#039;un accessPoint pour me connecter dessus avec ma Wii.&lt;br /&gt;
&lt;br /&gt;
Une semaine que les &amp;quot;make&amp;quot; me crachent des erreurs, que des librairies me manquent et que des erreurs m&#039;assomment.&lt;br /&gt;
&lt;br /&gt;
J&#039;ai une carte réseau intel&lt;br /&gt;
http://www3.intel.com/network/connectivity/products/wireless/wireless_n/overview.htm&lt;br /&gt;
&lt;br /&gt;
je pense que le chip est un chip intel. --&amp;gt; Est-ce compatible avec ce chip?&lt;br /&gt;
&lt;br /&gt;
Si ce n&#039;est pas le cas, ce n&#039;est pas perdu j&#039;ai un deuxième PC, avec une carte NetGear&lt;br /&gt;
http://www.netgear.com/Products/Adapters/GWirelessAdapters/WG311.aspx&lt;br /&gt;
Je suppose que le chip est un Atheros... (je n&#039;y connais rien)&lt;br /&gt;
&lt;br /&gt;
Est-ce que quelqun pourrais m&#039;expliquer comment faire??? De plus j&#039;aimerais bien réussir a insaller un logiciel sur ce foutu OS de M*****&lt;br /&gt;
&lt;br /&gt;
J&#039;espère que quelqun passera pas la et trouvera cette note...&lt;br /&gt;
&lt;br /&gt;
Merci d&#039;avance&lt;br /&gt;
&lt;br /&gt;
== Précision ==&lt;br /&gt;
&lt;br /&gt;
Bonjour&lt;br /&gt;
&lt;br /&gt;
Il y a quoi dans :&lt;br /&gt;
deny_mac_file=/etc/hostapd/hostapd.deny&lt;br /&gt;
&lt;br /&gt;
== Ben euh ? ==&lt;br /&gt;
&lt;br /&gt;
Bonjour,&lt;br /&gt;
&lt;br /&gt;
Sous Ubuntu aujourd&#039;hui est dispo dans les paquets, donc fini la compilation (bien que formateur) !&lt;br /&gt;
&lt;br /&gt;
Pour notre inconnu :&lt;br /&gt;
Sans les message d&#039;erreurs de la compil comment veux-tu qu&#039;on t&#039;aide ?&lt;br /&gt;
La carte WG311 à un chipset Marvell : Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03), donc pas de pilote accèdant aux fonctions &amp;quot;master&amp;quot; de la carte :(&lt;br /&gt;
&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan0 destroy&lt;br /&gt;
&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan1 create wlandev wlan0 wlanmode ap&lt;br /&gt;
&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
Une carte que j&#039;utilise pour les AP est : http://www.netgear.fr/produits/produit.php?prod=WPN311&lt;br /&gt;
&lt;br /&gt;
Lolotux&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16062</id>
		<title>Discussion:Point d&#039;accès sécurisé par hostAPd</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16062"/>
		<updated>2008-10-01T23:26:03Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Ben euh ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sur cette page, vous pouvez laisser tout ce qui vous passe par la tête, mais en rapport avec la page bien sûr :) --[[Utilisateur:Glandos|Glandos]] 22 mai 2006 à 18:57 (CEST)&lt;br /&gt;
&lt;br /&gt;
est ce que quelqu&#039;un peut nous dire comment realiser un hostap avec integrated eap server&lt;br /&gt;
qu&#039;est qu&#039;on met dans le fichier de configuration!!!&lt;br /&gt;
&lt;br /&gt;
Ahem, le mieux est quand même de bien formuler la demande... Avec une signature tout ça :)&lt;br /&gt;
Sinon, désolé, je ne suis pas au fait de ce genre de solution, je ne me suis intéressé qu&#039;à l&#039;authentification WPA PSK :( --[[Utilisateur:Glandos|Glandos]] 8 oct 2006 à 12:52 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Installation avec Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Bonsoir,&lt;br /&gt;
&lt;br /&gt;
J&#039;essay actuellement et ce depuis une semaine d&#039;installer hostapd sur mon portable afin de disposer d&#039;un accessPoint pour me connecter dessus avec ma Wii.&lt;br /&gt;
&lt;br /&gt;
Une semaine que les &amp;quot;make&amp;quot; me crachent des erreurs, que des librairies me manquent et que des erreurs m&#039;assomment.&lt;br /&gt;
&lt;br /&gt;
J&#039;ai une carte réseau intel&lt;br /&gt;
http://www3.intel.com/network/connectivity/products/wireless/wireless_n/overview.htm&lt;br /&gt;
&lt;br /&gt;
je pense que le chip est un chip intel. --&amp;gt; Est-ce compatible avec ce chip?&lt;br /&gt;
&lt;br /&gt;
Si ce n&#039;est pas le cas, ce n&#039;est pas perdu j&#039;ai un deuxième PC, avec une carte NetGear&lt;br /&gt;
http://www.netgear.com/Products/Adapters/GWirelessAdapters/WG311.aspx&lt;br /&gt;
Je suppose que le chip est un Atheros... (je n&#039;y connais rien)&lt;br /&gt;
&lt;br /&gt;
Est-ce que quelqun pourrais m&#039;expliquer comment faire??? De plus j&#039;aimerais bien réussir a insaller un logiciel sur ce foutu OS de M*****&lt;br /&gt;
&lt;br /&gt;
J&#039;espère que quelqun passera pas la et trouvera cette note...&lt;br /&gt;
&lt;br /&gt;
Merci d&#039;avance&lt;br /&gt;
&lt;br /&gt;
== Précision ==&lt;br /&gt;
&lt;br /&gt;
Bonjour&lt;br /&gt;
&lt;br /&gt;
Il y a quoi dans :&lt;br /&gt;
deny_mac_file=/etc/hostapd/hostapd.deny&lt;br /&gt;
&lt;br /&gt;
== Ben euh ? ==&lt;br /&gt;
&lt;br /&gt;
Bonjour,&lt;br /&gt;
&lt;br /&gt;
Sous Ubuntu aujourd&#039;hui est dispo dans les paquets, donc fini la compilation (bien que formateur) !&lt;br /&gt;
&lt;br /&gt;
Pour notre inconnu :&lt;br /&gt;
Sans les message d&#039;erreurs de la compil comment veux-tu qu&#039;on t&#039;aide ?&lt;br /&gt;
La carte WG311 à un chipset Marvell : Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03), donc pas de pilote accèdant aux fonctions &amp;quot;master&amp;quot; de la carte :(&lt;br /&gt;
&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan0 destroy&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan1 create wlandev wlan0 wlanmode ap&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
Une carte que j&#039;utilise pour les AP est : http://www.netgear.fr/produits/produit.php?prod=WPN311&lt;br /&gt;
&lt;br /&gt;
Lolotux&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16061</id>
		<title>Discussion:Point d&#039;accès sécurisé par hostAPd</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16061"/>
		<updated>2008-10-01T23:25:45Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Ben euh ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sur cette page, vous pouvez laisser tout ce qui vous passe par la tête, mais en rapport avec la page bien sûr :) --[[Utilisateur:Glandos|Glandos]] 22 mai 2006 à 18:57 (CEST)&lt;br /&gt;
&lt;br /&gt;
est ce que quelqu&#039;un peut nous dire comment realiser un hostap avec integrated eap server&lt;br /&gt;
qu&#039;est qu&#039;on met dans le fichier de configuration!!!&lt;br /&gt;
&lt;br /&gt;
Ahem, le mieux est quand même de bien formuler la demande... Avec une signature tout ça :)&lt;br /&gt;
Sinon, désolé, je ne suis pas au fait de ce genre de solution, je ne me suis intéressé qu&#039;à l&#039;authentification WPA PSK :( --[[Utilisateur:Glandos|Glandos]] 8 oct 2006 à 12:52 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Installation avec Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Bonsoir,&lt;br /&gt;
&lt;br /&gt;
J&#039;essay actuellement et ce depuis une semaine d&#039;installer hostapd sur mon portable afin de disposer d&#039;un accessPoint pour me connecter dessus avec ma Wii.&lt;br /&gt;
&lt;br /&gt;
Une semaine que les &amp;quot;make&amp;quot; me crachent des erreurs, que des librairies me manquent et que des erreurs m&#039;assomment.&lt;br /&gt;
&lt;br /&gt;
J&#039;ai une carte réseau intel&lt;br /&gt;
http://www3.intel.com/network/connectivity/products/wireless/wireless_n/overview.htm&lt;br /&gt;
&lt;br /&gt;
je pense que le chip est un chip intel. --&amp;gt; Est-ce compatible avec ce chip?&lt;br /&gt;
&lt;br /&gt;
Si ce n&#039;est pas le cas, ce n&#039;est pas perdu j&#039;ai un deuxième PC, avec une carte NetGear&lt;br /&gt;
http://www.netgear.com/Products/Adapters/GWirelessAdapters/WG311.aspx&lt;br /&gt;
Je suppose que le chip est un Atheros... (je n&#039;y connais rien)&lt;br /&gt;
&lt;br /&gt;
Est-ce que quelqun pourrais m&#039;expliquer comment faire??? De plus j&#039;aimerais bien réussir a insaller un logiciel sur ce foutu OS de M*****&lt;br /&gt;
&lt;br /&gt;
J&#039;espère que quelqun passera pas la et trouvera cette note...&lt;br /&gt;
&lt;br /&gt;
Merci d&#039;avance&lt;br /&gt;
&lt;br /&gt;
== Précision ==&lt;br /&gt;
&lt;br /&gt;
Bonjour&lt;br /&gt;
&lt;br /&gt;
Il y a quoi dans :&lt;br /&gt;
deny_mac_file=/etc/hostapd/hostapd.deny&lt;br /&gt;
&lt;br /&gt;
== Ben euh ? ==&lt;br /&gt;
&lt;br /&gt;
Bonjour,&lt;br /&gt;
&lt;br /&gt;
Sous Ubuntu aujourd&#039;hui est dispo dans les paquets, donc fini la compilation (bien que formateur) !&lt;br /&gt;
&lt;br /&gt;
Pour notre inconnu :&lt;br /&gt;
Sans les message d&#039;erreurs de la compil comment veux-tu qu&#039;on t&#039;aide ?&lt;br /&gt;
La carte WG311 à un chipset Marvell : Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03), donc pas de pilote accèdant aux fonctions &amp;quot;master&amp;quot; de la carte :(&lt;br /&gt;
&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan0 destroy&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan1 create wlandev wlan0 wlanmode ap&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
Une carte que j&#039;utilise pour les AP est : http://www.netgear.fr/produits/produit.php?prod=WPN311&lt;br /&gt;
&lt;br /&gt;
Lolotux&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16060</id>
		<title>Discussion:Point d&#039;accès sécurisé par hostAPd</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=16060"/>
		<updated>2008-10-01T23:25:19Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : Ben euh ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sur cette page, vous pouvez laisser tout ce qui vous passe par la tête, mais en rapport avec la page bien sûr :) --[[Utilisateur:Glandos|Glandos]] 22 mai 2006 à 18:57 (CEST)&lt;br /&gt;
&lt;br /&gt;
est ce que quelqu&#039;un peut nous dire comment realiser un hostap avec integrated eap server&lt;br /&gt;
qu&#039;est qu&#039;on met dans le fichier de configuration!!!&lt;br /&gt;
&lt;br /&gt;
Ahem, le mieux est quand même de bien formuler la demande... Avec une signature tout ça :)&lt;br /&gt;
Sinon, désolé, je ne suis pas au fait de ce genre de solution, je ne me suis intéressé qu&#039;à l&#039;authentification WPA PSK :( --[[Utilisateur:Glandos|Glandos]] 8 oct 2006 à 12:52 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Installation avec Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Bonsoir,&lt;br /&gt;
&lt;br /&gt;
J&#039;essay actuellement et ce depuis une semaine d&#039;installer hostapd sur mon portable afin de disposer d&#039;un accessPoint pour me connecter dessus avec ma Wii.&lt;br /&gt;
&lt;br /&gt;
Une semaine que les &amp;quot;make&amp;quot; me crachent des erreurs, que des librairies me manquent et que des erreurs m&#039;assomment.&lt;br /&gt;
&lt;br /&gt;
J&#039;ai une carte réseau intel&lt;br /&gt;
http://www3.intel.com/network/connectivity/products/wireless/wireless_n/overview.htm&lt;br /&gt;
&lt;br /&gt;
je pense que le chip est un chip intel. --&amp;gt; Est-ce compatible avec ce chip?&lt;br /&gt;
&lt;br /&gt;
Si ce n&#039;est pas le cas, ce n&#039;est pas perdu j&#039;ai un deuxième PC, avec une carte NetGear&lt;br /&gt;
http://www.netgear.com/Products/Adapters/GWirelessAdapters/WG311.aspx&lt;br /&gt;
Je suppose que le chip est un Atheros... (je n&#039;y connais rien)&lt;br /&gt;
&lt;br /&gt;
Est-ce que quelqun pourrais m&#039;expliquer comment faire??? De plus j&#039;aimerais bien réussir a insaller un logiciel sur ce foutu OS de M*****&lt;br /&gt;
&lt;br /&gt;
J&#039;espère que quelqun passera pas la et trouvera cette note...&lt;br /&gt;
&lt;br /&gt;
Merci d&#039;avance&lt;br /&gt;
&lt;br /&gt;
== Précision ==&lt;br /&gt;
&lt;br /&gt;
Bonjour&lt;br /&gt;
&lt;br /&gt;
Il y a quoi dans :&lt;br /&gt;
deny_mac_file=/etc/hostapd/hostapd.deny&lt;br /&gt;
&lt;br /&gt;
== Ben euh ? ==&lt;br /&gt;
&lt;br /&gt;
Bonjour,&lt;br /&gt;
&lt;br /&gt;
Sous Ubuntu aujourd&#039;hui est dispo dans les paquets, donc fini la compilation (bien que formateur) !&lt;br /&gt;
&lt;br /&gt;
Pour notre inconnu :&lt;br /&gt;
Sans les message d&#039;erreurs de la compil comment veux-tu qu&#039;on t&#039;aide ?&lt;br /&gt;
La carte WG311 à un chipset Marvell : Marvell Technology Group Ltd. 88w8335 [Libertas] 802.11b/g Wireless (rev 03), donc pas de pilote accèdant aux fonctions &amp;quot;master&amp;quot; de la carte :(&lt;br /&gt;
&lt;br /&gt;
# wlanconfig wlan0 destroy&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
debian:/home/lolo# wlanconfig wlan1 create wlandev wlan0 wlanmode ap&lt;br /&gt;
wlanconfig: ioctl: Operation not supported&lt;br /&gt;
&lt;br /&gt;
Une carte que j&#039;utilise pour les AP est : http://www.netgear.fr/produits/produit.php?prod=WPN311&lt;br /&gt;
&lt;br /&gt;
Lolotux&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=15871</id>
		<title>Point d&#039;accès sécurisé par hostAPd</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=15871"/>
		<updated>2008-07-21T15:25:02Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Pour tout le monde */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[Catégorie:Administration réseau]][[Catégorie:Réseau]][[Catégorie:Réseau local]]&lt;br /&gt;
Ce n&#039;est pas vraiment un tutoriel, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriels. Je tiens simplement à vous prévenir qu&#039;avant ce week-end, je n&#039;avais jamais installé de matériels Wi-fi. Je ne suis donc pas un expert, mais j&#039;ai appris un certain nombre de choses qui pourront être utiles.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
== But recherché ==&lt;br /&gt;
Tout d&#039;abord, il convient de préciser ce que je voulais faire, en plus de « installer le wifi chez moi ». Pour ne pas verser dans l&#039;étalage de vie privée, voici ce dont je disposais :&lt;br /&gt;
* Une freebox basique (sans fonctions routeur ni wifi).&lt;br /&gt;
* Un PC (passerelle pour le reste du document) connecté directement à la freebox sous Debian/testing. Elle dispose de deux cartes réseau Ethernet RJ45 (filaire) qui sont identifiées par l&#039;OS en tant que eth_adsl et eth_local. La freebox est reliée sur eth_adsl. Un firewall tourne entre eth_adsl et eth_local à l&#039;aide d&#039;iptables.&lt;br /&gt;
* Un switch branché sur eth_local, et sur lequel sont reliés deux clients de manière on ne peut plus classique.&lt;br /&gt;
* Une carte Wi-Fi D-Link DWL-G520 PCI avec chipset Atheros (le chipset importe beaucoup plus que la carte, croyez moi !!).&lt;br /&gt;
* Un ordinateur portable Asus A7D, avec une carte Ethernet et une carte Wi-fi avec un chipset Broadcom 4318 (là encore, il a fallu le trouver...)&lt;br /&gt;
&lt;br /&gt;
TODO : schéma&lt;br /&gt;
&lt;br /&gt;
Le but est donc pour moi de faire que le portable puisse se brancher en Wi-fi sur le réseau local, exactement comme les autres clients. Je ne voulais pas me taper des règles firewall en plus, alors j&#039;ai opté pour le bridge.&lt;br /&gt;
&lt;br /&gt;
== Prérequis ==&lt;br /&gt;
Voici les connaissances ou le matériel que je considère comme requis :&lt;br /&gt;
* La passerelle tourne sous Debian.&lt;br /&gt;
* La passerelle dispose d&#039;un serveur DHCP fonctionnel pour le réseau local.&lt;br /&gt;
* Les commandes tapées sur la passerelle sont à faire en tant que root. Vous devez donc avoir le mot de passe administrateur de cette machine.&lt;br /&gt;
* Avoir quelques connaissances requises, au moins sur le vocabulaire d&#039;un réseau local.&lt;br /&gt;
* Pour le Wi-fi et son vocabulaire, vous pouvez aller voir [[hardware-hard_net-wifi|par là]]&lt;br /&gt;
* Un pot de rillettes et du bon pain. Les musulmans sont bien évidemment invités à choisir une mousse de canard ou des tranches de dinde.&lt;br /&gt;
&lt;br /&gt;
= Le bridge, invention magique =&lt;br /&gt;
== Présentation du bridge ==&lt;br /&gt;
Le bridge (pont en anglais) permet de faire une chose miraculeuse : réunir de manière transparente plusieurs cartes réseaux, en une seule virtuelle. Il y a quelques inconvénients, notamment sur le fait que le démarrage est un peu plus lent, le temps que le bridge se fasse, et que c&#039;est un peu compliqué pour la tête. Mais je voulais vraiment que le portable se connecte en Wi-fi en changeant le minimum de choses sur la passerelle.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Pour cela, il est donc nécessaire d&#039;avoir un noyau compilé avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne cherchez pas, c&#039;est bon, ça ira :) Pour les autres, trouvez comment activer le bridging dans le noyau, je ne sais pas comment on fait :p&lt;br /&gt;
Ensuite, il faut installer les utilitaires nécessaires :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install bridge-utils&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les autres systèmes ça doit être dans le même style.&lt;br /&gt;
Il faut donc créer ce bridge. Sachez d&#039;abord que tout sera géré par ce futur bridge. Cela veut donc dire que vous ne parlerez plus directement à vos interfaces (ici eth_local et ath0), mais directement à bridge_local (j&#039;aime bien les noms explicites :) ). Cela implique donc que vous n&#039;avez RIEN à configurer sur les cartes réseaux qui vont être incluses dans ce bridge, et même mieux : il faut enlever ce qui est propre à la configuration de ces cartes.&lt;br /&gt;
Chez Debian, tout se passe dans /etc/network/interfaces ce qui est plutôt pratique. Voici donc le fichier AVANT l&#039;installation du bridge :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# This file describes the network interfaces available on your system&lt;br /&gt;
&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth_adsl&lt;br /&gt;
iface eth_adsl inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto eth_local&lt;br /&gt;
iface eth_local inet static&lt;br /&gt;
       address 192.168.0.254&lt;br /&gt;
       netmask 255.255.255.0&lt;br /&gt;
       broadcast 192.168.0.255&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La carte eth_adsl est donc initialisée au démarrage (ligne auto eth_adsl), a une adresse IPv4 (inet) et ses paramètres réseaux lui sont attribués automatiquement (dhcp), en l&#039;occurence par la Freebox.&lt;br /&gt;
De même, la carte eth_local est initialisée au démarrage, mais ses paramètres réseaux sont fixés par moi (static), avec  les paramètres spécifiés en dessous. Je pense que c&#039;est assez clair.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;installation du bridge, voici ce que j&#039;ai :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth_adsl&lt;br /&gt;
iface eth_adsl inet dhcp&lt;br /&gt;
&lt;br /&gt;
iface ath0 inet static&lt;br /&gt;
        wireless-mode master&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
auto bridge_local&lt;br /&gt;
iface bridge_local inet static&lt;br /&gt;
        address 192.168.0.254&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        broadcast 192.168.0.255&lt;br /&gt;
        bridge_ports eth_local ath0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La partie eth_adsl n&#039;a pas changé : c&#039;est normal :) Par contre, on voit que bridge_local a les même paramètres que mon ex-carte eth_local. Sauf que en plus, on lui dit que c&#039;est un bridge qui contient les cartes eth_local et ath0. Ainsi, dès que j&#039;envoie des paquets depuis la passerelle sur l&#039;adresse 192.168.0.254, ceux-ci seront transmis automatiquement aux deux cartes, et réciproquement, lorsqu&#039;une carte reçoit un paquet pour 192.168.0.254, elle le transmet au bridge. Moi, je trouve ça magique :)&lt;br /&gt;
Il y a également une partie sur ath0 me direz-vous. Oui d&#039;accord, mais elle n&#039;est là que pour régler certains paramètres propres au Wi-fi, rien de plus ! Vous remarquerez qu&#039;il n&#039;y a pas de ligne auto ath0, donc elle n&#039;est pas initialisée au démarrage.&lt;br /&gt;
&lt;br /&gt;
== Activation ==&lt;br /&gt;
Ceci étant fait, il y a plusieurs méthodes pour activer ce bridge. Sachez que dans la plupart des cas, ceci va foutre en l&#039;air la connexion ! C&#039;est ce qui m&#039;est arrivé, ça fait un peu tout drôle. Normalement, l&#039;ADSL reste en place, mais ce n&#039;est pas le cas de la connexion sur eth_local.&lt;br /&gt;
&lt;br /&gt;
Soit vous faites :&amp;lt;code&amp;gt;/etc/init.d/networking force-reload&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit :&amp;lt;code&amp;gt;/etc/init.d/networking stop &amp;amp;&amp;amp; /etc/init.d/networking start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&amp;lt;code&amp;gt;reboot&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je sais pas pourquoi je mets la commande... On sait jamais :p&lt;br /&gt;
Enfin, après l&#039;une de ses trois méthodes (voire les trois), en tapant&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifconfig&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous devriez voir ça :&lt;br /&gt;
&amp;lt;code&amp;gt;ath0      Lien encap:Ethernet  HWaddr 00:15:E9:3F:AA:90  &lt;br /&gt;
          adr inet6: fe80::215:e9ff:fe3f:aa90/64 Scope:Lien&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:2290  Metric:1&lt;br /&gt;
          RX packets:163080 errors:955516 dropped:0 overruns:0 frame:955509&lt;br /&gt;
          TX packets:315546 errors:613 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 lg file transmission:200 &lt;br /&gt;
          RX bytes:13726343 (13.0 MiB)  TX bytes:462013643 (440.6 MiB)&lt;br /&gt;
          Interruption:185 Mémoire:e08e0000-e08f0000 &lt;br /&gt;
&lt;br /&gt;
bridge_lo Lien encap:Ethernet  HWaddr 00:11:95:C5:44:61  &lt;br /&gt;
          inet adr:192.168.0.254  Bcast:192.168.0.255  Masque:255.255.255.0&lt;br /&gt;
          adr inet6: fe80::211:95ff:fec5:4461/64 Scope:Lien&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:294178 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:454533 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 lg file transmission:0 &lt;br /&gt;
          RX bytes:458148569 (436.9 MiB)  TX bytes:541885943 (516.7 MiB)&lt;br /&gt;
&lt;br /&gt;
eth_adsl  Lien encap:Ethernet  HWaddr 00:11:D8:09:6D:31  &lt;br /&gt;
          inet adr:xx.xx.xx.xx  Bcast:xx.xx.xx.xx  Masque:255.255.255.0&lt;br /&gt;
          adr inet6: fe80::211:d8ff:fe09:6d31/64 Scope:Lien&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:279243 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:264750 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 lg file transmission:1000 &lt;br /&gt;
          RX bytes:189704796 (180.9 MiB)  TX bytes:66643253 (63.5 MiB)&lt;br /&gt;
          Interruption:177 Adresse de base:0xb000 &lt;br /&gt;
&lt;br /&gt;
eth_local Lien encap:Ethernet  HWaddr 00:11:95:C5:44:61  &lt;br /&gt;
          adr inet6: fe80::211:95ff:fec5:4461/64 Scope:Lien&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:403023 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:142751 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 lg file transmission:1000 &lt;br /&gt;
          RX bytes:460239899 (438.9 MiB)  TX bytes:80409812 (76.6 MiB)&lt;br /&gt;
          Interruption:169 Adresse de base:0xd800 &lt;br /&gt;
&lt;br /&gt;
lo        Lien encap:Boucle locale  &lt;br /&gt;
          inet adr:127.0.0.1  Masque:255.0.0.0&lt;br /&gt;
          adr inet6: ::1/128 Scope:Hôte&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:38438 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:38438 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 lg file transmission:0 &lt;br /&gt;
          RX bytes:3297781 (3.1 MiB)  TX bytes:3297781 (3.1 MiB)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On constate donc que eth_local et ath0 n&#039;ont aucune adresse IPv4 (inet adr) et que bridge_local a bien l&#039;adresse 192.168.0.254. Quant à eth_adsl, pour les xx, c&#039;est moi qui les ai mis : j&#039;ai une IP fixe, je tiens à garder ma vie privée :)&lt;br /&gt;
&lt;br /&gt;
Avant de passer à la prochaine étape, je vous conseille de suivre la procédure suivante :&lt;br /&gt;
* Découper une tranche de pain.&lt;br /&gt;
* La tartiner abondamment de rillettes (ou de mousse de canard :) ).&lt;br /&gt;
* La savourer délicatement.&lt;br /&gt;
Cela permet, en plus de reposer vos mains meurtries par ces infâmes périphériques de saisie, de soulager les cris blafards de votre estomac. Vous pourrez alors apprécier à leur juste valeur les hormones de bien-être sécrétées par une digestion bien méritée :)&lt;br /&gt;
&lt;br /&gt;
= Créer le point d&#039;accès =&lt;br /&gt;
== Présentation de hostAPd ==&lt;br /&gt;
Étape suivante : transformer une simple carte Wi-fi en puissant point d&#039;accès (accesss point en anglais soit AP). Pour cela, après avoir parcouru rapidement le web, une solution s&#039;est imposée : hostAPd disponible sur [http://hostap.epitest.fi/hostapd/ cette page]&lt;br /&gt;
Attention, il faut différencier les 3 projets du site : hostAP driver, hostAPd et wpa_supplicant. hostAP driver ne m&#039;intéressait pas : c&#039;est l&#039;implémentation libre d&#039;un driver pour carte Wi-fi. Wpa_supplicant est un client WPA, comme on va le voir par la suite. Et hostAPd est le logiciel capable de faire tourner votre carte Wi-fi « de base » en point d&#039;accès genre « Enterprise » :)&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Lors de la première version de ce tutoriel, il fallait recompiler hostAPd soit même pour que ça marche. Aujourd&#039;hui, plus la peine de se fatiguer, du moins pour les cartes avec chipset Atheros. Je laisse cependant le passage sur la compilation, pour les gens dans le besoin&lt;br /&gt;
&lt;br /&gt;
=== Avec les paquets Debian ===&lt;br /&gt;
Je ne pense pas surprendre la foule en disant qu&#039;il faut simplement lancer la commande :&amp;lt;code&amp;gt;apt-get install hostapd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Simple, efficace, propre. Vous pouvez passer au chapitre suivant :)&lt;br /&gt;
&lt;br /&gt;
=== Compilation ===&lt;br /&gt;
La première fois, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd étaient présents mais pas compilés avec les bonnes options pour madwifi, et les sources étaient celles de la version 0.5.0 pleines de bugs corrigés depuis. J&#039;ai perdu un temps monstre sur ça, que je vais vous épargner ici :) Mais du coup le moment est bien choisi pour aborder la compilation « à la mimine ».&lt;br /&gt;
&lt;br /&gt;
Pour cela, il faut d&#039;abord installer quelques outils, dont le fameux gcc. Sous Debian (et là ça marche bien :p ) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install build-essential gcc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Je pense que seul gcc est nécessaire dans notre cas, mais bon on sait jamais, ça pourra servir :). Ensuite, on va avoir besoin des sources de hostAPd (normal). Ce qui m&#039;intéressait étant aussi de faire fonctionner hostAPd avec madwifi, il me fallait également les sources de madwifi. On fait donc un petit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install madwifi-source&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et un téléchargement de hostAPd dans le répertoire /usr/src/, classique pour toute compilation standard. Il faut maintenant extraire les fichiers :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tar xvfj madwifi.tar.bz2&lt;br /&gt;
tar xvfz hostapd-0.5.2.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous avez donc remarqué qu&#039;à cette heure, la version en cours de hostAPd est la 0.5.2 ;) Rendez-vous dans le répertoire hostapd-0.5.2/ créé lors de l&#039;extraction. Vous pouvez lire le README, c&#039;est en anglais, mais ça peut faire du bien de temps à autre. L&#039;essentiel à comprendre est qu&#039;il faut créer un fichier .config lui disant quoi mettre lors de la compilation. Heureusement, un listing des options est présent. Faites donc :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cp defconfig .config&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Et éditez ce fichier .config. Voilà à quoi ressemble le mien :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# Driver interface for Host AP driver&lt;br /&gt;
#CONFIG_DRIVER_HOSTAP=y&lt;br /&gt;
&lt;br /&gt;
# Driver interface for wired authenticator&lt;br /&gt;
#CONFIG_DRIVER_WIRED=y&lt;br /&gt;
&lt;br /&gt;
# Driver interface for madwifi driver&lt;br /&gt;
CONFIG_DRIVER_MADWIFI=y&lt;br /&gt;
CFLAGS += -I../modules/madwifi/ # change to reflect local setup; directory for madwifi src&lt;br /&gt;
&lt;br /&gt;
# Driver interface for Prism54 driver&lt;br /&gt;
#CONFIG_DRIVER_PRISM54=y&lt;br /&gt;
&lt;br /&gt;
# Driver interface for drivers using Devicescape IEEE 802.11 stack&lt;br /&gt;
#CONFIG_DRIVER_DEVICESCAPE=y&lt;br /&gt;
&lt;br /&gt;
# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)&lt;br /&gt;
#CONFIG_DRIVER_BSD=y&lt;br /&gt;
#CFLAGS += -I/usr/local/include&lt;br /&gt;
#LIBS += -L/usr/local/lib&lt;br /&gt;
&lt;br /&gt;
# IEEE 802.11F/IAPP&lt;br /&gt;
#CONFIG_IAPP=y&lt;br /&gt;
&lt;br /&gt;
# WPA2/IEEE 802.11i RSN pre-authentication&lt;br /&gt;
#CONFIG_RSN_PREAUTH=y&lt;br /&gt;
&lt;br /&gt;
# IEEE 802.11i/IEEE 802.11e STAKey negotiation for direct link connection&lt;br /&gt;
#CONFIG_STAKEY=y&lt;br /&gt;
&lt;br /&gt;
# Integrated EAP server&lt;br /&gt;
CONFIG_EAP=y&lt;br /&gt;
&lt;br /&gt;
# EAP-MD5 for the integrated EAP server&lt;br /&gt;
#CONFIG_EAP_MD5=y&lt;br /&gt;
&lt;br /&gt;
# EAP-TLS for the integrated EAP server&lt;br /&gt;
CONFIG_EAP_TLS=y&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout le reste est commenté, j&#039;en ai rien à faire, je n&#039;ai besoin que du WPA avec un driver madwifi. Pour les plus curieux, j&#039;ai dû laisser CONFIG_EAP et CONFIG_EAP_TLS, parce que sinon ça plantait, ce sera visiblement corrigé dans la version 0.5.3. Remarquez aussi la ligne pour madwifi : CFLAGS contient le chemin vers les sources de madwifi, fraîchement décompressé dans le répertoire /usr/src/modules/madwifi/. Sauvegardez et quittez.&lt;br /&gt;
C&#039;est parti pour l&#039;instant geek crucial :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Simple non ? Moi ça me déroute parfois tout ce qu&#039;il peut écrire avec aussi peu de lettres tapées :) Si tout se passe bien, il n&#039;affiche aucune ligne trop inquiétante remplie d&#039;étoiles et de mot ERROR. Sinon, ben euh, posez vos questions après le bip.&lt;br /&gt;
&lt;br /&gt;
Maintenant que c&#039;est compilé, faut l&#039;installer. En gros, la plupart du temps, ça consiste en un simple copier/coller des fichiers compilés. Rassurez-vous la procédure standard est on ne peut plus explicite :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et pouf. Comme c&#039;est indiqué, les exécutables sont installés dans /usr/local/bin par défaut. C&#039;est très bien là où c&#039;est :)&lt;br /&gt;
&lt;br /&gt;
== Configuration de hostAPd ==&lt;br /&gt;
Prochaine étape : la configuration de hostAPd. C&#039;est pas trop dur, à la base, il y a trois fichiers, placés comme d&#039;habitude dans /etc. À savoir :&lt;br /&gt;
* &#039;&#039;/etc/default/hostapd&#039;&#039; - Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
* &#039;&#039;/etc/hostapd/hostapd.conf&#039;&#039; - Fichier de configuration de hostAPd&lt;br /&gt;
* &#039;&#039;/etc/init.d/hostapd&#039;&#039; - Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&lt;br /&gt;
&lt;br /&gt;
=== Après une compilation manuelle ===&lt;br /&gt;
Si vous avez compilé vous même hostapd, je vous propose une astuce pour pas trop se casser la tête : installer le paquet Debian de hostAPd, qui, même s&#039;il est défectueux, installe les fichiers par défaut au bon endroit pour vous. Il n&#039;y aura plus qu&#039;à faire quelques retouches. C&#039;est parti :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get install hostapd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Si jamais vous voulez retirer les exécutables (présent dans /sbin ou /usr/sbin pour le paquet Debian) pour éviter de s&#039;emmêler les pinceaux :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-get remove hostapd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :)&lt;br /&gt;
&lt;br /&gt;
On va d&#039;abord éditer le script afin de lancer le bon programme. Dans votre éditeur de texte chercher la ligne suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DAEMON=/usr/sbin/hostapd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pour tout le monde ===&lt;br /&gt;
Maintenant, on va aller configurer hostAPd. Le plus dur est de lire tous les commentaires en fait :) Mais pour aller un peu plus vite, voici les lignes qui servent dans MON cas (simple WPA-PSK) :&lt;br /&gt;
&amp;lt;code&amp;gt;#La carte Wifi, forcément indispensable :)&lt;br /&gt;
interface=ath0&lt;br /&gt;
&lt;br /&gt;
#Si la carte est bridgée et utilise madwifi, il faut préciser le nom du bridge&lt;br /&gt;
bridge=bridge_local&lt;br /&gt;
&lt;br /&gt;
# Le driver nécessité par la carte&lt;br /&gt;
driver=madwifi&lt;br /&gt;
&lt;br /&gt;
#Options de log par défaut, elles sont très bien :)&lt;br /&gt;
logger_syslog=-1&lt;br /&gt;
logger_syslog_level=1&lt;br /&gt;
logger_stdout=-1&lt;br /&gt;
logger_stdout_level=2&lt;br /&gt;
&lt;br /&gt;
debug=2&lt;br /&gt;
&lt;br /&gt;
dump_file=/tmp/hostapd.dump&lt;br /&gt;
&lt;br /&gt;
#Contrôle du programme, encore une fois, le réglage par défaut est nickel :)&lt;br /&gt;
ctrl_interface=/var/run/hostapd&lt;br /&gt;
&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
&lt;br /&gt;
#Le nom de votre réseau. C&#039;est important. Choisissez un nom à peu près reconnaissable et pas trop long.&lt;br /&gt;
ssid=MADOUIFI&lt;br /&gt;
&lt;br /&gt;
# Comment gérer les adresses MAC (adresse Hardware des cartes réseaux)&lt;br /&gt;
# C&#039;est une sécurité qui peut facilement être contournée, mais est&lt;br /&gt;
# néanmoins pratique, car elle est facile à mettre en place&lt;br /&gt;
# En effet, hostAPd va vérifier l&#039;adresse MAC de la carte Wifi qui fait une&lt;br /&gt;
# demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le&lt;br /&gt;
# processus d&#039;identification, soit s&#039;arrêter et refuser la carte.&lt;br /&gt;
# Les paramètres possibles sont les suivants :&lt;br /&gt;
# 0 : Tout accepter à moins qu&#039;elle ne soit dans la liste noire&lt;br /&gt;
# 1 : Tout refuser, à moins qu&#039;elle ne soit dans la liste blanche&lt;br /&gt;
# 2 : Vérifier l&#039;adresse auprès d&#039;un serveur RADIUS (honnêtement, pour son réseau local, ça ne sert à rien)&lt;br /&gt;
# Le meilleur paramètre pour commencer est 1. Ça réduit de beaucoup les risques de piratage.&lt;br /&gt;
macaddr_acl=1&lt;br /&gt;
&lt;br /&gt;
#Chemin des fichiers pour les listes noire et blanche&lt;br /&gt;
# Je vous conseille de les créer tout de suite, on verra plus tard pour les remplir correctement&lt;br /&gt;
accept_mac_file=/etc/hostapd/hostapd.accept&lt;br /&gt;
deny_mac_file=/etc/hostapd/hostapd.deny&lt;br /&gt;
&lt;br /&gt;
# La description anglaise pour les curieux :)&lt;br /&gt;
auth_algs=1&lt;br /&gt;
&lt;br /&gt;
#Celui là, je sais pas trop... Je crois qu&#039;on peut l&#039;enlever, mais bon je suis pas sûr, j&#039;ai pas testé :)&lt;br /&gt;
eap_server=0&lt;br /&gt;
&lt;br /&gt;
#Dis qu&#039;on veut faire du WPA-PSK&lt;br /&gt;
wpa=1&lt;br /&gt;
&lt;br /&gt;
# Votre clé, le coeur de la sécurité du WPA-PSK :)&lt;br /&gt;
wpa_passphrase=SupèRecléDelAmor,Avecdetrucch3l0us;)&lt;br /&gt;
&lt;br /&gt;
# Pour un petit peu plus de sécurité, vous pouvez attribuer une clé WPA par adresse MAC (donc par ordinateur).&lt;br /&gt;
#C&#039;est quand même un peu plus embêtant à maintenir...&lt;br /&gt;
#wpa_psk_file=/etc/hostapd/wpa_psk&lt;br /&gt;
&lt;br /&gt;
# On définit ce qu&#039;on veut comme WPA&lt;br /&gt;
wpa_key_mgmt=WPA-PSK&lt;br /&gt;
&lt;br /&gt;
# Et l&#039;algo de cryptage&lt;br /&gt;
wpa_pairwise=TKIP&lt;br /&gt;
&lt;br /&gt;
# Quelques options temporelles. Pas forcément nécessaire pour que ça marche :)&lt;br /&gt;
wpa_group_rekey=600&lt;br /&gt;
&lt;br /&gt;
wpa_gmk_rekey=86400&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et la touche finale. Éditez le fichier /etc/default/hostapd et décommentez la ligne suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;RUN_DAEMON=yes&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Et voilà. C&#039;est fini. Enfin, non, ce n&#039;est pas tout à fait exact. La configuration du serveur est finie. Il reste à la tester et à configurer des clients :) En avant toute !&lt;br /&gt;
&lt;br /&gt;
== Première validation du point d&#039;accès ==&lt;br /&gt;
Premier test. Normalement, la commande suivante :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/init.d/hostapd start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
devrait donner un résultat positif. Faites ensuite&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/init.d/hostapd stop&lt;br /&gt;
hostapd -dd /etc/hostapd/hostapd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cela lance le programme en avant plan en mode débug, idéal pour vérifier que tout marche bien. Ne vous inquiétez pas trop de ce qu&#039;il dit, tant qu&#039;il ne vous redonne pas la main, c&#039;est bon signe :) En général, il dit qu&#039;il se met en attente. Pendant qu&#039;il se lance, n&#039;hésitez pas à attaquer encore le pot de rillettes ou de canard qui commence à se barrer en douce.&lt;br /&gt;
&lt;br /&gt;
= Configurer le client =&lt;br /&gt;
La dernière étape, c&#039;est de configurer son client.&lt;br /&gt;
== Sous Ubuntu ... ==&lt;br /&gt;
La première version de ce tutorial a été fait lors du temps révolu d&#039;Ubuntu 5.10 Breezy Badger. Aujourd&#039;hui, avec Ubuntu 6.10 Edgy Eft, le NetworkManager a résolu mes soucis. Je laisse cependant l&#039;ancienne version au cas où...&lt;br /&gt;
&lt;br /&gt;
=== Depuis Edgy Eft ===&lt;br /&gt;
Je vous conseille vivement d&#039;installer l&#039;application NetworkManager, c&#039;est le meilleur choix. Ce n&#039;est pas très mature, mais très prometteur.&lt;br /&gt;
Il faut installer le paquet network-manager : soit avec synaptic, soit avec la commande :&amp;lt;code&amp;gt;apt-get install network-manager&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette application va s&#039;occuper de configurer pour vous le réseau, de manière transparente. Seulement pour cela, il va falloir nettoyer le fichier &#039;&#039;/etc/network/interfaces&#039;&#039; afin de ne plus faire apparaitre les interfaces réseaux. NetworkManager ignorera toutes les interfaces déjà configurées par le biais de ce fichier. Chez moi, au final, il ne restait plus que l&#039;interface &#039;&#039;lo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ensuite, lancez la commande :&amp;lt;code&amp;gt;nm-applet&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Dans votre emplacement système (les icônes en haut à droite), devrait apparaitre une icône sympa. Cliquez dessus, et il y a les réseaux Wifi détectés, ainsi que le réseau filaire si nécessaire. La suite est tellement triviale que je ne vous insulterai pas en la décrivant. Ceci étant dit, je reste disponible pour expliquer aux plus novices d&#039;entre nous !&lt;br /&gt;
&lt;br /&gt;
Cette application doit se lancer à chaque démarrage. Vous pouvez le vérifier dans la liste des applications lancées au démarrage (Menu Système &amp;gt; Préférences &amp;gt; Je sais plus trop quelle appli)&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
La version actuelle de NetworkManager marche, mais impose les limitations suivantes :&lt;br /&gt;
 - Une seule interface d&#039;active à la fois&lt;br /&gt;
 - La nécessité de taper le mot de passe du stockage des clés à chaque démarrage&lt;br /&gt;
 - Pas de connexions tant que l&#039;utilisateur ne s&#039;est pas identifié de manière graphique&lt;br /&gt;
 - Pas de préférences globales, pour tous les utilisateurs de la machine&lt;br /&gt;
&lt;br /&gt;
Ceci sera résolu dans la prochaine version de NetworkManager (0.7), qui ne devrait pas être incluse avant la prochaine Ubuntu (7.04 Feisty Fawn). En attendant, c&#039;est quand même fonctionnel et &#039;&#039;&#039;largement&#039;&#039;&#039; plus simple que la &#039;&#039;méthode geek&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Breezy Badger ===&lt;br /&gt;
Ceci s&#039;applique à une Ubuntu Breezy Badger fraîchement installée. La carte Wifi doit déjà être détectée.&lt;br /&gt;
&lt;br /&gt;
TODO : lier vers une page d&#039;install ou en faire une :)&lt;br /&gt;
&lt;br /&gt;
Je vais appeler la carte Wi-fi wlan0. La méthode suivante va donner beaucoup plus d&#039;importance à la carte Wi-fi qu&#039;à la carte Ethernet. Je dois avouer que je n&#039;ai pas réussi à faire marcher le gestionnaire de réseau sous Gnome, donc j&#039;y suis allé &#039;&#039;comme un geek&#039;&#039;.&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Cette solution n&#039;est donc pas optimale si vous utilisez aussi fréquemment la carte filaire que la carte sans-fil. Cependant, ceci risque de devenir obsolète dans la version suivante de Ubuntu qui devrait intégrer Network-Manager, qui fait du beau travail à en croire les captures d&#039;écrans :)&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuration des interfaces ====&lt;br /&gt;
Tout d&#039;abord, on va un peu épurer le fichier de configuration automatique des interfaces.&lt;br /&gt;
&amp;lt;code&amp;gt;# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet dhcp&lt;br /&gt;
        pre-up /etc/init.d/wpasupplicant start&lt;br /&gt;
        wireless-mode Managed&lt;br /&gt;
        wireless-essid &amp;quot;MADOUIFI&amp;quot;&lt;br /&gt;
        wireless-key &amp;quot;SupèRecléDelAmor,Avecdetrucch3l0us;)&amp;quot;&lt;br /&gt;
        pre-down /etc/init.d/wpasupplicant stop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Maintenant que vous êtes un baroudeur de ce fichier vous avez dû remarquer les choses suivantes :&lt;br /&gt;
* eth0 n&#039;est plus confiée à hotplug : celui-ci à la facheuse tendance de lui faire prendre le dessus sur wlan0, ça m&#039;énervait :)&lt;br /&gt;
* On laisse tout de même eth0 en mode DHCP, mais plus en initialisation automatique (C&#039;est là que je dis que ça favorise plutôt la carte Wi-fi).&lt;br /&gt;
* Les lignes pre-up et pre-down vont démarrer quelque chose encore inconnu et sûrement non installé. Mais gardez patience, sinon on ne va pas y arriver :)&lt;br /&gt;
* Les lignes wireless- servent à configurer la carte Wi-fi. Je ne crois pas que ce soit utile, car wpasupplicant devrais s&#039;en charger, mais bon. C&#039;est là l&#039;une des marques de mes lacunes ;)&lt;br /&gt;
&lt;br /&gt;
==== Installation et utilisation de wpasupplicant ====&lt;br /&gt;
Si vous vous en souvenez, wpasupplicant est un des projets développés en même temps que hostAPd. Ça tombe plutôt bien :). Wpasupplicant est un client WPA permettant de faire marcher quasiment n&#039;importe quelle carte Wi-fi sur un réseau protégé en WPA.&lt;br /&gt;
&lt;br /&gt;
On commence donc par télécharger le paquet Ubuntu :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install wpasupplicant&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, on va éditez son fichier de configuration pour qu&#039;il convienne à notre réseau. Ce fichier s&#039;appelle /etc/wpa_supplicant.conf :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;# Faites zless /usr/share/doc/wpasupplicant/wpa_supplicant.conf.gz pour voir toutes les otptions disponibles&lt;br /&gt;
&lt;br /&gt;
# Ne rien changer ici&lt;br /&gt;
ctrl_interface=/var/run/wpa_supplicant&lt;br /&gt;
ctrl_interface_group=0&lt;br /&gt;
&lt;br /&gt;
eapol_version=1&lt;br /&gt;
ap_scan=1&lt;br /&gt;
fast_reauth=1&lt;br /&gt;
&lt;br /&gt;
# Déclaration et paramétrage d&#039;un réseau&lt;br /&gt;
network={&lt;br /&gt;
        # Le même SSID du point d&#039;accès&lt;br /&gt;
        ssid=&amp;quot;MADOUIFI&amp;quot;&lt;br /&gt;
        key_mgmt=WPA-PSK&lt;br /&gt;
        psk=&amp;quot;SupèRecléDelAmor,Avecdetrucch3l0us;)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on redémarre le réseau à l&#039;aide de la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo /etc/init.d/networking restart&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit d&#039;attendre un certain moment, le temps que l&#039;authentification se fasse et que le serveur DHCP réagisse. Normalement, en tapant /sbin/ifconfig vous devriez obtenir ceci :&lt;br /&gt;
&amp;lt;code&amp;gt;lo        Lien encap:Boucle locale&lt;br /&gt;
          inet adr:127.0.0.1  Masque:255.0.0.0&lt;br /&gt;
          adr inet6: ::1/128 Scope:Hôte&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:142349 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:142349 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 lg file transmission:0&lt;br /&gt;
          RX bytes:10530324 (10.0 MiB)  TX bytes:10530324 (10.0 MiB)&lt;br /&gt;
&lt;br /&gt;
wlan0     Lien encap:Ethernet  HWaddr 00:15:F2:CC:F4:39&lt;br /&gt;
          inet adr:192.168.0.3  Bcast:192.168.0.255  Masque:255.255.255.0&lt;br /&gt;
          adr inet6: fe80::215:f2ff:fecc:f439/64 Scope:Lien&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:90878 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:60354 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 lg file transmission:1000&lt;br /&gt;
          RX bytes:98143829 (93.5 MiB)  TX bytes:5812510 (5.5 MiB)&lt;br /&gt;
          Mémoire:fe3fc000-fe3fdfff&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
La carte wlan0 avec l&#039;état &#039;&#039;UP&#039;&#039; et une adresse IP (&#039;&#039;inet adr&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==== Pistes en cas de problèmes ====&lt;br /&gt;
* Lancer hostAPd à la main en mode debug avec la commande&lt;br /&gt;
&amp;lt;code&amp;gt;/usr/local/bin/hostapd -dd /etc/hostapd/hostapd.conf&lt;br /&gt;
&amp;lt;/code&amp;gt;Puis relancez le client. Le journal qui s&#039;affiche peut aider grandement le diagnostic.&lt;br /&gt;
* Vérifier que votre serveur DHCP est bien actif. Sur le client, tapez :&lt;br /&gt;
&amp;lt;code&amp;gt;sudo dhclient&lt;br /&gt;
&amp;lt;/code&amp;gt;Si ça ne se finit pas par l&#039;attribution d&#039;une adresse IP, il y a un problème.&lt;br /&gt;
&lt;br /&gt;
== ... comme sous Windows ==&lt;br /&gt;
Il est également possible d&#039;utiliser wpasupplicant sous Windows. Seulement, quitte à utiliser ce système d&#039;exploitation, autant le faire à fond.&lt;br /&gt;
La plupart du temps, un utilitaire de connexion Wi-fi est fourni avec votre matériel. Je ne peux malheureusement pas vous aider là-dessus de façon globale :(&lt;br /&gt;
&lt;br /&gt;
Sinon, je vous rassure, avec Windows XP SP2, l&#039;utilitaire de connexion sans fil Windows marche très bien. Cliquez sur la petite icône de votre carte réseau en bas à droite à côté de l&#039;heure (souvent, c&#039;est un petit écran depuis lequel partent des ondes stylisées). Il devrait vous afficher la liste des réseaux sans-fils. Choisissez le votre, cliquez sur &amp;quot;Connecter&amp;quot; et rentrez la clé. Bienvenue chez vous :)&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
Le wifi sous Linux c&#039;est possible et ça marche bien. Je n&#039;ai jamais utilisé de solutions propriétaires, donc je ne peux pas comparer, mais j&#039;ai pu monter mon réseau sécurisé à moindre coût (mais avec un peu de temps :p).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Je tiens à prévenir le public sensible qu&#039;aucun pot de rillettes n&#039;a été maltraité pendant la réalisation de ce tutorial, pour mon plus grand malheur&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=15870</id>
		<title>Discussion:Point d&#039;accès sécurisé par hostAPd</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_hostAPd&amp;diff=15870"/>
		<updated>2008-07-21T15:18:52Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : Précision&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sur cette page, vous pouvez laisser tout ce qui vous passe par la tête, mais en rapport avec la page bien sûr :) --[[Utilisateur:Glandos|Glandos]] 22 mai 2006 à 18:57 (CEST)&lt;br /&gt;
&lt;br /&gt;
est ce que quelqu&#039;un peut nous dire comment realiser un hostap avec integrated eap server&lt;br /&gt;
qu&#039;est qu&#039;on met dans le fichier de configuration!!!&lt;br /&gt;
&lt;br /&gt;
Ahem, le mieux est quand même de bien formuler la demande... Avec une signature tout ça :)&lt;br /&gt;
Sinon, désolé, je ne suis pas au fait de ce genre de solution, je ne me suis intéressé qu&#039;à l&#039;authentification WPA PSK :( --[[Utilisateur:Glandos|Glandos]] 8 oct 2006 à 12:52 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Installation avec Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Bonsoir,&lt;br /&gt;
&lt;br /&gt;
J&#039;essay actuellement et ce depuis une semaine d&#039;installer hostapd sur mon portable afin de disposer d&#039;un accessPoint pour me connecter dessus avec ma Wii.&lt;br /&gt;
&lt;br /&gt;
Une semaine que les &amp;quot;make&amp;quot; me crachent des erreurs, que des librairies me manquent et que des erreurs m&#039;assomment.&lt;br /&gt;
&lt;br /&gt;
J&#039;ai une carte réseau intel&lt;br /&gt;
http://www3.intel.com/network/connectivity/products/wireless/wireless_n/overview.htm&lt;br /&gt;
&lt;br /&gt;
je pense que le chip est un chip intel. --&amp;gt; Est-ce compatible avec ce chip?&lt;br /&gt;
&lt;br /&gt;
Si ce n&#039;est pas le cas, ce n&#039;est pas perdu j&#039;ai un deuxième PC, avec une carte NetGear&lt;br /&gt;
http://www.netgear.com/Products/Adapters/GWirelessAdapters/WG311.aspx&lt;br /&gt;
Je suppose que le chip est un Atheros... (je n&#039;y connais rien)&lt;br /&gt;
&lt;br /&gt;
Est-ce que quelqun pourrais m&#039;expliquer comment faire??? De plus j&#039;aimerais bien réussir a insaller un logiciel sur ce foutu OS de M*****&lt;br /&gt;
&lt;br /&gt;
J&#039;espère que quelqun passera pas la et trouvera cette note...&lt;br /&gt;
&lt;br /&gt;
Merci d&#039;avance&lt;br /&gt;
&lt;br /&gt;
== Précision ==&lt;br /&gt;
&lt;br /&gt;
Bonjour&lt;br /&gt;
&lt;br /&gt;
Il y a quoi dans :&lt;br /&gt;
deny_mac_file=/etc/hostapd/hostapd.deny&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Contact&amp;diff=15868</id>
		<title>Discussion:Contact</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Contact&amp;diff=15868"/>
		<updated>2008-07-21T07:19:27Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Visiblement le serveur IRC n&#039;est plus à :  irc.lea-linux.org ?&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Mod%C3%A8le:Fiches:plan-securite&amp;diff=13185</id>
		<title>Modèle:Fiches:plan-securite</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Mod%C3%A8le:Fiches:plan-securite&amp;diff=13185"/>
		<updated>2006-08-03T00:23:00Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* à rédiger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Sécurité ===&lt;br /&gt;
*[[Fiches:securite-ficheroot|Pourquoi ne faut-il pas utiliser l&#039;utilisateur root par défaut ?]]&lt;br /&gt;
&lt;br /&gt;
* [[Fiches:Tenir compte de la sécurité au quotidien|Tenir compte de la sécurité au quotidien]]&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13175</id>
		<title>Fiches:Terminal-etherboot-MDK-10.1</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13175"/>
		<updated>2006-08-01T01:01:51Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Serveur Etherboot sur une Mandrake 10.1==&lt;br /&gt;
&lt;br /&gt;
==I) Prérequis :==&lt;br /&gt;
&lt;br /&gt;
Résumer :&lt;br /&gt;
Installer de la MDK 10.1 :&lt;br /&gt;
kernel2.6.8.1.12mdk  &lt;br /&gt;
kernelsource2.62.6.8.112mdk &amp;lt; Pour les im nbi  &lt;br /&gt;
kernel2.6.11.6mdk (De la MDK 10.2) que j&#039;utilise&lt;br /&gt;
kernelsource2.6.116mdk (De la MDK 10.2) que j&#039;utilise&lt;br /&gt;
dhcpclient&lt;br /&gt;
dhcpcommon&lt;br /&gt;
dhcpserver&lt;br /&gt;
clusternfs&lt;br /&gt;
terminalserver&lt;br /&gt;
etherboot&lt;br /&gt;
tftpserver&lt;br /&gt;
mkinitrdnet &amp;lt; devra être mis à  jour car la busybox est compilé (e) avec de mauvaises options pour udhcpc.&lt;br /&gt;
&lt;br /&gt;
La mise à jour de mkinitrdnet peut être faite avec le paquetage de la MDV 2006.0, ce qui fait passer la version de 1.1019mdk à 1.1024mdk.&lt;br /&gt;
La version udhcpc de mkinitrdnet1.1024mdk provoque un &amp;quot;warning, m&amp;quot; mais pas un &amp;quot;error, m&amp;quot; du mkinitrd net1.1019mdk ce qui laisse alors votre terminal&lt;br /&gt;
monter ses racines sur nfs... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==II) Configurations :==&lt;br /&gt;
  &lt;br /&gt;
La Config du serveur : /etc/dhcpd.conf : &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#dhcpd.conf generated by drakTermServ  &lt;br /&gt;
ddnsupdatestyle none;  &lt;br /&gt;
defaultleasetime 172800;  &lt;br /&gt;
maxleasetime 172800;  &lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {  &lt;br /&gt;
                           option routers 192.168.1.1;&lt;br /&gt;
			   option subnetmask 255.255.255.0;  &lt;br /&gt;
			   option broadcastaddress  192.168.1.255;  &lt;br /&gt;
			   option domainname &amp;quot;systemlinux.net&amp;quot;;  &lt;br /&gt;
			   range dynamicbootp 192.168.1.100 192.168.1.130;  &lt;br /&gt;
			   option domainnameservers 192.168.1.1;  &lt;br /&gt;
			   }  &lt;br /&gt;
# Include client machine  configurations  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.clients&amp;quot;;  &lt;br /&gt;
# Include Etherboot definitions and defaults  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.include&amp;quot;;  &lt;br /&gt;
# Include Etherboot default kernel version  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.kernel&amp;quot;;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Entrez le texte non formatté ici&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13174</id>
		<title>Fiches:Terminal-etherboot-MDK-10.1</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13174"/>
		<updated>2006-08-01T00:59:24Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Serveur Etherboot sur une Mandrake 10.1==&lt;br /&gt;
&lt;br /&gt;
==I) Prérequis :==&lt;br /&gt;
&lt;br /&gt;
Résumer :&lt;br /&gt;
Installer de la MDK 10.1 :&lt;br /&gt;
kernel2.6.8.1.12mdk  &lt;br /&gt;
kernelsource2.62.6.8.112mdk &amp;lt; Pour les im nbi  &lt;br /&gt;
kernel2.6.11.6mdk (De la MDK 10.2) que j&#039;utilise&lt;br /&gt;
kernelsource2.6.116mdk (De la MDK 10.2) que j&#039;utilise&lt;br /&gt;
dhcpclient&lt;br /&gt;
dhcpcommon&lt;br /&gt;
dhcpserver&lt;br /&gt;
clusternfs&lt;br /&gt;
terminalserver&lt;br /&gt;
etherboot&lt;br /&gt;
tftpserver&lt;br /&gt;
mkinitrdnet &amp;lt; devra être mis à  jour car la busybox est compilé (e) avec de mauvaises options pour udhcpc.&lt;br /&gt;
&lt;br /&gt;
La mise à jour de mkinitrdnet peut être faite avec le paquetage de la MDV 2006.0, ce qui fait passer la version de 1.1019mdk à 1.1024mdk.&lt;br /&gt;
La version udhcpc de mkinitrdnet1.1024mdk provoque un &amp;quot;warning, m&amp;quot; mais pas un &amp;quot;error, m&amp;quot; du mkinitrd net1.1019mdk ce qui laisse alors votre terminal&lt;br /&gt;
monter ses racines sur nfs... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==II) Configurations :==&lt;br /&gt;
  &lt;br /&gt;
La Config du serveur : /etc/dhcpd.conf : &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
#dhcpd.conf generated by drakTermServ  &lt;br /&gt;
ddnsupdatestyle none;  &lt;br /&gt;
defaultleasetime 172800;  &lt;br /&gt;
maxleasetime 172800;  &lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {  &lt;br /&gt;
                           option routers 192.168.1.1;&lt;br /&gt;
			   option subnetmask 255.255.255.0;  &lt;br /&gt;
			   option broadcastaddress  192.168.1.255;  &lt;br /&gt;
			   option domainname &amp;quot;systemlinux.net&amp;quot;;  &lt;br /&gt;
			   range dynamicbootp 192.168.1.100 192.168.1.130;  &lt;br /&gt;
			   option domainnameservers 192.168.1.1;  &lt;br /&gt;
			   }  &lt;br /&gt;
# Include client machine  configurations  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.clients&amp;quot;;  &lt;br /&gt;
# Include Etherboot definitions and defaults  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.include&amp;quot;;  &lt;br /&gt;
# Include Etherboot default kernel version  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.kernel&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13173</id>
		<title>Fiches:Terminal-etherboot-MDK-10.1</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13173"/>
		<updated>2006-08-01T00:57:29Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Serveur Etherboot sur une Mandrake 10.1==&lt;br /&gt;
&lt;br /&gt;
I) Prérequis :&lt;br /&gt;
&lt;br /&gt;
Résumer :&lt;br /&gt;
Installer de la MDK 10.1 :&lt;br /&gt;
kernel2.6.8.1.12mdk  &lt;br /&gt;
kernelsource2.62.6.8.112mdk &amp;lt; Pour les im nbi  &lt;br /&gt;
kernel2.6.11.6mdk (De la MDK 10.2) que j&#039;utilise&lt;br /&gt;
kernelsource2.6.116mdk (De la MDK 10.2) que j&#039;utilise&lt;br /&gt;
dhcpclient&lt;br /&gt;
dhcpcommon&lt;br /&gt;
dhcpserver&lt;br /&gt;
clusternfs&lt;br /&gt;
terminalserver&lt;br /&gt;
etherboot&lt;br /&gt;
tftpserver&lt;br /&gt;
mkinitrdnet &amp;lt; devra être mis à  jour car la busybox est compilé (e) avec de mauvaises options pour udhcpc.&lt;br /&gt;
&lt;br /&gt;
La mise à jour de mkinitrdnet peut être faite avec le paquetage de la MDV 2006.0, ce qui fait passer la version de 1.1019mdk à 1.1024mdk.&lt;br /&gt;
La version udhcpc de mkinitrdnet1.1024mdk provoque un &amp;quot;warning, m&amp;quot; mais pas un &amp;quot;error, m&amp;quot; du mkinitrd net1.1019mdk ce qui laisse alors votre terminal&lt;br /&gt;
monter ses racines sur nfs... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
II) Configurations :&lt;br /&gt;
  &lt;br /&gt;
La Config du serveur : /etc/dhcpd.conf : &lt;br /&gt;
#dhcpd.conf generated by drakTermServ  &lt;br /&gt;
ddnsupdatestyle none;  &lt;br /&gt;
defaultleasetime 172800;  &lt;br /&gt;
maxleasetime 172800;  &lt;br /&gt;
subnet 192.168.1.0 netmask 255.255.255.0 {  &lt;br /&gt;
                           option routers 192.168.1.1;&lt;br /&gt;
			   option subnetmask 255.255.255.0;  &lt;br /&gt;
			   option broadcastaddress  192.168.1.255;  &lt;br /&gt;
			   option domainname &amp;quot;systemlinux.net&amp;quot;;  &lt;br /&gt;
			   range dynamicbootp 192.168.1.100 192.168.1.130;  &lt;br /&gt;
			   option domainnameservers 192.168.1.1;  &lt;br /&gt;
			   }  &lt;br /&gt;
# Include client machine  configurations  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.clients&amp;quot;;  &lt;br /&gt;
# Include Etherboot definitions and defaults  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.include&amp;quot;;  &lt;br /&gt;
# Include Etherboot default kernel version  &lt;br /&gt;
include &amp;quot;/etc/dhcpd.conf.etherboot.kernel&amp;quot;;&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13172</id>
		<title>Fiches:Terminal-etherboot-MDK-10.1</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13172"/>
		<updated>2006-08-01T00:56:41Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13171</id>
		<title>Fiches:Terminal-etherboot-MDK-10.1</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13171"/>
		<updated>2006-08-01T00:49:37Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Etherboot sur une Mandrake 10.1 ==&lt;br /&gt;
&lt;br /&gt;
I) Prérequis :&lt;br /&gt;
Résumer :  Installer de la MDK 10.1 :  kernel2.6.8.1.12mdk  kernelsource2.62.6.8.112mdk &amp;lt; Pour les im nbi  kernel2.6.11.6mdk (De la MDK 10.2) que j&#039;utilise  kernelsource2.62.6.116mdk (De la MDK 10.2) que j&#039;utilise  dhcpclient  dhcpcommon  dhcpserver  clusternfs  terminalserver  etherboot  tftpserver  mkinitrdnet &amp;lt; devra être mis à  jour car la busybox est compilé (e) avec de mauvaises options pour udhcpc. La mise à jour de mkinitrdnet peut être faite avec le paquetage de la MDV 2006.0, ce qui fait passer la version de 1.1019mdk à 1.1024mdk.  La version udhcpc de mkinitrdnet1.1024mdk provoque un &amp;quot;warning, m&amp;quot; mais pas un &amp;quot;error, m&amp;quot; du mkinitrd net1.1019mdk ce qui laisse alors votre terminal monter ses racines sur nfs... &lt;br /&gt;
&lt;br /&gt;
   )   onfigurations : II   C  &lt;br /&gt;
La Config du serveur : /etc/dhcpd.conf : &lt;br /&gt;
#dhcpd.conf  generated by drakTermServ  ddnsupdatestyle none;  defaultleasetime 172800;  maxleasetime 172800;  subnet 192.168.1.0 netmask 255.255.255.0 {  option routers 192.168.1.1;  option subnetmask 255.255.255.0;  option broadcastaddress  192.168.1.255;  option domainname &amp;quot;systemlinux.net&amp;quot;;  range dynamicbootp 192.168.1.100 192.168.1.130;  option domainnameservers 192.168.1.1;  }  # Include client machine  configurations  include &amp;quot;/etc/dhcpd.conf.etherboot.clients&amp;quot;;  # Include Etherboot definitions and defaults  include &amp;quot;/etc/dhcpd.conf.etherboot.include&amp;quot;;  # Include Etherboot default kernel version  include &amp;quot;/etc/dhcpd.conf.etherboot.kernel&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
dhcpd.conf.etherboot.* Sont générés par terminalserver (drakTermServ)... &lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
Le dhcpd.conf.etherboot.clients est trés important c&#039;est ce fichier qui dira quelle adresse MAC aura quelle IP et sur quelle noyaux réseau elle bootera ! &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# dhcpd.conf.etherboot.client généré par DrakTermServ&lt;br /&gt;
host satellite {  hardware ethernet 00:14:2a:3e:ee:cb;  &lt;br /&gt;
                          fixedaddress 192.168.1.254;&lt;br /&gt;
                          #type thin;  &lt;br /&gt;
                          if substring (option vendorclassidentifier, 0, 9) = &amp;quot;PXEClient&amp;quot;   &lt;br /&gt;
                                              filename  &amp;quot;viarhine.zimg.pxe&amp;quot;;  }&lt;br /&gt;
                          else if substring (option vendorclassidentifier,  0, 9) = &amp;quot;Etherboot&amp;quot;  {&lt;br /&gt;
                                              filename  &amp;quot;bootviarhine.2.6.116mdk.nbi&amp;quot;;  }&lt;br /&gt;
                           #hdw_config true;&lt;br /&gt;
                     }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour que cela soit téléchargé sur le terminal c&#039;est TFTP1 qui intervient avec xinetd....  Dans /etc/xinetd.d/tftp &lt;br /&gt;
&lt;br /&gt;
# Service TFTP  service tftp  {  disable = no  socket_type = dgram  protocol = udp  wait = yes  user = root  server = /usr/sbin/in.tftpd  server_args = s /var/lib/tftpboot  per_source = 11  cps = 100 2  flags = IPv4  }&lt;br /&gt;
&lt;br /&gt;
Aprés ceci le PC boot... jusqu&#039;a ce qu&#039;il plante au montage NFS !  C&#039;est içi que clusternfs intervient ! Il à la paricularité de lire dans /etc/exports les caractères $$...  Pourquoi ? Pour que les clients aient une config particulière à chacun....  Mon /etc/exports : &lt;br /&gt;
/ /home /etc/sysconfig/mouse$$IP=192.168.1.254$$ /etc/modules.conf$$IP=192.168.1.254$$ /etc/modules$$IP=192.168.1.254$$ /etc/modprobe.conf$$IP=192.168.1.254$$ /etc/modprobe.preload$$IP=192.168.1.254$$ /etc/X11/XF86Config$$IP=192.168.1.254$$ /etc/X11/XF86Config4$$IP=192.168.1.254$$ /etc/X11/xorg.conf$$IP=192.168.1.254$$ /etc/sysconfig/i18n$$IP=192.168.1.254$$ /mnt/cdrom$$CLIENT$$ 192.168.1.0/255.255.255.0(ro,no_root_squash) 192.168.1.0/255.255.255.0(rw,root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash)&lt;br /&gt;
&lt;br /&gt;
1 A ne pas confondre avec un serveur FTP !!!&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi faire des copies de :  /etc/passwd  /etc/shadows  /etc/group  en  /etc/passwd$$IP=192.168.1.254$$  /etc/shadows$$IP=192.168.1.254$$  /etc/group$$IP=192.168.1.254$$  En réalité draTermServ crée des fichier /etc/quelquechose$$CLIENT$$. Lorsque qu&#039;avec drakTermServ vous crée un client lègé avec une IP=192.168.1.XX Tous les fichiers /etc/quelquechose$$CLIENT$$ sont reproduits en /etc/quelquechose$$IP=192.168.1.XX$$  ATTENTION : en console cp /etc/quelquechose$$CLIENT$$ /etc/quelquechose$$IP=*******$$ ne fonctionne pas car il faut mettre cp /etc/quelquechose\$\$CLIENT\$\$ / etc/quelquechose\$\$IP\=*******\$\$  On arrive au login console et/ou KDM, GDM....  Mais là cela plante !!!! (peutêtre) Chez moi oui cela plantait !  Sur le serveur etherboot j&#039;ai une carte vidéo GeForce II et pas sur le portable... Donc plantage !  Soluce : Un live CD. Réccupération sur clef USB (ex) de /etc/X11/XF86Config4 et /etc/X11/XF86Config.  Un :  cp /mnt/removable/XF86Config4 /etc/X11/XF86Config4\$\$IP\=192.168.1.254\$\$  cp /mnt/removable/XF86Config /etc/X11/XF86Config\$\$IP\=192.168.1.254\$\$  ln s /etc/X11/XF86Config4\$\$IP\=192.168.1.254\$\$ /etc/X11/xorg.conf\$\$IP\=192.168.1.254\$\$  J&#039;ai modifié mon /etc/initab\$\$IP\=192.168.1.254\$\$ pour être en init 3.&lt;br /&gt;
# /etc/inittab$$IP=192.168.1.254$$ # created by drakTermServ id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc l1:1:wait:/etc/rc.d/rc l2:2:wait:/etc/rc.d/rc l3:3:wait:/etc/rc.d/rc l4:4:wait:/etc/rc.d/rc l5:5:wait:/etc/rc.d/rc l6:6:wait:/etc/rc.d/rc 0 1 2 3 4 5 6&lt;br /&gt;
&lt;br /&gt;
# Things to run in every runlevel. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/reboot -f # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 # Connect to X server #x:5:respawn:/usr/X11R6/bin/X -ac -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
login:zterminal01 (on peut ainsi voir si le z est à Z ou X, et les chiffres déjà activés)  password:******  login(pam_unix)[2116]: session opened for user zterminal01 by LOGIN(uid=0)   zterminal01[2116]: LOGIN ON tty1 BY zterminal01  Içi dans les ~/.bash_login j&#039;ai mis une commande qui lance Xtart (modifié : Xtartterm)&lt;br /&gt;
# .bash_login /usr/bin/Xtartzterm&lt;br /&gt;
&lt;br /&gt;
Cela donne donc le choix à l&#039;utilisateur de lancer KDE.... Ensuite si une application métier est sur l&#039;intranet dans ~/.kde/Autostart/ J&#039;ai crée une application qui lance un navigateur (firefox) sur la page « application metier ». Firefox ayant l&#039;extension KIOSK, l&#039;utilisateur ne peut accèder à autre chose que l&#039;application metier.&lt;br /&gt;
[Desktop Entry] Comment= Comment[fr]= Encoding=UTF8 Exec=/logicaldisk/data/SOURCES/firefox/firefox http://www.systemlinux.net/egroupware GenericName= GenericName[fr]= Icon=exec MimeType= Name= Name[fr]= Path= StartupNotify=true Terminal=false TerminalOptions= Type=Application XDCOPServiceType= XKDESubstituteUID=false XKDEUsername=&lt;br /&gt;
&lt;br /&gt;
Nous sommes logué !!!!  III)Conclusion :     C&#039;est la configuration la plus satisfaisante que j&#039;ai eu à réaliser. Car elle englobe la connaissance du noyaux, des réseaux (dhcpd, ethernet...), de X et de ses multiples (innombrables?) possibilités, NFS.... Bref à réaliser ne seraitce que pour le fun !&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13170</id>
		<title>Fiches:Terminal-etherboot-MDK-10.1</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13170"/>
		<updated>2006-08-01T00:47:20Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Etherboot sur une Mandrake 10.1 ==&lt;br /&gt;
&lt;br /&gt;
I) Prérequis :&lt;br /&gt;
Résumer :  Installer de la MDK 10.1 :  kernel2.6.8.1.12mdk  kernelsource2.62.6.8.112mdk &amp;lt; Pour les im nbi  kernel2.6.11.6mdk (De la MDK 10.2) que j&#039;utilise  kernelsource2.62.6.116mdk (De la MDK 10.2) que j&#039;utilise  dhcpclient  dhcpcommon  dhcpserver  clusternfs  terminalserver  etherboot  tftpserver  mkinitrdnet &amp;lt; devra être mis à  jour car la busybox est compilé (e) avec de mauvaises options pour udhcpc. La mise à jour de mkinitrdnet peut être faite avec le paquetage de la MDV 2006.0, ce qui fait passer la version de 1.1019mdk à 1.1024mdk.  La version udhcpc de mkinitrdnet1.1024mdk provoque un &amp;quot;warning, m&amp;quot; mais pas un &amp;quot;error, m&amp;quot; du mkinitrd net1.1019mdk ce qui laisse alors votre terminal monter ses racines sur nfs... &lt;br /&gt;
&lt;br /&gt;
   )   onfigurations : II   C  &lt;br /&gt;
La Config du serveur : /etc/dhcpd.conf : &lt;br /&gt;
#dhcpd.conf  generated by drakTermServ  ddnsupdatestyle none;  defaultleasetime 172800;  maxleasetime 172800;  subnet 192.168.1.0 netmask 255.255.255.0 {  option routers 192.168.1.1;  option subnetmask 255.255.255.0;  option broadcastaddress  192.168.1.255;  option domainname &amp;quot;systemlinux.net&amp;quot;;  range dynamicbootp 192.168.1.100 192.168.1.130;  option domainnameservers 192.168.1.1;  }  # Include client machine  configurations  include &amp;quot;/etc/dhcpd.conf.etherboot.clients&amp;quot;;  # Include Etherboot definitions and defaults  include &amp;quot;/etc/dhcpd.conf.etherboot.include&amp;quot;;  # Include Etherboot default kernel version  include &amp;quot;/etc/dhcpd.conf.etherboot.kernel&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
dhcpd.conf.etherboot.* Sont générés par terminalserver (drakTermServ)... &lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
Le dhcpd.conf.etherboot.clients est trés important c&#039;est ce fichier qui dira quelle adresse MAC aura quelle IP et sur quelle noyaux réseau elle bootera ! &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# dhcpd.conf.etherboot.client généré par DrakTermServd&lt;br /&gt;
 host satellite {  hardware ethernet 00:14:2a:3e:ee:cb;  fixedaddress 192.168.1.254;  #type thin;  if substring (option vendorclassidentifier, 0, 9) = &amp;quot;PXEClient&amp;quot;  {  filename  &amp;quot;viarhine.zimg.pxe&amp;quot;;  }  else if substring (option vendorclassidentifier,  0, 9) = &amp;quot;Etherboot&amp;quot;  {  filename  &amp;quot;bootviarhine.2.6.116mdk.nbi&amp;quot;;  }  #hdw_config true;  }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour que cela soit téléchargé sur le terminal c&#039;est TFTP1 qui intervient avec xinetd....  Dans /etc/xinetd.d/tftp &lt;br /&gt;
&lt;br /&gt;
# Service TFTP  service tftp  {  disable = no  socket_type = dgram  protocol = udp  wait = yes  user = root  server = /usr/sbin/in.tftpd  server_args = s /var/lib/tftpboot  per_source = 11  cps = 100 2  flags = IPv4  }&lt;br /&gt;
&lt;br /&gt;
Aprés ceci le PC boot... jusqu&#039;a ce qu&#039;il plante au montage NFS !  C&#039;est içi que clusternfs intervient ! Il à la paricularité de lire dans /etc/exports les caractères $$...  Pourquoi ? Pour que les clients aient une config particulière à chacun....  Mon /etc/exports : &lt;br /&gt;
/ /home /etc/sysconfig/mouse$$IP=192.168.1.254$$ /etc/modules.conf$$IP=192.168.1.254$$ /etc/modules$$IP=192.168.1.254$$ /etc/modprobe.conf$$IP=192.168.1.254$$ /etc/modprobe.preload$$IP=192.168.1.254$$ /etc/X11/XF86Config$$IP=192.168.1.254$$ /etc/X11/XF86Config4$$IP=192.168.1.254$$ /etc/X11/xorg.conf$$IP=192.168.1.254$$ /etc/sysconfig/i18n$$IP=192.168.1.254$$ /mnt/cdrom$$CLIENT$$ 192.168.1.0/255.255.255.0(ro,no_root_squash) 192.168.1.0/255.255.255.0(rw,root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash)&lt;br /&gt;
&lt;br /&gt;
1 A ne pas confondre avec un serveur FTP !!!&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi faire des copies de :  /etc/passwd  /etc/shadows  /etc/group  en  /etc/passwd$$IP=192.168.1.254$$  /etc/shadows$$IP=192.168.1.254$$  /etc/group$$IP=192.168.1.254$$  En réalité draTermServ crée des fichier /etc/quelquechose$$CLIENT$$. Lorsque qu&#039;avec drakTermServ vous crée un client lègé avec une IP=192.168.1.XX Tous les fichiers /etc/quelquechose$$CLIENT$$ sont reproduits en /etc/quelquechose$$IP=192.168.1.XX$$  ATTENTION : en console cp /etc/quelquechose$$CLIENT$$ /etc/quelquechose$$IP=*******$$ ne fonctionne pas car il faut mettre cp /etc/quelquechose\$\$CLIENT\$\$ / etc/quelquechose\$\$IP\=*******\$\$  On arrive au login console et/ou KDM, GDM....  Mais là cela plante !!!! (peutêtre) Chez moi oui cela plantait !  Sur le serveur etherboot j&#039;ai une carte vidéo GeForce II et pas sur le portable... Donc plantage !  Soluce : Un live CD. Réccupération sur clef USB (ex) de /etc/X11/XF86Config4 et /etc/X11/XF86Config.  Un :  cp /mnt/removable/XF86Config4 /etc/X11/XF86Config4\$\$IP\=192.168.1.254\$\$  cp /mnt/removable/XF86Config /etc/X11/XF86Config\$\$IP\=192.168.1.254\$\$  ln s /etc/X11/XF86Config4\$\$IP\=192.168.1.254\$\$ /etc/X11/xorg.conf\$\$IP\=192.168.1.254\$\$  J&#039;ai modifié mon /etc/initab\$\$IP\=192.168.1.254\$\$ pour être en init 3.&lt;br /&gt;
# /etc/inittab$$IP=192.168.1.254$$ # created by drakTermServ id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc l1:1:wait:/etc/rc.d/rc l2:2:wait:/etc/rc.d/rc l3:3:wait:/etc/rc.d/rc l4:4:wait:/etc/rc.d/rc l5:5:wait:/etc/rc.d/rc l6:6:wait:/etc/rc.d/rc 0 1 2 3 4 5 6&lt;br /&gt;
&lt;br /&gt;
# Things to run in every runlevel. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/reboot -f # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 # Connect to X server #x:5:respawn:/usr/X11R6/bin/X -ac -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
login:zterminal01 (on peut ainsi voir si le z est à Z ou X, et les chiffres déjà activés)  password:******  login(pam_unix)[2116]: session opened for user zterminal01 by LOGIN(uid=0)   zterminal01[2116]: LOGIN ON tty1 BY zterminal01  Içi dans les ~/.bash_login j&#039;ai mis une commande qui lance Xtart (modifié : Xtartterm)&lt;br /&gt;
# .bash_login /usr/bin/Xtartzterm&lt;br /&gt;
&lt;br /&gt;
Cela donne donc le choix à l&#039;utilisateur de lancer KDE.... Ensuite si une application métier est sur l&#039;intranet dans ~/.kde/Autostart/ J&#039;ai crée une application qui lance un navigateur (firefox) sur la page « application metier ». Firefox ayant l&#039;extension KIOSK, l&#039;utilisateur ne peut accèder à autre chose que l&#039;application metier.&lt;br /&gt;
[Desktop Entry] Comment= Comment[fr]= Encoding=UTF8 Exec=/logicaldisk/data/SOURCES/firefox/firefox http://www.systemlinux.net/egroupware GenericName= GenericName[fr]= Icon=exec MimeType= Name= Name[fr]= Path= StartupNotify=true Terminal=false TerminalOptions= Type=Application XDCOPServiceType= XKDESubstituteUID=false XKDEUsername=&lt;br /&gt;
&lt;br /&gt;
Nous sommes logué !!!!  III)Conclusion :     C&#039;est la configuration la plus satisfaisante que j&#039;ai eu à réaliser. Car elle englobe la connaissance du noyaux, des réseaux (dhcpd, ethernet...), de X et de ses multiples (innombrables?) possibilités, NFS.... Bref à réaliser ne seraitce que pour le fun !&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13169</id>
		<title>Fiches:Terminal-etherboot-MDK-10.1</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fiches:Terminal-etherboot-MDK-10.1&amp;diff=13169"/>
		<updated>2006-08-01T00:43:48Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Etherboot sur une Mandrake 10.1 ==&lt;br /&gt;
&lt;br /&gt;
I) Prérequis :&lt;br /&gt;
Résumer :  Installer de la MDK 10.1 :  kernel2.6.8.1.12mdk  kernelsource2.62.6.8.112mdk &amp;lt; Pour les im nbi  kernel2.6.11.6mdk (De la MDK 10.2) que j&#039;utilise  kernelsource2.62.6.116mdk (De la MDK 10.2) que j&#039;utilise  dhcpclient  dhcpcommon  dhcpserver  clusternfs  terminalserver  etherboot  tftpserver  mkinitrdnet &amp;lt; devra être mis à  jour car la busybox est compilé (e) avec de mauvaises options pour udhcpc. La mise à jour de mkinitrdnet peut être faite avec le paquetage de la MDV 2006.0, ce qui fait passer la version de 1.1019mdk à 1.1024mdk.  La version udhcpc de mkinitrdnet1.1024mdk provoque un &amp;quot;warning, m&amp;quot; mais pas un &amp;quot;error, m&amp;quot; du mkinitrd net1.1019mdk ce qui laisse alors votre terminal monter ses racines sur nfs... &lt;br /&gt;
&lt;br /&gt;
   )   onfigurations : II   C  &lt;br /&gt;
La Config du serveur : /etc/dhcpd.conf : &lt;br /&gt;
#dhcpd.conf  generated by drakTermServ  ddnsupdatestyle none;  defaultleasetime 172800;  maxleasetime 172800;  subnet 192.168.1.0 netmask 255.255.255.0 {  option routers 192.168.1.1;  option subnetmask 255.255.255.0;  option broadcastaddress  192.168.1.255;  option domainname &amp;quot;systemlinux.net&amp;quot;;  range dynamicbootp 192.168.1.100 192.168.1.130;  option domainnameservers 192.168.1.1;  }  # Include client machine  configurations  include &amp;quot;/etc/dhcpd.conf.etherboot.clients&amp;quot;;  # Include Etherboot definitions and defaults  include &amp;quot;/etc/dhcpd.conf.etherboot.include&amp;quot;;  # Include Etherboot default kernel version  include &amp;quot;/etc/dhcpd.conf.etherboot.kernel&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
dhcpd.conf.etherboot.* Sont générés par terminalserver (drakTermServ)... &lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
Le dhcpd.conf.etherboot.clients est trés important c&#039;est ce fichier qui dira quelle adresse MAC aura quelle IP et sur quelle noyaux réseau elle bootera ! &lt;br /&gt;
# dhcpd.conf.etherboot.client généré par    rakTermServ  d   host satellite {  hardware ethernet 00:14:2a:3e:ee:cb;  fixedaddress 192.168.1.254;  #type thin;  if substring (option vendorclassidentifier, 0, 9) = &amp;quot;PXEClient&amp;quot;  {  filename  &amp;quot;viarhine.zimg.pxe&amp;quot;;  }  else if substring (option vendorclassidentifier,  0, 9) = &amp;quot;Etherboot&amp;quot;  {  filename  &amp;quot;bootviarhine.2.6.116mdk.nbi&amp;quot;;  }  #hdw_config true;  }&lt;br /&gt;
&lt;br /&gt;
Pour que cela soit téléchargé sur le terminal c&#039;est TFTP1 qui intervient avec xinetd....  Dans /etc/xinetd.d/tftp &lt;br /&gt;
&lt;br /&gt;
# Service TFTP  service tftp  {  disable = no  socket_type = dgram  protocol = udp  wait = yes  user = root  server = /usr/sbin/in.tftpd  server_args = s /var/lib/tftpboot  per_source = 11  cps = 100 2  flags = IPv4  }&lt;br /&gt;
&lt;br /&gt;
Aprés ceci le PC boot... jusqu&#039;a ce qu&#039;il plante au montage NFS !  C&#039;est içi que clusternfs intervient ! Il à la paricularité de lire dans /etc/exports les caractères $$...  Pourquoi ? Pour que les clients aient une config particulière à chacun....  Mon /etc/exports : &lt;br /&gt;
/ /home /etc/sysconfig/mouse$$IP=192.168.1.254$$ /etc/modules.conf$$IP=192.168.1.254$$ /etc/modules$$IP=192.168.1.254$$ /etc/modprobe.conf$$IP=192.168.1.254$$ /etc/modprobe.preload$$IP=192.168.1.254$$ /etc/X11/XF86Config$$IP=192.168.1.254$$ /etc/X11/XF86Config4$$IP=192.168.1.254$$ /etc/X11/xorg.conf$$IP=192.168.1.254$$ /etc/sysconfig/i18n$$IP=192.168.1.254$$ /mnt/cdrom$$CLIENT$$ 192.168.1.0/255.255.255.0(ro,no_root_squash) 192.168.1.0/255.255.255.0(rw,root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash) 192.168.1.254(rw,no_root_squash)&lt;br /&gt;
&lt;br /&gt;
1 A ne pas confondre avec un serveur FTP !!!&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
Il faut aussi faire des copies de :  /etc/passwd  /etc/shadows  /etc/group  en  /etc/passwd$$IP=192.168.1.254$$  /etc/shadows$$IP=192.168.1.254$$  /etc/group$$IP=192.168.1.254$$  En réalité draTermServ crée des fichier /etc/quelquechose$$CLIENT$$. Lorsque qu&#039;avec drakTermServ vous crée un client lègé avec une IP=192.168.1.XX Tous les fichiers /etc/quelquechose$$CLIENT$$ sont reproduits en /etc/quelquechose$$IP=192.168.1.XX$$  ATTENTION : en console cp /etc/quelquechose$$CLIENT$$ /etc/quelquechose$$IP=*******$$ ne fonctionne pas car il faut mettre cp /etc/quelquechose\$\$CLIENT\$\$ / etc/quelquechose\$\$IP\=*******\$\$  On arrive au login console et/ou KDM, GDM....  Mais là cela plante !!!! (peutêtre) Chez moi oui cela plantait !  Sur le serveur etherboot j&#039;ai une carte vidéo GeForce II et pas sur le portable... Donc plantage !  Soluce : Un live CD. Réccupération sur clef USB (ex) de /etc/X11/XF86Config4 et /etc/X11/XF86Config.  Un :  cp /mnt/removable/XF86Config4 /etc/X11/XF86Config4\$\$IP\=192.168.1.254\$\$  cp /mnt/removable/XF86Config /etc/X11/XF86Config\$\$IP\=192.168.1.254\$\$  ln s /etc/X11/XF86Config4\$\$IP\=192.168.1.254\$\$ /etc/X11/xorg.conf\$\$IP\=192.168.1.254\$\$  J&#039;ai modifié mon /etc/initab\$\$IP\=192.168.1.254\$\$ pour être en init 3.&lt;br /&gt;
# /etc/inittab$$IP=192.168.1.254$$ # created by drakTermServ id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc l1:1:wait:/etc/rc.d/rc l2:2:wait:/etc/rc.d/rc l3:3:wait:/etc/rc.d/rc l4:4:wait:/etc/rc.d/rc l5:5:wait:/etc/rc.d/rc l6:6:wait:/etc/rc.d/rc 0 1 2 3 4 5 6&lt;br /&gt;
&lt;br /&gt;
# Things to run in every runlevel. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/reboot -f # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 # Connect to X server #x:5:respawn:/usr/X11R6/bin/X -ac -query 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;br /&gt;
&lt;br /&gt;
login:zterminal01 (on peut ainsi voir si le z est à Z ou X, et les chiffres déjà activés)  password:******  login(pam_unix)[2116]: session opened for user zterminal01 by LOGIN(uid=0)   zterminal01[2116]: LOGIN ON tty1 BY zterminal01  Içi dans les ~/.bash_login j&#039;ai mis une commande qui lance Xtart (modifié : Xtartterm)&lt;br /&gt;
# .bash_login /usr/bin/Xtartzterm&lt;br /&gt;
&lt;br /&gt;
Cela donne donc le choix à l&#039;utilisateur de lancer KDE.... Ensuite si une application métier est sur l&#039;intranet dans ~/.kde/Autostart/ J&#039;ai crée une application qui lance un navigateur (firefox) sur la page « application metier ». Firefox ayant l&#039;extension KIOSK, l&#039;utilisateur ne peut accèder à autre chose que l&#039;application metier.&lt;br /&gt;
[Desktop Entry] Comment= Comment[fr]= Encoding=UTF8 Exec=/logicaldisk/data/SOURCES/firefox/firefox http://www.systemlinux.net/egroupware GenericName= GenericName[fr]= Icon=exec MimeType= Name= Name[fr]= Path= StartupNotify=true Terminal=false TerminalOptions= Type=Application XDCOPServiceType= XKDESubstituteUID=false XKDEUsername=&lt;br /&gt;
&lt;br /&gt;
Nous sommes logué !!!!  III)Conclusion :     C&#039;est la configuration la plus satisfaisante que j&#039;ai eu à réaliser. Car elle englobe la connaissance du noyaux, des réseaux (dhcpd, ethernet...), de X et de ses multiples (innombrables?) possibilités, NFS.... Bref à réaliser ne seraitce que pour le fun !&lt;br /&gt;
&lt;br /&gt;
Postes en réseau sans disque dur, sans disquette... Avec cartes mêres, processeurs, de la RAM et cartes réseaux.&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Bac_%C3%A0_sable&amp;diff=13085</id>
		<title>Bac à sable</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Bac_%C3%A0_sable&amp;diff=13085"/>
		<updated>2006-07-17T02:18:19Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* tutu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Information =&lt;br /&gt;
Cette page est le bac à sable de Léa : utilisez le pour faire vos expérimentations. N&#039;hésitez pas à y faire n&#039;importe quoi.&lt;br /&gt;
Par exemple on peut y &amp;amp;eacute;crire n&#039;importe quoi.&amp;lt;br /&amp;gt;&lt;br /&gt;
J&#039;ai dit &#039;&#039;n&#039;&#039;&#039;&#039;importe&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;quoi&amp;lt;/span&amp;gt;, et même le contraire du reste ou autre chose.&lt;br /&gt;
&lt;br /&gt;
Exemple d&#039;uploade de fichier txt : [[Media:essai.txt|essai.txt]]&lt;br /&gt;
&lt;br /&gt;
(essai de n&#039;importe quoi :-D )&lt;br /&gt;
&lt;br /&gt;
{{En construction}}&lt;br /&gt;
&lt;br /&gt;
== essai de la balise sitemap : ==&lt;br /&gt;
&lt;br /&gt;
g envi de fer XXXX...&lt;br /&gt;
&lt;br /&gt;
qui suis-je ? Je ne sais pas qui tu es!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!sitemap&amp;gt;ns=Annuaire|title!=Old%&amp;lt;/sitemap!&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= essai d&#039;ajout =&lt;br /&gt;
test&lt;br /&gt;
&#039;&#039;&#039;Texte gras&#039;&#039;&#039;hgfghfgf&#039;&#039;&#039;Texte gras&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Texte italique&#039;&#039;ghdgh&#039;&#039;Texte italique&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== liens interwiki ==&lt;br /&gt;
&lt;br /&gt;
voir [http://meta.wikimedia.org/wiki/Aide:Lien_interwiki sur meta.wikimedia.org]&lt;br /&gt;
&lt;br /&gt;
préfixe  &#039;&#039;&#039;meta:&#039;&#039;&#039; [[meta:Aide:Lien_interwiki]]&lt;br /&gt;
&lt;br /&gt;
préfixe &#039;&#039;&#039;w:&#039;&#039;&#039; [[w:Aide:Lien_interwiki]]&lt;br /&gt;
&lt;br /&gt;
préfixe &#039;&#039;&#039;ew:&#039;&#039;&#039; [[ew:Aide:Lien_interwiki]]&lt;br /&gt;
&lt;br /&gt;
prefixe &#039;&#039;&#039;dict:&#039;&#039;&#039; [[dict:Linux]]&lt;br /&gt;
&lt;br /&gt;
== listes ==&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;itemize&#039;&#039; ===&lt;br /&gt;
* liste 1&lt;br /&gt;
* liste 2&lt;br /&gt;
** liste 2.1&lt;br /&gt;
***liste 2.1.1&lt;br /&gt;
**** liste 2.1.1.1&lt;br /&gt;
c&#039;est bien beau tout çà mais ça sert à quoi?&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;enumerate&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
# element 1&lt;br /&gt;
# element 2&lt;br /&gt;
## element 2.1&lt;br /&gt;
###element 2.1.1&lt;br /&gt;
## element 2.2&lt;br /&gt;
&lt;br /&gt;
== Texte de sous-titre ==&lt;br /&gt;
=== Texte de sous-titre ===&lt;br /&gt;
==== Texte de sous-titre ====&lt;br /&gt;
===== Texte de sous-titre =====&lt;br /&gt;
====== Texte de sous-titre ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Caractères ==&lt;br /&gt;
&lt;br /&gt;
æ Æ œ Œ ® © Ω § ÷ « € @ ß »&lt;br /&gt;
É È Ê Ë À Â Î Ï Ô Ö Ù Û Ü Ç&lt;br /&gt;
&lt;br /&gt;
== tutu ==&lt;br /&gt;
&lt;br /&gt;
titi&lt;br /&gt;
toto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ksks --&lt;br /&gt;
&lt;br /&gt;
== tata ==&lt;br /&gt;
&lt;br /&gt;
ffjfjjfjf&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Bac_%C3%A0_sable&amp;diff=13084</id>
		<title>Bac à sable</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Bac_%C3%A0_sable&amp;diff=13084"/>
		<updated>2006-07-17T02:17:45Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : tutu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Information =&lt;br /&gt;
Cette page est le bac à sable de Léa : utilisez le pour faire vos expérimentations. N&#039;hésitez pas à y faire n&#039;importe quoi.&lt;br /&gt;
Par exemple on peut y &amp;amp;eacute;crire n&#039;importe quoi.&amp;lt;br /&amp;gt;&lt;br /&gt;
J&#039;ai dit &#039;&#039;n&#039;&#039;&#039;&#039;importe&#039;&#039;&#039;&#039;&#039; &amp;lt;span style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;quoi&amp;lt;/span&amp;gt;, et même le contraire du reste ou autre chose.&lt;br /&gt;
&lt;br /&gt;
Exemple d&#039;uploade de fichier txt : [[Media:essai.txt|essai.txt]]&lt;br /&gt;
&lt;br /&gt;
(essai de n&#039;importe quoi :-D )&lt;br /&gt;
&lt;br /&gt;
{{En construction}}&lt;br /&gt;
&lt;br /&gt;
== essai de la balise sitemap : ==&lt;br /&gt;
&lt;br /&gt;
g envi de fer XXXX...&lt;br /&gt;
&lt;br /&gt;
qui suis-je ? Je ne sais pas qui tu es!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!sitemap&amp;gt;ns=Annuaire|title!=Old%&amp;lt;/sitemap!&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= essai d&#039;ajout =&lt;br /&gt;
test&lt;br /&gt;
&#039;&#039;&#039;Texte gras&#039;&#039;&#039;hgfghfgf&#039;&#039;&#039;Texte gras&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Texte italique&#039;&#039;ghdgh&#039;&#039;Texte italique&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== liens interwiki ==&lt;br /&gt;
&lt;br /&gt;
voir [http://meta.wikimedia.org/wiki/Aide:Lien_interwiki sur meta.wikimedia.org]&lt;br /&gt;
&lt;br /&gt;
préfixe  &#039;&#039;&#039;meta:&#039;&#039;&#039; [[meta:Aide:Lien_interwiki]]&lt;br /&gt;
&lt;br /&gt;
préfixe &#039;&#039;&#039;w:&#039;&#039;&#039; [[w:Aide:Lien_interwiki]]&lt;br /&gt;
&lt;br /&gt;
préfixe &#039;&#039;&#039;ew:&#039;&#039;&#039; [[ew:Aide:Lien_interwiki]]&lt;br /&gt;
&lt;br /&gt;
prefixe &#039;&#039;&#039;dict:&#039;&#039;&#039; [[dict:Linux]]&lt;br /&gt;
&lt;br /&gt;
== listes ==&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;itemize&#039;&#039; ===&lt;br /&gt;
* liste 1&lt;br /&gt;
* liste 2&lt;br /&gt;
** liste 2.1&lt;br /&gt;
***liste 2.1.1&lt;br /&gt;
**** liste 2.1.1.1&lt;br /&gt;
c&#039;est bien beau tout çà mais ça sert à quoi?&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;enumerate&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
# element 1&lt;br /&gt;
# element 2&lt;br /&gt;
## element 2.1&lt;br /&gt;
###element 2.1.1&lt;br /&gt;
## element 2.2&lt;br /&gt;
&lt;br /&gt;
== Texte de sous-titre ==&lt;br /&gt;
=== Texte de sous-titre ===&lt;br /&gt;
==== Texte de sous-titre ====&lt;br /&gt;
===== Texte de sous-titre =====&lt;br /&gt;
====== Texte de sous-titre ======&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Caractères ==&lt;br /&gt;
&lt;br /&gt;
æ Æ œ Œ ® © Ω § ÷ « € @ ß »&lt;br /&gt;
É È Ê Ë À Â Î Ï Ô Ö Ù Û Ü Ç&lt;br /&gt;
&lt;br /&gt;
== tutu ==&lt;br /&gt;
&lt;br /&gt;
titi&lt;br /&gt;
toto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ksks --&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13083</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=13083"/>
		<updated>2006-07-17T02:14:35Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Localiser le problème et nettoyer */&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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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 (mur de 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éseaux 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): -F -O -sV&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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, 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, 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;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ingénierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomb et un génie de l&#039;improvisation allié avec 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;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&lt;br /&gt;
&lt;br /&gt;
Lors de la possible compromission de la machine, il faut considérer les commandes sensibles (ps, top, who...) comme compromises.&lt;br /&gt;
Un LiveCD peut dans le cadre d&#039;une machine personnelle vous fournir une base de commandes saines.&lt;br /&gt;
Dans le cadre d&#039;une machine en production (serveur) qui ne doit souffrir de l&#039;arrêt des services, un jeu de commandes compilées (avec librairie statique) sur un support extérieur (CD, clef USB...) peut être nécessaire.&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour avoir contribué grandement à l&#039;article (&#039;&#039;sécurité réseau&#039;&#039; et &#039;&#039;sécurité logicielle&#039;&#039;, ainsi qu&#039;une certaine restructuration de l&#039;article)&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13082</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=13082"/>
		<updated>2006-07-17T02:14:04Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Voir aussi */&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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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 (mur de 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éseaux 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): -F -O -sV&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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, 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, 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;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ingénierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomb et un génie de l&#039;improvisation allié avec 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;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour avoir contribué grandement à l&#039;article (&#039;&#039;sécurité réseau&#039;&#039; et &#039;&#039;sécurité logicielle&#039;&#039;, ainsi qu&#039;une certaine restructuration de l&#039;article)&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13081</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=13081"/>
		<updated>2006-07-17T02:13:16Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Voir aussi */&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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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 (mur de 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éseaux 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): -F -O -sV&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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, 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, 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;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ingénierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomb et un génie de l&#039;improvisation allié avec 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;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&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;
&lt;br /&gt;
Lors de la possible compromission de la machine, il faut considérer les commandes sensibles (ps, top, who...) comme compromises.&lt;br /&gt;
Un LiveCD peut dans le cadre d&#039;une machine personnelle vous fournir une base de commandes saines.&lt;br /&gt;
Dans le cadre d&#039;une machine en production (serveur) qui ne doit souffrir de l&#039;arrêt des services, un jeu de commandes compilées (avec librairie statique) sur un support extérieur (CD, clef USB...) peut être nécessaire.&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour avoir contribué grandement à l&#039;article (&#039;&#039;sécurité réseau&#039;&#039; et &#039;&#039;sécurité logicielle&#039;&#039;, ainsi qu&#039;une certaine restructuration de l&#039;article)&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13080</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=13080"/>
		<updated>2006-07-17T02:12:31Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Localiser le problème et nettoyer */&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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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 (mur de 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éseaux 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): -F -O -sV&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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, 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, 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;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ingénierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomb et un génie de l&#039;improvisation allié avec 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;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour avoir contribué grandement à l&#039;article (&#039;&#039;sécurité réseau&#039;&#039; et &#039;&#039;sécurité logicielle&#039;&#039;, ainsi qu&#039;une certaine restructuration de l&#039;article)&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13040</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=13040"/>
		<updated>2006-07-13T08:13:44Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Localiser le problème et nettoyer */&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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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: 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 ? 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-un de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise un firewall (mur de feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de traffic qu&#039;il analyse et à quel niveau il se place 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éseaux un par un et les acceptes 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 où 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 connection et qu&#039;il est susceptible de se faire saturer (Dénis de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes, les proxy, les filtre 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é 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.&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): -F -O -sV&lt;br /&gt;
&lt;br /&gt;
nmap 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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, tous les mots de passes 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;espions 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 traffic 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;assure de l&#039;intégrité d&#039;un système en stockant un 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, 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 l&#039;une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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 Unix. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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;, &lt;br /&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 rootkits 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 erkms avant de continuer à se propager. Ce malware combinait à la fois un vers 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, 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomd et un génie de l&#039;improvisation allié avec des connaissances techniques hors du commun qui lui ont permi de réaliser des miracles (du mauvais coté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;innofensif&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;
=== Les systèmes de détection d&#039;intrusion ===&lt;br /&gt;
Un [http://fr.wikipedia.org/wiki/Système_de_détection_d&#039;intrusion IDS (&#039;&#039;Intrusion Detection System&#039;&#039;)] est un logiciel qui a pour but de détecter toute intrusion dans le système. On peut citer par exemple [[Reseau-secu-SNORT|snort]] et tiger mais il en existe d&#039;autres.&lt;br /&gt;
Un tel logiciel fait des vérifications sur le système (logs, réseau, etc.) et reporte toute anomalie, tout ce qui est suspect.&lt;br /&gt;
&lt;br /&gt;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&lt;br /&gt;
&lt;br /&gt;
Remarque : Ajout de Lolotux&lt;br /&gt;
Lors de la possible compromission de la machine, il faut considérer les commandes sensibles (ps, top, who...) comme compromises.&lt;br /&gt;
Un LiveCD peut dans le cadre d&#039;une machine personnelle (dans le cadre personnel) vous fournir une base de commandes saines.&lt;br /&gt;
Dans le cadre d&#039;une machine en production (serveur...) qui ne peut souffrir de l&#039;arrêt des services, un jeu de commandes compilées (avec librairie statique) sur un support exterieur (CD, Clef USB...) peut-être nécessaire !&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour sa contribution en rapport avec les virus, vers, chevaux de Troie, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13039</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=13039"/>
		<updated>2006-07-13T08:12:26Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Localiser le problème et nettoyer */&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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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: 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 ? 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-un de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise un firewall (mur de feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de traffic qu&#039;il analyse et à quel niveau il se place 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éseaux un par un et les acceptes 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 où 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 connection et qu&#039;il est susceptible de se faire saturer (Dénis de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes, les proxy, les filtre 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é 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.&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): -F -O -sV&lt;br /&gt;
&lt;br /&gt;
nmap 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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, tous les mots de passes 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;espions 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 traffic 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;assure de l&#039;intégrité d&#039;un système en stockant un 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, 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 l&#039;une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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 Unix. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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;, &lt;br /&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 rootkits 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 erkms avant de continuer à se propager. Ce malware combinait à la fois un vers 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, 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomd et un génie de l&#039;improvisation allié avec des connaissances techniques hors du commun qui lui ont permi de réaliser des miracles (du mauvais coté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;innofensif&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;
=== Les systèmes de détection d&#039;intrusion ===&lt;br /&gt;
Un [http://fr.wikipedia.org/wiki/Système_de_détection_d&#039;intrusion IDS (&#039;&#039;Intrusion Detection System&#039;&#039;)] est un logiciel qui a pour but de détecter toute intrusion dans le système. On peut citer par exemple [[Reseau-secu-SNORT|snort]] et tiger mais il en existe d&#039;autres.&lt;br /&gt;
Un tel logiciel fait des vérifications sur le système (logs, réseau, etc.) et reporte toute anomalie, tout ce qui est suspect.&lt;br /&gt;
&lt;br /&gt;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&lt;br /&gt;
&lt;br /&gt;
Remarque : Ajout de § Lolotux §&lt;br /&gt;
Lors de la possible compromission de la machine, il faut considérer les commandes sensibles (ps, top, who...) comme compromises.&lt;br /&gt;
Un LiveCD peut dans le cadre d&#039;une machine personnelle (dans le cadre personnel) vous fournir une base de commandes saines.&lt;br /&gt;
Dans le cadre d&#039;une machine en production (serveur...) qui ne peut souffrir de l&#039;arrêt des services, un jeu de commandes compilées (avec librairie statique) sur un support exterieur (CD, Clef USB...) peut-être nécessaire !&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour sa contribution en rapport avec les virus, vers, chevaux de Troie, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13038</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=13038"/>
		<updated>2006-07-13T08:08:48Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* Localiser le problème et nettoyer */&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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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: 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 ? 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-un de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise un firewall (mur de feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de traffic qu&#039;il analyse et à quel niveau il se place 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éseaux un par un et les acceptes 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 où 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 connection et qu&#039;il est susceptible de se faire saturer (Dénis de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes, les proxy, les filtre 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é 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.&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): -F -O -sV&lt;br /&gt;
&lt;br /&gt;
nmap 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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, tous les mots de passes 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;espions 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 traffic 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;assure de l&#039;intégrité d&#039;un système en stockant un 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, 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 l&#039;une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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 Unix. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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;, &lt;br /&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 rootkits 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 erkms avant de continuer à se propager. Ce malware combinait à la fois un vers 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, 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomd et un génie de l&#039;improvisation allié avec des connaissances techniques hors du commun qui lui ont permi de réaliser des miracles (du mauvais coté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;innofensif&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;
=== Les systèmes de détection d&#039;intrusion ===&lt;br /&gt;
Un [http://fr.wikipedia.org/wiki/Système_de_détection_d&#039;intrusion IDS (&#039;&#039;Intrusion Detection System&#039;&#039;)] est un logiciel qui a pour but de détecter toute intrusion dans le système. On peut citer par exemple [[Reseau-secu-SNORT|snort]] et tiger mais il en existe d&#039;autres.&lt;br /&gt;
Un tel logiciel fait des vérifications sur le système (logs, réseau, etc.) et reporte toute anomalie, tout ce qui est suspect.&lt;br /&gt;
&lt;br /&gt;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&lt;br /&gt;
&lt;br /&gt;
&#039;Remarque : Ajout de § Lolotux §&lt;br /&gt;
Lors de la possible compromission de la machine, il faut considérer les commandes sensibles (ps, top, who...) comme compromises.&lt;br /&gt;
Un LiveCD peut dans le cadre d&#039;une machine personnelle (dans le cadre personnel) vous fournir une base de commandes saines.&lt;br /&gt;
Dans le cadre d&#039;une machine en production (serveur...) qui ne peut souffrir de l&#039;arrêt des services, un jeu de commandes compilées (avec librairie statique) sur un support exterieur (CD, Clef USB...) peut-être nécessaire !&#039;&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour sa contribution en rapport avec les virus, vers, chevaux de Troie, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13037</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=13037"/>
		<updated>2006-07-13T08:07:44Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : /* 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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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: 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 ? 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-un de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise un firewall (mur de feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de traffic qu&#039;il analyse et à quel niveau il se place 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éseaux un par un et les acceptes 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 où 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 connection et qu&#039;il est susceptible de se faire saturer (Dénis de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes, les proxy, les filtre 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é 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.&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): -F -O -sV&lt;br /&gt;
&lt;br /&gt;
nmap 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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, tous les mots de passes 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;espions 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 traffic 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;assure de l&#039;intégrité d&#039;un système en stockant un 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, 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 l&#039;une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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 Unix. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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;, &lt;br /&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 rootkits 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 erkms avant de continuer à se propager. Ce malware combinait à la fois un vers 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, 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomd et un génie de l&#039;improvisation allié avec des connaissances techniques hors du commun qui lui ont permi de réaliser des miracles (du mauvais coté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;innofensif&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;
=== Les systèmes de détection d&#039;intrusion ===&lt;br /&gt;
Un [http://fr.wikipedia.org/wiki/Système_de_détection_d&#039;intrusion IDS (&#039;&#039;Intrusion Detection System&#039;&#039;)] est un logiciel qui a pour but de détecter toute intrusion dans le système. On peut citer par exemple [[Reseau-secu-SNORT|snort]] et tiger mais il en existe d&#039;autres.&lt;br /&gt;
Un tel logiciel fait des vérifications sur le système (logs, réseau, etc.) et reporte toute anomalie, tout ce qui est suspect.&lt;br /&gt;
&lt;br /&gt;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour sa contribution en rapport avec les virus, vers, chevaux de Troie, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13036</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=13036"/>
		<updated>2006-07-13T08:06:28Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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: 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 ? 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-un de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise un firewall (mur de feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de traffic qu&#039;il analyse et à quel niveau il se place 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éseaux un par un et les acceptes 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 où 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 connection et qu&#039;il est susceptible de se faire saturer (Dénis de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes, les proxy, les filtre 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é 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.&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): -F -O -sV&lt;br /&gt;
&lt;br /&gt;
nmap 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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, tous les mots de passes 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;espions 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 traffic 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;assure de l&#039;intégrité d&#039;un système en stockant un 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, 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 l&#039;une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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 Unix. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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;, &lt;br /&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 rootkits 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 erkms avant de continuer à se propager. Ce malware combinait à la fois un vers 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, 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomd et un génie de l&#039;improvisation allié avec des connaissances techniques hors du commun qui lui ont permi de réaliser des miracles (du mauvais coté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;innofensif&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;
&lt;br /&gt;
&#039;&#039;Remarque : Ajout de § Lolotux §&lt;br /&gt;
Lors de la possible compromission de la machine, il faut considérer les commandes sensibles (ps, top, who...) comme compromises.&lt;br /&gt;
Un LiveCD peut dans le cadre d&#039;une machine personnelle (dans le cadre personnel) vous fournir une base de commandes saines.&lt;br /&gt;
Dans le cadre d&#039;une machine en production (serveur...) qui ne peut souffrir de l&#039;arrêt des services, un jeu de commandes compilées (avec librairie statique) sur un support exterieur (CD, Clef USB...) peut-être nécessaire !&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Les systèmes de détection d&#039;intrusion ===&lt;br /&gt;
Un [http://fr.wikipedia.org/wiki/Système_de_détection_d&#039;intrusion IDS (&#039;&#039;Intrusion Detection System&#039;&#039;)] est un logiciel qui a pour but de détecter toute intrusion dans le système. On peut citer par exemple [[Reseau-secu-SNORT|snort]] et tiger mais il en existe d&#039;autres.&lt;br /&gt;
Un tel logiciel fait des vérifications sur le système (logs, réseau, etc.) et reporte toute anomalie, tout ce qui est suspect.&lt;br /&gt;
&lt;br /&gt;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour sa contribution en rapport avec les virus, vers, chevaux de Troie, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</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=13035</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=13035"/>
		<updated>2006-07-13T07:57:43Z</updated>

		<summary type="html">&lt;p&gt;Lolotux (phorum) : &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.&lt;br /&gt;
&lt;br /&gt;
Cette fiche est là pour vous faire découvrir les différents risques que l&#039;on court en ayant un ordinateur, connecté à un réseau ou non, ainsi que pour se parer contre la plupart des attaques et enfin pour savoir comment nettoyer l&#039;ordinateur après une attaque que l&#039;on vient de subir.&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;
== Avant tout, connaître son système ==&lt;br /&gt;
D&#039;abord et avant tout il faut être à l&#039;aise avec les concepts essentiels de [http://fr.wikipedia.org/wiki/Linux Linux]. Cela permettra d&#039;une part de mieux connaître et comprendre ce que nous faisons 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 démons et comment ils fonctionnent]]. Voyez comment fonctionne un réseau, ce que sont les ports réseau, les permissions des fichiers, ce que sont les failles de sécurité des logiciels, etc.&lt;br /&gt;
&lt;br /&gt;
== Connaître les risques ==&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: 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 ? 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-un de ces mots.&lt;br /&gt;
&lt;br /&gt;
==== Firewalls ====&lt;br /&gt;
Pour le définir de manière concise un firewall (mur de feu) est un filtre réseau qui va pouvoir stopper certains paquets réseau. Suivant le type de traffic qu&#039;il analyse et à quel niveau il se place 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éseaux un par un et les acceptes 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 où 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 connection et qu&#039;il est susceptible de se faire saturer (Dénis de service).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Firewall applicatif&#039;&#039;&#039;: Il en existe plusieurs sortes, les proxy, les filtre 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é 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.&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): -F -O -sV&lt;br /&gt;
&lt;br /&gt;
nmap 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 les informations utiles qui transitent par la carte réseau de la machine piratée. Ainsi, tous les mots de passes 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;espions 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 traffic 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;assure de l&#039;intégrité d&#039;un système en stockant un 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, 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 l&#039;une (ou plusieurs) machine(s) et c&#039;est là que commence la sécurité logicielle...&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;en informatique il existe des logiciels malveillants ([http://fr.wikipedia.org/wiki/Logiciel_malveillant malware] en anglais). Ces logiciels peuvent être des virus, des vers, des chevaux de Troie ou encore des rootkits. 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.&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 Unix. Cependant il faut être vigilant et appliquer régulièrement les correctifs de sécurité de votre système pour ne pas s&#039;exposer à des malwares, 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;, pour collecter les mots de passe vers d&#039;autres systèmes, etc). Ils 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;, &lt;br /&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 rootkits 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 [http://www.chkrootkit.org/ chkrootkit], qui vérifie la présence de rootkits.&lt;br /&gt;
&lt;br /&gt;
==== Attention aux mélanges !!! ====&lt;br /&gt;
Évidemment, tout 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 erkms avant de continuer à se propager. Ce malware combinait à la fois un vers 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, 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 un &#039;&#039;insider&#039;&#039; (quelqu&#039;un de l&#039;intérieur), il aura simplement recours à de l&#039;[http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_sociale ingénierie sociale]. C&#039;est une méthode consistant à 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 sont par exemple appelés par l&#039;attaquant, se faisant alors passer pour le service technique de l&#039;entreprise, qui prétend avoir besoin du mot de passe de l&#039;utilisateur 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 applomd et un génie de l&#039;improvisation allié avec des connaissances techniques hors du commun qui lui ont permi de réaliser des miracles (du mauvais coté de la loi, hélas).&lt;br /&gt;
&lt;br /&gt;
== Protéger son ordinateur ==&lt;br /&gt;
=== Sécuriser son boot ===&lt;br /&gt;
Si l&#039;accès physique à la machine est une faille, il faut configurer son bios. Celui-ci ne doit autoriser que le boot sur disque dur, et doit être protégé par mot de passe.&lt;br /&gt;
[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader Grub] permettant d&#039;éditer manuellement le boot (périphérique de démarrage, noyau, options pour l&#039;init...), il est nécessaire de le protéger par mot de passe afin qu&#039;on ne puisse pas modifier les configurations prédéfinies.&lt;br /&gt;
En fait il est même parfois conseillé de supprimer tout périphérique susceptible d&#039;être source d&#039;insécurité à ce niveau, comme le lecteur de disquettes par exemple. Cela dit, si c&#039;est une station de bureau il vaut mieux garder ce dont on a besoin, cela va sans dire. C&#039;est à vous d&#039;en juger.&lt;br /&gt;
&lt;br /&gt;
De toute manière, un système n&#039;est jamais sûr puisque pour l&#039;exemple présent, il est possible de supprimer le mot de passe du [http://fr.wikipedia.org/wiki/Basic_Input_Output_System BIOS] en réinitialisant celui-ci. Ainsi pour quelqu&#039;un ayant un accès physique à la machine il est facile d&#039;ouvrir le boîtier et de retirer quelques secondes la batterie alimentant le BIOS. La parade consisterait à verrouiller l&#039;accès à l&#039;intérieur de la machine (cadenas).&lt;br /&gt;
&lt;br /&gt;
Pire encore : le BIOS étant de nos jour stocké dans une mémoire accessible en écriture -- généralement de la mémoire flash. Sur les carte-mères plus anciennes le BIOS est stocké dans une ROM. -- ce qui permet potentiellement à quelqu&#039;un de le flasher (le mettre à jour) pour le remplacer par une version vérolée.&lt;br /&gt;
&lt;br /&gt;
Avant de continuer sur le BIOS, voyons un peu comment celui-ci fonctionne et pourquoi il existe :&lt;br /&gt;
&lt;br /&gt;
Immédiatement à la mise sous tension, le BIOS déroule la procédure de POST (&#039;&#039;Power-On Self Test&#039;&#039; ou &#039;&#039;vérification de mise sous tension&#039;&#039;). Durant cette phase, le BIOS effectue divers contrôles : [http://fr.wikipedia.org/wiki/Processeur CPU], [http://fr.wikipedia.org/wiki/Somme_de_contrôle autovérification par chiffre de contrôle], contrôle des paramètres BIOS enregistrés (mémoire de &amp;quot;setup&amp;quot;), initialisation de divers composants (horloge, [http://fr.wikipedia.org/wiki/Accès_direct_mémoire DMA], etc), vérification de la mémoire, des périphériques (claviers, lecteur(s) de disquette, disque(s) dur(s), etc.).&lt;br /&gt;
&lt;br /&gt;
En cas d&#039;erreur, le BIOS tente de continuer ou, en cas d&#039;erreur grave il arrête le système et affiche, si possible, un message d&#039;erreur. Autrement il fait une série de beep pour aider au diagnostic de la panne. Il envoie également un code sur le port série, code qui peut être récupéré par divers moyens.&lt;br /&gt;
&lt;br /&gt;
Immédiatement après le POST, le BIOS va charger le premier secteur du disque amorçable. Ce secteur contient un petit programme de chargement (boot loader) du chargeur du (des) système(s) d&#039;exploitation (grub, lilo ou, pour Windows, NTLDR). Le POST se termine en transférant l&#039;exécution au boot loader. &lt;br /&gt;
&lt;br /&gt;
C&#039;est en fait, à l&#039;origine, la fonctionnalité principale (c&#039;est elle qui a donné son nom au BIOS) du BIOS : fournir une couche logicielle d&#039;abstaction (permettant d&#039;ignorer lors de la programmation les aspects purement matériels) pour les périphériques les plus courants : clavier, écran, lecteur de disquettes, disques durs, souris, etc.&lt;br /&gt;
On accède à ces fonctions par l&#039;envoi d&#039;interruptions logicielles ou, plus rarement, par accès direct à la mémoire BIOS.&lt;br /&gt;
&lt;br /&gt;
Fort heureusement, linux étant un bon système d&#039;exploitation il n&#039;utilise pas le BIOS, qui sert comme on l&#039;a vu de couche d&#039;abstraction entre le logiciel et le matériel. Le risque d&#039;attaque via le BIOS est donc considéré comme nul. Cependant, il reste techniquement possible -- mais les pirates n&#039;y auraient aucun intérêt -- de flasher le BIOS de telle sorte qu&#039;il ne puisse plus booter l&#039;ordinateur, bloqué dans une boucle infinie.&lt;br /&gt;
&lt;br /&gt;
=== Partitionnement conséquent ===&lt;br /&gt;
À l&#039;installation du système, il faut bien réfléchir au partitionnement des disques. Les données statiques (binaires, fichiers de configuration, etc.) seront sur une partition montée en lecture seule pour éviter toute modification :&lt;br /&gt;
* /bin&lt;br /&gt;
* /boot&lt;br /&gt;
* /lib&lt;br /&gt;
* /sbin&lt;br /&gt;
* /usr&lt;br /&gt;
Eventuellement d&#039;autres dossiers, selon la distribution.&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;accès physique à la machine est une faille potentielle de sécurité, il n&#039;est pas une mauvaise idée que de créer une partition dédiée à /etc , qui serait formatée en un système de fichiers chiffré (voir [http://www.tldp.org/HOWTO/Encrypted-Root-Filesystem-HOWTO/ Encrypted root filesystem howto]). Dans ce cas-là, même si on démarre l&#039;ordinateur avec un LiveCD il devient impossible à moins d&#039;avoir les identifiants idoïnes d&#039;accéder aux données de la partition.&lt;br /&gt;
&lt;br /&gt;
=== N&#039;installer que le strict nécessaire ===&lt;br /&gt;
Chaque bout de code est potentiellement une faille. C&#039;est pour cela que moins il y a de logiciels installés, plus le risque d&#039;avoir une faille est réduit. Un exemple courant pour faire comprendre le principe est que sur un serveur il n&#039;est généralement nul besoin de serveur X. Un autre exemple, dans un environnement unix il n&#039;est nul besoin de serveur Samba.&lt;br /&gt;
Une fois le ménage fait dans votre installation, il faut bien configurer ses logiciels. D&#039;ailleurs pour être certain d&#039;avoir une machine propre, faites l&#039;installation hors-ligne et ne mettez la machine en réseau qu&#039;une fois bien sécurisée, surtout au niveau de Netfilter/iptables.&lt;br /&gt;
&lt;br /&gt;
=== Utilisateurs ===&lt;br /&gt;
Vérifier que root n&#039;est pas autorisé à se connecter. [[Sudo|Utiliser sudo]] plutôt que [[Fiches:Securite-ficheroot|le compte root directement]] pour les tâches d&#039;administration.&lt;br /&gt;
Evitez par ailleurs d&#039;avoir des comptes inutiles sur votre machine car même s&#039;ils n&#039;ont que des droits restreints, l&#039;utilisation d&#039;une faille pour obtenir plus de permissions par un intrus n&#039;est pas impossible.&lt;br /&gt;
&lt;br /&gt;
=== Permissions ===&lt;br /&gt;
De manière générale, éviter autant que possible de positionner les droits &#039;&#039;setuid&#039;&#039; et &#039;&#039;setgid&#039;&#039; d&#039;un éxécutable, qui permettent, en particulier, d&#039;exécuter un programme avec les droits de &#039;&#039;&#039;root&#039;&#039;&#039; alors qu&#039;on est connecté en simple utilisateur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre&amp;gt;&#039;&#039;&#039;setuid bit &#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du propriétaire du fichier éxécutable (en général le root).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;setgid bit&#039;&#039;&#039; droit donné à un fichier exécutable d&#039;utiliser les droits du groupe propriétaires du fichier éxécutable.&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Utiliser [[Admin-admin_env-chroot|chroot]] pour les services et les utilisateurs distants qui doivent avoir un accès restreint à la machine.&lt;br /&gt;
&lt;br /&gt;
Pour plus d&#039;information sur les droits, consulter la [[Permissions|documentation de Léa sur les permissions]]&lt;br /&gt;
&lt;br /&gt;
== Bien configurer ses démons ==&lt;br /&gt;
[[Reseau-web-Apache_protec|Sécuriser Apache]] en limitant les accès aux répertoires. On peut pour cela utiliser les fichiers .htaccess ou modifier directement la configuration du serveur, généralement &amp;lt;code&amp;gt;/etc/apache/httpd.conf&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;/etc/apache2/apache2.conf&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Utilisez [[Reseau-secu-ssh|ssh/sshd]] plutôt que &amp;lt;code&amp;gt;telnet&amp;lt;/code&amp;gt;. En effet, ce dernier ne chiffre pas ses flux de données, contrairement à ssh, ce qui permet grâce à un simple sniffeur réseau de voler identifiants et mots de passe via le réseau.&lt;br /&gt;
&lt;br /&gt;
Les serveurs de fichiers (ou apparents) tels &amp;lt;code&amp;gt;Samba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NFS&amp;lt;/code&amp;gt; ou encore &amp;lt;code&amp;gt;FTP&amp;lt;/code&amp;gt; ne doivent accepter de connexion que des utilisateurs enregistrés : une section est prévue à cet effet dans le fichier de configuration de chaque serveur. Il est préférable de faire ceci, même si les services n&#039;autorisent que les connexions locales et même si l&#039;authentification des utilisateurs est déjà limitée : mieux vaut trop de sécurité que pas assez. Si vous cherchez à faire du transfert de fichiers de manière sécurisée, préférez &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt; (qui est en fait une manière d&#039;utiliser le protocole ssh).&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez vnc, préférez le faire de manière sécurisée : [[Reseau-resau_plus-vnc|vnc au-dessus de ssh]].&lt;br /&gt;
&lt;br /&gt;
== Barrer la route aux connexions non souhaitées ==&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;
== Détecter les intrusions, connaître les outils ==&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;innofensif&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;
&amp;lt;cadre&amp;gt;&lt;br /&gt;
Remarque : Ajout de § Lolotux §&lt;br /&gt;
Lors de la possible compromission de la machine, il faut considérer les commandes sensibles (ps, top, who...) comme compromise.&lt;br /&gt;
Un LiveCD peut dans le cadre d&#039;une machine personnelle (dans le cadre personnel) vous fournir une base de commandes saines.&lt;br /&gt;
Dans le cadre d&#039;une machine en production (serveur...) qui ne peut souffrir de l&#039;arrêt des services, un jeu de commandes compilées (avec librairie statique) sur un support exterieur (CD, Clef USB...) est nécessaire !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Les systèmes de détection d&#039;intrusion ===&lt;br /&gt;
Un [http://fr.wikipedia.org/wiki/Système_de_détection_d&#039;intrusion IDS (&#039;&#039;Intrusion Detection System&#039;&#039;)] est un logiciel qui a pour but de détecter toute intrusion dans le système. On peut citer par exemple [[Reseau-secu-SNORT|snort]] et tiger mais il en existe d&#039;autres.&lt;br /&gt;
Un tel logiciel fait des vérifications sur le système (logs, réseau, etc.) et reporte toute anomalie, tout ce qui est suspect.&lt;br /&gt;
&lt;br /&gt;
== Localiser le problème et nettoyer ==&lt;br /&gt;
Grâce aux outils précédents il est plus ou moins facile de localiser d&#039;où vient le problème. On peut alors agir en conséquence, à savoir tuer les processus incriminés et supprimer les logiciels correspondants. Au préalable on peut aussi, si l&#039;on est curieux, regarder ce qu&#039;a fait l&#039;attaquant : il a certainement laissé des traces que l&#039;on peut examiner pour mieux comprendre.&lt;br /&gt;
&lt;br /&gt;
L&#039;intrus ayant pu avoir les droits root il serait de bon augure de réinstaller proprement -- en ayant pris soin de vider le cache de son gestionnaire de paquets -- les outils permettant la découverte de logiciels non souhaités, comme chkrootkit. Ceci fait un scan complet de tous les disques doit être fait. Prenez soin de monter toutes les partitions avant de lancer le scan. Veillez aussi à vérifier le partitionnement de vos disques, au cas où l&#039;attaquant aurait créé une partition dans le but d&#039;avoir un endroit de stockage de ses outils malveillants que l&#039;administrateur de la machine -- vous-même -- ne verrait pas. Eh oui, il faut penser à toutes les éventualités ! Je pense qu&#039;il vaut mieux être trop paranoïaque que pas assez, lorsqu&#039;on administre un serveur.&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;
== Remerciements ==&lt;br /&gt;
Un grand merci à abgech pour sa contribution à la partie concernant le BIOS,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à oudoubah, pour ses idées et son expérience,&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Morgan pour l&#039;aide qu&#039;il m&#039;a apporté pour restructurer l&#039;article, ainsi que pour ses idées et ses critiques également.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci à Fleury pour sa contribution en rapport avec les virus, vers, chevaux de Troie, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Merci enfin à Léa d&#039;être là pour le logiciel libre !&lt;br /&gt;
&lt;br /&gt;
{{Copy|2006|[[Utilisateur:Merlin8282|Merlin8282]], [[Utilisateur:Fleury|Fleury]]|CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Lolotux (phorum)</name></author>
	</entry>
</feed>