Si vous avez des enfants chez vous, vous avez peut-être ressenti le besoin de bloquer certains sites Web indésirables. Les sites Web de médias sociaux sont un autre problème courant: vous pourriez penser que les enfants (et les adultes) perdent trop de temps sur Facebook, Twitter, etc. et veulent les bloquer, ou du moins les rendre accessibles uniquement à certains moments de la journée..
Pour rendre cela possible, nous avons besoin d'un routeur plus Filtre de contenu - un appareil par lequel tous nos appareils tels que les ordinateurs portables, les smartphones et les tablettes se connectent à Internet. Cet appareil intercepte également les sites Web auxquels ces appareils accèdent et les bloque s'ils tentent d'accéder à un site Web sur la liste noire..
Il existe des filtres de contenu commerciaux prêts à l'emploi disponibles sur le marché, mais pour nous, les bricoleurs, il n'y a pas de plaisir à cela. Ainsi, nous allons mettre la main à la pâte et configurer un Raspberry Pi pour le travail. Nous avons choisi le Raspberry Pi pour ce projet en raison de sa petite taille et de sa consommation d'énergie négligeable. pourtant, ces instructions fonctionneront presque sans modification avec presque tous les ordinateurs exécutant Debian Linux ou un dérivé (Ubuntu, menthe, etc.).
Avertissement: Ce guide suppose un niveau d'expérience intermédiaire avec Linux et une volonté de résoudre les problèmes si et quand ils surviennent. Une expérience préalable avec les lignes de commande et les pare-feu est un bonus.
Comment ça fonctionne
Matériel
Nous utiliserons le Raspberry Pi 3 comme filtre de contenu du routeur. Pour cela, nous aurons besoin deux interfaces réseau dessus - l'un pour se connecter à Internet et l'autre pour servir de point d'accès WiFi auquel nos autres appareils se connectent. Le Raspberry Pi 3 dispose d'une prise Ethernet intégrée et d'un module WiFi. Donc, dans ce scénario, nous pouvons utiliser un câble Ethernet (eth0) pour se connecter à Internet, tandis que le module WiFi (wlan0) agira comme un hotspot.
Bien sûr, la connexion à Internet via Ethernet n'est pas toujours possible. Dans ce cas, vous aurez besoin d'un dongle WiFi USB compatible (wlan1) pour se connecter à Internet, tandis que le module WiFi intégré (wlan0) agira comme un hotspot. C'est la configuration que nous utiliserons dans ce guide.
Gardez à l'esprit que même si un Raspberry Pi 3 est principalement suffisant pour une configuration à domicile avec quelques ordinateurs portables et smartphones, il ne fournira pas les performances nécessaires pour une configuration de grand bureau. Recherchez un matériel plus performant si de nombreux clients se connecteront à votre filtre de contenu.
Logiciel
Nous utiliserons l'excellent E2guardian pour intercepter et filtrer nos requêtes Web. Étant donné que le filtrage de contenu peut avoir un impact sur les performances (en fonction de la taille de la liste de blocage), nous utiliserons le cache Squid pour compenser cet impact sur les performances..
Conditions préalables
1. Raspberry Pi 3 avec la dernière version du système d'exploitation Raspbian installée et un accès à Internet. Si vous ne faites que commencer avec le Raspberry Pi, nous vous recommandons de lire notre guide sur la façon de démarrer avec Raspberry Pi 3.
2. [Optionnel] Clé USB WiFi - Ceci est nécessaire si et seulement si vous ne pouvez pas connecter votre Raspberry Pi 3 à Internet avec un câble Ethernet. Si vous prévoyez d'utiliser le WiFi à la fois pour vous connecter à Internet et comme point d'accès, cela est nécessaire.
3. Accès physique au Raspberry Pi - En raison de la nature de cet article, une seule erreur dans la configuration du pare-feu peut vous verrouiller hors de votre Pi si vous l'utilisez en mode sans tête. Par conséquent, il est recommandé de connecter un moniteur, un clavier et une souris tout en le configurant jusqu'à ce que tout soit configuré.
Utilisez Raspberry Pi comme routeur
1. Connectez votre Pi à Internet via Ethernet (eth0). Si vous utilisez une clé USB WiFi (probablement wlan1) à la place, connectez-le à Internet. Laissez le module WiFi intégré (wlan0) comme pour le moment.
2. Obtenir le logiciel prérequis dont nous avons besoin:
sudo apt installer iptables iptables-persistent hostapd dnsmasq squid3
3. Nous mettrons en place hostapd
pour que notre Pi peut agir comme un hotspot WiFi. Pour cela, créez un fichier de configuration à l'aide de votre éditeur de texte préféré, par exemple sudo nano /etc/hostapd/hostapd.conf
, et collez le contenu de notre page GitHub.
Certaines lignes que vous voudrez peut-être modifier selon vos goûts sont:
ssid = RaspberryPiAP
Cette ligne dicte le nom du point d'accès. j'ai choisi FramboisePiAP
.
wpa_passphrase = beebom.com
Ceci spécifie la phrase secrète utilisée pour accéder au hotspot. j'ai utilisé beebom.com
, mais il est recommandé de le remplacer par une phrase de passe forte de votre choix.
4. Ensuite, nous allons configurer un serveur DHCP utilisant dnsmasq
. Modifier le fichier de configuration /etc/dnsmasq.conf
, et ajoutez les lignes suivantes à la fin:
[code source] interface = lo, wlan0
no-dhcp-interface = lo
dhcp-range = 192.168.8.20,192.168.8.254,255.255.255.0,12h [/ code source]
Cela rend l'interface sur wlan0
(le module WiFi intégré) distribue les adresses IP aux clients dans le 192.168.8.20 à 192.168.8.254 intervalle.
5. Mettre en place une adresse IP statique pour le module WiFi intégré wlan0
. Ouvrez le fichier / etc / network / interfaces
. Cela ressemble probablement à quelque chose comme ça (c'est moi qui souligne):
[code source] répertoire-source /etc/network/interfaces.d
auto lo
bouclage iface lo inet
iface eth0 inet manuel
allow-hotplug wlan0
iface wlan0 inet manuel
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug wlan1
iface wlan1 inet manuel
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]
Ici, localiser les lignes en gras avec wlan0
, et les changer, afin que le fichier ressemble à ce qui suit:
[code source] répertoire-source /etc/network/interfaces.d
auto lo
bouclage iface lo inet
iface eth0 inet manuel
allow-hotplug wlan0
iface wlan0 inet statique
hostapd /etc/hostapd/hostapd.conf
adresse 192.168.8.1
masque de réseau 255.255.255.0
allow-hotplug wlan1
iface wlan1 inet manuel
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]
Cela configure une adresse IP statique 192.168.8.1
sur wlan0. Souvenez-vous de cette adresse, car c'est l'adresse que nous utiliserons pour communiquer avec notre Raspberry Pi plus tard.
6. À présent configurer le transfert IP. Modifier le fichier /etc/sysctl.conf
, et ajoutez-y la ligne suivante:
net.ipv4.ip_forward = 1
7. Maintenant nous allons configurer la traduction d'adresses réseau (NAT) dans notre pare-feu. Pour ce faire, entrez les 2 commandes suivantes:
sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24! -d 192.168.8.0/24 -j MASQUERADE sudo iptables-save | sudo tee /etc/iptables/rules.v4
La première commande configure NAT, tandis que la deuxième commande enregistre notre configuration actuelle du pare-feu dans un fichier appelé /etc/iptables/rules.v4
. Cela garantit que la configuration persiste lors des redémarrages.
8. À ce point, redémarrez votre Raspberry Pi. Ceci pour nous assurer que toutes les modifications que nous avons apportées aux fichiers de configuration sont fonctionnelles.
9. Après le redémarrage, vous devriez pouvoir voir le nouveau FramboisePiAP
hotspot (sauf si vous avez changé le nom à l'étape 3) sur vos autres appareils tels que les ordinateurs portables et les smartphones. Vous pouvez vous y connecter en utilisant le mot de passe que vous avez spécifié et accéder à Internet.
C'est tout ce que vous devez faire si vous avez besoin d'un routeur basique de faible puissance. Si vous souhaitez également configurer un filtre de contenu, lisez la suite.
Configurer le filtre de contenu à l'aide d'E2guardian
E2guardian n'est pas présent dans les référentiels Raspbian par défaut. Pour l'installer, accédez à la page Github du projet et téléchargez le fichier se terminant par armhf.deb
. Ouvrez maintenant le Terminal, accédez à votre Téléchargements dossier (ou à l'endroit où vous avez choisi de télécharger le fichier) et installez-le:
cd ~ / Téléchargements sudo dpkg -i ./e2guardian_*_jessie_armhf.deb
Vous verrez probablement quelques erreurs concernant les paquets manquants lorsque vous installerez E2guardian. Pour remédier à cela, laissez l'installation se terminer et entrez la commande suivante:
sudo apt-get install -f
Utilisation des listes de contenu
Il y a plusieurs listes présentes dans le / etc / e2guardian / lists
annuaire. Ces fichiers incluent la liste des extensions interdites, la liste des bannières, la liste des phrases interdites, la liste des bannières, la liste des bannières, la liste des exceptions, etc. Ces fichiers sont correctement documentés avec des commentaires. Jetez-y un œil pour vous familiariser.
À titre d'exemple, supposons que vous souhaitiez bloquer certains réseaux sociaux populaires. Ouvrez le / etc / e2guardian / lists / bannedsitelist
fichier, et sous le Couverture SSL / CONNECT bloquer (puisque ces sites Web utilisent https au lieu de plaine http), ajoutez les lignes suivantes:
facebook.com twitter.com reddit.com
Rechargez maintenant le service E2guardian à l'aide de la commande sudo service e2guardian rechargement
(vous devrez exécuter cette commande à chaque fois que vous modifiez les fichiers de configuration). Les clients utilisant le filtre de contenu ne pourront plus accéder à ces sites Web. Même les sites mobiles (par exemple, m.twitter.com) et les applications pour smartphone dédiées ne fonctionneront pas.
E2guardian aussi bloque le porno par défaut. Si vous souhaitez l'autoriser (hé, nous ne jugeons pas), ouvrez le / etc / e2guardian / lists / bannedphraselist
fichier et recherchez la ligne suivante:
.Inclure
Commentez-le en ajoutant un hacher (symbole #) à l'avant, de sorte qu'il ressemble à ceci:
#.Inclure
Encore une fois, rechargez la configuration avec sudo service e2guardian rechargement
, et tu as fini.
Configurer les clients
Maintenant que notre serveur proxy est configuré, nous pouvons passer à la configuration des clients. Pour utiliser le filtre de contenu, tous les clients doivent être connectés au hotspot du Rapberry Pi et configurés pour utiliser le proxy. La configuration d'un proxy est différente sur tous les systèmes d'exploitation et appareils. Cependant, nous montrerons comment le configurer sur Windows et Android, car ceux-ci sont plus populaires.
les fenêtres
Aller à Panneau de configuration> Réseau et Internet> Options Internet. Dans la fenêtre qui s'ouvre, accédez au Connexions onglet, et cliquez sur Paramètres lan.
Ici, cliquez sur Avancée, et entrez 192.168.8.1
comme adresse proxy, et 8080
comme le port. Assurez-vous que le Utilisez le même serveur proxy pour tous les protocoles la case est cochée. Cliquez sur d'accord.
C'est tout ce que vous devez faire. Les navigateurs Web les plus populaires tels que Google Chrome et Firefox prendront automatiquement les paramètres de proxy du système.
Android
Aller à Paramètres système> WiFi. Maintenant, appuyez et maintenez le point d'accès Raspberry Pi, et sélectionnez Modifier le réseau. En dessous de Options avancées, met le Procuration option pour Manuel. Maintenant, sous Nom d'hôte du proxy, entrez l'adresse IP du Pi 192.168.8.1
. En dessous de Port proxy, Entrer 8080
, et appuyez sur Sauvegarder.
Vous pouvez maintenant tester la configuration du proxy. Essayez d'accéder à un site Web de votre liste noire - vous verrez une page «Accès refusé» comme celle-ci:
Application de l'utilisation du proxy
Jusqu'à présent, nous comptons sur les clients qui jouent gentiment et utilisent Internet via le filtre de contenu. Bien sûr, cela se produit rarement dans le monde réel. Donc, pour forcer tous les clients à passer par le proxy, exécutez les commandes suivantes:
sudo iptables -A PREROUTING -t nat -p tcp --destination-port 80 -j REDIRECT --to-ports 8080 sudo iptables -A PREROUTING -t nat -p tcp --destination-port 443 -j REDIRECT --to- ports 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4
Cela redirigera automatiquement tous http (port 80) et https (port 443) trafic sur le hotspot du raspberry Pi vers le proxy de filtrage de contenu. Désormais, sans configurer les paramètres de proxy sur vos appareils, ils ne pourront pas accéder à la sécurité https sites Web tels que Facebook, Gmail, Twitter, etc. Cela garantit que toute personne souhaitant se connecter à votre hotspot Pi doit passer par le proxy.
C'est tout ce que vous devez savoir pour une utilisation de base du filtre de contenu. Si vous souhaitez découvrir certaines fonctionnalités avancées, lisez la suite.
Scénarios d'utilisation avancés
Configuration d'un filtre temporel
Supposons que vous souhaitiez bloquer les sites Web mentionnés dans le Utilisation des listes de contenu section ci-dessus, mais seulement à certains moments de la journée. Personnellement, je préfère bloquer Reddit, Facebook et Twitter pendant les heures de travail (9h-17h) en semaine car ils sont un cauchemar de productivité.
Ouvrez le / etc / e2guardian / lists / bannedsitelist
et ajoutez-y la ligne suivante:
temps: 9 0 17 0 01234
Cette ligne fonctionne comme suit - le minuteur démarre à 9 (9 h 00) 0 (00 minutes), jusqu'à 17 (17 h au format 24 h) 0 (00 minutes), à partir de 0 (Lundi) à 4 (Vendredi).
Prenons un autre exemple:
temps: 10 30 20 45024
Cela bloquera les sites configurés de 10h30 (10h30) à 20h45 (2045) les lundi (0), mercredi (2) et vendredi (4).
Laisser certaines adresses IP contourner le proxy
Il est possible de laisser certaines adresses IP contourner le filtre de contenu. Cela peut être configuré par configuration du pare-feu. Vous avez peut-être remarqué que dans notre dnsmasq.conf
, nous définissons uniquement le hotspot pour attribuer des adresses IP à partir de 192.168.8.20 à 192.168.8.254 aux clients. Cela signifie des adresses de 192.168.8.2 à 192.168.8.19 ne sera automatiquement attribué à aucun client (nous ne pouvons pas utiliser 192.168.8.1 car c'est ce que notre Raspberry Pi utilise lui-même).
Pour ce faire, d'abord configurer une adresse IP statique sur l'appareil auquel vous souhaitez donner un accès complet. Par exemple, pour configurer une adresse IP statique de 192.168.8.2 sur une machine Windows, utilisez ces paramètres:
Maintenant, sur votre Raspberry Pi, exécutez les commandes suivantes.
sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 80 -j RETURN sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 443 -j RETURN
À présent, désactiver l'utilisation du proxy sur votre appareil, et essayez d'ouvrir un site Web interdit. Vous devriez pouvoir l'ouvrir. S'il y a plus d'adresses IP que vous souhaitez ajouter à la liste blanche, exécutez à nouveau les deux commandes ci-dessus, mais remplacez l'adresse IP par celle que vous souhaitez. Une fois que vous êtes satisfait de la liste blanche, exécutez la commande suivante pour enregistrer la configuration de votre pare-feu:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Une chose importante à garder à l'esprit est que vous ne devez informer personne des adresses IP de la liste blanche. Sinon, ils peuvent simplement configurer leur appareil sur cette adresse IP pour contourner le proxy.
Problèmes de sécurité
Puisque votre Raspberry Pi sera le point d'entrée et de sortie de toutes vos communications, il est important de le sécuriser. Voici quelques conseils pour améliorer la sécurité. Gardez à l'esprit qu'il ne s'agit que d'indicateurs de base et non d'une liste complète des écueils de sécurité. Le niveau de sécurité dépendra de la nature de votre réseau (maison, petit bureau, etc.) et de l'espièglerie des utilisateurs..
Désactiver les services inutiles
Puisqu'il s'agit d'un routeur, il est préférable de n'exécuter que les services dont nous avons besoin. Plus de services en cours d'exécution signifie plus de vulnérabilités qui peuvent potentiellement être exploitées. Absolument n'utilisez pas ce système comme un bureau ordinaire.
Aller à Menu> Préférences> Configuration Raspberry Pi. Dans le Interfaces onglet, désactivez tous les services dont vous n'avez pas besoin.
Changer le mot de passe par défaut
Une nouvelle installation de Raspbian est fournie avec le mot de passe par défaut «raspberry» pour l'utilisateur par défaut «pi». Il est recommandé de changer cela pour un mot de passe plus sécurisé. Pour le changer, ouvrez un terminal exécutez cette commande:
passwd
Retirez le moniteur et les autres périphériques
Étant donné que tout ce qui fonctionnera sur ce Pi est le logiciel nécessaire pour l'utiliser comme routeur et filtre Web, nous n'avons pas besoin d'un moniteur ou d'autres périphériques tels qu'une souris et un clavier qui y sont connectés. Si vous avez besoin de modifier les paramètres et autres, vous pouvez toujours utiliser SSH, ou connecter un moniteur et un clavier au besoin.
Désactiver la connexion automatique
Raspbian est configuré pour se connecter automatiquement avec les informations d'identification de l'utilisateur 'pi' sans demander de mot de passe. Cela peut convenir à un ordinateur de bureau familial à usage général, mais dangereux pour un routeur. Pour désactiver cela, sur le bureau Raspbian, accédez à Menu> Préférences> Configuration Raspberry Pi. Dans le Système onglet, devant le Connexion automatique en-tête, décochez la case Connectez-vous en tant qu'utilisateur 'pi' case à cocher.
Dans la même boîte de dialogue, il est également conseillé de définir le Botte réglage sur À CLI. Cela économisera des ressources car nous n'avons pas besoin d'une interface graphique sur un routeur. Si vous souhaitez utiliser le bureau pour une raison quelconque, connectez-vous avec votre nom d'utilisateur et exécutez le startx
commande pour activer l'interface graphique.
Dépannage des problèmes courants
Les interfaces continuent d'être renommées
Ceci est très courant si vous utilisez deux interfaces sans fil sur votre Pi. Si vous utilisez Ethernet pour connecter votre Pi à Internet, vous pouvez ignorer cette section en toute sécurité. Le problème est que les deux interfaces sans fil (wlan0 et wlan1) échange parfois des noms après un redémarrage. Autrement dit, le module WiFi intégré wlan0 est renommé en wlan1, et vice versa. C'est bien sûr un gros problème car nous comptons sur eux pour avoir un nom cohérent pour nos fichiers de configuration. Voici comment le rendre cohérent à travers les redémarrages:
1. Découvrez le Adresse MAC de vos interfaces. Exécutez la commande ifconfig | grep HWaddr
sur votre Raspberry Pi. Vous verrez une sortie comme celle-ci:
Notez le texte à droite du mot 'HWaddr' dans le wlan0 et wlan1 section. Vous pouvez ignorer en toute sécurité le eth0 section. Ce sont les adresses MAC de vos interfaces sans fil.
Si vous ne savez pas quelle adresse MAC appartient à quelle interface, débranchez simplement la clé USB WiFi et exécutez à nouveau la commande. le wlan l'interface qui apparaît maintenant est votre interface WiFi intégrée, tandis que l'autre est USB.
2. Créer un nouveau fichier /etc/udev/rules.d/10-network.rules
en utilisant votre éditeur de texte préféré. Par example :
sudo nano /etc/udev/rules.d/10-network.rules
3. Entrez le texte suivant dans ce fichier. Remplacez xx: xx: xx: xx etc. par l'adresse MAC appropriée:
[code source] # Configurez le module WiFi intégré en tant que wlan0. Remplacez le xx: xx: xx etc. par le
# adresse MAC du module intégré
SUBSYSTEM == "net", ACTION == "ajouter", ATTR adresse == "xx: xx: xx: xx: xx: xx", NOM = "wlan0"
# Configurez la clé USB WiFi comme wlan1. Remplacez yy: yy: yy etc. par le
# Adresse MAC du dongle USB
SUBSYSTEM == "net", ACTION == "add", ATTR address == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]
Assurez-vous que l'adresse MAC de l'interface WiFi intégrée correspond à wlan0, et le WiFi USB pour wlan1 puisque c'est la convention que nous suivons dans ce guide.
4. Redémarrez votre Raspberry Pi. Vos interfaces commenceront avec le nom correct maintenant.
Réinitialisation de la configuration du pare-feu
Un autre problème courant est un pare-feu mal configuré. En fonction de la configuration de votre réseau, plusieurs essais peuvent être nécessaires avant d'obtenir le bon pare-feu. Si à un moment donné vous pensez que vous avez peut-être gâché la configuration du pare-feu, exécutez les commandes suivantes pour recommencer à zéro:
iptables sudo --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain
Cela supprimera tout configuration du pare-feu. Vous pouvez maintenant commencer à configurer le pare-feu à partir de zéro. Une fois que vous êtes satisfait, exécutez la commande sudo iptables-save | sudo tee /etc/iptables/rules.v4
pour rendre la configuration permanente.
VOIR AUSSI: Comment exécuter des commandes sur Raspberry Pi par e-mail
Utilisez votre Raspberry Pi comme routeur et filtre de contenu
Tout cela pour transformer votre Raspberry Pi en un puissant routeur et un proxy de filtrage de contenu. Vous pouvez obtenir les fichiers de configuration exacts que nous avons utilisés pour notre configuration sur notre page GitHub. Faites-nous savoir comment cela fonctionne pour vous. Si quelque chose ne fonctionne pas comme prévu ou si une étape semble trop déroutante, n'hésitez pas à nous poser une question dans la section commentaires ci-dessous.