Hvis du har barn hjemme, har du kanskje følt behov for å blokkere visse uønskede nettsteder. Et annet vanlig problemområde er sosiale medier - du kan føle at barn (og voksne) kaster bort for mye tid på Facebook, Twitter osv. Og vil blokkere dem, eller i det minste gjøre dem tilgjengelige bare på bestemte tider av dagen..
For å gjøre dette mulig trenger vi en ruteren i tillegg til innholdsfilter - et apparat der alle våre enheter som bærbare datamaskiner, smarttelefoner og nettbrett kobles til internett. Dette apparatet avlytter også nettstedene som disse enhetene får tilgang til, og blokkerer dem hvis de prøver å få tilgang til et svartelistet nettsted.
Det er kommersielle, ferdige innholdsfiltre tilgjengelig i markedet, men for oss DIY-typer er det ikke noe moro i det. Dermed vil vi få hendene skitne, og sette opp en Raspberry Pi for jobben. Vi valgte Raspberry Pi for dette prosjektet på grunn av sin lille størrelse og ubetydelige strømforbruk. derimot, disse instruksjonene fungerer nesten umodifisert med nesten hvilken som helst datamaskin som kjører Debian Linux eller en derivat (Ubuntu, Mint osv.).
Ansvarsfraskrivelse: Denne guiden forutsetter et mellomnivå av erfaring med Linux, og vilje til å feilsøke problemer hvis og når de oppstår. Tidligere erfaring med kommandolinjer og brannmurer er en bonus.
Hvordan det fungerer
Maskinvare
Vi vil bruke Raspberry Pi 3 som et ruter med innholdsfilter. For dette trenger vi to nettverksgrensesnitt på den - den ene for å koble til internett, og den andre for å fungere som et WiFi-hotspot for de andre enhetene våre å koble til. Raspberry Pi 3 har en innebygd Ethernet-kontakt og WiFi-modul. Så i dette scenariet kan vi bruke en Ethernet-kabel (eth0) for å koble til internett, mens WiFi-modulen (wlan0) vil fungere som et hotspot.
Det er selvfølgelig ikke alltid mulig å koble til internett ved hjelp av Ethernet. I dette tilfellet trenger du en kompatibel USB WiFi-dongle (wlan1) for å koble til internett, mens den innebygde WiFi-modulen (wlan0) vil fungere som et hotspot. Dette er konfigurasjonen vi vil bruke i denne guiden.
Husk at mens en Raspberry Pi 3 stort sett er tilstrekkelig for et hjemoppsett med noen få bærbare datamaskiner og smarttelefoner, det gir ikke ytelsen som trengs for et stort kontoroppsett. Se på mer dyktig maskinvare hvis mange klienter kobler til innholdsfilteret ditt.
Programvare
Vi vil bruke den utmerkede E2guardian til å fange opp og filtrere våre nettforespørsler. Siden innholdsfiltrering kan ha en ytelsespåvirkning (avhengig av størrelsen på blokkeringslisten), vil vi bruke blekksprutbuffer for å kompensere for dette ytelsestreffet.
Forutsetninger
1. Raspberry Pi 3 med den nyeste versjonen av Raspbian OS installert, og tilgang til internett. Hvis du bare begynner med Raspberry Pi, anbefaler vi å lese vår guide om hvordan du kommer i gang med Raspberry Pi 3.
2. [Valgfri] USB WiFi-dongle - Dette er nødvendig hvis, og bare hvis du ikke kan koble Raspberry Pi 3 til internett med en Ethernet-kabel. Hvis du planlegger å bruke WiFi for både tilkobling til internett og som et hotspot, er dette nødvendig.
3. Fysisk tilgang til Raspberry Pi - På grunn av arten av denne artikkelen kan en enkelt feil i brannmurkonfigurasjonen låse deg ut av Pi-en din hvis du bruker den i hodeløs modus. Derfor anbefales det at du kobler til skjerm, tastatur og mus mens du konfigurerer den til alt er satt opp.
Bruk Raspberry Pi som ruter
1. Koble din Pi til internett ved hjelp av Ethernet (eth0). Hvis du bruker en USB WiFi-dongle (sannsynligvis wlan1) i stedet for å koble det til internett. La den innebygde WiFi-modulen (wlan0) som det er for nå.
2. Hent forutsetning for programvare som vi trenger:
sudo apt installere iptables iptables-vedvarende hostapd dnsmasq squid3
3. Vi vil sette opp hostapd
slik at vår Pi kan fungere som et WiFi-hotspot. For dette, opprett en konfigurasjonsfil ved å bruke for eksempel teksteditoren din sudo nano /etc/hostapd/hostapd.conf
, og lim inn innholdet fra GitHub-siden vår.
Noen linjer som du kanskje vil endre etter smak er:
ssid = RaspberryPiAP
Denne linjen dikterer hva navnet på tilgangspunktet vil være. jeg velger BringebærPiAP
.
wpa_passphrase = beebom.com
Dette spesifiserer passordet som brukes for å få tilgang til hotspot. jeg brukte beebom.com
, men det anbefales å endre den til en sterk passordfrase du ønsker.
4. Neste vil vi sette opp en DHCP-server ved hjelp av dnsmasq
. Rediger konfigurasjonsfilen /etc/dnsmasq.conf
, og legg til følgende linjer på slutten:
[kildekode] grensesnitt = lo, wlan0
no-dhcp-interface = lo
dhcp-range = 192.168.8.20,192.168.8.254,255.255.255.0,12h [/ sourcecode]
Dette gjør at grensesnittet er på wlan0
(den innebygde WiFi-modulen) deler ut IP-adresser til klienter i 192.168.8.20 til 192.168.8.254 område.
5. Sett opp en statisk IP-adresse for den innebygde WiFi-modulen wlan0
. Åpne filen / etc / nettverk / grensesnitt
. Det ser sannsynligvis ut slik (vektlegging min):
[kildekode] kildekatalog /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
tillat-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
tillat-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf [/sourcecode]
Her, finn linjene i fet skrift med wlan0
, og endre dem, slik at filen ser slik ut:
[kildekode] kildekatalog /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
tillat-hotplug wlan0
iface wlan0 inet statisk
hostapd /etc/hostapd/hostapd.conf
adresse 192.168.8.1
nettmaske 255.255.255.0
tillat-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf [/sourcecode]
Dette setter opp en statisk IP-adresse 192.168.8.1
på wlan0. Husk denne adressen, som dette er adressen vi vil bruke til å kommunisere med vår Raspberry Pi senere.
6. Nå sette opp IP-videresending. Rediger filen /etc/sysctl.conf
, og legg til følgende linje i den:
net.ipv4.ip_forward = 1
7. Nå vil vi konfigurere oversettelse av nettverksadresse (NAT) i brannmuren vår. For å gjøre dette, skriv inn følgende to 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 kommandoen setter opp NAT, mens den andre kommandoen lagrer vår nåværende brannmurkonfigurasjon i en fil som heter /etc/iptables/rules.v4
. Dette sørger for at konfigurasjonen vedvarer på nytt.
8. På dette punktet, start Raspberry Pi på nytt. Dette er for å sikre at alle endringene vi har gjort i konfigurasjonsfilene er funksjonelle.
9. Etter omstart, bør du kunne se det nyopprettede BringebærPiAP
hotspot (med mindre du endret navnet i trinn 3) på andre enheter som bærbare datamaskiner og smarttelefoner. Du kan koble til det ved hjelp av passordet du har angitt, og få tilgang til internett.
Dette er alt du trenger å gjøre hvis du trenger en grunnleggende, lite drevet ruter. Hvis du også vil sette opp et innholdsfilter, kan du lese videre.
Konfigurer innholdsfilter ved hjelp av E2guardian
E2guardian er ikke til stede i standard Raspbian-arkiver. For å installere det, gå til prosjektets Github-side og last ned filen som slutter på armhf.deb
. Åpne nå Terminal, gå til din Nedlastinger mappen (eller uansett hvor du valgte å laste ned filen), og installer den:
cd ~ / Nedlastinger sudo dpkg -i ./e2guardian_*_jessie_armhf.deb
Du vil sannsynligvis se noen feil om manglende pakker når du installerer E2guardian. For å rette opp dette, la installasjonen fullføre, og skriv inn følgende kommando:
sudo apt-get install -f
Bruke innholdslister
Det er flere lister til stede i / etc / e2guardian / lister
katalog. Disse filene inkluderer bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, exceptionlist og mer. Disse filene er riktig dokumentert med kommentarer. Ta en titt på dem for å bli kjent.
La oss anta at du ønsker det blokker noen populære sosiale nettverk. Åpne / etc / e2guardian / lists / bannedsitelist
filen, og under Teppe SSL / CONNECT blokkere (siden disse nettstedene bruker https i stedet for vanlig http), legg til følgende linjer:
facebook.com twitter.com reddit.com
Last nå E2guardian-tjenesten på nytt ved hjelp av kommandoen sudo service e2guardian reload
(du må kjøre denne kommandoen hver gang du endrer konfigurasjonsfilene). Alle klienter som bruker innholdsfilteret, får nå ikke tilgang til disse nettstedene. Selv mobilnettstedene (f.eks. M.twitter.com) og dedikerte smarttelefonapps vil ikke fungere.
E2guardian også blokkerer porno som standard. Hvis du ønsker å tillate det (hei, vi dømmer ikke), åpner du / etc / e2guardian / lists / bannedfraselist
filen, og finn følgende linje:
.Inkludere
Kommenter det ved å legge til et hasj (# symbol) foran, slik at det ser slik ut:
#.Inkludere
Igjen, last konfigurasjonen på nytt med sudo service e2guardian reload
, og du er ferdig.
Konfigurere klienter
Nå som proxy-serveren vår er konfigurert, kan vi gå videre til å konfigurere klientene. For å bruke innholdsfilteret, må alle klienter være koblet til Rapberry Pi's hotspot, og konfigurert til å bruke proxyen. Konfigurering av en proxy er forskjellig på tvers av alle operativsystemer og enheter. Imidlertid vil vi demonstrere hvordan du konfigurerer det på Windows og Android, siden disse er mer populære.
Windows
Gå til Kontrollpanel> Nettverk og Internett> Internett-alternativer. I vinduet som åpnes, naviger til Tilkoblinger kategorien, og klikk på LAN-innstillinger.
Klikk her Avansert, og gå inn 192.168.8.1
som proxy-adresse, og 8080
som havnen. Sørg for at Bruk samme proxy-server for alle protokoller er avmerket. Klikk OK.
Det er alt du trenger å gjøre. De fleste populære nettlesere som Google Chrome og Firefox vil automatisk hente systemets proxy-innstillinger.
Android
Gå til Systeminnstillinger> WiFi. Trykk og hold inne Raspberry Pi-hotspot, og velg Endre nettverk. Under Avanserte instillinger, sett Fullmektig alternativ til Håndbok. Nå under Proxy-vertsnavn, skriv inn IP-adressen til Pi 192.168.8.1
. Under Proxy-port, Tast inn 8080
, og trykk på Lagre.
Du kan nå teste konfigurasjonen av proxyen. Prøv å gå til et nettsted i svartelisten - du vil se en "Access Denied" -side slik:
Håndheve proxy-bruk
Så langt er vi avhengige av at klienter spiller fine og bruker internett gjennom innholdsfilteret. Selvfølgelig skjer dette sjelden i den virkelige verden. Så for å tvinge alle klienter til å gå gjennom proxyen, kjør følgende kommandoer:
sudo iptables -A PREROUTING -t nat -p tcp - destinasjonsport 80 -j REDIRECT - til-porter 8080 sudo iptables -A PREROUTING -t nat -p tcp --destinasjonsport 443 -j REDIRECT --to- porter 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4
Dette omdirigerer automatisk alle http (port 80) og https (port 443) trafikk på bringebær Pi hotspot til innholdsfilter proxy. Nå, uten å konfigurere proxy-innstillinger på enhetene dine, vil de ikke kunne få tilgang til sikre https nettsteder som Facebook, Gmail, Twitter osv. i det hele tatt. Dette sørger for at alle som ønsker å koble til Pi-hotspotten din, må gå gjennom proxyen.
Dette er alt du trenger å vite for grunnleggende bruk av innholdsfilteret. Hvis du ønsker å lære noen avanserte funksjoner, kan du lese videre.
Avanserte bruksscenarier
Sette opp et tidsbasert filter
La oss si at du vil blokkere nettstedene vi nevnte i Bruke innholdslister avsnittet ovenfor, men bare på bestemte tider på dagen. Jeg personlig foretrekker å blokkere Reddit, Facebook og Twitter i arbeidstiden (9am - 5pm) på hverdager fordi de er et produktivitetsmareritt.
Åpne / etc / e2guardian / lists / bannedsitelist
filen, og legg til følgende linje i den:
tid: 9 0 17 0 01234
Denne linjen fungerer som følger - timeren starter kl 9 (9 am) 0 (00 minutter), til 17 (17.00 i 24-timers format) 0 (00 minutter), fra 0 (Mandag) til 4 (Fredag).
La oss ta et annet eksempel:
tid: 10 30 20 45 024
Dette vil blokkere de konfigurerte nettstedene fra 10.30 (10 30) til 20.45 (20 45) på mandag (0), onsdag (2) og fredag (4).
La visse IP-adresser omgå proxyen
Det er mulig å la visse IP-adresser omgå innholdsfilteret. Dette kan settes opp av konfigurere brannmuren. Du har kanskje lagt merke til det i vår dnsmasq.conf
, vi setter bare hotspotet til å tildele IP-adresser fra 192.168.8.20 til 192.168.8.254 til klienter. Det betyr adresser fra 192.168.8.2 til 192.168.8.19 vil ikke bli tildelt automatisk til noen klient (vi kan ikke bruke 192.168.8.1 fordi det er hva vår Raspberry Pi selv bruker).
For å gjøre dette, først sette opp en statisk IP på enheten du vil gi full tilgang til. For eksempel å sette opp en statisk IP på 192.168.8.2 på en Windows-maskin, bruk disse innstillingene:
Kjør følgende kommandoer på din Raspberry Pi.
sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destinasjon-port 80 -j RETURN sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 443 -j RETURN
Nå, deaktivere bruken av proxy på enheten din, og prøv å åpne et utestengt nettsted. Du burde kunne åpne den. Hvis det er flere IP-adresser du vil legge til på hvitelisten, kan du kjøre de to ovennevnte kommandoene på nytt, men erstatte IP-adressen med den du vil ha. Når du er fornøyd med hvitlisten, kjører du følgende kommando for å lagre brannmurkonfigurasjonen:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
En viktig ting å huske på er at du ikke skal la noen få vite de godkjente IP-adressene. Ellers kan de bare sette enheten til den IP-adressen for å omgå proxyen.
Sikkerhetsproblemer
Siden din Raspberry Pi vil være inngangs- og utgangspunkt for all kommunikasjon, er det viktig å sikre den. Her er noen tips om hvordan du kan forbedre sikkerheten. Husk at dette bare er grunnleggende tips og ikke en omfattende liste over sikkerhetsgruver. Mengden sikkerhet vil avhenge av nettverkets natur (hjemme, lite kontor osv.) Og hvor rampete brukerne er.
Deaktiver unødvendige tjenester
Siden dette er en ruter, er det best å bare kjøre tjenestene vi trenger. Flere tjenester som kjører betyr flere sårbarheter som potensielt kan utnyttes. Helt sikkert ikke bruk dette systemet som et vanlig skrivebord.
Gå til Meny> Innstillinger> Raspberry Pi-konfigurasjon. I Grensesnitt fanen, deaktiver alle tjenester du ikke trenger.
Endre standardpassordet
En fersk Raspbian-installasjon kommer med standardpassordet 'bringebær' for standardbrukeren 'pi'. Det anbefales å endre dette til et sikrere passord. For å endre det, åpne en terminal, kjør denne kommandoen:
passwd
Fjern skjermen og andre eksterne enheter
Siden alt som vil kjøre på denne Pi, er programvaren som kreves for å bruke den som en ruter og et webfilter, trenger vi ikke en skjerm eller andre eksterne enheter, for eksempel en mus og et tastatur festet til den. Hvis du trenger å endre innstillinger og slikt, kan du alltid bruke SSH, eller feste en skjerm og tastatur etter behov.
Slå av automatisk pålogging
Raspbian er satt opp for å automatisk logge på med 'pi' brukerlegitimasjonen uten å be om passord. Dette kan være greit for et generelt skrivebord for familien, men farlig for en ruter. For å deaktivere dette, gå til Raspbian-skrivebordet Meny> Innstillinger> Raspberry Pi-konfigurasjon. I System fanen, foran Automatisk innlogging overskrift, fjern merket for Logg inn som bruker 'pi' avkrysningsruten.
I samme dialogboks anbefales det også å stille inn Støvel innstilling til Til CLI. Dette vil spare ressurser siden vi ikke trenger et GUI på en ruter. Hvis du av en eller annen grunn vil bruke skrivebordet, logger du på med brukernavnet ditt og kjører startx
kommando for å slå på det grafiske grensesnittet.
Feilsøking Vanlige problemer
Grensesnitt blir stadig omdøpt
Dette er veldig vanlig hvis du bruker to trådløse grensesnitt på Pi. Hvis du bruker Ethernet for å koble Pi-en din til internett, kan du trygt ignorere denne delen. Problemet er at begge de trådløse grensesnittene (wlan0 og wlan1) bytter noen ganger navn etter en omstart. Det vil si den innebygde WiFi-modulen wlan0 blir omdøpt til wlan1, og vice versa. Dette er selvfølgelig et stort problem siden vi stoler på at de har et jevnt navn på konfigurasjonsfilene våre. Slik gjør du det konsekvent på tvers av omstart:
1. Finn ut MAC-adressen til grensesnittene dine. Kjør kommandoen ifconfig | grep HWaddr
på din Raspberry Pi. Du vil se en utgang som følgende:
Noter teksten til høyre for ordet 'HWaddr' i wlan0 og wlan1 seksjon. Du kan trygt ignorere eth0 seksjon. Dette er MAC-adressene til de trådløse grensesnittene.
Hvis du ikke er sikker på hvilken MAC-adresse som tilhører hvilket grensesnitt, kobler du bare USB WiFi-dongelen og kjører kommandoen på nytt. De wlan grensesnitt som kommer opp nå er det innebygde WiFi-grensesnittet, mens det andre er USB.
2. Opprett en ny fil /etc/udev/rules.d/10-network.rules
ved hjelp av favoritt teksteditor. For eksempel :
sudo nano /etc/udev/rules.d/10-network.rules
3. Skriv inn følgende tekst i denne filen. Bytt ut xx: xx: xx: xx osv. Med riktig MAC-adresse:
[sourcecode] # Sett opp den innebygde WiFi-modulen som wlan0. Bytt ut xx: xx: xx etc. med
# innebygd modul MAC-adresse
SUBSYSTEM == "net", ACTION == "add", ATTR address == "xx: xx: xx: xx: xx: xx", NAME = "wlan0"
# Sett opp USB WiFi-donglen som wlan1. Bytt ut åå: åå: åå osv. Med
# USB-dongles MAC-adresse
SUBSYSTEM == "net", ACTION == "add", ATTR address == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]
Forsikre deg om at det innebygde WiFi-grensesnittets MAC-adresse tilsvarer wlan0, og USB WiFi til wlan1 siden det er konvensjonen vi følger i denne guiden.
4. Start Raspberry Pi på nytt. Grensesnittene dine starter med riktig navn nå.
Tilbakestiller konfigurasjon av brannmur
Et annet vanlig problem er en dårlig konfigurert brannmur. Avhengig av nettverkskonfigurasjonen, kan det ta flere forsøk før du får brannmuren riktig. Hvis du på et eller annet tidspunkt tror at du kanskje har ødelagt brannmurkonfigurasjonen, kan du kjøre følgende kommandoer for å starte fra bunnen av:
sudo iptables - spyle sudo iptables - tabell nat - spyle sudo iptables - delete-chain sudo iptables - tabell nat - delete-chain
Dette vil slettes alle brannmurkonfigurasjon. Du kan nå begynne å konfigurere brannmuren fra bunnen av. Når du er fornøyd, kjør kommandoen sudo iptables-save | sudo tee /etc/iptables/rules.v4
for å gjøre konfigurasjonen permanent.
SE OGSÅ: Slik kjører du kommandoer på Raspberry Pi via e-post
Bruk din Raspberry Pi som ruter og innholdsfilter
Alt er på å gjøre Raspberry Pi til en kraftig ruter pluss proxy for innholdsfilter. Du kan få de nøyaktige konfigurasjonsfilene vi brukte for oppsettet vårt på GitHub-siden. Gi oss beskjed om hvordan det fungerer for deg. Hvis noe ikke fungerer som forventet, eller et trinn føles for forvirrende, kan du stille oss et spørsmål i kommentarfeltet nedenfor.