Archives du blog

1 seul SSID sur un Access Point ? C’est dépassé ! Scotty, energize

Je suis tombé sur ce tutoriel qui semble créer un second point d’accès sur une même carte wifi , WTF ?!?! Je croyais que ce genre de choses risquais de distendre la nature même du continuum espace temps. Ok j’ai abusé de Doctor Who ça doit être pour ça.

Bon on tente alors ?

Le but est d’avoir sur une même machine

  • un réseau sécurisé qui donne accès à internet via la passerelle et au réseau local
  • ET un réseau pas sûr du tout, ouvert même, qui donne accès a un site web local, genre piratebox, accès http pour arduino, …

Donc voici le contenu de nos désormais célèbres fichiers de config

  • /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'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
option gateway '192.168.2.3'
list dns '192.168.2.1'
list dns '8.8.8.8'
list dns '8.8.4.4'

config interface 'wan'
option ifname 'wlan0'
option 'proto' 'static'
option 'ipaddr' '192.168.3.1'
option 'netmask' '255.255.255.0'

config interface 'guest'
option 'proto' 'static'
option 'ipaddr' '10.0.0.1'
option 'netmask' '255.255.255.0'

Je ne comprends pas l’absence de ligne interface mais ça marche sans, il me créé un wlan0-1 (et pourquoi pas un eth0-1 ou un lo-1 ???)

  • /etc/network/wireless
config wifi-device 'radio0'
option type 'mac80211'
option channel 11
option macaddr '14:e6:e4:a7:09:d2'
option hwmode '11ng'
option htmode 'HT20'
list ht_capab 'SHORT-GI-20'
list ht_capab 'SHORT-GI-40'
list ht_capab 'RX-STBC1'
list ht_capab 'DSSS_CCK-40'
option disabled '0'

config wifi-iface
option device 'radio0'
option network 'wan'
option mode 'ap'
option 'ssid' 'Hot Sec'
option encryption 'psk2'
option key 'JeSuisUnMotDePasseWPA2'

config wifi-iface
option device 'radio0'
option network 'guest'
option mode 'ap'
option 'ssid' 'Public Box'
option encryption 'none'

à noter que ce genre de config ne semble pas aimer le WEP, quand j’ai essayé de mettre WEP comme mode d’encryption il m’a jeté, donc on abaisse les boucliers et ça roule.

  • /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
# option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.auto'

config dhcp 'wan'
option interface 'wan'
option start '200'
option limit '225'
option leasetime '12h'

config dhcp 'guest'
option interface 'guest'
option start '200'
option limit '225'
option leasetime '12h'
  • /etc/config/firewall

Juste une petite zone de plus

config zone
option name guest
option network 'guest'
option input REJECT
option output ACCEPT
option forward REJECT

config rule

option name Allow-DHCP
option src guest
option proto udp
option dest_port 67-68
option src_port 67-68
option target ACCEPT

C’est encore un work in progress, pour le moment pas encore de serveur Web, donc rien de fonctionnel. Donc pour le moment les clients se connectent, reçoivent une ip via DHCP et … c’est tout.

Un petit coup d’opkg install uhttp et un mini index.html dans /www devraient faire l’affaire pour un service web minimal.

Il me reste a faire une redirection automatique de tout requête HTTP/HTTPS vers le serveur web qui sera hébergé.

dans le fichier firewall,

config redirect                       
        option 'proto' 'tcp'          
        option '_name' 'Website'      
        option 'src' 'guest'               
        option 'src_dport' '80'  
        option 'dest_ip' '10.0.0.1'
        option 'dest_port' '80'

config rule                                                 
        option proto tcp                   
        option dest_port 80                     
        option src      guest                   
        option target ACCEPT

Le problème est que notre petit serveur web génère des messages « File Not Found » que j’ai mis du temps à comprendre. En fait cela marchait en tapant http://www.google.fr depuis mon client mais pas en faisant un http://www.google.fr/search…
Alors une idée ?
C’est tout simple mon serveur web cherchait une page /search et comme c’est un uhttpd assez basique il ne renvoi pas de page 404 « lisible ».
Donc solution : générer une page pour le cas 404 Not Found qui fasse un redirect vers la base du site, un truc qui encapsule ce genre de tag en somme :

meta http-equiv="refresh" content="0; url=http://10.0.0.1/"

Il faut donc aussi modifier le fichier de config de uhttpd pour prendre en compte cette page 404 :

option error_page       /404.html
Publicités

OpenWrt comme AP Wifi en WPA

Je ne sais pas si je l’ai déjà dis, mais j’adore openwrt 😉

J’ai un réseau en 192.168.2.X et par un malencontreux coup du sort je suis contraint d’utiliser une carte wifi du serveur pour accéder au Grand Ternet. Je n’ai plus de wifi résidentiel donc la tablette fait la grise mine (plus d’accès au NAS 😦 )

Bref, ce soir j’ai parametré openwrt en AP WPA en suivant cette procédure, claire, concise, efficace …

  • /etc/config/network
config interface 'lan'
option ifname 'eth0'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
option gateway '192.168.2.3'
list dns '192.168.2.1'
list dns '8.8.8.8'
list dns '8.8.4.4'

config interface 'wan'
option ifname 'wlan0'
option 'proto' 'static'
option 'ipaddr' '192.168.3.1'
option 'netmask' '255.255.255.0'
  • /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option channel 11
option macaddr '14:e6:e4:a7:09:d2'
option hwmode '11ng'
option htmode 'HT20'
list ht_capab 'SHORT-GI-20'
list ht_capab 'SHORT-GI-40'
list ht_capab 'RX-STBC1'
list ht_capab 'DSSS_CCK-40'
option disabled '0'

config wifi-iface
option device 'radio0'
option network 'wan'
option mode 'ap'
option 'ssid' 'nom du reseau'
option encryption 'psk2'
option key 'CestlaclefWPAsupersecrete'
  • /etc/config/firewall

config zone
option name lan
option network ‘lan’
option input ACCEPT
option output ACCEPT
option forward REJECT
option masq 1

config zone
option name wan
option network ‘wan’
option input ACCEPT
option output ACCEPT
option forward REJECT
option masq 1
option mtu_fix 1

config forwarding
option src wan
option dest lan

config forwarding
option src lan
option dest wan

  • /etc/config/dhcp
config dhcp 'wan'
option interface 'wan'
option start '200'
option limit '225'
option leasetime '12h'

Coté serveur linux j’ai eu la commande suivante à passer pour accéder aux machines de l’autre subnet

route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.1 eth2

et le ping passe dans les deux sens, c’est déjà pas mal.

Reste à trouver comment faire fonctionner le discover DNLA depuis le subnet en 192.168.3.xx

TODO : j’ai entendu parler d’un igmpproxy qui semblerait correspondre … a faire