Hoe Raspberry Pi te gebruiken als router en inhoudsfilter

  • Simon Gallagher
  • 0
  • 3149
  • 38

Als u kinderen bij u thuis heeft, heeft u misschien de behoefte gevoeld om bepaalde ongewenste websites te blokkeren. Een ander veelvoorkomend probleemgebied zijn websites voor sociale media - u zou kunnen denken dat kinderen (en volwassenen) te veel tijd verspillen aan Facebook, Twitter enz. En ze willen blokkeren, of ze op zijn minst alleen op bepaalde tijden van de dag toegankelijk willen maken.

Om dit mogelijk te maken hebben we een router plus inhoudsfilter - een apparaat waarmee al onze apparaten zoals laptops, smartphones en tablets verbinding maken met internet. Dit apparaat onderschept ook de websites waartoe deze apparaten toegang hebben en blokkeert ze als ze proberen toegang te krijgen tot een op de zwarte lijst geplaatste website.

Er zijn commerciële, kant-en-klare contentfilters op de markt, maar voor ons doe-het-zelvers is dat niet leuk. We zullen dus onze handen vuil maken en een Raspberry Pi voor de klus opzetten. We kozen de Raspberry Pi voor dit project vanwege het kleine formaat en het verwaarloosbare stroomverbruik. Echter, deze instructies zullen bijna ongewijzigd werken met bijna elke computer waarop Debian Linux of een afgeleide draait (Ubuntu, Mint etc.).

Disclaimer: Deze gids gaat uit van een gemiddeld ervaringsniveau met Linux en een bereidheid om problemen op te lossen als en wanneer ze zich voordoen. Eerdere ervaring met opdrachtregels en firewalls is een bonus.

Hoe het werkt

Hardware

We zullen de Raspberry Pi 3 gebruiken als een router cum inhoudsfilter. Hiervoor hebben we nodig twee netwerkinterfaces erop - een om verbinding te maken met internet en de andere om te fungeren als wifi-hotspot voor onze andere apparaten om verbinding mee te maken. De Raspberry Pi 3 heeft een ingebouwde Ethernet-aansluiting en WiFi-module. In dit scenario kunnen we dus een Ethernet-kabel gebruiken (eth0) om verbinding te maken met internet, terwijl de WiFi-module (wlan0) zal fungeren als hotspot.

Natuurlijk is verbinding met internet via Ethernet niet altijd mogelijk. In dit geval heeft u een compatibele USB WiFi-dongle nodig (wlan1) om verbinding te maken met internet, terwijl de ingebouwde WiFi-module (wlan0) zal fungeren als hotspot. Dit is de configuratie die we in deze handleiding zullen gebruiken.

Houd er rekening mee dat hoewel een Raspberry Pi 3 meestal voldoende is voor een thuisopstelling met een paar laptops en smartphones, het levert niet de prestaties die nodig zijn voor een grote kantooropstelling. Bekijk meer capabele hardware als veel clients verbinding zullen maken met uw inhoudsfilter.

Software

We zullen de uitstekende E2guardian gebruiken om onze webverzoeken te onderscheppen en te filteren. Aangezien inhoudsfiltering een prestatie-impact kan hebben (afhankelijk van de grootte van de blokkeerlijst), zullen we Squid-cache gebruiken om deze prestatiehit te compenseren.

Vereisten

1. Raspberry Pi 3 met de nieuwste versie van Raspbian OS geïnstalleerd en toegang tot internet. Als u pas aan de slag gaat met de Raspberry Pi, raden we u aan onze handleiding te lezen over hoe u aan de slag kunt met Raspberry Pi 3.

2. [Optioneel] USB WiFi-dongle - Dit is nodig als en alleen als u uw Raspberry Pi 3 niet met internet kunt verbinden met een Ethernet-kabel. Als u van plan bent om WiFi te gebruiken voor zowel verbinding met internet als als hotspot, is dit vereist.

3. Fysieke toegang tot de Raspberry Pi - Vanwege de aard van dit artikel kan een enkele fout in de firewallconfiguratie u van uw Pi uitsluiten als u deze in de headless-modus gebruikt. Daarom is het raadzaam om tijdens het configureren een monitor, toetsenbord en muis aan te sluiten totdat alles is ingesteld.

Gebruik Raspberry Pi als router

1. Verbind uw Pi met internet via Ethernet (eth0). Als u een USB WiFi-dongle gebruikt (waarschijnlijk wlan1) sluit dat in plaats daarvan aan op internet. Verlaat de ingebouwde WiFi-module (wlan0) zoals het nu is.

2. Pak de vereiste software die we nodig hebben:

sudo apt installeer iptables iptables-persistent hostapd dnsmasq squid3

3. We zullen het opzetten hostapd zodat onze Pi kan fungeren als wifi-hotspot. Maak hiervoor bijvoorbeeld een configuratiebestand aan met uw favoriete teksteditor sudo nano /etc/hostapd/hostapd.conf, en plak de inhoud van onze GitHub-pagina.

Enkele regels die u misschien naar smaak wilt aanpassen, zijn:

ssid = RaspberryPiAP

Deze regel bepaalt wat de naam van het toegangspunt zal zijn. ik kies RaspberryPiAP.

wpa_passphrase = beebom.com

Dit specificeert de wachtwoordzin die wordt gebruikt om toegang te krijgen tot de hotspot. ik gebruikte beebom.com, maar het wordt aanbevolen om het te wijzigen in een sterke wachtwoordzin naar keuze.

4. Vervolgens zullen we een DHCP-server opzetten gebruik makend van dnsmasq. Bewerk het configuratiebestand /etc/dnsmasq.conf, en voeg aan het einde de volgende regels toe:

[sourcecode] interface = lo, wlan0

no-dhcp-interface = lo

dhcp-range = 192.168.8.20,192.168.8.254,255.255.255.0,12h [/ sourcecode]

Hierdoor wordt de interface ingeschakeld wlan0 (de ingebouwde WiFi-module) deelt IP-adressen uit aan klanten in de 192.168.8.20 naar 192.168.8.254 bereik.

5. Opgericht een statisch IP-adres voor de ingebouwde WiFi-module wlan0. Open het bestand / etc / network / interfaces. Het ziet er waarschijnlijk zo uit (nadruk van mij):

[sourcecode] source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet handleiding

allow-hotplug wlan0
iface wlan0 inet handleiding
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet handleiding
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf"/sourcecode]

Hier, zoek de regels vetgedrukt met wlan0, en verander ze, zodat het bestand er als volgt uitziet:

[sourcecode] source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet handleiding

allow-hotplug wlan0
iface wlan0 inet statisch
hostapd /etc/hostapd/hostapd.conf
adres 192.168.8.1
netmask 255.255.255.0
allow-hotplug wlan1
iface wlan1 inet handleiding
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf"/sourcecode]

Hierdoor wordt een statisch IP-adres ingesteld 192.168.8.1 op wlan0. Onthoud dit adres, zoals dit is het adres dat we later zullen gebruiken om met onze Raspberry Pi te communiceren.

6. Nu IP-doorsturen instellen. Bewerk het bestand /etc/sysctl.conf, en voeg de volgende regel toe:

net.ipv4.ip_forward = 1

7. Nu gaan we netwerkadresvertaling configureren (NAT) in onze firewall. Voer hiervoor de volgende 2 opdrachten in:

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

De eerste opdracht stelt NAT in, terwijl de tweede opdracht onze huidige firewallconfiguratie opslaat in een bestand met de naam /etc/iptables/rules.v4. Dit zorgt ervoor dat de configuratie blijft bestaan ​​tijdens het opnieuw opstarten.

8. Op dit punt, start je Raspberry Pi opnieuw op. Dit is om ervoor te zorgen dat alle wijzigingen die we in de configuratiebestanden hebben aangebracht, functioneel zijn.

9. Na het opnieuw opstarten zou u de nieuw gemaakte moeten kunnen zien RaspberryPiAP hotspot (tenzij u de naam in stap 3 hebt gewijzigd) op uw andere apparaten zoals laptops en smartphones. U kunt er verbinding mee maken met het door u opgegeven wachtwoord en toegang krijgen tot internet.

Dit is alles wat u hoeft te doen als u een eenvoudige router met laag vermogen nodig heeft. Als u ook een inhoudsfilter wilt instellen, lees dan verder.

Inhoudsfilter instellen met E2guardian

E2guardian is niet aanwezig in de standaard Raspbian-repositories. Om het te installeren, ga naar de Github-pagina van het project en download het bestand dat eindigt op armhf.deb. Open nu Terminal, ga naar je Downloads map (of waar u ook kiest om het bestand te downloaden) en installeer het:

cd ~ / Downloads sudo dpkg -i ./e2guardian_*_jessie_armhf.deb

U zult waarschijnlijk enkele fouten zien over ontbrekende pakketten wanneer u E2guardian installeert. Om dit te corrigeren, laat u de installatie voltooien en voert u de volgende opdracht in:

sudo apt-get install -f

Inhoudslijsten gebruiken

Er zijn verschillende lijsten aanwezig in de / etc / e2guardian / lijsten directory. Deze bestanden bevatten bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, exceptionlist en meer. Deze bestanden zijn correct gedocumenteerd met opmerkingen. Bekijk ze eens om vertrouwd te raken.

Stel dat u dat wilt blokkeer enkele populaire sociale netwerken. Open de / etc / e2guardian / lists / bannedsitelist bestand, en onder de Deken SSL / CONNECT blokkeren (aangezien deze websites gebruiken https in plaats van gewoon http), voeg de volgende regels toe:

facebook.com twitter.com reddit.com

Laad nu de E2guardian-service opnieuw met behulp van de opdracht sudo service e2guardian herladen (u moet deze opdracht elke keer uitvoeren wanneer u de configuratiebestanden wijzigt). Alle klanten die het inhoudfilter gebruiken, hebben nu geen toegang meer tot deze websites. Zelfs de mobiele sites (bijv. M.twitter.com) en speciale smartphone-apps werken niet.

E2guardian ook blokkeert porno standaard. Als je het wilt toestaan ​​(hey, we beoordelen niet), open dan de / etc / e2guardian / lists / bannedphraselist bestand en zoek de volgende regel:

.Opnemen

Reageer erop door een hasj (# -symbool) naar voren, zodat het er zo uitziet:

# .Opnemen

Nogmaals, laad de configuratie opnieuw met sudo service e2guardian herladen, en je bent klaar.

Clients configureren

Nu onze proxyserver is ingesteld, kunnen we doorgaan met het configureren van de clients. Om het inhoudsfilter te gebruiken, moeten alle clients verbonden zijn met de Rapberry Pi-hotspot en geconfigureerd zijn om de proxy te gebruiken. Het configureren van een proxy verschilt voor alle besturingssystemen en apparaten. We zullen echter laten zien hoe u het op Windows en Android kunt instellen, omdat deze populairder zijn.

ramen

Ga naar Configuratiescherm> Netwerk en internet> Internetopties. Navigeer in het geopende venster naar Aansluitingen tabblad en klik op LAN instellingen.

Klik hier op Geavanceerd, en ga naar binnen 192.168.8.1 als proxy-adres, en 8080 als de haven. Zorg ervoor dat de Gebruik voor alle protocollen dezelfde proxyserver vakje is aangevinkt. Klik OK.

Meer hoeft u niet te doen. De meeste populaire webbrowsers zoals Google Chrome en Firefox halen automatisch de systeemproxy-instellingen op.

Android

Ga naar Systeeminstellingen> WiFi. Tik en houd nu de Raspberry Pi-hotspot vast en selecteer Wijzig netwerk. Onder Geavanceerde opties, stel de Proxy optie om Handleiding. Nu, onder Proxy hostnaam, voer het IP-adres van de Pi in 192.168.8.1. Onder Proxy-poort, invoeren 8080, en tik op Sparen.

U kunt nu de configuratie van de proxy testen. Ga naar een website in uw zwarte lijst - u ziet een pagina 'Toegang geweigerd' zoals deze:

Proxygebruik afdwingen

Tot nu toe vertrouwen we erop dat klanten leuk spelen en internet gebruiken via het inhoudsfilter. Dit gebeurt natuurlijk zelden in de echte wereld. Voer de volgende opdrachten uit om alle clients te dwingen de proxy te doorlopen:

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- poorten 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4

Hierdoor wordt alles automatisch omgeleid http (poort 80) en https (poort 443) verkeer op de hotspot van de Raspberry Pi naar de contentfilterproxy. Zonder proxy-instellingen op uw apparaten te configureren, hebben ze nu geen toegang meer tot beveiligd https websites zoals Facebook, Gmail, Twitter enz. Dit zorgt ervoor dat iedereen die verbinding wil maken met uw Pi-hotspot de proxy moet doorlopen.

Dit is alles wat u moet weten voor basisgebruik van het inhoudsfilter. Lees verder als u enkele geavanceerde functies wilt leren.

Geavanceerde gebruiksscenario's

Een op tijd gebaseerd filter instellen

Stel dat u de websites die we in de website noemden, wilt blokkeren Inhoudslijsten gebruiken sectie hierboven, maar alleen op bepaalde tijden van de dag. Ik blokkeer persoonlijk liever Reddit, Facebook en Twitter tijdens werkuren (9.00 - 17.00 uur) op weekdagen omdat ze een productiviteitsnachtmerrie zijn.

Open de / etc / e2guardian / lists / bannedsitelist bestand en voeg de volgende regel toe:

tijd: 9 0 17 0 01234

Deze regel werkt als volgt - de timer begint om 9 (9 uur) 0 (00 minuten), tot 17 (17:00 uur in 24-uurs formaat) 0 (00 minuten), vanaf 0 (Maandag) tot 4 (Vrijdag).

Laten we nog een voorbeeld nemen:

tijd: 10 30 20 45024

Hierdoor worden de geconfigureerde sites geblokkeerd van maandag (0), woensdag (2) en vrijdag (4) van 10.30 uur (10.30 uur) tot 20.45 uur (20.45 uur)..

Bepaalde IP-adressen de proxy laten omzeilen

Het is mogelijk om bepaalde IP-adressen het inhoudsfilter te laten omzeilen. Dit kan worden ingesteld door het configureren van de firewall. Dat heb je misschien gemerkt in onze dnsmasq.conf, we hebben alleen de hotspot ingesteld om IP-adressen aan toe te wijzen 192.168.8.20 naar 192.168.8.254 aan klanten. Dat betekent adressen van 192.168.8.2 naar 192.168.8.19 wordt niet automatisch toegewezen aan een klant (we kunnen niet gebruiken 192.168.8.1 want dat is wat onze Raspberry Pi zelf gebruikt).

Om dit eerst te doen een statisch IP-adres instellen op het apparaat waartoe u volledige toegang wilt geven. Bijvoorbeeld om een ​​statisch IP-adres in te stellen van 192.168.8.2 Gebruik deze instellingen op een Windows-computer:

Voer nu op uw Raspberry Pi de volgende opdrachten uit.

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

Nu, schakel het gebruik van proxy op uw apparaat uit, en probeer een verboden website te openen. Je zou het moeten kunnen openen. Als er meer IP-adressen zijn die u aan de witte lijst wilt toevoegen, voert u de bovenstaande twee opdrachten opnieuw uit, maar vervangt u het IP-adres door het gewenste adres. Als u tevreden bent met de witte lijst, voert u de volgende opdracht uit om uw firewallconfiguratie op te slaan:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Een belangrijk ding om in gedachten te houden is dat u niemand de IP-adressen op de witte lijst mag laten weten. Anders kunnen ze hun apparaat eenvoudig instellen op dat IP-adres om de proxy te omzeilen.

Beveiligingsproblemen

Aangezien uw Raspberry Pi het in- en uitgangspunt is voor al uw communicatie, is het belangrijk om deze te beveiligen. Hier volgen enkele tips om de beveiliging te verbeteren. Houd er rekening mee dat dit slechts basisaanwijzingen zijn en geen uitgebreide lijst met valkuilen voor beveiliging. De mate van beveiliging hangt af van de aard van uw netwerk (thuis, klein kantoor etc.) en hoe ondeugend de gebruikers zijn.

Schakel onnodige services uit

Aangezien dit een router is, kunt u het beste alleen de services uitvoeren die we nodig hebben. Meer actieve services betekent meer kwetsbaarheden die mogelijk kunnen worden misbruikt. Vast en zeker gebruik dit systeem niet als een gewone desktop.

Ga naar Menu> Voorkeuren> Raspberry Pi-configuratie. In de Interfaces tabblad, schakel alle services uit die u niet nodig heeft.

Wijzig het standaard wachtwoord

Een nieuwe Raspbian-installatie wordt geleverd met het standaardwachtwoord 'framboos' voor de standaardgebruiker 'pi'. Het wordt aanbevolen om dit te wijzigen in een veiliger wachtwoord. Om het te wijzigen, open een terminal voer deze opdracht uit:

passwd

Verwijder de monitor en andere randapparatuur

Omdat alles wat op deze Pi draait, de software is die nodig is om hem als router en webfilter te gebruiken, hebben we geen monitor of andere randapparatuur zoals een muis en toetsenbord eraan nodig. Als u instellingen en dergelijke toch moet wijzigen, kunt u altijd SSH gebruiken of indien nodig een monitor en toetsenbord aansluiten.

Schakel Auto Login uit

Raspbian is ingesteld om automatisch in te loggen met de 'pi'-gebruikersgegevens zonder om een ​​wachtwoord te vragen. Dit is misschien goed voor een gezinsdesktop voor algemene doeleinden, maar gevaarlijk voor een router. Om dit uit te schakelen, gaat u op het Raspbian-bureaublad naar Menu> Voorkeuren> Raspberry Pi-configuratie. In de Systeem tab, voor de Automatische login kop, verwijder het vinkje bij Inloggen als gebruiker 'pi' checkbox.

In hetzelfde dialoogvenster is het ook raadzaam om de Laars instellen op Aan CLI. Dit bespaart bronnen omdat we geen GUI op een router nodig hebben. Als u de desktop om welke reden dan ook wilt gebruiken, log dan in met uw gebruikersnaam en voer de startx commando om de grafische interface in te schakelen.

Veelvoorkomende problemen oplossen

Interfaces worden steeds hernoemd

Dit is heel gebruikelijk als je gebruikt twee draadloze interfaces op je Pi. Als u Ethernet gebruikt om uw Pi met internet te verbinden, kunt u deze sectie veilig negeren. Het probleem is dat zowel de draadloze interfaces (wlan0 en wlan1) verwissel soms namen na een herstart. Dat wil zeggen, de ingebouwde WiFi-module wlan0 wordt hernoemd naar wlan1, en vice versa. Dit is natuurlijk een groot probleem, omdat we erop vertrouwen dat ze een consistente naam hebben voor onze configuratiebestanden. Hier leest u hoe u het consistent kunt maken bij het opnieuw opstarten:

1. Ontdek de MAC-adres van uw interfaces. Voer de opdracht uit ifconfig | grep HWaddr op je Raspberry Pi. U ziet een uitvoer zoals de volgende:

Noteer de tekst rechts van het woord 'HWaddr' in de wlan0 en wlan1 sectie. Je kunt de eth0 sectie. Dit zijn de MAC-adressen van uw draadloze interfaces.

Als u niet zeker weet welk MAC-adres bij welke interface hoort, koppelt u gewoon de USB WiFi-dongle los en voert u de opdracht opnieuw uit. De WLAN interface die nu verschijnt, is uw ingebouwde WiFi-interface, terwijl de andere USB is.

2. Maak een nieuw bestand /etc/udev/rules.d/10-network.rules met uw favoriete teksteditor. Bijvoorbeeld :

sudo nano /etc/udev/rules.d/10-network.rules

3. Voer de volgende tekst in dit bestand in. Vervang de xx: xx: xx: xx enz. Door het juiste MAC-adres:

[sourcecode] # Stel de ingebouwde WiFi-module in als wlan0. Vervang de xx: xx: xx enz. Door de
# MAC-adres van de ingebouwde module
SUBSYSTEM == "net", ACTION == "add", ATTR address == "xx: xx: xx: xx: xx: xx", NAME = "wlan0"

# Stel de USB WiFi-dongle in als wlan1. Vervang de jj: jj: jj enz. Door de
# MAC-adres van USB-dongle
SUBSYSTEM == "net", ACTION == "add", ATTR address == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]

Zorg ervoor dat het MAC-adres van de ingebouwde WiFi-interface overeenkomt met wlan0, en de USB WiFi naar wlan1 aangezien dat de conventie is die we volgen in deze gids.

4. Start je Raspberry Pi opnieuw op. Uw interfaces beginnen nu met de juiste naam.

Firewall-configuratie resetten

Een ander veelvoorkomend probleem is een slecht geconfigureerde firewall. Afhankelijk van uw netwerkconfiguratie, kan het enkele pogingen kosten voordat u de juiste firewall krijgt. Als u op enig moment denkt dat u de configuratie van de firewall mogelijk heeft verprutst, voert u de volgende opdrachten uit om helemaal opnieuw te beginnen:

sudo iptables --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain

Dit wordt verwijderd allemaal firewall configuratie. U kunt nu beginnen met het helemaal opnieuw configureren van de firewall. Als u tevreden bent, voert u de opdracht uit sudo iptables-save | sudo tee /etc/iptables/rules.v4 om de configuratie permanent te maken.

ZIE OOK: opdrachten uitvoeren op Raspberry Pi via e-mail

Gebruik uw Raspberry Pi als router en inhoudsfilter

Dat is alles om van uw Raspberry Pi een krachtige router plus proxy voor inhoudsfilters te maken. Je kunt de exacte configuratiebestanden die we hebben gebruikt voor onze installatie opvragen op onze GitHub-pagina. Laat ons weten hoe het voor jou uitpakt. Als iets niet werkt zoals verwacht of als een stap te verwarrend aanvoelt, stel ons dan gerust een vraag in de opmerkingen hieronder.




Niemand heeft nog op dit artikel gereageerd.

Handleidingen voor het kopen van gadgets, technologie die ertoe doet
We publiceren gedetailleerde handleidingen voor het kopen van apparatuur, maken interessante lijsten met de beste producten op de markt en behandelen nieuws uit de wereld van technologie