<?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=Glandos</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=Glandos"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Glandos"/>
	<updated>2026-04-06T02:07:08Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16768</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16768"/>
		<updated>2009-02-22T16:26:45Z</updated>

		<summary type="html">&lt;p&gt;Glandos : ajout de la topologie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
[[Image:Topologie_Wifi_OpenVPN.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inconvénient par rapport au WPA / WPA2 ==&lt;br /&gt;
* C&#039;est plus compliqué à installer&lt;br /&gt;
* Les clients doivent pouvoir installer OpenVPN&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* Le serveur dispose d&#039;un serveur DHCP fonctionnel pour le réseau local. &lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
Je ne dispose que d&#039;un client sous Ubuntu, donc je ne détaillerai l&#039;installation que pour ce système. Sachez que le client OpenVPN existe sous Windows, mais que la configuration se fait en éditant un fichier de configuration.&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
Il faut préalablement installer les deux paquets suivants :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install network-manager-openvpn openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit suivre les étapes suivantes :&lt;br /&gt;
* Cliquer sur l&#039;icône du réseau, et sur &amp;quot;Connexions VPN&amp;quot; puis &amp;quot;Configurer le VPN&amp;quot;&lt;br /&gt;
* Cliquer sur &amp;quot;Ajouter&amp;quot;&lt;br /&gt;
* Paramètres&lt;br /&gt;
** Nom de la connexion : &amp;quot;Mon VPN&amp;quot;&lt;br /&gt;
** Passerelle : 192.168.1.254&lt;br /&gt;
** Authentification, Type : Certificat &amp;quot;TLS&amp;quot;&lt;br /&gt;
** Certificat de l&#039;utilisateur : client.crt&lt;br /&gt;
** Certificat du CA : ca.crt&lt;br /&gt;
** Clé privée : client.key&lt;br /&gt;
** Private Key Password : le mot de passe utilisé pour la génération de la clé client&lt;br /&gt;
* Onglet Paramètres IPv4, cliquer sur le bouton &amp;quot;Routes...&amp;quot;&lt;br /&gt;
* Cocher la case &amp;quot;Ignorer les routes automatiquement obtenues&amp;quot;, pour ignorer les routes obtenues avant la connexion VPN. Je sais, c&#039;est pas clair du tout...&lt;br /&gt;
* Valider le tout&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit de se connecter au Wifi, et de lancer le VPN. C&#039;est fait :)&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
Cette alternative à WPA n&#039;est pas ultime. Normalement, WPA s&#039;occupe de tout. Cependant, cela permet de fournir une solution lorsque le chipset ne supporte pas le WPA (ce qui se fait rare), ou bien que le pilote n&#039;est pas assez mature pour être stable en production.&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;br /&gt;
[[Catégorie:Administration réseau]][[Catégorie:Réseau]][[Catégorie:Réseau local]]&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fichier:Topologie_Wifi_OpenVPN.png&amp;diff=16767</id>
		<title>Fichier:Topologie Wifi OpenVPN.png</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fichier:Topologie_Wifi_OpenVPN.png&amp;diff=16767"/>
		<updated>2009-02-22T16:26:14Z</updated>

		<summary type="html">&lt;p&gt;Glandos : a importé une nouvelle version de « Image:Topologie Wifi OpenVPN.png »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Fichier:Topologie_Wifi_OpenVPN.png&amp;diff=16766</id>
		<title>Fichier:Topologie Wifi OpenVPN.png</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Fichier:Topologie_Wifi_OpenVPN.png&amp;diff=16766"/>
		<updated>2009-02-22T16:22:08Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16765</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16765"/>
		<updated>2009-02-22T16:05:47Z</updated>

		<summary type="html">&lt;p&gt;Glandos : Ajout des catégories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inconvénient par rapport au WPA / WPA2 ==&lt;br /&gt;
* C&#039;est plus compliqué à installer&lt;br /&gt;
* Les clients doivent pouvoir installer OpenVPN&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* Le serveur dispose d&#039;un serveur DHCP fonctionnel pour le réseau local. &lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
Je ne dispose que d&#039;un client sous Ubuntu, donc je ne détaillerai l&#039;installation que pour ce système. Sachez que le client OpenVPN existe sous Windows, mais que la configuration se fait en éditant un fichier de configuration.&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
Il faut préalablement installer les deux paquets suivants :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install network-manager-openvpn openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit suivre les étapes suivantes :&lt;br /&gt;
* Cliquer sur l&#039;icône du réseau, et sur &amp;quot;Connexions VPN&amp;quot; puis &amp;quot;Configurer le VPN&amp;quot;&lt;br /&gt;
* Cliquer sur &amp;quot;Ajouter&amp;quot;&lt;br /&gt;
* Paramètres&lt;br /&gt;
** Nom de la connexion : &amp;quot;Mon VPN&amp;quot;&lt;br /&gt;
** Passerelle : 192.168.1.254&lt;br /&gt;
** Authentification, Type : Certificat &amp;quot;TLS&amp;quot;&lt;br /&gt;
** Certificat de l&#039;utilisateur : client.crt&lt;br /&gt;
** Certificat du CA : ca.crt&lt;br /&gt;
** Clé privée : client.key&lt;br /&gt;
** Private Key Password : le mot de passe utilisé pour la génération de la clé client&lt;br /&gt;
* Onglet Paramètres IPv4, cliquer sur le bouton &amp;quot;Routes...&amp;quot;&lt;br /&gt;
* Cocher la case &amp;quot;Ignorer les routes automatiquement obtenues&amp;quot;, pour ignorer les routes obtenues avant la connexion VPN. Je sais, c&#039;est pas clair du tout...&lt;br /&gt;
* Valider le tout&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit de se connecter au Wifi, et de lancer le VPN. C&#039;est fait :)&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
Cette alternative à WPA n&#039;est pas ultime. Normalement, WPA s&#039;occupe de tout. Cependant, cela permet de fournir une solution lorsque le chipset ne supporte pas le WPA (ce qui se fait rare), ou bien que le pilote n&#039;est pas assez mature pour être stable en production.&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;br /&gt;
[[Catégorie:Administration réseau]][[Catégorie:Réseau]][[Catégorie:Réseau local]]&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16764</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16764"/>
		<updated>2009-02-22T16:03:38Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inconvénient par rapport au WPA / WPA2 ==&lt;br /&gt;
* C&#039;est plus compliqué à installer&lt;br /&gt;
* Les clients doivent pouvoir installer OpenVPN&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* Le serveur dispose d&#039;un serveur DHCP fonctionnel pour le réseau local. &lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
Je ne dispose que d&#039;un client sous Ubuntu, donc je ne détaillerai l&#039;installation que pour ce système. Sachez que le client OpenVPN existe sous Windows, mais que la configuration se fait en éditant un fichier de configuration.&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
Il faut préalablement installer les deux paquets suivants :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install network-manager-openvpn openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit suivre les étapes suivantes :&lt;br /&gt;
* Cliquer sur l&#039;icône du réseau, et sur &amp;quot;Connexions VPN&amp;quot; puis &amp;quot;Configurer le VPN&amp;quot;&lt;br /&gt;
* Cliquer sur &amp;quot;Ajouter&amp;quot;&lt;br /&gt;
* Paramètres&lt;br /&gt;
** Nom de la connexion : &amp;quot;Mon VPN&amp;quot;&lt;br /&gt;
** Passerelle : 192.168.1.254&lt;br /&gt;
** Authentification, Type : Certificat &amp;quot;TLS&amp;quot;&lt;br /&gt;
** Certificat de l&#039;utilisateur : client.crt&lt;br /&gt;
** Certificat du CA : ca.crt&lt;br /&gt;
** Clé privée : client.key&lt;br /&gt;
** Private Key Password : le mot de passe utilisé pour la génération de la clé client&lt;br /&gt;
* Onglet Paramètres IPv4, cliquer sur le bouton &amp;quot;Routes...&amp;quot;&lt;br /&gt;
* Cocher la case &amp;quot;Ignorer les routes automatiquement obtenues&amp;quot;, pour ignorer les routes obtenues avant la connexion VPN. Je sais, c&#039;est pas clair du tout...&lt;br /&gt;
* Valider le tout&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit de se connecter au Wifi, et de lancer le VPN. C&#039;est fait :)&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
Cette alternative à WPA n&#039;est pas ultime. Normalement, WPA s&#039;occupe de tout. Cependant, cela permet de fournir une solution lorsque le chipset ne supporte pas le WPA (ce qui se fait rare), ou bien que le pilote n&#039;est pas assez mature pour être stable en production.&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16763</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16763"/>
		<updated>2009-02-22T16:02:13Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Présentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inconvénient par rapport au WPA / WPA2 ==&lt;br /&gt;
* C&#039;est plus compliqué à installer&lt;br /&gt;
* Les clients doivent pouvoir installer OpenVPN&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* Le serveur dispose d&#039;un serveur DHCP fonctionnel pour le réseau local. &lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
Je ne dispose que d&#039;un client sous Ubuntu, donc je ne détaillerai l&#039;installation que pour ce système. Sachez que le client OpenVPN existe sous Windows, mais que la configuration se fait en éditant un fichier de configuration.&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
Il faut préalablement installer les deux paquets suivants :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install network-manager-openvpn openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit suivre les étapes suivantes :&lt;br /&gt;
* Cliquer sur l&#039;icône du réseau, et sur &amp;quot;Connexions VPN&amp;quot; puis &amp;quot;Configurer le VPN&amp;quot;&lt;br /&gt;
* Cliquer sur &amp;quot;Ajouter&amp;quot;&lt;br /&gt;
* Paramètres&lt;br /&gt;
** Nom de la connexion : &amp;quot;Mon VPN&amp;quot;&lt;br /&gt;
** Passerelle : 192.168.1.254&lt;br /&gt;
** Authentification, Type : Certificat &amp;quot;TLS&amp;quot;&lt;br /&gt;
** Certificat de l&#039;utilisateur : client.crt&lt;br /&gt;
** Certificat du CA : ca.crt&lt;br /&gt;
** Clé privée : client.key&lt;br /&gt;
** Private Key Password : le mot de passe utilisé pour la génération de la clé client&lt;br /&gt;
* Onglet Paramètres IPv4, cliquer sur le bouton &amp;quot;Routes...&amp;quot;&lt;br /&gt;
* Cocher la case &amp;quot;Ignorer les routes automatiquement obtenues&amp;quot;, pour ignorer les routes obtenues avant la connexion VPN. Je sais, c&#039;est pas clair du tout...&lt;br /&gt;
* Valider le tout&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit de se connecter au Wifi, et de lancer le VPN. C&#039;est fait :)&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16762</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16762"/>
		<updated>2009-02-22T16:00:56Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Préparation du client */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* Le serveur dispose d&#039;un serveur DHCP fonctionnel pour le réseau local. &lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
Je ne dispose que d&#039;un client sous Ubuntu, donc je ne détaillerai l&#039;installation que pour ce système. Sachez que le client OpenVPN existe sous Windows, mais que la configuration se fait en éditant un fichier de configuration.&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
Il faut préalablement installer les deux paquets suivants :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install network-manager-openvpn openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit suivre les étapes suivantes :&lt;br /&gt;
* Cliquer sur l&#039;icône du réseau, et sur &amp;quot;Connexions VPN&amp;quot; puis &amp;quot;Configurer le VPN&amp;quot;&lt;br /&gt;
* Cliquer sur &amp;quot;Ajouter&amp;quot;&lt;br /&gt;
* Paramètres&lt;br /&gt;
** Nom de la connexion : &amp;quot;Mon VPN&amp;quot;&lt;br /&gt;
** Passerelle : 192.168.1.254&lt;br /&gt;
** Authentification, Type : Certificat &amp;quot;TLS&amp;quot;&lt;br /&gt;
** Certificat de l&#039;utilisateur : client.crt&lt;br /&gt;
** Certificat du CA : ca.crt&lt;br /&gt;
** Clé privée : client.key&lt;br /&gt;
** Private Key Password : le mot de passe utilisé pour la génération de la clé client&lt;br /&gt;
* Onglet Paramètres IPv4, cliquer sur le bouton &amp;quot;Routes...&amp;quot;&lt;br /&gt;
* Cocher la case &amp;quot;Ignorer les routes automatiquement obtenues&amp;quot;, pour ignorer les routes obtenues avant la connexion VPN. Je sais, c&#039;est pas clair du tout...&lt;br /&gt;
* Valider le tout&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit de se connecter au Wifi, et de lancer le VPN. C&#039;est fait :)&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16761</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16761"/>
		<updated>2009-02-22T15:59:13Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Ubuntu 8.10 avec NetworkManager */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* Le serveur dispose d&#039;un serveur DHCP fonctionnel pour le réseau local. &lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
Il faut préalablement installer les deux paquets suivants :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install network-manager-openvpn openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit suivre les étapes suivantes :&lt;br /&gt;
* Cliquer sur l&#039;icône du réseau, et sur &amp;quot;Connexions VPN&amp;quot; puis &amp;quot;Configurer le VPN&amp;quot;&lt;br /&gt;
* Cliquer sur &amp;quot;Ajouter&amp;quot;&lt;br /&gt;
* Paramètres&lt;br /&gt;
** Nom de la connexion : &amp;quot;Mon VPN&amp;quot;&lt;br /&gt;
** Passerelle : 192.168.1.254&lt;br /&gt;
** Authentification, Type : Certificat &amp;quot;TLS&amp;quot;&lt;br /&gt;
** Certificat de l&#039;utilisateur : client.crt&lt;br /&gt;
** Certificat du CA : ca.crt&lt;br /&gt;
** Clé privée : client.key&lt;br /&gt;
** Private Key Password : le mot de passe utilisé pour la génération de la clé client&lt;br /&gt;
* Onglet Paramètres IPv4, cliquer sur le bouton &amp;quot;Routes...&amp;quot;&lt;br /&gt;
* Cocher la case &amp;quot;Ignorer les routes automatiquement obtenues&amp;quot;, pour ignorer les routes obtenues avant la connexion VPN. Je sais, c&#039;est pas clair du tout...&lt;br /&gt;
* Valider le tout&lt;br /&gt;
&lt;br /&gt;
Ensuite, il suffit de se connecter au Wifi, et de lancer le VPN. C&#039;est fait :)&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16760</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16760"/>
		<updated>2009-02-22T15:06:06Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Pré-requis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* Le serveur dispose d&#039;un serveur DHCP fonctionnel pour le réseau local. &lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16759</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16759"/>
		<updated>2009-02-22T15:05:25Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Sécurisation de l&amp;#039;interface ath0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès&lt;br /&gt;
## à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement,&lt;br /&gt;
## mais doivent tous être délivré à OpenVPN.&lt;br /&gt;
## C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet.&lt;br /&gt;
## Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16758</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16758"/>
		<updated>2009-02-22T15:02:52Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Préparation du point d&amp;#039;accès */ Remplissage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
Toutes les commandes de cette partie sont à exécuter avec les droits du super utilisateur.&lt;br /&gt;
&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
Disposant d&#039;une carte géré par le pilote madwifi, il me faut tout d&#039;abord créer l&#039;interface à l&#039;aide de &amp;lt;code&amp;gt;wlanconfig&amp;lt;/code&amp;gt;. Cela permet de créer plusieurs interfaces virtuelles qui fonctionnent toutes sur la même carte réseau physique, mais dans des modes différents. Allons-y :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
wlanconfig ath0 create wlandev wifi0 wlanmode ap&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Cela crée une interface virtuelle nommée ath0 à partir de la carte wifi0 en mode &amp;quot;ap&amp;quot;, c&#039;est-à-dire &amp;quot;Access Point&amp;quot; soit &amp;quot;Point d&#039;accès&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ensuite, il faut fixer le SSID, c&#039;est à dire le nom du réseau Wifi qui sera identifié par le client :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
iwconfig ath0 essid &amp;quot;Mon OpenVPN&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer d&#039;autres paramètres sur cette interface, comme le canal utilisé. Reportez-vous à la documentation de &amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt; pour en savoir plus.&lt;br /&gt;
&lt;br /&gt;
Et enfin, il faut démarrer l&#039;interface nouvellement créée.&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;À partir de là, votre point d&#039;accès peut-être rejoint par n&#039;importe qui !&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
ifconfig ath0 192.168.1.254 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour rendre cette configuration persistante, il suffit de modifier le fichier &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; sous Debian et d&#039;y rajouter ces lignes :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Interface pour le VPN&lt;br /&gt;
auto ath0&lt;br /&gt;
iface ath0 inet manual&lt;br /&gt;
        madwifi-base wifi0&lt;br /&gt;
        madwifi-mode ap&lt;br /&gt;
        wireless-channel 9&lt;br /&gt;
        address 192.168.1.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;
== Installation de OpenVPN ==&lt;br /&gt;
Je suis sous Debian, donc si ça vous vexe pas, je vais décrire la procédure d&#039;installation à la mode Debian :) Et c&#039;est plutôt simple :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apt-get install openvpn&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Pouf pouf, c&#039;est fait. Pour les autres distributions, je doute que ce soit plus compliqué, OpenVPN étant un logiciel couramment utilisé.&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
=== Génération des certificats ===&lt;br /&gt;
Alors je ne vais pas réinventer la roue. Je vous renvoie au tutoriel d&#039;Ubuntu pour [http://doc.ubuntu-fr.org/openvpn#configuration_des_vpn la génération des fichiers du VPN]&lt;br /&gt;
=== Création d&#039;un VPN ===&lt;br /&gt;
J&#039;ai donc un fichier monvpn.conf dans &amp;lt;code&amp;gt;/etc/openvpn&amp;lt;/code&amp;gt; qui ressemble à ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## Pour ne répondre au VPN que sur l&#039;interface ath0&lt;br /&gt;
local 192.168.1.254&lt;br /&gt;
&lt;br /&gt;
port 1194&lt;br /&gt;
&lt;br /&gt;
proto udp&lt;br /&gt;
&lt;br /&gt;
## Utilisation du mode routé&lt;br /&gt;
dev tun&lt;br /&gt;
&lt;br /&gt;
## Fichiers générés à la section précédente&lt;br /&gt;
ca ca.crt&lt;br /&gt;
cert monvpn.crt&lt;br /&gt;
key monvpn.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh dh1024.pem&lt;br /&gt;
&lt;br /&gt;
## Adresse de l&#039;interface de sortie du VPN&lt;br /&gt;
server 192.168.254.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
&lt;br /&gt;
## Permet de faire passer tout le trafic du client à travers le VPN&lt;br /&gt;
push &amp;quot;redirect-gateway local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
&lt;br /&gt;
user nobody&lt;br /&gt;
group nogroup&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
log-append  /var/log/openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
J&#039;ai mis des commentaires là où c&#039;est important de comprendre. Les autres paramètres sont nécessaires, mais les garder intacts est une super bonne idée :)&lt;br /&gt;
&lt;br /&gt;
Et après, il n&#039;y a plus qu&#039;à démarrer le VPN :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/etc/init.d/openvpn start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalement, cette commande est exécutée automatiquement lors du démarrage de la machine. Allez faire un tour dans &amp;lt;code&amp;gt;/etc/default/openvpn&amp;lt;/code&amp;gt; pour faire du démarrage sélectif de VPN.&lt;br /&gt;
&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
C&#039;est la partie la plus délicate. C&#039;est celle qui m&#039;a motivé à faire ce tutoriel :) Pour comprendre la suite, il faut comprendre le trajet d&#039;un paquet arrivant par le VPN sur la passerelle :&lt;br /&gt;
* ath0 : un paquet arrive encapsulé et chiffré par le port 1194 en UDP&lt;br /&gt;
* Le processus OpenVPN, qui écoute sur le port et l&#039;adresse lié à l&#039;interface, reçoit ce paquet, le déchiffre et le renvoi au bon endroit. Comme le client envoie tous les paquets via l&#039;adresse de l&#039;interface créée par OpenVPN soit 192.168.254.1&lt;br /&gt;
* tun0 : reçoit donc le paquet en clair, et doit le transmettre à la bonne interface de sortie (car à part le ping, il n&#039;y a rien à destination de cette interface).&lt;br /&gt;
* eth_adsl, eth_lan : selon la destination du paquet.&lt;br /&gt;
&lt;br /&gt;
=== Sécurisation de l&#039;interface ath0 ===&lt;br /&gt;
Le but est déjà de verrouiller l&#039;interface sans-fil pour ne laisser passer que deux flux :&lt;br /&gt;
* Le DHCP. Bah oui, on pourrait configurer les clients à la main, mais c&#039;est quand même plus pratique d&#039;avoir le DHCP qui s&#039;occupe de ça. Et ce n&#039;est pas bien dangereux d&#039;avoir une IP si on ne peut rien faire avec. Pour les paranoïaques, j&#039;imagine que cela pose un problème de sécurité, si jamais il y a des failles dans le serveur DHCP. Il faut savoir qu&#039;en WPA, le chiffrement de la connexion se fait AVANT le DHCP, ce qui est mieux. C&#039;est un inconvénient de cette solution. À vous de voir.&lt;br /&gt;
* Le tunnel OpenVPN. Normal.&lt;br /&gt;
&lt;br /&gt;
Donc avec iptables, ça donne ça :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port du VPN&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 1194 -j ACCEPT&lt;br /&gt;
## ath0 : On accepte les paquets en UDP sur le port DHCP&lt;br /&gt;
iptables -t filter -A INPUT -i ath0 -p udp -m udp --dport 67 -j ACCEPT&lt;br /&gt;
## tun0 : Il faut bien que le VPN envoie et reçoive des paquets&lt;br /&gt;
iptables -t filter -A INPUT -i tun0 ACCEPT&lt;br /&gt;
&lt;br /&gt;
## Ne tapez cette commande QUE si vous N&#039;avez PAS d&#039;autres règles déjà en place !&lt;br /&gt;
iptables -t filter -A INPUT -i &amp;quot;!ath0&amp;quot; ACCEPT&lt;br /&gt;
## Par défaut, on jette tous les paquets en entrée. La règle précédente vous permettra d&#039;avoir encore accès à votre machine par le réseau câblé. Sinon, tout sera bloqué...&lt;br /&gt;
iptables -t filter -P INPUT DROP&lt;br /&gt;
## Les paquets ne doivent pas passer à travers une autre interface directement, mais doivent tous être délivré à OpenVPN. C&#039;est très important !&lt;br /&gt;
iptables -t filter -A FORWARD -i ath0 DROP&lt;br /&gt;
&lt;br /&gt;
## Maintenant, on fait la règle de NAT pour faire sortir les paquets déchiffré par OpenVPN sur Internet. Si on ne fait pas ça, seul les paquets à destination du réseau local arriveront à destination.&lt;br /&gt;
iptables -t nat -A POSTROUTING -s 192.168.254.1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et comme moi, j&#039;utilise [http://ferm.foo-projects.org/ ferm] pour me simplifier la vie, voici le résumé dans une syntaxe lisible par ce logiciel :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
# Activation du NAT (juste pour le VPN dans ce cas)&lt;br /&gt;
table nat {&lt;br /&gt;
        chain POSTROUTING saddr 192.168.254.1 MASQUERADE;&lt;br /&gt;
}&lt;br /&gt;
table filter {&lt;br /&gt;
&lt;br /&gt;
        #Tout le trafic en sortie est autorisé&lt;br /&gt;
        chain OUTPUT {&lt;br /&gt;
                policy ACCEPT;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # On filtre tout ce qui arrive&lt;br /&gt;
        chain INPUT {&lt;br /&gt;
                policy DROP;&lt;br /&gt;
                interface ath0 {&lt;br /&gt;
                        proto udp dport openvpn ACCEPT;&lt;br /&gt;
                        proto udp dport bootps ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
                interface tun0 ACCEPT;&lt;br /&gt;
&lt;br /&gt;
                # D&#039;autres règles sont nécessaire pour que Internet marche.&lt;br /&gt;
                interface eth_adsl {&lt;br /&gt;
                        # On accepte seulement les paquets qui reviennent&lt;br /&gt;
                        mod state state INVALID DROP;&lt;br /&gt;
                        mod state state (ESTABLISHED RELATED) ACCEPT;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        # Interdiction de forwarder des paquets !&lt;br /&gt;
        chain FORWARD interface ath0 {&lt;br /&gt;
                DROP;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Bon à partir de là, vous pouvez respirer, il est normalement impossible de se connecter via l&#039;interface ath0 sur votre réseau.&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16757</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16757"/>
		<updated>2009-02-22T13:48:23Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Pré-requis */ ajout d&amp;#039;un prérequis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
* Des notions de VPN sont conseillées.&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
== Installation de OpenVPN ==&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Point_d%27acc%C3%A8s_s%C3%A9curis%C3%A9_par_OpenVPN&amp;diff=16756</id>
		<title>Point d&#039;accès sécurisé par OpenVPN</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_OpenVPN&amp;diff=16756"/>
		<updated>2009-02-22T13:31:30Z</updated>

		<summary type="html">&lt;p&gt;Glandos : Création : Présentation, prérequis, et squelette&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Ceci est la suite de [[Créer un point d&#039;accès sécurisé avec hostAPd]]. Pourquoi me direz-vous ? Et bien, d&#039;abord, pour la beauté de la chose. Ensuite, parce que certains clients font tout simplement planter mon point d&#039;accès, qui tourne avec le module Madwifi. Donc j&#039;ai voulu essayer autre chose.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Le but recherché, et c&#039;est très important de le souligner, est de créer &amp;lt;u&amp;gt;un point d&#039;accès sécurisé sans WEP ni WPA, ni WPA2&amp;lt;/u&amp;gt;. Le point d&#039;accès apparaît comme non-sécurisé, mais si tout le monde peut s&#039;y associer, ce n&#039;est pas pour autant qu&#039;il va être ouvert.&lt;br /&gt;
&lt;br /&gt;
Je dispose toujours du même matériel :&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 qui a un chipset Wifi Atheros fonctionnant avec ath9k.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cadre type=&#039;alert&#039;&amp;gt;Ce tutoriel décrit les opérations dans le sens logique d&#039;une installation. Cependant, si vous le suivez dans l&#039;ordre, il se peut que votre réseau se retrouve sans défense, et complètement accessible pendant un certain temps. Si vous voulez prendre le moins de risques possible, il est préférable de commencer par les règles IPTables&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pré-requis =&lt;br /&gt;
Malheureusement, je ne peux pas considérer que vous partez avec zéro connaissance. Mais voici la liste de ce qui doit déjà marcher sur votre installation :&lt;br /&gt;
* Le chipset Wifi doit être reconnu sur le serveur&lt;br /&gt;
* Le réseau doit être fonctionnel sur le serveur&lt;br /&gt;
* iptables doit être installé sur le serveur&lt;br /&gt;
* Le client doit avoir une carte Wifi qui marche&lt;br /&gt;
&lt;br /&gt;
= Préparation du point d&#039;accès =&lt;br /&gt;
== Création de l&#039;interface réseau ==&lt;br /&gt;
== Installation de OpenVPN ==&lt;br /&gt;
== Configuration de OpenVPN ==&lt;br /&gt;
== Modification du pare-feu ==&lt;br /&gt;
&lt;br /&gt;
= Préparation du client =&lt;br /&gt;
== Ubuntu 8.10 avec NetworkManager ==&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
{{CC-BY-SA}}&lt;/div&gt;</summary>
		<author><name>Glandos</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=14081</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=14081"/>
		<updated>2006-12-15T16:16:33Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Configuration de hostAPd */&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 chercher 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>Glandos</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=14080</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=14080"/>
		<updated>2006-12-15T16:13:59Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Configuration de hostAPd */&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 chercher 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.&lt;br /&gt;
&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;
À 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;
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;
Ensuite, 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>Glandos</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=13918</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=13918"/>
		<updated>2006-10-31T16:40:52Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Sous Ubuntu ... */ Ajout Edgy&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 chercher 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. 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à :) À 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;
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;
Ensuite, 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>Glandos</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=13917</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=13917"/>
		<updated>2006-10-31T16:02:13Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Compilation */ Changements des temps des verbes&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 chercher 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. 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à :) À 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;
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;
Ensuite, 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;
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>Glandos</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=13916</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=13916"/>
		<updated>2006-10-31T16:00:35Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Créer le point d&amp;#039;accès */ Ajout de la section &amp;quot;paquets debian&amp;quot;&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 chercher 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 sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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;
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>Glandos</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=13915</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=13915"/>
		<updated>2006-10-31T15:42:34Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Activation */ Mise en forme&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 chercher 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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;
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>Glandos</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=13816</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=13816"/>
		<updated>2006-10-08T10:52:34Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &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;/div&gt;</summary>
		<author><name>Glandos</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=12683</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=12683"/>
		<updated>2006-05-22T16:57:29Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &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;/div&gt;</summary>
		<author><name>Glandos</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=12569</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=12569"/>
		<updated>2006-04-28T21:02:05Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Configuration de hostAPd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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 meurtris par ces infâmes périphériques de saisie, de soulager les cris blafards de votre estomac. Vous pourrez alors apprécier à sa juste valeur les hormones de bien-être sécrétées par une digestion bien mérité :)&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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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;
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>Glandos</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=12568</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=12568"/>
		<updated>2006-04-28T13:34:43Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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 meurtris par ces infâmes périphériques de saisie, de soulager les cris blafards de votre estomac. Vous pourrez alors apprécier à sa juste valeur les hormones de bien-être sécrétées par une digestion bien mérité :)&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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
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>Glandos</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=12567</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=12567"/>
		<updated>2006-04-28T13:33:57Z</updated>

		<summary type="html">&lt;p&gt;Glandos : Conclusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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 meurtris par ces infâmes périphériques de saisie, de soulager les cris blafards de votre estomac. Vous pourrez alors apprécier à sa juste valeur les hormones de bien-être sécrétées par une digestion bien mérité :)&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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
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;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&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;/div&gt;</summary>
		<author><name>Glandos</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=12566</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=12566"/>
		<updated>2006-04-28T13:30:52Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Première validation du point d&amp;#039;accès */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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 meurtris par ces infâmes périphériques de saisie, de soulager les cris blafards de votre estomac. Vous pourrez alors apprécier à sa juste valeur les hormones de bien-être sécrétées par une digestion bien mérité :)&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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
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;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&lt;/div&gt;</summary>
		<author><name>Glandos</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=12565</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=12565"/>
		<updated>2006-04-28T13:29:41Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Activation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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 meurtris par ces infâmes périphériques de saisie, de soulager les cris blafards de votre estomac. Vous pourrez alors apprécier à sa juste valeur les hormones de bien-être sécrétées par une digestion bien mérité :)&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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&lt;/div&gt;</summary>
		<author><name>Glandos</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=12564</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=12564"/>
		<updated>2006-04-28T13:26:18Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Prérequis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&lt;/div&gt;</summary>
		<author><name>Glandos</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=12563</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=12563"/>
		<updated>2006-04-28T13:25:59Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Prérequis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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é à 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&lt;/div&gt;</summary>
		<author><name>Glandos</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=12562</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=12562"/>
		<updated>2006-04-28T13:22:29Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ en construction }}&lt;br /&gt;
&amp;lt;cadre type=alert&amp;gt;Voilà, à part les TODO, je crois que j&#039;ai fini. Merci de ne pas hésiter à me relire, me corriger. Pour les petites fautes (frappe, orthographe, faites-le directement en indiquant la modification dans le résumé en bas. Sinon, merci de d&#039;abord passer par la page de discussion, c&#039;est plus civique :)&lt;br /&gt;
&amp;lt;/cadre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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;
&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&lt;/div&gt;</summary>
		<author><name>Glandos</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=12561</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=12561"/>
		<updated>2006-04-28T13:19:59Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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;
&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;
&lt;br /&gt;
{{Copy|Avril 2006|Glandos|FDL}}&lt;/div&gt;</summary>
		<author><name>Glandos</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=12560</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=12560"/>
		<updated>2006-04-28T13:17:45Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Présentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&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;
&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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;/div&gt;</summary>
		<author><name>Glandos</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=12559</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=12559"/>
		<updated>2006-04-28T13:12:16Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* ... comme sous Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;/div&gt;</summary>
		<author><name>Glandos</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=12558</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=12558"/>
		<updated>2006-04-28T13:07:36Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Sous Ubuntu ... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;/div&gt;</summary>
		<author><name>Glandos</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=12557</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=12557"/>
		<updated>2006-04-28T12:59:08Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;
== ... comme sous Windows ==&lt;/div&gt;</summary>
		<author><name>Glandos</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=12556</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=12556"/>
		<updated>2006-04-28T12:57:24Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Sous Ubuntu ... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;&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;Clé&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;
== ... comme sous Windows ==&lt;/div&gt;</summary>
		<author><name>Glandos</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=12554</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=12554"/>
		<updated>2006-04-27T21:14:36Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Sous Ubuntu ... */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
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;
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;&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;
== ... comme sous Windows ==&lt;/div&gt;</summary>
		<author><name>Glandos</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=12553</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=12553"/>
		<updated>2006-04-27T20:57:26Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&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;
&lt;br /&gt;
== ... comme sous Windows ==&lt;/div&gt;</summary>
		<author><name>Glandos</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=12552</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=12552"/>
		<updated>2006-04-27T20:39:03Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Configuration de hostAPd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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à :) À 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;
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;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12551</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=12551"/>
		<updated>2006-04-27T20:30:31Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12550</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=12550"/>
		<updated>2006-04-27T20:29:28Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Activation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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 :&lt;br /&gt;
reboot&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12549</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=12549"/>
		<updated>2006-04-27T20:28:46Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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&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&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&lt;br /&gt;
reboot&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&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12548</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=12548"/>
		<updated>2006-04-27T20:28:08Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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;/span&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&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&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&lt;br /&gt;
reboot&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&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12547</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=12547"/>
		<updated>2006-04-27T20:26:41Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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&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;span class=&amp;quot;code&amp;quot;&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;
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;/span&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&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&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&lt;br /&gt;
reboot&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&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12546</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=12546"/>
		<updated>2006-04-27T20:25:25Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Première validation du point d&amp;#039;accès */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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&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;
# 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&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&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&lt;br /&gt;
reboot&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&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12545</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=12545"/>
		<updated>2006-04-27T20:19:05Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Présentation de hostAPd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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&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;
# 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&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&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&lt;br /&gt;
reboot&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&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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;
/etc/init.d/hostapd start&lt;br /&gt;
devrait donner un résultat positif. Faites ensuite&lt;br /&gt;
/etc/init.d/hostapd stop&lt;br /&gt;
hostapd -dd /etc/hostapd/hostapd.conf&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.&lt;/div&gt;</summary>
		<author><name>Glandos</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=12544</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=12544"/>
		<updated>2006-04-27T20:17:18Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Présentation de hostAPd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; en fait tant que la page n&#039;est pas modérée par un admin du site : elle n&#039;apparaitra pas autrement qu&#039;avec la version &#039;initiale&#039;.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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&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;
# 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&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&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&lt;br /&gt;
reboot&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&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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;
/etc/init.d/hostapd start&lt;br /&gt;
devrait donner un résultat positif. Faites ensuite&lt;br /&gt;
/etc/init.d/hostapd stop&lt;br /&gt;
hostapd -dd /etc/hostapd/hostapd.conf&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.&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion_utilisateur:Glandos&amp;diff=12543</id>
		<title>Discussion utilisateur:Glandos</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion_utilisateur:Glandos&amp;diff=12543"/>
		<updated>2006-04-27T20:12:51Z</updated>

		<summary type="html">&lt;p&gt;Glandos : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Utilisateur:Fred|Fred]]&amp;gt; je viens de te donner les droits &amp;quot;editeur&amp;quot; sur Le site : tu peux donc accéder à la partie &amp;quot;non modéré&amp;quot; de Léa via la petite icône &amp;quot;clé anglaise&amp;quot; en haut à droite des pages du site.&lt;br /&gt;
&lt;br /&gt;
Ah merci beaucoup pour ta réactivité :) --[[Utilisateur:Glandos|Glandos]] 27 avr 2006 à 22:12 (CEST)&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Proposition_d%27article&amp;diff=12542</id>
		<title>Discussion:Proposition d&#039;article</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Proposition_d%27article&amp;diff=12542"/>
		<updated>2006-04-27T16:56:36Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Problème de màj */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Salut! Je ne comprend pas comment on poste un nouvel article.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
# tu édites la page &#039;&#039;&#039;Proposition d&#039;article&#039;&#039;&#039; et dans la section idoïne tu ajoutes un trucs style : &lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;[[titre de mon nouvel article]]&amp;lt;/nowiki&amp;gt; qui donnera dans cette page le lien : [[titre de mon nouvel article]]&lt;br /&gt;
# sauve la page &#039;&#039;&#039;Proposition d&#039;article&#039;&#039;&#039; ainsi modifiée&lt;br /&gt;
# clique sur le lien qui correspond alors à ton nouvel article&lt;br /&gt;
# édite ton article à ta guise (si tu as besoin d&#039;uploader des images ou des fichiers demande nous les droits nécessaires).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Merci. Encore une autre question. Je suis en train de rédiger cet article: http://lea-linux.org/cached/index/OpenMosix_sous_Slackware_%28applicable_aux_autres_distributions_Linux%29.html#&lt;br /&gt;
et rien ne s&#039;affiche. Pourtant quand j&#039;édite le tuto, je revois ce que j&#039;ai tapé.&lt;br /&gt;
J&#039;ai aussi un problème avec les retours à la ligne.&lt;br /&gt;
&lt;br /&gt;
== J&#039;ai fait un article sur la compilation distribuée, mais j&#039;ai l&#039;impression qu&#039;il est perdu! ==&lt;br /&gt;
&lt;br /&gt;
je ne le retrouve que dans &amp;quot;modifications récentes&amp;quot;... :((&lt;br /&gt;
&lt;br /&gt;
== le pingouin casse les fenêtres ==&lt;br /&gt;
&lt;br /&gt;
Salut (à tous)&lt;br /&gt;
&lt;br /&gt;
Nous venons d&#039;enregistrer notre premier album rock sous le nom de SOLID STATE.&lt;br /&gt;
Pas grand-chose à voir avec Linux me direz-vous ? Pas si sur...&lt;br /&gt;
Les plaisanteries d&#039;un des musiciens linuxien qui a apprécié à leur juste valeur&lt;br /&gt;
les nombreux plantages O.S. nous ont inspiré une&lt;br /&gt;
de nos compos :&lt;br /&gt;
&lt;br /&gt;
« Do U C Me »&lt;br /&gt;
&lt;br /&gt;
Petit clin d&#039;oeil aux travers des yeux d&#039;un utilisateur qui subit.&lt;br /&gt;
&lt;br /&gt;
C&#039;est le même musicien « encore lui » qui nous a proposé la diffusion gratuite&lt;br /&gt;
du titre à la communauté Linux. Car au final c&#039;est à cause ou grâce à elle que&lt;br /&gt;
ce titre et né, alors, pourquoi pas, après tout, dans un monde où tout a un&lt;br /&gt;
prix, un peu d&#039;utopie ne fait jamais de mal.&lt;br /&gt;
&lt;br /&gt;
Ainsi avons-nous donc décidé de le laisser libre d&#039;ecoute ici :&lt;br /&gt;
http://www.solidstategang.com/linux.htm&lt;br /&gt;
&lt;br /&gt;
Bonne écoute et amusez-vous bien en souhaitant que ce petit écart à une&lt;br /&gt;
mécanique industrielle bien rodée aujourd&#039;hui vous procure du plaisir et vous&lt;br /&gt;
fasse sourire.&lt;br /&gt;
&lt;br /&gt;
Promis : le prochain album, on l&#039;enregistre sur un autre O.S. ;-)&lt;br /&gt;
&lt;br /&gt;
Solid State&lt;br /&gt;
&lt;br /&gt;
== Problème de màj ==&lt;br /&gt;
&lt;br /&gt;
Effectivement, je suis en train de construire un article et le comportement est ultra bizarre.&lt;br /&gt;
Quand je fais une modif, il me ramène sur la page de base, mais je ne vois que l&#039;ancien contenu. Par contre, si je reclique sur modifier, pouf, le contenu est bien celui que j&#039;ai modifié... Comprends pas. Vais essayer de bourriner le cache de Firefox pour voir :)&lt;br /&gt;
&lt;br /&gt;
[[Utilisateur:Fred|Fred]]&amp;gt; déjà expliqué : ça vient du dispositif de modération &amp;quot;a priori&amp;quot; des articles : seule la première version d&#039;une page peut apparaître avant modération par un admin.&lt;br /&gt;
&lt;br /&gt;
Ah ok merci de me le répéter alors :) L&#039;ennui, c&#039;est que faire un formatage Wiki, c&#039;est assez long, et vu la longueur de ce que j&#039;écris, je n&#039;ai pas tout mis la première fois. M&#039;enfin, je comprends l&#039;intérêt de cette modération, peut-être devrait-elle être mise plus en avant.&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Discussion:Proposition_d%27article&amp;diff=12533</id>
		<title>Discussion:Proposition d&#039;article</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Discussion:Proposition_d%27article&amp;diff=12533"/>
		<updated>2006-04-26T21:36:22Z</updated>

		<summary type="html">&lt;p&gt;Glandos : Problème de màj&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Salut! Je ne comprend pas comment on poste un nouvel article.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
# tu édites la page &#039;&#039;&#039;Proposition d&#039;article&#039;&#039;&#039; et dans la section idoïne tu ajoutes un trucs style : &lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;[[titre de mon nouvel article]]&amp;lt;/nowiki&amp;gt; qui donnera dans cette page le lien : [[titre de mon nouvel article]]&lt;br /&gt;
# sauve la page &#039;&#039;&#039;Proposition d&#039;article&#039;&#039;&#039; ainsi modifiée&lt;br /&gt;
# clique sur le lien qui correspond alors à ton nouvel article&lt;br /&gt;
# édite ton article à ta guise (si tu as besoin d&#039;uploader des images ou des fichiers demande nous les droits nécessaires).&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Merci. Encore une autre question. Je suis en train de rédiger cet article: http://lea-linux.org/cached/index/OpenMosix_sous_Slackware_%28applicable_aux_autres_distributions_Linux%29.html#&lt;br /&gt;
et rien ne s&#039;affiche. Pourtant quand j&#039;édite le tuto, je revois ce que j&#039;ai tapé.&lt;br /&gt;
J&#039;ai aussi un problème avec les retours à la ligne.&lt;br /&gt;
&lt;br /&gt;
== J&#039;ai fait un article sur la compilation distribuée, mais j&#039;ai l&#039;impression qu&#039;il est perdu! ==&lt;br /&gt;
&lt;br /&gt;
je ne le retrouve que dans &amp;quot;modifications récentes&amp;quot;... :((&lt;br /&gt;
&lt;br /&gt;
== le pingouin casse les fenêtres ==&lt;br /&gt;
&lt;br /&gt;
Salut (à tous)&lt;br /&gt;
&lt;br /&gt;
Nous venons d&#039;enregistrer notre premier album rock sous le nom de SOLID STATE.&lt;br /&gt;
Pas grand-chose à voir avec Linux me direz-vous ? Pas si sur...&lt;br /&gt;
Les plaisanteries d&#039;un des musiciens linuxien qui a apprécié à leur juste valeur&lt;br /&gt;
les nombreux plantages O.S. nous ont inspiré une&lt;br /&gt;
de nos compos :&lt;br /&gt;
&lt;br /&gt;
« Do U C Me »&lt;br /&gt;
&lt;br /&gt;
Petit clin d&#039;oeil aux travers des yeux d&#039;un utilisateur qui subit.&lt;br /&gt;
&lt;br /&gt;
C&#039;est le même musicien « encore lui » qui nous a proposé la diffusion gratuite&lt;br /&gt;
du titre à la communauté Linux. Car au final c&#039;est à cause ou grâce à elle que&lt;br /&gt;
ce titre et né, alors, pourquoi pas, après tout, dans un monde où tout a un&lt;br /&gt;
prix, un peu d&#039;utopie ne fait jamais de mal.&lt;br /&gt;
&lt;br /&gt;
Ainsi avons-nous donc décidé de le laisser libre d&#039;ecoute ici :&lt;br /&gt;
http://www.solidstategang.com/linux.htm&lt;br /&gt;
&lt;br /&gt;
Bonne écoute et amusez-vous bien en souhaitant que ce petit écart à une&lt;br /&gt;
mécanique industrielle bien rodée aujourd&#039;hui vous procure du plaisir et vous&lt;br /&gt;
fasse sourire.&lt;br /&gt;
&lt;br /&gt;
Promis : le prochain album, on l&#039;enregistre sur un autre O.S. ;-)&lt;br /&gt;
&lt;br /&gt;
Solid State&lt;br /&gt;
&lt;br /&gt;
== Problème de màj ==&lt;br /&gt;
&lt;br /&gt;
Effectivement, je suis en train de construire un article et le comportement est ultra bizarre.&lt;br /&gt;
Quand je fais une modif, il me ramène sur la page de base, mais je ne vois que l&#039;ancien contenu. Par contre, si je reclique sur modifier, pouf, le contenu est bien celui que j&#039;ai modifié... Comprends pas. Vais essayer de bourriner le cache de Firefox pour voir :)&lt;/div&gt;</summary>
		<author><name>Glandos</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=12532</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=12532"/>
		<updated>2006-04-26T21:33:45Z</updated>

		<summary type="html">&lt;p&gt;Glandos : /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AVERTISSEMENT =&lt;br /&gt;
Cet article est en cours d&#039;écriture/mise en page. Tant que cette avertissement n&#039;a pas disparu, merci de NE PAS éditer cette page vous-même. Veuillez utiliser le lien &amp;quot;Page de discussion&amp;quot; pour soumettre vos idées. Merci par avance :) --[[Utilisateur:Glandos|Glandos]] 26 avr 2006 à 22:38 (CEST)&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
Ce n&#039;est pas vraiment un tutorial, mais plutôt un retour d&#039;expérience. Mais finalement c&#039;est ce que sont tous les tutoriaux. 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 utile.&lt;br /&gt;
&lt;br /&gt;
= Présentation =&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;
= 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és avec les bonnes options. Pour l&#039;utilisateur normal qui n&#039;a pas recompilé son noyau, ne chercher 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&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;
# 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&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&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soit carrément un bon vieux reboot :&lt;br /&gt;
reboot&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&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;
= 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;
Là, j&#039;ai été confronté à l&#039;instabilité de Debian/testing... En effet, les binaires hostAPd sont présents mais pas compilés avec les bonnes options pour madwifi, et les sources sont 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&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&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&lt;br /&gt;
&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&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&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&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. 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;
apt-get install hostapd&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;
apt-get remove hostapd&lt;br /&gt;
Et normalement les fichier de configuration sont restés là :) À savoir :&lt;br /&gt;
/etc/default/hostapd Permet d&#039;activer ou de désactiver le lancement automatique de hostAPd&lt;br /&gt;
/etc/hostapd/hostapd.conf Fichier de configuration de hostAPd&lt;br /&gt;
/etc/init.d/hostapd Script shell gérant l&#039;exécution et l&#039;arrêt de hostAPd en tant que démon.&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;
DAEMON=/usr/sbin/hostapd&lt;br /&gt;
Chez moi, c&#039;est la douzième. Remplacez la par :&lt;br /&gt;
DAEMON=/usr/local/bin/hostapd&lt;br /&gt;
&lt;br /&gt;
Ensuite, 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 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 demande d&#039;accès et pourra alors, sur cette seule adresse, soit continuer le 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;
RUN_DAEMON=yes&lt;br /&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;
/etc/init.d/hostapd start&lt;br /&gt;
devrait donner un résultat positif. Faites ensuite&lt;br /&gt;
/etc/init.d/hostapd stop&lt;br /&gt;
hostapd -dd /etc/hostapd/hostapd.conf&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.&lt;/div&gt;</summary>
		<author><name>Glandos</name></author>
	</entry>
</feed>