Firmware Brest-Wireless (Hotspot Edition)
Le firmware de Brest-Wireless a pour but de simplifier le déploiement et la maintenance d’un réseau de point d’accès wifi public. Le firmware est composé des éléments suivant:
- OpenWRT (RC-5 pour le moment)
- Wifidog (version svn)
- SNMP
- Wl (gestion des antennes)
- OpenVPN
Cette version du firmware est dédiée à la mise en oeuvre du projet Brest-sans-fil. De ce fait, il ne peut pas être utilisé dans le cadre d’un autre projet. Néanmoins, nous sommes ouverts à toute forme de collaboration dans le cadre d’un projet similaire. Dans l’état actuel, ce firmware s’installe les WRTG, WRTGS, et WRTGL, et occupe 3.9Mo de flash.
Fonctionnalités
- Gestion automatique de l’adresse IP: Le numéro d’identifiant de l’AP permet de calculer l’adresse IP de l’AP et des clients selon la rêgle suivante: début de la plage à 10.29.0.64, et on alloue 64 ips par AP.
- Gestion automatique du SSID, Hostname, etc ...
- Gestion automatique du VPN: Chaque AP se connecte au serveur de VPN afin de permettre l’administration à distance
- Gestion automatique des certficats du VPN
- Gestion automatique des clées SSH utilisées pour l’administration distante
- Support de SNMP: Tous les points d’accès sont monitorés via SNMP à travers le VPN (nb de clients, vitesse, traffic ...)
- Reboot automatique lors de l’installation (plus besoin de faire de reboot lors du firstboot)
- Mise à jour à distance (on peut mettre à jours les APs via le VPN, au boot suivant tout revient dans le même état .. vpn, ssh ..)
- Gestion de l’état via recvudp
- Pages d’administration dédiées à l’état de l’AP: Liste des clients, état du tunnel, les variables ..
Installation
Avant toute chose, nous demander un n° à affecter à votre AP (via le Forum ou la page contact).
Installer le firmware en suivant la procédure habituelle, c’est-à-dire:
- Récupérer le firmware sur votre ordinateur (fichier openwrt-wrt54g-jffs2.bin pour un WRT54GL). Nous contacter pour obtenir le firmware.
- Démarrer l’AP sans connecter aucun cable ethernet
- Connecter votre ordinateur par ethernet (pas wifi!) à un des ports LAN de l’AP (c’est-à-dire à un des ports numérotés de 1 à 4).
- Brancher l’AP sur le port n°1 de l’AP, votre ordinateur obtient une IP en 192.168.1.*)
- Accédez à la page http://192.168.1.1 avec votre navigateur web. Authentifiez-vous.
- Choisir l’onglet ‘Administration’, et le sous-onglet ‘Firmware upgrade’, avec le bouton ‘Parcourir’, choisir le fichier du firmware et cliquer sur le bouton ‘Upgrade’
- Laisser le temps à l’AP de se flasher (un peu moins d’une minute chez moi) et cliquer sur le bouton ‘Continue’ qui fait redémarrer l’AP
Configurer l’AP:
- après le reboot de l’AP, pinger-le pour vérifier son IP (ping 192.168.1.1)
- s’y connecter en telnet (telnet 192.168.1.1), et comme demandé changer le mot de passe (et le noter sur une feuille de papier!)
- Puis rebooter l’AP, et cette fois s’y connecter en ssh (ssh root@192.168.1.1 et le mot de passe changé à l’étape précédente)
- Exécuter une première fois le script de configuration de l’AP, et notamment saisir le n° d’AP affecté (cf tout début de cette section). Ne pas tenir compte des erreurs de téléchargement cela sera résolu lors de la seconde exécution de ce script.
- Connecter l’AP à internet. C’est à dire connecter la WAN à votre réseau local (c’est à dire connecter le cable éthernet à la prise ‘Internet’ à l’arrière de votre AP, et l’autre extrémité au hub ou switch, celui étant bien sûr relié à internet).
- Se connecter en wifi ou en éthernet à votre AP, et vérifier l’IP obtenue, et surtout l’IP de la passerelle (gateway)
- Y accéder en ssh (ssh root@<ip de la gateway>
- relancer le script de configuration /opt/bw_setup.sh
Tester l’AP:
- Se connecter à l’interface de l’AP et vérifier qu’il n’y a pas d’erreur dans les pages ‘Brest-Wireless’.
- Se connecter en tant que client à l’AP via wifidog et vérifier que vou accédez bien à Internet.
- Les mises à jour suivantes seront fait automatiquement avec la commande: autoflash.sh
Questions/Réponses:
- pourquoi flasher l’AP en ethernet et pas en sans-fil? Parce que vous risquer de laisser votre AP qu’à moitié flashé, dans un état ou il est difficile de le récupérer.
- Pourquoi se connecter dans un premier tant à l’AP via une de ses prises LAN, et sans qu’il soit relié à Internet (via le WAN)? Parce que l’IP par défaut des WRT54 est 192.168.1.1, et souvent votre réseau local utilise aussi cette IP. Vosu auriez alors un conflit d’IP sur votre réseau local.
- Pourquoi lancer deux fois le script bw_setup.sh? Toujours à cause de cette IP 192.168.1.1, la première exécution de bw_setup fixe la configuration réseau de l’AP. Lors de la seconde exécution, il n’y a plus de risque de conflit d’IP sur votre réseau local, et l’AP peut accèder à Internet pour télécharger les certificats et les mises à jours utiles.
- Pourquoi faut-il demander le firmware, ce serait mieux s’il était librement téléchargeable? Nous évitons de faire cela car le firmware est configuré pour notre architecture réseau, et si une personne installe le firmware en lui affectant un n° d’AP bidon, l’AP risque de ne pas fonctionner et perturber éventuellement l’AP ayant déjà ce n°. Mais nous diffuserons à ceux qui le veulent les détails de fonctionnement du firmware.
Informations techniques
- variables utilisées pour les antennes: wl0_txant, wl0_antdiv, wl0_txpwr
- variables utilisées par wifidog: wifidog_gateway_id, wifidog_ports_known-users_tcp, wifidog_trusted_mac, wifidog_ports_known-users_udp
- variable utilisée pour le type de nat: wan_setting = nat|routed (fonctionnement par défaut: nat, si vous voulez que l’AP route le traffic, il suffit de mettre “routed”, cela peut être très utile si l’on met un squidguard derrière par exemple)
Todo
Ces modifications seront intégrées dans la future version du firmware. Le planning n’est pas encore déterminé, mais si la version estivale du firmware pouvait inclure tout cela ca serait pas mal :)
- Finir la mise en place de la QoS ⇒ Vitesse max de download et d’upload + prioritation du traffic interactif
- Suppression du bridge afin d’utiliser les port 2,3,4 sans le wifidog. (Attention que cela a un impact non négligeable pour l’ensemble des scripts ⇒ le firewall )
- Mise en place d’un DMZ ? (pour le nation, je ne sais même pas comment faire cela)
- Mise en oeuvre de TinyProxy (pour les logs) (hum, bof)(steven: hmm le tgz fait quand meme 450kB ! soltution : gdtux :))
- Mise en place d’un accès privilégié pour les téléphones Wifi (sans authentification)
- Côté serveur : mise en place de pages personnalisées par AP (timeline : cet été), avec génération automatique de CSS par les intéressés.