vendredi 11 mai 2007
FON et IP fixe
Par Laurent, vendredi 11 mai 2007 à 05:50 :: FON
Cet article est la continuité des articles suivants :
L'idée est la suivante : après avoir identifié et autorisés quelques utilisateurs dans le WLAN grâce à leur adresse MAC, il faut maintenant leur affecter une adresse IP fixe (sur le WLAN et sur le WAN), permettant par exemple :
- d'effectuer un filtrage firewall coté WAN spécifique pour cette machine
- d'avoir une politique de proxy différente (cf article sur squid/squidguard)
- de pouvoir faire des statistiques d'accès par utilisateur (avec sarg par exemple)
- ...
Nous avons comme point de départ une identification de certains équipements par leur adresse MAC, permettant de contourner l'authentification FON (cf cet article) Avec cette configuration, ces machines rentre dans le moule standard et se voient attribuer une adresse IP en DHCP sur le WLAN, dans le pool 192.168.182/24. Coté WAN, une translation d'adresse est effectuée sur l'adresse publique du WAN (interface vlan1) grâce à un MASQUERADE iptables. Ainsi, toutes les connexions effectuées par un client FON seront vues avec l'adresse publique (WAN) du routeur FON.
En jouant sur la configuration d'iptables, de freeradius et de chillispot, il est possible de choisir quel type d'affectation d'IP aux adresses MAC identifiées :
- classique : DHCP sur le WLAN, IP du routeur FON sur le WAN
- partiel : IP fixe sur le WLAN, IP du routeur FON sur le WAN
- fixe : IP fixe sur le WLAN, IP fixe sur le WAN
Concernant l'affectation d'IP fixe sur le WLAN, cela s'obtient en découpant la plage d'adresse 192.168.182.0/24 attribuée par chillispot (faisant office de serveur DHCP)
- 192.168.182.0/25 sera la plage DHCP
- 192.168.182.128/25 sera la plage d'IP fixe (à vous d'en faire la gestion)
Concernant l'affectation d'IP fixe sur le WAN, il faut que ces adresses soient disponibles. Chacune des adresses identifiées sera attribuée au routeur FON (alias de l'interface vlan1)
Procédure d'installation :
- Installation des outils
Afin de simplifier les opérations, les fichiers de configuration sont disponibles dans l'archive http://www.licour.com/blogfiles/fon_mac_v2.tgz.
# cd /tmp # wget http://www.licour.com/blogfiles/fon_mac_v2.tgz # tar xzf fon_mac_v2.tgz # cd fon_mac_v2 # cp -a MAC /jffs
Le repertoire /jffs/MAC contient maintenant un script de configuration et des fichiers de configuration associés.
- Fichier de configuration
Fichier : /jffs/MAC/fon_allowed_mac.lst Si vous possédez déjà un fichier de configuration issu d'une précédente version, celui-ci reste compatible Sinon, faites une copie du fichier template : fon_allowed_mac.lst.template
- Modifier le fichier de configuration
En précisant les adresses IP fixes que vous voulez utiliser sur le WLAN et sur le WAN
- Lancement automatique
Ajout le code suivant dans votre script /etc/init.d/S90user
# Execution script de configuration d'iptables de NAT statique if [ -f /jffs/MAC/fon_nat.sh ] then /jffs/MAC/fon_nat.sh fi
Ce script permet la création automatique des alias de l'interface WAN (affectation des IP statiques WAN) et l'ajout des règles de translation iptables.
- Lancement du script de configuration
# ./fon_update_mac.sh [*] Process allowed MAC with DHCP -> Found MAC : 00-11-22-33-44-55 [*] Process allowed MAC with static WLAN IP (172.21.1.16 as WAN IP) -> Found MAC : 00-22-33-44-55-66,192.168.182.128 [*] Process allowed MAC with static WLAN IP and static WAN IP -> Found MAC : 00-33-44-55-66-77,192.168.182.129,10.0.0.129 [*] updated /etc/freeradius/users [*] Removing old vlan1 aliases [*] Filling iptables postrouting_mynat chain [*] Creating vlan1 aliases [*] updated iptables script [*] updated /jffs/MAC/fon_chillispot.sed [*] restarting chillispot Reboot your router could help you...
Détails techniques :
Grâce au script /jffs/MAC/fon_nat.sh, vous devriez normalement voir de nouvelles interfaces vlan1:??
# ifconfig
...
vlan1 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet addr:10.0.0.10 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:58758 errors:0 dropped:0 overruns:0 frame:0
TX packets:10790 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5211506 (4.9 MiB) TX bytes:1563161 (1.4 MiB)
vlan1:129 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet addr:10.0.0.129 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
Ainsi qu'une nouvelle chaîne iptables :
root@fon:/jffs/MAC# iptables -t nat -L POSTROUTING -n Chain POSTROUTING (policy ACCEPT) target prot opt source destination postrouting_mynat all -- 0.0.0.0/0 0.0.0.0/0 postrouting_rule all -- 0.0.0.0/0 0.0.0.0/0 MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
root@fon:/jffs/MAC# iptables -t nat -L postrouting_mynat -n Chain postrouting_mynat (1 references) target prot opt source destination SNAT all -- 192.168.182.129 0.0.0.0/0 to:10.0.0.129
La configuration freeradius inclus maintenant la notion d'IP affectée à l'adresse MAC.
/etc/freeradius/users "00-11-22-33-44-55" Auth-Type := Local, User-Password == "password" "00-22-33-44-55-66" Auth-Type := Local, User-Password == "password" Framed-IP-Address = 192.168.182.128 "00-33-44-55-66-77" Auth-Type := Local, User-Password == "password" Framed-IP-Address = 192.168.182.129
La configuration chillispot est modifiée en ajoutant les options de gestion des plages IP statiques et DHCP
/etc/chilli.conf ... dynip 192.168.182.0/25 statip 192.168.182.128/25
par du contrôle de contenu. Je ne tiens pas à ce que ma connexion internet serve de lieu de transit à du contenu illégal.
et internet.
Cette configuration permet la mise en place d'un proxy, sans que l'utilisateur ai besoin de modifier son navigateur. Tous les flux web passeront obligatoirement par le proxy, sans même que l'utilisateur le sache.
(pour le moment)
through a