- Oliver Matthews
- 0
- 2577
- 372
Hvis du har barn hjemme, kan du ha følt behov for å blokkere visse uønskede nettsteder. Et annet vanlig problemområde er nettsteder på 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 til bestemte tider av dagen.
For å gjøre dette mulig trenger vi a router i tillegg til innholdsfilter - et apparat som alle våre enheter som bærbare datamaskiner, smarttelefoner og nettbrett kobler seg til internett gjennom. Dette apparatet avskjærer også nettstedene disse enhetene får tilgang til, og blokkerer dem hvis de prøver å få tilgang til et svartelistet nettsted.
Det er kommersielle, bruksklare innholdsfiltre tilgjengelig i markedet, men for oss DIY-typer er det ikke noe gøy 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 dets lille størrelse og ubetydelige strømforbruk. men, disse instruksjonene vil fungere nesten umodifisert med nesten hvilken som helst datamaskin som kjører Debian Linux eller et derivat (Ubuntu, Mint etc.).
Ansvarsfraskrivelse: Denne guiden forutsetter et mellomliggende erfaringsnivå 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 rutefil kum innholdsfilter. For dette trenger vi to nettverksgrensesnitt på den - den ene for å koble seg til internett, og den andre for å fungere som en WiFi-hotspot for våre andre enheter å 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 som vi vil bruke i denne guiden.
Husk at mens en Raspberry Pi 3 stort sett er tilstrekkelig for et hjemmeoppsett med noen få bærbare datamaskiner og smarttelefoner, det vil ikke gi ytelsen som trengs for et stort kontoroppsett. Se på mer dyktig maskinvare hvis mange kunder vil koble seg til innholdsfilteret ditt.
programvare
Vi vil bruke den utmerkede E2guardianen til å avskjære og filtrere våre nettforespørsler. Siden innholdsfiltrering kan ha en ytelseseffekt (avhengig av størrelsen på blokklisten), vil vi bruke blekksprut-cache for å utligne denne ytelsen.
Forutsetninger
1. Bringebær Pi 3 med den nyeste versjonen av Raspbian OS installert, og tilgang til internett. Hvis du bare kommer i gang med Raspberry Pi, anbefaler vi å lese vår guide for 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 både til å koble til internett og som et hotspot, er dette nødvendig.
3. Fysisk tilgang til bringebær Pi - På grunn av artikkelen denne artikkelen kan en enkelt feil i brannmurkonfigurasjonen låse deg ut av Pi-en hvis du bruker den i hodeløs modus. Derfor anbefales det at du kobler til en skjerm, tastatur og mus mens du konfigurerer det 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, koble det til Internett. La den innebygde WiFi-modulen (wlan0) som det er for nå.
2. Hent forutsetning programvare som vi trenger:
sudo apt install iptables iptables-persistent hostapd dnsmasq squid3
3. Vi vil stille opp hostapd
slik at vår Pi kan fungere som et WiFi-hotspot. For dette lager du for eksempel en konfigurasjonsfil ved hjelp av favoritttekstredigereren sudo nano /etc/hostapd/hostapd.conf
, og lim inn innholdet fra GitHub-siden vår.
Noen linjer du kanskje vil endre etter smak er:
ssid = RaspberryPiAP
Denne linjen dikterer hva navnet på tilgangspunktet vil være. jeg velger RaspberryPiAP
.
wpa_passphrase = beebom.com
Dette spesifiserer passordfrasen 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:
[Kilde] grensesnitt = lo, wlan0
no-DHCP-grensesnitt = lo
DHCP-område = 192.168.8.20,192.168.8.254,255.255.255.0,12h [/ kilde]
Dette gjør grensesnittet 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 / network / grensesnitt
. Det ser nok ut noe slikt (vektlegg mitt):
[sourcecode] source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
tillate-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
tillate-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.confebrit/sourcecode]
Her, Finn linjene med fet skrift med wlan0
, og endre dem, slik at filen ser slik ut:
[sourcecode] source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
tillate-hotplug wlan0
iface wlan0 inet statisk
hostapd /etc/hostapd/hostapd.conf
adresse 192.168.8.1
nettmaske 255.255.255.0
tillate-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.confebrit/sourcecode]
Dette setter opp en statisk IP-adresse 192.168.8.1
på wlan0. Husk denne adressen, som dette er adressen vi vil bruke for å kommunisere med 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å skal vi konfigurere nettverksadresse oversettelse (NAT) i brannmuren vår. For å gjøre dette, skriv inn 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 kommandoen setter opp NAT, mens den andre kommandoen lagrer vår nåværende brannmurkonfigurasjon til en fil som heter /etc/iptables/rules.v4
. Dette sørger for at konfigurasjonen vedvarer på tvers av omstarter.
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, skal du kunne se det nyopprettede RaspberryPiAP
hotspot (med mindre du endret navnet i trinn 3) på andre enheter som bærbare datamaskiner og smarttelefoner. Du kan koble deg til det ved hjelp av passordet du spesifiserte, og få tilgang til internett.
Dette er alt du trenger å gjøre for hvis du trenger en enkel, lavt drevet ruter. Hvis du vil sette opp et innholdsfilter også, kan du lese videre.
Sett opp innholdsfilter ved hjelp av E2guardian
E2guardian er ikke til stede i standard Raspbian-lagringene. For å installere den, gå til prosjektets Github-side og last ned filen som slutter på armhf.deb
. Nå åpner terminalen, gå til din Nedlastinger mappen (eller hvor enn 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 å utbedre dette, la installasjonen være ferdig og skriv inn følgende kommando:
sudo apt-get install -f
Bruke innholdslister
Det er flere lister til stede i / etc / e2guardian / lister
katalogen. Disse filene inkluderer bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, exceptionlist og mer. Disse filene er korrekt dokumentert med kommentarer. Ta en titt på dem for å bli kjent.
Som et eksempel, la oss anta at du ønsker det blokkerer noen populære sosiale nettverk. Åpne / Etc / e2guardian / lister / bannedsitelist
fil, 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 inn E2guardian-tjenesten på nytt ved å bruke kommandoen sudo service e2guardian reload
(Du må kjøre denne kommandoen hver gang du endrer konfigurasjonsfilene). Klienter som bruker innholdsfilteret vil nå ikke kunne få tilgang til disse nettstedene. Selv ikke mobilnettstedene (f.eks. M.twitter.com) og dedikerte smarttelefonapper fungerer.
E2guardian også blokkerer porno som standard. Hvis du ønsker å tillate det (hei, vi dømmer ikke), åpne / Etc / e2guardian / lister / bannedphraselist
fil, og finn følgende linje:
.Inkludere
Kommenter det ved å legge til en hash (# symbol) foran, slik at det ser slik ut:
#.Inkludere
Last inn konfigurasjonen på nytt 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 Pis hotspot, og konfigurert for å bruke proxy. Å konfigurere en proxy er forskjellig på 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. Naviger til vinduet i vinduet tilkoblinger fanen, og klikk på LAN-innstillinger.
Klikk her Avansert, og gå inn 192.168.8.1
som fullmaktsadresse, og 8080
som havn. Forsikre deg om at Bruk samme proxy-server for alle protokoller er avkrysset. Klikk OK.
Det er alt du trenger å gjøre. De mest populære nettlesere som Google Chrome og Firefox vil automatisk hente systemets proxy-innstillinger.
Android
Gå til Systeminnstillinger> WiFi. Nå trykker du på og holder Raspberry Pi-hotspot, og velger Endre nettverk. Under Avanserte alternativer, sett proxy alternativ til Håndbok. Nå, under Proxy-vertsnavn, angi IP-adressen til Pi 192.168.8.1
. Under Proxy-port, Tast inn 8080
, og trykk på Lagre.
Du kan nå teste konfigurasjonen av proxy. Prøv å gå til et nettsted i svartelisten din - du vil se en “Access Denied” -side som denne:
Tvinger proxy-bruk
Så langt er vi avhengige av at klienter spiller fint og bruker internett gjennom innholdsfilteret. Selvfølgelig skjer dette sjelden i den virkelige verden. Så for å tvinge alle klienter til å gå gjennom proxy, kjører du følgende kommandoer:
sudo iptables -A PREROUTING -t nat -p tcp - destinasjons-port 80 -j REDIRECT - to-port 8080 sudo iptables -A PREROUTING -t nat -p tcp - destination-port 443 -j REDIRECT --to- porter 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4
Dette vil automatisk omdirigere alle http (port 80) og https (port 443) trafikk på bringebær Pis hotspot til innholdsfilterproxy. Uten å konfigurere proxyinnstillinger på enhetene dine, vil de ikke nå tilgang til sikker https nettsteder som Facebook, Gmail, Twitter etc. i det hele tatt. Dette sørger for at alle som ønsker å koble seg til din Pi-hotspot, må gå gjennom fullmakten.
Dette er alt du trenger å vite for grunnleggende bruk av innholdsfilteret. Hvis du vil 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 på Bruke innholdslister delen ovenfor, men bare til bestemte tider av døgnet. Jeg personlig foretrekker å blokkere Reddit, Facebook og Twitter i arbeidstiden (09.00-17.00) på hverdager fordi de er et produktivitetsmareritt.
Åpne / Etc / e2guardian / lister / bannedsitelist
fil, og legg til følgende linje i den:
tid: 9 0 17 0 01234
Denne linjen fungerer som følger - tidtakeren starter kl 9 (9 am) 0 (00 minutter), til 17 (17:00 i 24-timers format) 0 (00 minutter), fra kl 0 (Mandag) til 4 (Fredag).
La oss ta et annet eksempel:
tid: 10 30 20 45 024
Dette vil blokkere de konfigurerte nettstedene fra kl. 10:30 til 20.45 mandag (0), onsdag (2) og fredag (4).
Å la visse IP-adresser omgå proxy
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 angir bare hotspotet som skal tilordnes 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 blir ikke automatisk tilordnet noen klient (vi kan ikke bruke 192.168.8.1 fordi det er det 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 av 192.168.8.2 på en Windows-maskin, bruk disse innstillingene:
Nå, på Raspberry Pi, kjører du følgende kommandoer.
sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 - destinasjonsport 80 -j RETURN sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 - destination-port 443 -j RETURN
Nå, deaktiver bruken av proxy på enheten din, og prøv å åpne et utestengt nettsted. Du skal kunne åpne den. Hvis det er flere IP-adresser du vil legge til i hvitelisten, kjører du de to ovennevnte kommandoene igjen, men erstatt IP-adressen med den du vil ha. Når du er fornøyd med hvitelisten, 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 gi beskjed til de hvitlistede IP-adressene. Ellers kan de ganske enkelt angi enheten sin til den IP-adressen for å omgå proxy.
Sikkerhetsproblemer
Siden Raspberry Pi vil være inngangs- og utreisepunktet for all kommunikasjonen, er det viktig å sikre den. Her er noen tips for hvordan du kan forbedre sikkerheten. Husk at dette bare er grunnleggende tips og ikke en omfattende liste over sikkerhetsgruber. Hvor mye sikkerhet vil avhenge av nettverket (hjem, lite kontor osv.) Og hvor rampete brukerne er.
Deaktiver unødvendige tjenester
Siden dette er en ruter, er det best å kun 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 standard passord
En fersk Raspbian-installasjon leveres med standardpassordet 'bringebær' for standardbrukeren 'pi'. Det anbefales å endre dette til et sikrere passord. Hvis du vil endre det, åpner du en terminal som kjører denne kommandoen:
passwd
Fjern skjermen og andre eksterne enheter
Siden alt som kjøres på denne Pi er programvaren som kreves for å bruke den som en ruter og webfilter, trenger vi ikke en skjerm eller andre perifere enheter som mus og tastatur festet til den. Hvis du trenger å endre innstillinger og slikt, kan du alltid bruke SSH, eller legge ved en skjerm og et tastatur etter behov.
Slå av automatisk pålogging
Raspbian er satt opp for automatisk å logge på med 'pi' brukeropplysningene uten å be om passord. Dette kan være greit for et skrivebord med generelle formål, men farlig for en ruter. Gå til på Raspbian-skrivebordet for å deaktivere dette Meny> Innstillinger> Raspberry Pi-konfigurasjon. I System fanen, foran Automatisk innlogging overskrift, fjern merket for Logg inn som bruker 'pi' avkrysnings.
I samme dialogboks anbefales det også å stille inn Støvel innstilling til Til CLI. Dette vil spare ressurser siden vi ikke trenger en GUI på en ruter. Hvis du ønsker å bruke skrivebordet av en eller annen grunn, logger du på med brukernavnet og kjører startx
kommando for å slå på det grafiske grensesnittet.
Feilsøking av vanlige problemer
Grensesnitt Fortsett å gi nytt navn
Dette er veldig vanlig hvis du bruker to trådløse grensesnitt på din 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 navn noen ganger etter 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 er avhengige av at de har et konsistent navn på konfigurasjonsfilene våre. Slik gjør du det konsistent på tvers av omstarter:
1. Finn ut MAC-adresse til grensesnittene dine. Kjør kommandoen ifconfig | grep HWaddr
på Raspberry Pi. Du vil se en utgang som følgende:
Skriv ned teksten til høyre for ordet 'HWaddr' i bokstaven wlan0 og wlan1 seksjon. Du kan trygt ignorere eth0 seksjon. Dette er MAC-adressene til dine trådløse grensesnitt.
Hvis du ikke er sikker på hvilken MAC-adresse som hører til hvilket grensesnitt, kobler du bare fra USB WiFi-dongelen og kjører kommandoen igjen. De wlan grensesnittet som kommer opp nå er det innebygde WiFi-grensesnittet, mens det andre er USB.
2. Lag en ny fil /etc/udev/rules.d/10-network.rules
bruker din favoritt tekstredigerer. 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 etc. med riktig MAC-adresse:
[sourcecode] # Sett opp den innebygde WiFi-modulen som wlan0. Bytt ut xx: xx: xx osv. Med
# innebygd modul sin MAC-adresse
SUBSYSTEM == "net", ACTION == "add", ATTR address == "xx: xx: xx: xx: xx: xx", NAVN = "wlan0"
# Sett opp USB WiFi-dongelen 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 begynner med riktig navn nå.
Tilbakestill brannmurkonfigurasjon
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 tidspunkt tenker at du kanskje har rotet opp brannmurkonfigurasjonen, kjører du følgende kommandoer for å starte helt fra grunnen av:
sudo iptables - flush sudo iptables - bord nat - flush sudo iptables - delete-chain sudo iptables - bord nat - delete-chain
Dette vil slette alle brannmurkonfigurasjon. Du kan nå begynne å konfigurere brannmuren fra bunnen av. Når du er fornøyd, kjører du kommandoen sudo iptables-save | sudo tee /etc/iptables/rules.v4
for å gjøre konfigurasjonen permanent.
SE OGSÅ: Slik kjører du kommandoer på bringebærpi per e-post
Bruk Raspberry Pi som ruter og innholdsfilter
Det handler om å gjøre Raspberry Pi om til en potent ruter pluss proxy for innholdsfilter. Du kan få de nøyaktige konfigurasjonsfilene vi brukte til oppsettet på GitHub-siden vår. Gi oss beskjed om hvordan det fungerer for deg. Hvis noe ikke fungerer som forventet, eller et skritt føles for forvirrende, må du gjerne stille oss et spørsmål i kommentarfeltet nedenfor.