Point d'accès Wifi avec Madwifi

De Gentoo Linux Wiki.

Sommaire

[modifier] Installation

Cet article a été testé avec les vanilla-sources 2.6.25.9 donc il devrait fonctionner avec les noyaux à partir du 2.6.25.9.

emerge -a vanilla-sources

(assurez vous que le lien /usr/src/linux pointe bien vers le noyau que vous utilisez) et configurez le comme ceci :

Configuration du noyau Linux : Configuration pour madwifi
#CONFIG_MODVERSIONS is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_KMOD=y
CONFIG_NETDEVICES=y
CONFIG_WIRELESS_EXT=y
CONFIG_WLAN_80211=y
CONFIG_SYSCTL=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_AES=y
CONFIG_BRIDGE=y          (optional)

Vous allez avoir besoin de plusieurs paquets : Les drivers wifi Atheros :

emerge -a madwifi-ng
Note : madwifi-ng doit être ré-emergé après une mise à jour du noyau

Nécessaire pour faire un point d'accès :

emerge -a hostapd

Services pour votre point d'accès (DHCP et DNS):

emerge -a dhcp bind

Vérifiez que bind écoute bien sur 192.168.0.1 et 192.168.1.1

Optionel: Si vous voulez faire un pont ethernet :

emerge -a bridge-utils

[modifier] Configuration Ethernet

Cet article considére que vous avez eth0 connecté à Internet, eth1 relié à un réseau interne et ath0 correspondant au réseau wifi.

cd /etc/init.d
ln -s net.lo net.eth1
ln -s net.lo net.ath0

Optionel:

ln -s net.lo net.br0

Chargez le module :

modprobe ath_pci update-modules

Editez les fichiers suivants :

Fichier : etc/modprobe.d/ath_pci
   options ath_pci autocreate=ap
Fichier : /etc/conf.d/local.stop
   ifconfig ath0 down
   wlanconfig ath0 destroy
   wlanconfig ath0 create wlandev wifi0 wlanmode ap

Il y a deux configurations possible selon le fait que vous vouliez ou pas faire un pont ethernet (ethernet bridging). Ce pont permet de combiner le réseau avec et sans fils dans un même réseau pour que vous puissez copier des fichiers, voir des vidéos, ... facilement

[modifier] Sans pont Ethernet

Editez les fichiers suivant ainsi :

Fichier : /etc/conf.d/net (baselayout 1.x)
config_eth0=( "Entrez vos informations ici" )     (voir /etc/conf.d/net.example)
config_eth1=( "192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" )
config_ath0=( "192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255" )
mode_ath0="master"
essid_ath0="MonNetwork"
Fichier : /etc/conf.d/net (baselayout 2.x)
config_eth0="Entrez vos informations ici"    (voir /etc/conf.d/net.example)
config_eth1="192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255"
config_ath0="192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255"
mode_ath0="master"
essid_ath0="MyNetwork"
Fichier : /etc/conf.d/dhcpd
DHCPD_IFACE="eth1 ath0"
Fichier : /etc/dhcp/dhcpd.conf
ddns-update-style none;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.75 192.168.0.100;
option domain-name-servers 192.168.0.1;              (Vérifiez que BIND écoute bien à cet IP)
option domain-name "hostname.domain.tld";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 10000;
max-lease-time 20000;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.75 192.168.1.100;
option domain-name-servers 192.168.1.1;               (Vérifiez que BIND écoute bien à cet IP)
option domain-name "hostname.domainn.tld";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 10000;
max-lease-time 20000;
}

[modifier] Avec le pont Ethernet

Editez les fichiers suivant ainsi :

Fichier : /etc/conf.d/net (baselayout 1.x)
config_eth0=( "Enter your information here" )     (See /etc/conf.d/net.example)
config_eth1=( "null" )
config_ath0=( "null" )
bridge_br0=( "eth1" "ath0" )
config_br0=( "192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" )
channel_ath0="1"
mode_ath0="master"
essid_ath0="MyNetwork"
Fichier : /etc/conf.d/net (baselayout 2.x)
config_eth0="Enter your information here"     (See /etc/conf.d/net.example)
config_eth1="null"
config_ath0="null"
bridge_br0="eth1 ath0"
config_br0="192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255"
channel_ath0="1"
mode_ath0="master"
essid_ath0="MyNetwork"
Fichier : /etc/conf.d/dhcpd
DHCPD_IFACE="br0"
Fichier : /etc/dhcp/dhcpd.conf
ddns-update-style none;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.75 192.168.0.100;
option domain-name-servers 192.168.0.1;               (Vérifiez que BIND écoute bien à cet IP)
option domain-name "hostname.domain.tld";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 10000;
max-lease-time 20000;
}

[modifier] Configuration de Hostapd

Voici une configuration simple qui fonctionne pour hostapd-0.4.9 et hostapd-0.5.10 :

Fichier : /etc/hostapd/hostapd.conf
   interface=ath0 
   #bridge=br0                          (optionel, si vous voulez le pont enlevez le #) 
   driver=madwifi 
   logger_syslog=-1 
   logger_syslog_level=2 
   logger_stdout=-1 
   logger_stdout_level=1 
   debug=0 
   dump_file=/tmp/hostapd.dump 
   ctrl_interface=/var/run/hostapd 
   ctrl_interface_group=0 
   ssid=MyNetwork 
   macaddr_acl=0 
   accept_mac_file=/etc/hostapd/hostapd.accept 
   deny_mac_file=/etc/hostapd/hostapd.deny 
   auth_algs=1 
   wpa=1 
   wpa_passphrase=Enter your Passphrase            
   wpa_key_mgmt=WPA-PSK 
   wpa_pairwise=TKIP CCMP

[modifier] Finalisation

Configurez vos scripts de démarrage

rc-update add net.eth0 default rc-update add net.eth1 default rc-update add net.ath0 default rc-update add hostapd default

Optionel:

rc-update add net.br0 default

Voici des régles iptabels que vous pouvez utilisez si vous faites un pont ethernet

iptables -A INPUT -i br0 -p all -j ACCEPT iptables -A FORWARD -i br0 -p all -j ACCEPT

Redémarrez

Autres langues