Netgear MA311 et Linux Suse 8.0 et 8.1
Votre distribution doit être installée sur votre PC avec le nécessaire de base pour compiler les sources (kernel 2.4.18 ou 2.4.19). Nous allons chercher ensemble :
Le driver : http://hostap.epitest.fi version hostap-2002-10-12.tar.gz Pour gérer la carte : http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html dans le cas présent la version 2.5
Suivez les instructions pour l'installation des archives. Normalement, sur une suse 8.0 ou 8.1, ça ne pose aucun problème.
Installation des Wireless-Tools
Wifi:~ # tar xvzf wireless_tools.25.tar.gz
Wifi:~ # cd wireless_tools.25
Wifi:~ # ./configure
Wifi:~ # make
Wifi:~ # make install
Configuration facile de HostAP
Wifi:~ # tar xvzf hostap-2002-10-12.tar.gz
Wifi:~ # cd hostap-2002-10-12
Wifi:~ # make pci
Wifi:~ # make install
Une fois compilés et installés les choses sérieuses commencent :
Tout d'abord, un depmod -a permettra de prendre en compte les nouveaux drivers installés (/lib/module/2.4.19/net/).
Wifi:~ # depmod -a
ensuite on active le pilote :
Wifi:~ # modprobe hostap_pci
J'ai eu un p'tit soucis avec les dépendances en lançant cette commande. Cela peut être résolu en faisant :
Wifi:~ # insmod hostap_crypt
Wifi:~ # insmod hostap
Wifi:~ # insmod hostap_pci
Si tout va bien, lsmod devrait afficher ce qui suit :
Wifi:~ # lsmod Module Size Used by Not tainted hostap_crypt_wep 3168 2 (autoclean) hostap_pci 38924 1 hostap 53444 0 [hostap_pci] hostap_crypt 1380 0 [hostap_crypt_wep hostap]
plus les autres modules déjà lancés bien sûr.
Bon maintenant, il faut taper tout ça :
Wifi:~ # /sbin/ifconfig wlan0 10.0.0.1 Wifi:~ # /usr/local/sbin/iwconfig wlan0 mode Master Wifi:~ # /usr/local/sbin/iwconfig wlan0 channel 11 Wifi:~ # /usr/local/sbin/iwconfig wlan0 essid "WiFi Mirabeau AP 001" Wifi:~ # /usr/local/sbin/iwconfig wlan0 nickname "WiFi Mirabeau Acces Point 001"
Wifi:~ # /usr/local/sbin/iwconfig wlan0 key s:12345 [1] # Pour une clef WEP de 40 bits
Wifi:~ # /usr/local/sbin/iwconfig wlan0 key s:1234567891234 [1] # Pour une clef WEP de 128 bits
Exemple :
ma clef WEP en ASCII est test01APma311, il y a 13 caractères donc c'est une clef 128 bits. Cela se traduit par :
/usr/local/sbin/iwconfig wlan0 key s:test01APma311 [1]
Voilà, votre Access Point est en place avec une clef WEP de 128 bits.
Configuration avancée de HostAP
Je suis parti des sources CVS de HostAP : HostAP CVS
cvs -d:pserver:anonymous@hostap.epitest.fi:/cvs login
Taper ENTREE
cvs -z3 -d:pserver:anonymous@hostap.epitest.fi:/cvs co hostap
Wifi:~ # cd hostap
Editer le fichier driver/modules/hostap_config.h
A la ligne 16
Changer
/* #define PRISM2_HOSTAPD */
par
#define PRISM2_HOSTAPD
A la ligne 45
Changer
/*#define PRISM2_DOWNLOAD_SUPPORT */
Par
#define PRISM2_DOWNLOAD_SUPPORT
Sauver le fichier
Wifi:~ # make pci EXTRA_FLAGS="-DPRISM2_DOWNLOAD_SUPPORT -DPRISM2_HOSTAPD"
Wifi:~ # make install
Wifi:~ # modprobe hostap_pci
Wifi:~ # cd utils
Wifi:~ # make
Télécharger le firmware 1.4.9 et décompressez le dans utils, puis tapez:
Wifi:~ # prism2_srec -r RF010409.HEX
Lisez bien le README et tout documentation relative au firmware, je ne suis pas responsable des dommages.
L'option -r permet de mettre le firmware dans la RAM donc dans la partie volatile alors que l'option -f charge le firmware de façon permanente.
Wifi:~ # ifconfig wlan0 10.0.0.1
Wifi:~ # /etc/rc.d/dhcpd restart (voir la configuration commune)
Wifi:~ # /usr/local/sbin/iwconfig wlan0 channel 13 # J'avais envie de changer de channel
Wifi:~ # /usr/local/sbin/iwconfig wlan0 nickname "WiFi Mirabeau Acces Point 001"
Wifi:~ # /usr/local/sbin/iwconfig wlan0 key s:1234567891234 [1] # Pour une clef WEP de 128 bits
Aller dans le dossier hostapd
Wifi:~ # cd hostapd
Wifi:~ # cp hostapd.conf wlan0.conf
Voici mon fichier wlan0.conf (j'ai enlevé les lignes commentées) :
interface=wlan0
debug=3
dump_file=/tmp/hostapd.dump
daemonize=1
ssid=WiFi Mirabeau AP 001
macaddr_acl=1 # D'abord le deny, ensuite l'accept
accept_mac_file=/etc/hostapd.accept
deny_mac_file=/etc/hostapd.deny
ieee8021x=0
minimal_eap=0
eap_message=hello
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1 # ou 10.0.0.1
Wifi:~ # cp hostapd.deny /etc/hostapd.deny
Wifi:~ # cp hostapd.accept /etc/hostapd.accept
Wifi:~ # cd /etc
Wifi:~ # vi hostapd.accept et mettre la MAC adresse de vos cartes clientes
Allez, on se lance :
Wifi:~ # ./hostapd wlan0.conf
Vous devriez voir apparaître ceci en faisant ifconfig :
Wifi:~ # ifconfig
wlan0 Link encap:Ethernet HWaddr 00:09:5B:2F:B6:E3
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::209:5bff:fe2f:b6e3/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8847 errors:0 dropped:368 overruns:0 frame:0
TX packets:14832 errors:17 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1349584 (1.2 Mb) TX bytes:13654716 (13.0 Mb)
Interrupt:11 Memory:ca99b000-ca99c000
wlan0ap Link encap:UNSPEC HWaddr 00-09-5B-2F-B6-E3-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:2290 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1085 (1.0 Kb) TX bytes:488 (488.0 b)
Interrupt:11 Memory:ca99b000-ca99c000
Le résultat de iwconfig :
Wifi:~ # ifwconfig
wlan0 IEEE 802.11b ESSID:"wlanfr.net-AP-100" Nickname:"WiFi Mirabeau AP 001"
Mode:Master Frequency:2.472GHz Access Point: 00:09:5B:2F:B6:E3
Bit Rate:11Mb/s Tx-Power:3 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx Encryption mode:restricted
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:3721 Invalid misc:380 Missed beacon:0
wlan0ap IEEE 802.11b ESSID:"WiFi Mirabeau AP 001" Nickname:"WiFi Mirabeau Acces Point 001"
Mode:Master Frequency:2.472GHz Access Point: 00:09:5B:2F:B6:E3
Bit Rate:11Mb/s Tx-Power:3 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx Encryption mode:restricted
Power Management:off
wlan0sta IEEE 802.11b ESSID:"WiFi Mirabeau AP 001" Nickname:"WiFi Mirabeau Acces Point 001"
Mode:Managed Frequency:2.472GHz Access Point: 00:00:00:00:00:00
Bit Rate:11Mb/s Tx-Power:3 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xx Encryption mode:restricted
Power Management:off
Pour débuguer, vous pouvez mettre dans wlan0.conf :
daemonize=0
Voilà, avec cette configuration avançée, vous filtrez les MAC adresses grâce aux fichiers hostapd.accept et hostapd.deny.
Remarque : Quand vous ajoutez une entrée dans un des deux fichiers, il faut killer hostapd et le relancer.
Configuration commune
Maintenant, si on rajoute un serveur dhcp, ça sera plus sympa
Fichier : /etc/dhcpd.conf ---Cut--- use-host-decl-names on; ddns-update-style none; get-lease-hostnames true; authoritative;
subnet 10.0.0.0 netmask 255.0.0.0 { range 10.0.0.50 10.0.0.60; ddns-updates on; ddns-domainname "ici.lc"; ddns-rev-domainname "in-addr.arpa."; allow unknown-clients; option domain-name-servers 194.2.0.20, 194.2.0.50; option domain-name "ici.lc"; option routers 10.0.0.1; option broadcast-address 10.0.255.255; default-lease-time 30000; max-lease-time 90000; } ---End Cut---
Editer le fichier : /etc/sysconfig/dhcpd
et remplacer DHCPD_INTERFACE="eth0" par DHCPD_INTERFACE="wlan0"
Relancer le serveur /etc/rc.d/dhcpd restart
Maintenant, une petite recette pour sécuriser tout ça :
Créer dans /etc/rc.d un fichier portant comme nom wifi et faire un chmod +x wifi :
Copier ces lignes dans le fichier wifi :
#!/bin/sh
/sbin/ifconfig wlan0 10.0.0.1 /etc/rc.d/dhcpd restart /usr/local/sbin/iwconfig wlan0 mode Master /usr/local/sbin/iwconfig wlan0 channel 11 /usr/local/sbin/iwconfig wlan0 essid "WiFi Mirabeau AP 001" /usr/local/sbin/iwconfig wlan0 nickname "WiFi Mirabeau Acces Point 001" /usr/local/sbin/iwconfig wlan0 key s:test01APma311 [1]
#-----------------------------------------------------------------# # Regles de fitrage internet/intranet # # Ecrit par Patrice d'apres la doc de netfilter www.netfilter.com # #-----------------------------------------------------------------#
# Chargement des modules FTP règles les pb # rencontré par JCA pour le FTP sur vmesa #---------------------------------------- /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp
# Vide les chaines ou remise a zero des regles SuiviConnexions # ne change pas les règles INPUT FORWARD et OUTPUT #-------------------------------------------------------------- iptables -F iptables -X
# Fixe les règle de base en gros INPUT et FORWARD sont ignorés # et OUTPUT accepté en gros la machine peut aller sur internet # mais internete ne peut pas aller sur la machine n'y la # traversser #------------------------------------------------------------- iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
# Création d'une chaîne personnelle: "SuiviConnexions" #----------------------------------------------------- iptables -N SuiviConnexions iptables -A SuiviConnexions -m state --state NEW -i ! eth0 -j ACCEPT
# Toutes les connexions établies et relatives sont acceptées #----------------------------------------------------------- iptables -A SuiviConnexions -m state --state ESTABLISHED,RELATED -j ACCEPT
# Cette chaîne va maintenant servir de cible commune pour les deux chaînes # standard INPUT et FORWARD. Et les deux chaînes INPUT et FORWARD pointent # sur SuiviConnexions #-------------------------------------------------------------------------- iptables -A INPUT -j SuiviConnexions iptables -A FORWARD -j SuiviConnexions
# Init. des tables NAT et MANGLE: #-------------------------------- iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -F iptables -t mangle -X iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT # Mise en place du NAT & Masquerading #------------------------------------ iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 463 -j REDIRECT --to-port 3128
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ouverture des port autoriser du net -> serveur #----------------------------------------------- iptables -A INPUT -p tcp --dport ssh -j ACCEPT # Comme telnet mais securiser a 1024 Bits iptables -A INPUT -p tcp --dport http -j ACCEPT # Le web iptables -A INPUT -p tcp --dport https -j ACCEPT # Les web securisé iptables -A INPUT -p tcp --dport pop3 -j ACCEPT # Courier sortant (pour les serveur) iptables -A INPUT -p tcp --dport imap -j ACCEPT # Courier sortant imap iptables -A INPUT -p tcp --dport smtp -j ACCEPT # courier transporteur iptables -A INPUT -p tcp --dport 20 -j ACCEPT # Serveur ftp-data iptables -A INPUT -p tcp --dport 21 -j ACCEPT # Serveur ftp
TODO : Continuer la prospection de Hostapd
Document complété le 29/03/2003 par Lexo : rev 2.0 |