Monter un Hotspot Wifi

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Un des trucs, sinon LE truc que je crevais d’envie de faire dans mon nouvel appart, c’était de monter un vrai hotspot, comme je l’expliquait deux news plus bas. Eh bah ça y est, c’est up. Je sais pas encore bien si j’en ferai un article ou si je donnerai des astuces au coup par coup, mais en attendant, voici à quoi ça ressemble :

Empirenet.png

2 Installation et configuration

Deux OpenWRT configurés en simples bridges permettent aux invités de se raccorder au VLAN dédié au wireless public :

Configuration File /etc/config/wireless
config wifi-device  wifi0
        option type     atheros
        option disabled 0
        option mode             11b
        option distance         10000
        option diversity        0
        option txantenna        1
        option rxantenna        1
        option channel          6
 
config wifi-iface
        option device   wifi0
        option ifname   ath0
        option network  lan
        option mode     ap
        option ssid     Empire-Network
        option encryption none
        option txpower 18

Configuration File /etc/config/network
config interface loopback
        option ifname   lo
        option proto    static
        option ipaddr   127.0.0.1
        option netmask  255.0.0.0
 
config interface lan
        option ifname   eth0 ath0
        option type     bridge
        option proto    static
        option ipaddr   192.168.200.253
        option netmask  255.255.255.0

Où un serveur dhcp leur fournira une IP dans le subnet adéquat. Un simple règle pf redirigera alors toute requète http vers un portail captif qui expliquera à l’invité quelles informations entrer dans son browser afin de pouvoir utiliser HTTP, HTTPS et FTP (notez que pour le moment un seul sur une bonne 30aine a reussi à effectuer cette opération heutement technique…). Quelques règles de QoS m’assurent que l’invité ne crame pas toute ma bande passante :

Configuration File /etc/pf.conf
int="fxp0"
 
table <empire_guests> { 192.168.200.0/24, ! 192.168.200.254, ! 192.168.200.253, ! 192.168.200.252 }
 
altq on $int cbq bandwidth 28Mb queue { empirenet_in, empirenet_out }
queue empirenet_in bandwidth 2Mb priority 1 cbq(default)
queue empirenet_out bandwidth 128Kb priority 7
 
rdr on $int inet proto tcp from any to <empire_guests> port www -> 127.0.0.1 port 80
 
pass in on $int from any to <empire_guests> queue empirenet_in
pass out on $int from <empire_guests> to any queue empirenet_out

L’utilisateur passe alors via Squid et son activité est soumise au filtrage de squidGuard dans lequel j’ai interdit les catégories !aggressive !violence !hacking !ads !porn !warez !suspect. J’applique sur le switch des access-list par port qui n’autorisent que les protocoles HTTP, SSH et DHCP.

[...]
ip access-list extended wifiout
 permit ip any host 192.168.200.254
 permit tcp any any eq http
 permit udp any any eq bootps
 permit tcp any any eq ssh
[...]
interface e 18
 ip access-group wifiout in
[...]

Le tout est graphé par Cacti, notemment grace à l’extension dhcpd-snmp de Net-SNMP et au template cacti associé.

Si vous passez dans le 17eme, cherchez le ssid “Empire-Network” :)

3 Ressources

http://imil.net/wp/?p=196