Comment utiliser Raspberry Pi comme routeur et filtre de contenu

  • Damian Washington
  • 0
  • 4122
  • 398

Si vous avez des enfants à la maison, 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 mettrons la main à la pâte et installerons 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. toutefois, ces instructions fonctionneront pratiquement sans modification avec presque tous les ordinateurs exécutant Debian Linux ou un dérivé (Ubuntu, menthe etc.).

Avertissement: Ce guide suppose un niveau intermédiaire d'expérience 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 domestique 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] Dongle WiFi USB - 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 en utilisant dnsmasq. Editez 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 gamme.

5. Installer une adresse IP statique pour le module WiFi intégré wlan0. Ouvrez le fichier / etc / network / interfaces. Cela ressemble probablement à ceci (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. Maintenant 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. Maintenant, ouvrez 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 existe 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 un œil à eux 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:

.Comprendre

Commentez-le en ajoutant un hacher (symbole #) à l'avant, pour qu'il ressemble à ceci:

#.Comprendre

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 ils 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 hotspot Raspberry Pi, et sélectionnez Modifier le réseau. Sous 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. Sous Port proxy, entrer 8080, et appuyez sur sauver.

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 https sites Web tels que Facebook, Gmail, Twitter, etc. Cela garantit que quiconque souhaite 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 (9h00) 0 (00 minutes), jusqu'à 17 (17 h au format 24 h) 0 (00 minutes), 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

Maintenant, 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 (domicile, 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 languette, 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 Démarrage 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 exemple :

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 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 le dongle WiFi USB 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éinitialiser 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 que vous obteniez 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 filtre 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.




Personne n'a encore commenté ce post.

Guides de gadgets, des technologies qui comptent
Nous publions des guides détaillés, créons des listes intéressantes des meilleurs produits sur le marché, couvrons du monde de la technologie