gør det selv

Sådan bruges Raspberry Pi som router og indholdsfilter

Sådan bruges Raspberry Pi som router og indholdsfilter

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

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

Der er kommercielle, brugsklare indholdsfiltre tilgængelige på markedet, men for os gør-det-selv-typer er der ikke noget sjovt i det. Således får vi vores hænder beskidte og opretter 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 vejledning forudsætter en mellemliggende erfaring med Linux og vilje til at foretage fejlfinding af 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-indholdsfilter. Til dette har vi brug for to netværksgrænseflader på den - 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.

Det er selvfølgelig ikke altid muligt at oprette forbindelse til internettet ved hjælp af Ethernet. I dette tilfælde skal du bruge en kompatibel USB WiFi-dongle (wlan1) for 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 et hjemmekonfiguration med et par bærbare computere og smartphones, det giver ikke den nødvendige ydelse til et stort kontoropsætning. Se på mere kapabel hardware, hvis mange kunder opretter forbindelse til dit indholdsfilter.

Software

Vi bruger den fremragende E2guardian til at opfange og filtrere vores webanmodninger. Da indholdsfiltrering kan have en effektpåvirkning (afhængigt af størrelsen på blokeringslisten), bruger vi Squid-cache til at udligne dette præstationshit.

Forudsætninger

1. Hindbær 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 læse 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 oprette forbindelse til 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 denne artikels art kan en enkelt fejl i firewallkonfigurationen låse dig ud af din Pi, hvis du bruger den i hovedløs tilstand. Derfor anbefales det, at du tilslutter en skærm, tastatur og mus, mens du konfigurerer den, 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 forbinde det til internettet. Efterlad det indbyggede WiFi-modul (wlan0) som det er for nu.

2. Hent forudsætningssoftware som vi har brug for:

sudo apt installer iptables iptables-persistent hostapd dnsmasq squid3

3. Vi sætter os op hostapd så vores Pi kan fungere som et WiFi-hotspot. Til dette skal du f.eks. Oprette 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 vil ændre efter smag, er:

ssid = RaspberryPiAP

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

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. Dernæst gør vi det opsætte en DHCP-server ved brug af dnsmasq. Rediger konfigurationsfilen /etc/dnsmasq.conf, og tilføj følgende linjer i slutningen:

[sourcecode] interface = lo, wlan0

no-dhcp-interface = lo

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

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 / netværk / grænseflader. Det ser sandsynligvis sådan ud (min vægt):

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

auto lo
iface lo inet loopback

iface eth0 inet manual

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

tillad hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf [/sourcecode]

Her, find linjerne med fed skrift med wlan0, og ændre dem, så filen ser ud som følger:

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

auto lo
iface lo inet loopback

iface eth0 inet manual

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

Dette opretter 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 den:

net.ipv4.ip_forward = 1

7. Nu vil vi konfigurer 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 konfigurerer NAT, mens den anden kommando gemmer vores nuværende firewallkonfiguration i en fil, der kaldes /etc/iptables/rules.v4. Dette sørger for, at konfigurationen fortsætter på tværs af genstart.

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

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

Dette er alt hvad du skal gøre for, hvis du har brug for en grundlæggende router med lav strømforsyning. Hvis du også vil oprette et indholdsfilter, skal du læse videre.

Opsæt indholdsfilter ved hjælp af E2guardian

E2guardian er ikke til stede i standard Raspbian-arkiver. For at installere det skal du gå til projektets Github-side og downloade filen, der slutter på armhf.deb. Åbn nu Terminal, gå til din Downloads mappe (eller hvor som helst du valgte at downloade filen), og installer den:

cd ~ / Downloads 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 op på dette 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 meget 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 blokere nogle populære sociale netværk. Åbn / etc / e2guardian / lists / bannedsiteliste 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 genindlæses (du bliver nødt til at køre denne kommando hver gang du ændrer konfigurationsfilerne). Alle klienter, der bruger indholdsfilteret, har nu ikke adgang til disse websteder. Selv mobilwebsites (f.eks. M.twitter.com) og dedikerede smartphone-apps fungerer ikke.

E2guardian også blokerer porno som standard. Hvis du ønsker at tillade det (hej, vi dømmer ikke), skal du åbne / etc / e2guardian / lists / bannedphraselist fil, og find følgende linje:

.Omfatte

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

#.Omfatte

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

Konfiguration af klienter

Nu hvor vores proxyserver er konfigureret, kan vi gå videre til konfiguration af klienterne. For at bruge indholdsfilteret skal alle klienter være forbundet til Rapberry Pi's hotspot og konfigureret til at bruge proxyen. Konfiguration af en proxy er forskellig på tværs af alle operativsystemer og enheder. Vi vil dog demonstrere, hvordan du opsætter det på Windows og Android, da disse er mere populære.

Windows

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

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

Det er alt hvad du behøver at gøre. De fleste populære webbrowsere som Google Chrome og Firefox henter automatisk systemets proxyindstillinger.

Android

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

Du kan nu teste konfigurationen af ​​proxyen. Prøv at gå til et websted på din sortliste - du vil se en side "Adgang nægtet" som denne:

Håndhævelse af proxybrug

Indtil videre stoler vi på, at klienter spiller pænt og bruger internettet via indholdsfilteret. Selvfølgelig sker dette sjældent i den virkelige verden. Så for at tvinge alle klienter til at gå gennem proxyen skal du køre følgende kommandoer:

sudo iptables -A PREROUTING -t nat -p tcp --destination-port 80 -j REDIRECT --to-porte 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ær Pi's hotspot til proxy for indholdsfilter. Nu, uden at konfigurere proxyindstillinger på dine enheder, har de ikke adgang til sikker https websteder som Facebook, Gmail, Twitter osv. overhovedet. Dette sørger for, at enhver, der ønsker at oprette forbindelse til dit Pi-hotspot, skal gennemgå proxyen.

Dette er alt hvad du behøver at vide for grundlæggende brug af indholdsfilteret. Hvis du ønsker at lære nogle avancerede funktioner, kan 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 (9 - 17) på hverdage, fordi de er et produktivitetsmareridt.

Åbn / etc / e2guardian / lists / bannedsiteliste 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 (10 30) til 20.45 (20 45) mandag (0), onsdag (2) og fredag ​​(4).

Lad visse IP-adresser omgå proxyen

Det er muligt at lade visse IP-adresser omgå indholdsfiltret. Dette kan indstilles af konfiguration af firewall. Du har måske bemærket det i vores dnsmasq.conf, vi indstiller kun hotspot 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 hvad vores Raspberry Pi selv bruger).

For at gøre dette, først oprette en statisk IP på den enhed, som du vil give fuld adgang til. For eksempel at oprette en statisk IP på 192.168.8.2 på en Windows-maskine skal du bruge disse indstillinger:

Kør 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, som du vil føje til hvidlisten, skal du køre ovenstående to kommandoer igen, men erstatte IP-adressen med den ønskede. Når du er tilfreds med hvidlisten, skal du køre følgende kommando for at gemme din firewall-konfiguration:

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

En vigtig ting at huske på er, at du ikke skal lade nogen vide de hvidlistede IP-adresser. Ellers kan de simpelthen indstille deres enhed til den IP-adresse for at omgå proxyen.

Sikkerhedsmæssige bekymringer

Da din Raspberry Pi vil være indgangs- og udgangsstedet 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 henvisninger og ikke en omfattende liste over sikkerhedsgrupper. Mængden af ​​sikkerhed vil afhænge af netværket (hjemmet, det lille kontor osv.) Og hvor ondskabsfulde brugerne er.

Deaktiver unødvendige tjenester

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

Gå til Menu> Indstillinger> Raspberry Pi-konfiguration. I Grænseflader 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 køre denne kommando:

passwd

Fjern skærmen og andet perifert udstyr

Da alt, hvad der kører på denne Pi, er den nødvendige software til at bruge den som en router og et webfilter, har vi ikke brug for en skærm eller andet perifert udstyr, såsom en mus og et tastatur, der er knyttet til den. Hvis du har brug for at ændre indstillinger og lignende, kan du altid bruge SSH eller vedhæfte en skærm og tastatur efter behov.

Deaktiver automatisk login

Raspbian er indstillet til automatisk at logge ind med 'pi' brugeroplysninger uden at bede om adgangskode. Dette kan være ok for et almindeligt skrivebordsfamilie, men farligt for en router. For at deaktivere dette skal du gå til på Raspbian-skrivebordet Menu> Indstillinger> Raspberry Pi-konfiguration. I System fanen foran Automatisk login overskrift, fjern markeringen af Log ind som bruger 'pi' afkrydsningsfelt.

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 vil bruge skrivebordet af en eller anden grund, skal du logge ind med dit brugernavn og køre startx kommando for at aktivere den grafiske grænseflade.

Fejlfinding af almindelige problemer

Grænseflader bliver ved med at blive 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 sikkert ignorere dette afsnit. Problemet er, at begge de trådløse grænseflader (wlan0 og wlan1) bytter sommetider navne efter en genstart. Det vil sige det indbyggede WiFi-modul wlan0 bliver omdøbt til wlan1, og omvendt. Dette er naturligvis et stort problem, da vi stoler på, at de har et ensartet navn til vores konfigurationsfiler. Sådan gør du det konsistent på tværs af genstart:

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 som følgende:

Noter teksten til højre for ordet 'HWaddr' i wlan0 og wlan1 afsnit. Du kan sikkert 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 bare 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 yndlings 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] # Opsæt det indbyggede WiFi-modul som wlan0. Udskift xx: xx: xx osv. Med
# indbygget moduls MAC-adresse
SUBSYSTEM == "net", HANDLING == "tilføj", ATTR adresse == "xx: xx: xx: xx: xx: xx", NAVN = "wlan0"

# Indstil USB WiFi-donglen som wlan1. Udskift yy: yy: yy osv. Med
# USB-dongles MAC-adresse
SUBSYSTEM == "net", ACTION == "add", ATTR address == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]

Sørg for, at den indbyggede WiFi-grænseflades 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 firewallkonfiguration

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 firewallen rigtig. Hvis du på et eller andet tidspunkt tror, ​​at du måske har ødelagt firewallkonfigurationen, skal du køre følgende kommandoer for at starte fra bunden:

sudo iptables - skyl sudo iptables - tabel nat - skyl sudo iptables - slet-kæde sudo iptables - bord nat - slet-kæde

Dette slettes alle firewall-konfiguration. Du kan nu begynde at konfigurere firewallen fra bunden. Når du er tilfreds, skal du køre kommandoen sudo iptables-gem | 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 er alt sammen ved at gøre din Raspberry Pi til en potent router plus indholdsfilterproxy. Du kan få de nøjagtige konfigurationsfiler, vi brugte til vores opsætning på vores GitHub-side. Fortæl os, 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.

Sådan bruges PS4 Remote Play på PC og Mac
Hvis du vil nyde at spille dine PS4-spil på din Mac eller pc, kan du gøre det ved hjælp af det indbyggede PS4 Remote Play-system. Dette giver dybest s...
Sådan ser du, hvem der ser din Instagram-profil
Instagram er en af ​​de mest anvendte sociale medieplatforme i disse dage, med over en milliard aktive brugere hver måned, der logger ind dagligt for ...
Sådan uploades fotos og videoer til Instagram fra Mac
Instagram er en af ​​de mest anvendte platforme til deling af billeder i verden. Appen har over 500 millioner aktive brugere hver måned. Mens Instagra...