Objectif : Configurer sa station linux pour établir une connexion ad-hoc avec son palm et lui fournir un accès internet avec filtrage de l'adresse mac et cryptage WEP.
Ce tuto est découpé en 4 parties :
1) Pré-requis
2) Configurer l'interface réseau de la station
3) Configurer le forward des paquets sur la station pour l'accès internet
4) Configurer son palm pour se connecter à la station
1) Pré-requis
a) Votre carte wifi correctement installée sur la station (si aucun driver libre n'existe, cherchez du côté de NdisWrapper).
b) Le noyau compilé avec l'option
CITATION
Networking --->
Networking Options --->
[*] TCP/IP networking
[*] IP: advanced router
Networking Options --->
[*] TCP/IP networking
[*] IP: advanced router
Note : Sous la plupart des distributions, les fichiers de configuration des différents noyaux sont stockés dans /boot, vous pourrez donc vérifier si votre noyau actuel est compilé avec cette option grâce à la commande :
CODE
cat /boot/config-`uname -r` | grep CONFIG_IP_ADVANCED_ROUTER
Vous devez obtenir comme résultat :
CITATION
CONFIG_IP_ADVANCED_ROUTER=y
Si vous obtenez :
CITATION
# CONFIG_IP_ADVANCED_ROUTER is not set
Alors vous devez recompiler votre noyau en activant cette option (allez courage
c) La commande iptables et une configuration adaptée de votre noyau pour pouvoir l'utiliser (je n'approfondirai pas ce point, le web est déjà plein de tutoriels à ce sujet)
2) Configurer l'interface réseau de la station
La commande iwconfig (contenue dans le paquet wireless-tools de votre distribution, ou alors disponible ici) vous donnera l'interface réseau de votre carte wifi.
CODE
iwconfig
CITATION
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11FH ESSID:off/any
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s Tx-Power:19 dBm Sensitivity=0/3
RTS thr:2312 B Fragment thr:2312 B
Encryption key:off
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:0 Invalid misc:0 Missed beacon:0
eth0 no wireless extensions.
wlan0 IEEE 802.11FH ESSID:off/any
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s Tx-Power:19 dBm Sensitivity=0/3
RTS thr:2312 B Fragment thr:2312 B
Encryption key:off
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:0 Invalid misc:0 Missed beacon:0
Pour la suite de ce tuto, eth0 est mon interface réseau connectée à internet et wlan0 est mon interface wifi pour le palm, remplacez les par vos propres interfaces dans les commandes et configurations qui suivent.
Reste maintenant à configurer wlan0 pour la faire communiquer avec le palm.
Cette configuration est valable pour debian et s'effectue dans le fichier /etc/network/interfaces
(à adapter à votre distribution) en y incluant le code suivant :
CODE
#Interface réseau wifi
auto wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.252
network 192.168.1.0
wireless_essid MonESSID
wireless_mode Ad-Hoc
wireless_key XXXXXXXXXXXXXXXXXXXXXXXXXX
wireless_channel ZZ
wireless_rate auto
auto wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.252
network 192.168.1.0
wireless_essid MonESSID
wireless_mode Ad-Hoc
wireless_key XXXXXXXXXXXXXXXXXXXXXXXXXX
wireless_channel ZZ
wireless_rate auto
Remarque : En mettant 255.255.255.252 comme masque de réseau pour le réseau 192.168.1.0 , je considère que ce réseau sera uniquement destiné à une communication entre 2 machines. En effet, un tel masque nous donne seulement 4 adresses IP pour ce réseau, 2 sont réservées (1 pour l'adresse du réseau : 192.168.1.0, et une pour le broadcast : 192.168.1.3), ce qui laisse 2 adresses disponibles : 192.168.1.1 et 192.168.1.2 .
Pour le wireless :
- Remplacez MonESSID par l'essid que vous voulez attribuer à votre connexion
- XXXXXXXXXXXXXXXXXXXXXXXXXX est à remplacer par la clé WEP à utiliser en hexadécimal
- ZZ est à remplacer par le canal que vous voulez utiliser pour la connexion ( de 1 à 14 )
L'utilisation des options wireless définies ci-dessus est expliquée plus en détail dans la page de manuel d'iwconfig (man iwconfig) .
Et il faut ensuite recharger la nouvelle configuration de notre interface :
CODE
ifdown wlan0
ifup wlan0
ifup wlan0
3) Configurer le forward des paquets sur la station pour l'accès internet
(Toutes ces commandes peuvent être regroupées dans un script pour vous éviter de les taper une par une)
CODE
#On définit la politique de la chaîne FORWARD à DROP, afin que les paquets
#qui ne correspondent à aucune règle de forward soient jetés.
iptables -P FORWARD DROP
#Masquerading pour le PDA uniquement
iptables -t nat -A POSTROUTING -s 192.168.1.2/32 -d 0.0.0.0/0 -o eth0 -j MASQUERADE
#et le forward des paquets pour le pda
echo 1 > /proc/sys/net/ipv4/ip_forward
#On créée 2 nouvelles chaines
iptables -N palm-web
iptables -N web-palm
#On refuse le forward des connexions invalides, on accepte les connexions établies
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#On trie maintenant les paquets suivant leur sens de transit
# Ce qui vient de l'adresse MAC XX:XX:XX:XX:XX:XX (mettre l'adresse mac de votre palm) sur l'interface
#wifi et à destination de l'interface connectée à internet va dans la chaine palm-web
iptables -A FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -i wlan0 -o eth0 -j palm-web
#Ce qui arrive sur l'interface connectée au web à destination directe de l'interface wifi va dans la chaine web-palm
iptables -A FORWARD -i eth0 -o wlan0 -j web-palm
#On refuse les requêtes du web vers le palm, on accepte les requêtes du palm vers le web
iptables -A web-palm -j REJECT
iptables -A palm-web -j ACCEPT
#qui ne correspondent à aucune règle de forward soient jetés.
iptables -P FORWARD DROP
#Masquerading pour le PDA uniquement
iptables -t nat -A POSTROUTING -s 192.168.1.2/32 -d 0.0.0.0/0 -o eth0 -j MASQUERADE
#et le forward des paquets pour le pda
echo 1 > /proc/sys/net/ipv4/ip_forward
#On créée 2 nouvelles chaines
iptables -N palm-web
iptables -N web-palm
#On refuse le forward des connexions invalides, on accepte les connexions établies
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#On trie maintenant les paquets suivant leur sens de transit
# Ce qui vient de l'adresse MAC XX:XX:XX:XX:XX:XX (mettre l'adresse mac de votre palm) sur l'interface
#wifi et à destination de l'interface connectée à internet va dans la chaine palm-web
iptables -A FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -i wlan0 -o eth0 -j palm-web
#Ce qui arrive sur l'interface connectée au web à destination directe de l'interface wifi va dans la chaine web-palm
iptables -A FORWARD -i eth0 -o wlan0 -j web-palm
#On refuse les requêtes du web vers le palm, on accepte les requêtes du palm vers le web
iptables -A web-palm -j REJECT
iptables -A palm-web -j ACCEPT
La station est maintenant configurée .. ouf !
Dernière étape, le palm ...
4) Configurer son palm pour se connecter à la station
Configurez la connexion wifi de votre Palm comme ceci :
Allez des images qui seront plus parlantes que du texte
En recherchant les connexions disponibles je trouve la connexion PalmLaptop (mon essid)

Sélectionnez la connexion puis Modif -> Configurer

La clé WEP est du type 104 bits hex.
Ensuite on tape sur Détails :

On définit la connexion en ad-hoc et on règle le canal choisi précédemment (11 dans ce cas)
Puis on tape sur Avancées :

Et on termine en configurant comme ci-dessus, mis à part les adresses des DNS, vous trouverez celles à entrer dans le fichier /etc/resolv.conf sur votre station linux.
Voilà, maintenant vous n'avez plus qu'à taper sur Connect. et bon surf
Le mot de la fin :
J'ai décidé d'écrire ce tuto après avoir configuré une connection ad-hoc de la sorte entre mon laptop et mon TX, en me disant que j'aurai aimé tomber sur un tel tuto quand je me suis lancé la dedans. Je suis désolé j'ai essayé de le simplifier au maximum mais je sais qu'il reste quand même un peu technique
Pour les interessés (et même les autres) , j'attends avec plaisir vos conseils pour le rendre plus lisible/compréhensible/accessible ...
Merci
