Sådan bruges Raspberry Pi som router og indholdsfilter

  • Yurich Koshurich
  • 0
  • 3903
  • 471

Hvis du har børn derhjemme, har du måske følt behov for at blokere for visse uønskede websteder. Et andet almindeligt problemområde er sociale mediewebsteder - du kan måske føle, at børn (og voksne) spilder for meget tid på Facebook, Twitter osv. Og vil blokere dem, eller i det mindste gøre dem tilgængelige kun på bestemte tidspunkter af dagen.

For at gøre dette muligt har vi brug for en router plus indholdsfilter - et apparat, gennem hvilket alle vores enheder, f.eks. bærbare computere, smartphones og tablets, forbinder til internettet. Dette apparat opfanger også de websteder, som disse enheder får adgang til, og blokerer dem, hvis de forsøger at få adgang til et sortlistet websted.

Der er kommercielle, klar til brug indholdsfiltre tilgængelige på markedet, men for os DIY-typer er der ikke noget sjovt i det. Således får vi vores hænder beskidte og opsætter en Raspberry Pi til jobbet. Vi valgte Raspberry Pi til dette projekt på grund af dets lille størrelse og ubetydelige strømforbrug. Imidlertid, disse instruktioner fungerer næsten umodificeret med næsten enhver computer, der kører Debian Linux eller et derivat (Ubuntu, Mint osv.).

Ansvarsfraskrivelse: Denne guide antager et mellemliggende niveau med erfaring med Linux og en villighed til at løse problemer, hvis og når de opstår. Tidligere erfaring med kommandolinjer og firewalls er en bonus.

Hvordan det virker

Hardware

Vi bruger Raspberry Pi 3 som et router cum indholdsfilter. Til dette har vi brug for to netværksgrænseflader på det - den ene til at oprette forbindelse til internettet, og den anden til at fungere som et WiFi-hotspot for vores andre enheder at oprette forbindelse til. Raspberry Pi 3 har et indbygget Ethernet-stik og WiFi-modul. Så i dette scenarie kan vi bruge et Ethernet-kabel (eth0) for at oprette forbindelse til internettet, mens WiFi-modulet (wlan0) fungerer som et hotspot.

Naturligvis er det ikke altid muligt at oprette forbindelse til internettet ved hjælp af Ethernet. I dette tilfælde har du brug for en kompatibel USB WiFi-dongle (wlan1) til at oprette forbindelse til internettet, mens det indbyggede WiFi-modul (wlan0) fungerer som et hotspot. Dette er den konfiguration, som vi vil bruge i denne vejledning.

Husk, at mens en Raspberry Pi 3 for det meste er tilstrækkelig til en hjemmeopsætning med et par bærbare computere og smartphones, det giver ikke den ydelse, der kræves til et stort kontoropsætning. Se på mere dygtig hardware, hvis en masse kunder opretter forbindelse til dit indholdsfilter.

Software

Vi vil bruge den fremragende E2guardian til at opfange og filtrere vores webanmodninger. Da indholdsfiltrering kan have en indflydelse på ydeevnen (afhængigt af størrelsen på bloklisten), bruger vi blæksprutte-cache til at opveje dette præstationshit.

Forudsætninger

1. Raspberry Pi 3 med den nyeste version af Raspbian OS installeret, og adgang til internettet. Hvis du kun kommer i gang med Raspberry Pi, anbefaler vi, at du læser vores guide til, hvordan du kommer i gang med Raspberry Pi 3.

2. [Valgfri] USB WiFi Dongle - Dette er nødvendigt, hvis, og kun hvis du ikke kan tilslutte din Raspberry Pi 3 til internettet med et Ethernet-kabel. Hvis du planlægger at bruge WiFi til både at oprette forbindelse til internettet og som et hotspot, er dette påkrævet.

3. Fysisk adgang til Raspberry Pi - På grund af arten af ​​denne artikel, kan en enkelt fejl i firewall-konfigurationen låse dig ud af din Pi, hvis du bruger den i hovedløs tilstand. Derfor anbefales det, at du tilslutter en skærm, et tastatur og en mus, mens du konfigurerer det, indtil alt er konfigureret.

Brug Raspberry Pi som router

1. Tilslut din Pi til internettet ved hjælp af Ethernet (eth0). Hvis du bruger en USB WiFi-dongle (sandsynligvis wlan1) i stedet, tilslut det til internettet. Forlad det indbyggede WiFi-modul (wlan0) som det er for nu.

2. Hent forudsætning af software som vi har brug for:

sudo apt install iptables iptables-persistent hostapd dnsmasq squid3

3. Vi stiller op hostapd så vores Pi kan fungere som et WiFi-hotspot. Til dette oprettes f.eks. En konfigurationsfil ved hjælp af din foretrukne teksteditor sudo nano /etc/hostapd/hostapd.conf, og indsæt indholdet fra vores GitHub-side.

Nogle linjer, som du måske ønsker at ændre efter smag, er:

SSID = RaspberryPiAP

Denne linje dikterer, hvad navnet på adgangspunktet vil være. jeg vælger RaspberryPiAP.

wpa_passphrase = beebom.com

Dette specificerer den adgangssætning, der bruges til at få adgang til hotspot. jeg brugte beebom.com, men det anbefales at ændre det til en stærk adgangssætning efter eget valg.

4. Derefter skal vi opsæt en DHCP-server ved brug af dnsmasq. Rediger konfigurationsfilen /etc/dnsmasq.conf, og tilføj følgende linjer i slutningen:

[Kildekode] grænseflade = lo, wlan0

no-dhcp-grænseflade = lo

dhcp-område = 192.168.8.20,192.168.8.254,255.255.255.0,12h [/ kildekode]

Dette gør grænsefladen tændt wlan0 (det indbyggede WiFi-modul) uddeler IP-adresser til klienter i 192.168.8.20 til 192.168.8.254 rækkevidde.

5. Opsætning en statisk IP-adresse til det indbyggede WiFi-modul wlan0. Åbn filen / etc / network / interfaces. Det ser sandsynligvis sådan ud (vægt på mine):

[sourcecode] kildekatalog /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

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

allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.confebrit/sourcecode]

Her, Find linjerne med fed skrift med wlan0, og ændre dem, så filen ser sådan ud:

[sourcecode] kildekatalog /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet statisk
hostapd /etc/hostapd/hostapd.conf
adresse 192.168.8.1
netmaske 255.255.255.0
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.confebrit/sourcecode]

Dette opsætter en statisk IP-adresse 192.168.8.1 på wlan0. Husk denne adresse som dette er den adresse, vi vil bruge til at kommunikere med vores Raspberry Pi senere.

6. Nu opsæt IP-videresendelse. Rediger filen /etc/sysctl.conf, og tilføj følgende linje til det:

net.ipv4.ip_forward = 1

7. Nu gør vi det konfigurere oversættelse af netværksadresse (NAT) i vores firewall. For at gøre dette skal du indtaste følgende 2 kommandoer:

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

Den første kommando opsætter NAT, mens den anden kommando gemmer vores nuværende firewall-konfiguration til en kaldet fil /etc/iptables/rules.v4. Dette sikrer, at konfigurationen fortsætter på tværs af genstarter.

8. På dette tidspunkt, genstart din Raspberry Pi. Dette er for at sikre, at alle ændringerne, vi har foretaget i konfigurationsfilerne, er funktionelle.

9. Efter genstart skal du kunne se det nyoprettede RaspberryPiAP hotspot (medmindre du ændrede navnet i trin 3) på dine andre enheder, f.eks. laptops og smartphones. Du kan oprette forbindelse til det ved hjælp af det angivne kodeord og få adgang til internettet.

Dette er alt hvad du skal gøre for, hvis du har brug for en basisk, lavt drevet router. Hvis du også vil konfigurere et indholdsfilter, skal du læse videre.

Opsæt indholdsfilter ved hjælp af E2guardian

E2guardian findes ikke i standard Raspbian-oplagrene. For at installere det skal du gå til projektets Github-side og downloade den fil, der slutter på armhf.deb. Åbn nu terminal, gå til din Downloads mappe (eller hvor du end valgte at downloade filen), og installer den:

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

Du vil sandsynligvis se et par fejl om manglende pakker, når du installerer E2guardian. For at rette dette op skal du lade installationen afslutte og indtaste følgende kommando:

sudo apt-get install -f

Brug af indholdslister

Der er flere lister til stede i / etc / e2guardian / lister vejviser. Disse filer inkluderer bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, exceptionlist og mere. Disse filer er korrekt dokumenteret med kommentarer. Se på dem for at gøre dig bekendt.

Lad os som et eksempel antage, at du ønsker det blokerer for nogle populære sociale netværk. Åbn / Etc / e2guardian / lister / bannedsitelist fil, og under Tæppe SSL / CONNECT blokere (da disse websteder bruger https i stedet for almindelig http), tilføj følgende linjer:

facebook.com twitter.com reddit.com

Genindlæs nu E2guardian-tjenesten ved hjælp af kommandoen sudo service e2guardian reload (du bliver nødt til at køre denne kommando, hver gang du ændrer konfigurationsfilerne). Alle klienter, der bruger indholdsfilteret, kan nu ikke få adgang til disse websteder. Selv mobilwebsteder (f.eks. M.twitter.com) og dedikerede smartphone-apps fungerer ikke.

E2guardian også blokerer porno som standard. Hvis du vil tillade det (hey, vi dømmer ikke), skal du åbne / Etc / e2guardian / lister / bannedphraselist arkiver, og find følgende linje:

.Omfatte

Kommenter det ved at tilføje en hash (# symbol) forfra, så det ser sådan ud:

#.Omfatte

Genindlæs konfigurationen igen med sudo service e2guardian reload, og du er færdig.

Konfiguration af klienter

Nu hvor vores proxyserver er konfigureret, kan vi gå videre til konfiguration af klienter. For at bruge indholdsfilteret skal alle klienter være tilsluttet Rapberry Pis hotspot og konfigureret til at bruge proxy. Konfiguration af en proxy er forskellig på tværs af alle operativsystemer og enheder. Vi vil dog demonstrere, hvordan man konfigurerer det på Windows og Android, da disse er mere populære.

vinduer

Gå til Kontrolpanel> Netværk og internet> Internetindstillinger. Naviger til vinduet i det vindue, der åbnes Tilslutninger fanen, og klik på LAN-indstillinger.

Klik her Fremskreden, og gå ind 192.168.8.1 som proxy-adresse, og 8080 som havn. Sørg for, at Brug den samme proxyserver til alle protokoller er markeret. Klik Okay.

Det er alt hvad du skal gøre. De mest populære webbrowsere som Google Chrome og Firefox henter automatisk systemproxyindstillingerne.

Android

Gå til Systemindstillinger> WiFi. Tryk og hold nu på Raspberry Pi-hotspot, og vælg Rediger netværk. Under Avancerede indstillinger, Indstil Proxy mulighed for brugervejledning. Nu, under Proxy-værtsnavn, indtast IP-adressen på Pi 192.168.8.1. Under Proxy-port, gå ind 8080, og tryk på Gemme.

Du kan nu teste konfigurationen af ​​proxy. Prøv at gå til et websted på din sortliste - du vil se en side "Access Denied" som denne:

Håndhæver proxy-brug

Indtil videre er vi afhængige af, at klienter spiller pænt og bruger internettet gennem indholdsfilteret. Naturligvis sker dette sjældent i den virkelige verden. Så for at håndhæve alle klienter til at gennemgå proxy, skal du køre følgende kommandoer:

sudo iptables -A PREROUTING -t nat -p tcp - destination-port 80 -j REDIRECT - to-port 8080 sudo iptables -A PREROUTING -t nat -p tcp --destination-port 443 -j REDIRECT --to- porte 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4

Dette omdirigerer automatisk alle http (port 80) og https (port 443) trafik på hindbærpis hotspot til indholdsfilterproxy. Uden at konfigurere proxyindstillinger på dine enheder kan de nu ikke få adgang til sikker https websteder som Facebook, Gmail, Twitter osv. overhovedet. Dette sikrer, at enhver, der ønsker at oprette forbindelse til din Pi-hotspot, skal gennemgå proxy.

Dette er alt hvad du behøver at vide for grundlæggende brug af indholdsfilteret. Hvis du vil lære nogle avancerede funktioner, skal du læse videre.

Avancerede brugsscenarier

Opsætning af et tidsbaseret filter

Lad os sige, at du vil blokere de websteder, vi nævnte i Brug af indholdslister afsnit ovenfor, men kun på bestemte tidspunkter af dagen. Jeg foretrækker personligt at blokere Reddit, Facebook og Twitter i arbejdstiden (09.00-17.00) på hverdage, fordi de er et produktivitets mareridt.

Åbn / Etc / e2guardian / lister / bannedsitelist fil, og tilføj følgende linje til den:

tid: 9 0 17 0 01234

Denne linje fungerer som følger - timeren starter kl 9 (9 am) 0 (00 minutter), indtil 17 (17:00 i 24-timers format) 0 (00 minutter), fra 0 (Mandag) til 4 (Fredag).

Lad os tage et andet eksempel:

tid: 10 30 20 45 024

Dette blokerer de konfigurerede websteder fra kl. 10.30 (kl. 10.30) til kl. 20.45 (20 45) mandag (0), onsdag (2) og fredag ​​(4).

At lade bestemte IP-adresser omgå Proxy

Det er muligt at lade bestemte IP-adresser omgå indholdsfilteret. Dette kan indstilles af konfiguration af firewall. Du har måske bemærket det i vores dnsmasq.conf, vi indstiller kun hotspotet til at tildele IP-adresser fra 192.168.8.20 til 192.168.8.254 til klienter. Det betyder adresser fra 192.168.8.2 til 192.168.8.19 tildeles ikke automatisk nogen klient (vi kan ikke bruge 192.168.8.1 fordi det er det, som vores Raspberry Pi selv bruger).

For at gøre dette først opsæt en statisk IP på den enhed, som du vil give fuld adgang til. For eksempel at konfigurere en statisk IP af 192.168.8.2 Brug en af ​​disse indstillinger på en Windows-maskine:

Nu skal du køre følgende kommandoer på din Raspberry Pi.

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, deaktiver brugen af ​​proxy på din enhed, og prøv at åbne et forbudt websted. Du skal være i stand til at åbne den. Hvis der er flere IP-adresser, du vil tilføje til hvidlisten, skal du køre ovenstående to kommandoer igen, men erstatte IP-adressen med den, du ønsker. Når du er tilfreds med hvidlisten, skal du køre følgende kommando for at gemme din firewall-konfiguration:

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

En vigtig ting at huske er, at du ikke skal fortælle nogen om de hvidlistede IP-adresser. Ellers kan de blot indstille deres enhed til denne IP-adresse for at omgå proxy.

Sikkerhedsmæssige bekymringer

Da din Raspberry Pi vil være indgangs- og udgangspunkt for al din kommunikation, er det vigtigt at sikre det. Her er nogle tip til, hvordan du forbedrer sikkerheden. Husk, at dette kun er grundlæggende tip og ikke en omfattende liste over sikkerhedsgruber. Mængden af ​​sikkerhed afhænger af arten af ​​dit netværk (hjem, lille kontor osv.), Og hvor rampete brugerne er.

Deaktiver unødvendige tjenester

Da dette er en router, er det bedst at kun køre de tjenester, vi har brug for. Flere kørende tjenester betyder flere sårbarheder, der potentielt kan udnyttes. Helt bestemt Brug ikke dette system som et almindeligt skrivebord.

Gå til Menu> Præferencer> Raspberry Pi-konfiguration. I interfaces fanen, deaktiver alle tjenester, som du ikke har brug for.

Skift standardadgangskode

En frisk Raspbian-installation leveres med standardadgangskoden 'hindbær' til standardbrugeren 'pi'. Det anbefales at ændre dette til en mere sikker adgangskode. For at ændre det skal du åbne en terminal, der kører denne kommando:

passwd

Fjern skærmen og andre perifere enheder

Da alt, hvad der kører på denne Pi, er den software, der kræves til at bruge den som en router og webfilter, har vi ikke brug for en skærm eller andre perifere enheder, såsom en mus og et tastatur, der er knyttet til det. Hvis du har brug for at ændre indstillinger og sådan, kan du altid bruge SSH eller vedhæfte en skærm og et tastatur efter behov.

Sluk for automatisk login

Raspbian er indstillet til automatisk at logge ind med 'pi' brugeroplysninger uden at bede om adgangskode. Dette kan være ok til et skrivebord til generelle formål, men farligt for en router. Gå til til at deaktivere dette på Raspbian-skrivebordet Menu> Præferencer> Raspberry Pi-konfiguration. I System fanen foran Automatisk login overskrift, fjern markeringen af Login som bruger 'pi' afkrydsningsfeltet.

I den samme dialogboks anbefales det også at indstille Støvle indstilling til Til CLI. Dette sparer ressourcer, da vi ikke har brug for en GUI på en router. Hvis du ønsker at bruge skrivebordet af en eller anden grund, skal du logge ind med dit brugernavn og køre startx kommando for at tænde den grafiske grænseflade.

Fejlfinding af almindelige problemer

Interfaces bliver stadig omdøbt

Dette er meget almindeligt, hvis du bruger to trådløse grænseflader på din Pi. Hvis du bruger Ethernet til at forbinde din Pi til internettet, kan du med sikkerhed ignorere dette afsnit. Problemet er, at begge de trådløse grænseflader (wlan0 og wlan1) skift undertiden navne efter en genstart. Det vil sige det indbyggede WiFi-modul wlan0 bliver omdøbt til wlan1, og omvendt. Dette er selvfølgelig et stort problem, da vi er afhængige af, at de har et ensartet navn på vores konfigurationsfiler. Sådan gør du det konsistent på tværs af genstarter:

1. Find ud af MAC-adresse på dine grænseflader. Kør kommandoen ifconfig | grep HWaddr på din Raspberry Pi. Du vil se en output på følgende måde:

Notér teksten til højre for ordet 'HWaddr' i wlan0 og wlan1 afsnit. Du kan med sikkerhed ignorere eth0 afsnit. Dette er MAC-adresserne på dine trådløse grænseflader.

Hvis du ikke er sikker på, hvilken MAC-adresse der hører til hvilken grænseflade, skal du blot tage USB WiFi-donglen ud og køre kommandoen igen. Det wlan interface, der kommer op nu, er din indbyggede WiFi-interface, mens den anden er USB.

2. Opret en ny fil /etc/udev/rules.d/10-network.rules ved hjælp af din foretrukne teksteditor. For eksempel :

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

3. Indtast følgende tekst i denne fil. Udskift xx: xx: xx: xx osv. Med den relevante MAC-adresse:

[sourcecode] # Indstil det indbyggede WiFi-modul som wlan0. Udskift xx: xx: xx osv. Med
# indbygget modulets MAC-adresse
SUBSYSTEM == "net", ACTION == "tilføj", ATTR adresse == "xx: xx: xx: xx: xx: xx", NAVN = "wlan0"

# Sæt USB WiFi-donglen op som wlan1. Udskift yy: yy: yy osv. Med
# USB-dongles MAC-adresse
SUBSYSTEM == "net", ACTION == "tilføj", ATTR adresse == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]

Sørg for, at den indbyggede WiFi-interface MAC-adresse svarer til wlan0, og USB WiFi til wlan1 da det er den konvention, vi følger i denne vejledning.

4. Genstart din Raspberry Pi. Dine grænseflader starter med det rigtige navn nu.

Nulstilling af firewall-konfiguration

Et andet almindeligt problem er en dårligt konfigureret firewall. Afhængigt af din netværkskonfiguration kan det tage flere forsøg, før du får firewall'en rigtigt. Hvis du på et tidspunkt tror, ​​at du muligvis har rodet firewall-konfigurationen, skal du køre følgende kommandoer for at starte fra bunden:

sudo iptables - flush sudo iptables - tabel nat - flow sudo iptables - delete-chain sudo iptables - tabel nat - delete-chain

Dette slettes alle firewall-konfiguration. Du kan nu begynde at konfigurere firewall fra bunden. Når du er tilfreds, skal du køre kommandoen sudo iptables-save | sudo tee /etc/iptables/rules.v4 for at gøre konfigurationen permanent.

SE OGSÅ: Sådan køres kommandoer på Raspberry Pi via e-mail

Brug din Raspberry Pi som router og indholdsfilter

Det hele handler om at gøre din Raspberry Pi til en potent router plus indholdsfilter-proxy. Du kan få de nøjagtige konfigurationsfiler, vi brugte til vores opsætning på vores GitHub-side. Lad os vide, hvordan det fungerer for dig. Hvis noget ikke fungerer som forventet, eller et trin føles for forvirrende, er du velkommen til at stille os et spørgsmål i kommentarfeltet nedenfor.




Endnu ingen kommentarer

Gadget til købsguider, teknologier der betyder noget
Vi udgiver detaljerede guider til køb af udstyr, skaber interessante lister over de bedste produkter på markedet, dækker nyheder fra teknologiens verden