Contrôle parental: ajouter le wifi

Comme je l’avais évoqué plus tôt, le wifi provenant de ma box n’était pas filtré par IPFire. Pour pallier à ce souci, il existe (au moins) 2 façon d’intégrer le wifi dans mon réseau afin qu’il soit filtré par IPFire:

  • M’équiper d’un routeur wifi supplémentaire
  • M’équiper d’une carte wifi interne ou usb

J’ai fait le choix de la carte wifi car elle permet de centraliser dans une seule interface (celle d’IPFire) tous les paramétrages du réseau, mais j’expliquerai tout de même le principe du routeur supplémentaire. J’ai opté pour la carte Gigabyte GC-WB867D-I Wifi N, Wifi AC et Bluetooth 4.0 LE (commandée chez Materiel.net pour 35€):

3507

Pour rappel, voici ce que j’avais suite à ma première installation d’IPFire.

controle_parental_sans_wifiEnsuite voici ce que j’aurais si j’ajoutais un routeur wifi:

controle_parental_routeur_wifiPour finir, voici ce que j’aurais avec une carte wifi sur la machine IPFire:

controle_parental_completSolution 1: Ajout d’un routeur wifi

Cette solution (qui n’est pas celle que j’ai choisie) a pour elle 2 avantages: la simplicité d’installation (pas de drivers supplémentaires à installer, pas d’options wifi à ajouter, mais quelques paramètres à désactiver) et le fait de n’avoir qu’un seul sous-réseau (ce qui peut être utile lorsqu’on a besoin du broadcast, comme avec certaines imprimantes ou scanners wifi par exemple). Par contre, le paramétrage se fait sur 2 matériels distincts (IPFire et le routeur pour la gestion du wifi). Je ne vais pas rentrer dans les détails de la configuration, juste énumérer les grandes lignes.

1ère étape: préparer la box

Il faut désactiver le Wifi ainsi que le DHCP (la procédure est propre à chaque box).

2ème étape: Paramétrage IPFire

Contrairement à ce que j’avais fait dans le premier article sur le contrôle parental, les réseaux rouges et verts auront 2 sous-réseaux distincts. Le rouge aura le même que celui de la box.

Si la box a comme adresse IP 192.168.0.1, on pourra prendre 192.168.0.x pour le réseau rouge (attention car avec LaBox de Numéricable, les adresses 192.168.0.2 et 192.168.0.3 sont utilisées par LaBox pour d’autres services).

Le réseau vert pourra avoir comme sous réseau 192.168.1.x avec 192.168.1.1 pour la machine IPFire.

La passerelle sera l’adresse de la box (192.168.1.1 dans mon cas).

Le serveur DHCP doit être activé sur le réseau vert. Pour les DNS, indiquer l’adresse du réseau vert de la machine IPFire, car cela permet d’activer Google Safe Search comme expliqué ici. Il n’est pas utile de prendre une grande plage d’adresse pour le DHCP (20 IP suffisent: 192.168.1.100 à 192.168.1.120 par exemple).

3ème étape: préparer le routeur wifi

Le routeur doit être connecté au réseau vert et donc avoir une ip de ce sous-réseau, ne faisant pas partie de la plage indiquée dans le DHCP.

Son DHCP doit être désactivé et la passerelle doit être la machine IPFire.

Pour finir, la clé WPA doit être paramétrée car la connexion se fera à partir de ce point d’entrée (et pas sur IPFire).

Solution 2: Ajout d’une carte wifi

L’intérêt principal de l’ajout d’une carte wifi dans la machine IPFire est de centraliser toute l’administration. Par contre, on se retrouve avec un réseau ethernet et un réseau wifi distinct: tous les messages broadcast ne passent plus (normal), ce qui empêche la détection de machines se trouvant sur l’autre réseau (partage de fichier) ou d’imprimantes/scanner, mais n’empêche pas leur utilisation, si on connait leur adresse IP.

1ère étape: préparer la box

Il faut désactiver le Wifi ainsi que le DHCP (la procédure est propre à chaque box).

2ème étape: Installation des drivers

Tout ceci se fait dans l’interface web.

Aller dans l’onglet IPFire puis choisir Pakfire. Dans la liste Available Addons, choisir hostapd et cliquer sur le signe +. Confirmer l’installation.

3ème étape: Paramétrage du wifi

Toujours dans l’interface wweb, aller dans l’onglet IPFire puis choisir WlanAP.

Remplir :

  1. SSID: IPFire (le nom du réseau wifi).

  2. SSID Broadcast: Mettre à ON. (permet l’affichage du réseau)

  3. HW Mode: (choisir un mode compatible avec votre carte wifi).

  4. Encryption: WPA2

  5. Channel: 1 (peut-être changé si problème de communication)

  6. Country Code: FR.

  7. Tx Power: vide

  8. Passphrase: correspondant au mot de passe wifi

  9. HT Caps: vide

  10. Loglevel (hostapd): 0 (Verbose)

Enregistrer.

Autorisation des clients

Lors de leur première connexion, les clients n’ont pas accès à internet. Il faut les ajouter dans la liste du filtrage des adresses MAC. Pour cela, aller dans la partie Firewall, dans la sous-partie blue access.

Cliquer sur le crayon de la ligne correspondante.

 

Bonus: Mutualisation des réseaux wifi et filaire

Par défaut, comme je l’ai déjà dit, les réseaux wifi et filaire sont bien distincts. Mais il est possible de les mutualiser (ce n’est pas recommandé dans le cas où vous souhaitez ouvrir votre wifi au public). Tout ce qui suit est tiré du wiki d’ipfire (http://wiki.ipfire.org/en/configuration/network/bridge-green-blue).

La mutualisation des réseaux wifi (blue) et filaire (green) n’est pas obligatoire : son intérêt réside dans la possibilité de pouvoir faire du broadcast entre les réseaux. Par exemple, pour détecter une imprimante, les machines doivent envoyer un signal broadcast. Si l’imprimante est sur le réseau wifi, alors les machines du réseau filaires ne pourront pas la détecter (ce qui n’empêche pas son utilisation si on connaît son adresse IP).

Pour mutualiser les 2 réseaux, il faut d’abord créer le fichier /etc/init.d/bridge

touch /etc/init.d/bridge

Puis l’éditer avec le contenu suivant :

#!/bin/sh
########################################################################
# Begin $rc_base/init.d/bridge
#
# Description : Skript to use more than one NIC's as green net
#
# Authors : Arne Fitzenreiter - arne_f@ipfire.org
#
# Version : 01.00
#
# Notes :
#
########################################################################

. /etc/sysconfig/rc
. ${rc_functions}

case "${1}" in
start)
boot_mesg "Create bridge for green net..."
# down green0
ip link set green0 down
# rename green0 to green1
ip link set green0 name green1
# create new bridge green0
brctl addbr green0
# wait 2 seconds because udev try to rename the nics
# if the real green nic was added to fast...
sleep 2
# Add real green nic
brctl addif green0 green1
# Add other nic's here ...
brctl addif green0 blue0
# brctl addif green0 eth1
# Bring nic's up
ip link set green1 up
#ip link set wlan0 up
#ip link set eth1 up
;;

stop)
boot_mesg "Remove bridge for green net......"
# Bring nic's down
ip link set green1 down
#ip link set eth1 down
#ip link set wlan0 down
# Bring bridge down
ip link set green0 down
# Delete Bridge
brctl delbr green0
# rename green1 to green0
ip link set green1 name green0
;;

*)
echo "Usage: ${0} {start|stop}"
exit 1
;;

esac

# End $rc_base/init.d/bridge

Au démarrage, puisque le script doit démarrer avant Sxxnetwork et après Sxxhostap , le nom du lien symbolique sera S19bridge :

ln -s /etc/init.d/bridge /etc/rc.d/rc3.d/S19bridge

Créer aussi les liens suivants :

ln -s /etc/init.d/bridge /etc/rc.d/rc0.d/K82bridge
ln -s /etc/init.d/bridge /etc/rc.d/rc6.d/K82bridge

Donner les droits d’écriture au script:

chmod 754 /etc/init.d/bridge