add content
This commit is contained in:
parent
93c9f1e4df
commit
4ad900bcb0
81 changed files with 3170 additions and 0 deletions
|
@ -0,0 +1,136 @@
|
|||
Title: Wifi à la demande avec le vénérable Linksys WRT54G
|
||||
Date: 2017-03-09 15:57
|
||||
Category: sysadmin
|
||||
Tags: OpenWRT, Wifi, réseau, pl-fr
|
||||
Status: published
|
||||
|
||||
Dans le cadre de mon travail, il m'a été demandé de mettre en place pour un
|
||||
centre d'animation un petit réseau wifi afin que les adhérents puissent se
|
||||
connecter à Internet : deux ordinateurs fixe sous Debian et un point d'accès
|
||||
Wifi. J'ai donc recyclé une vieille unité centrale pour en faire un petit
|
||||
routeur proxy filtrant avec [ipfire][l_ipfire] et un vénérable [Linksys
|
||||
WRT54G][l_wrt54g] qui traînait.
|
||||
|
||||
[l_ipfire]:http://www.ipfire.org/
|
||||
[l_wrt54g]:https://wiki.openwrt.org/toh/linksys/wrt54g
|
||||
|
||||
Les postes sous Debian sont en accès libre toute la journée mais les animateurs
|
||||
voulaient que le wifi soit activé certains jours de 14h à 18h et éventuellement
|
||||
à la demande. Le WRT54G sert à la fois de switch réseau et de point d'accès
|
||||
Wifi. Bien entendu il y a OpenWRT d'installé dessus avec le SSH d'activé (son
|
||||
adresse est 10.0.0.250).
|
||||
|
||||
###Mise en place d'un script pour l'activation-désactivation du Wifi
|
||||
|
||||
La première étape est la création d'un script shell pour activer désactiver
|
||||
l'interface wifi du Linksys. Connectons nous à notre Linksys
|
||||
|
||||
~~~
|
||||
ssh root@10.0.0.250
|
||||
~~~
|
||||
|
||||
Créons le fichier contenant le script, rendons-le exécutable et ouvrons-le avec vi.
|
||||
|
||||
~~~
|
||||
touch /sbin/wtoggle.sh
|
||||
chmod + x /sbin/wtoggle.sh
|
||||
vi /sbin/wtoggle.sh
|
||||
~~~
|
||||
|
||||
Il suffit maintenant de coller les commandes ci-dessous.
|
||||
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
device="wl0"
|
||||
case $1 in
|
||||
"disable")
|
||||
wifi down $device
|
||||
echo 0 > /proc/diag/led/ses_white
|
||||
echo 1 > /proc/diag/led/ses_orange
|
||||
echo 0 > /proc/diag/led/wlan
|
||||
uci set wireless.$device.disabled=1
|
||||
uci commit wireless
|
||||
logger "Wifi disabled"
|
||||
;;
|
||||
"enable")
|
||||
uci set wireless.$device.disabled=0
|
||||
uci commit wireless
|
||||
wifi up $device
|
||||
echo 1 > /proc/diag/led/ses_white
|
||||
echo 0 > /proc/diag/led/ses_orange
|
||||
echo 2 > /proc/diag/led/wlan
|
||||
logger "Wifi enabled"
|
||||
;;
|
||||
esac
|
||||
```
|
||||
|
||||
Le script fait trois choses :
|
||||
|
||||
1. Activer / Désactiver le point d'accès Wifi
|
||||
2. Allumer la diode SES en blanc / orange en fonction de l'état de la connexion
|
||||
3. Activer / désactiver la diode WLAN
|
||||
|
||||
L'utilisation est simple : `wtoggle enable` pour activer le wifi et `wtoggle disable` pour le désactiver.
|
||||
|
||||
### Créer la tache cron pour activer le wifi à certaines heures
|
||||
|
||||
Il suffit d'ajouter les deux lignes suivantes au cron pour programmer la mise en
|
||||
route du Wifi avec la commande ``crontab -e``
|
||||
|
||||
~~~
|
||||
00 14 * * 1-6 wtoggle enable
|
||||
00 18 * * 1-6 wtoggle disable
|
||||
~~~
|
||||
|
||||
Le réseau Wifi est donc allumé du lundi au samedi de 14h à 18h. Mais sur Openwrt
|
||||
le service cron n'est pas activé[^n_cron-openwrt]. Il faut donc le faire avec
|
||||
les commandes[^n_openwrt-buttons]
|
||||
|
||||
~~~
|
||||
/etc/init.d/cron start
|
||||
/etc/init.d/cron enable
|
||||
~~~
|
||||
|
||||
[^n_cron-openwrt]: voir sur la [documentation
|
||||
d'openwrt](https://wiki.openwrt.org/doc/howto/cron#activating_cron)
|
||||
|
||||
### Activation / désactivation à la demande du Wifi
|
||||
|
||||
Il est parfois nécessaire d'allumer ou d'éteindre le wifi manuellement, pour ça
|
||||
nous allons détourner le bouton SES du routeur (vous savez celui avec le logo
|
||||
cisco dessus). si le Wifi est désactivé, une pression sur ce bouton l'activera
|
||||
et une autre pression le désactivera à nouveau.
|
||||
|
||||
Créons un fichiers ``bouttons`` dans le répertoire ``/etc/hotswap.d/button/``
|
||||
qui va contenir les commandes à effectuer lors de la pression d'un boutons sur
|
||||
le Linksys
|
||||
|
||||
~~~
|
||||
mkdir -p /etc/hotswap.d/button/
|
||||
vi /etc/hotswap.d/button/buttons
|
||||
~~~
|
||||
|
||||
Voici le contenu de ce fichier
|
||||
|
||||
```bash
|
||||
#!/bin/sh
|
||||
device="wl0"
|
||||
if [ "$BUTTON" = "ses" ] && [ "$ACTION" = "pressed" ] ; then
|
||||
case $(uci get wireless.$device.disabled) in
|
||||
0)
|
||||
/sbin/wtoggle.sh disable
|
||||
;;
|
||||
1)
|
||||
/sbin/wtoggle.sh enable
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
```
|
||||
|
||||
Une fois enregistré, le tout devrait fonctionner : le bouton SES pour allumer
|
||||
/éteindre le wifi et la tâche cron pour le faire automatiquement en fonction des
|
||||
heures d'ouvertures. Le voyant du logo Cisco servant aux animateurs à visualiser
|
||||
rapidement si le réseau Wifi est actif ou non.
|
||||
|
||||
[^n_openwrt-buttons]:voir sur la [documentation d'openwrt](https://wiki.openwrt.org/doc/howto/hardware.button)
|
Loading…
Add table
Add a link
Reference in a new issue