Come utilizzare Raspberry Pi come router e filtro contenuti

  • Damian Washington
  • 0
  • 6893
  • 1170

Se hai bambini a casa, potresti aver sentito la necessità di bloccare alcuni siti Web indesiderati. Un'altra area problematica comune sono i siti web di social media: potresti sentire che i bambini (e gli adulti) perdono troppo tempo su Facebook, Twitter ecc. E vogliono bloccarli, o almeno renderli accessibili solo in determinate ore del giorno.

Per renderlo possibile, abbiamo bisogno di un router più filtro contenuto - un dispositivo attraverso il quale tutti i nostri dispositivi come laptop, smartphone e tablet si connettono a Internet. Questa appliance intercetta anche i siti Web a cui accedono questi dispositivi e li blocca se tentano di accedere a un sito Web nella lista nera.

Ci sono filtri di contenuto commerciali e pronti per l'uso disponibili sul mercato, ma per noi tipi fai-da-te non è divertente. Quindi, ci sporcheremo le mani e creeremo un Raspberry Pi per il lavoro. Abbiamo scelto il Raspberry Pi per questo progetto per le sue dimensioni ridotte e il suo consumo energetico trascurabile. però, queste istruzioni funzioneranno quasi senza modifiche con quasi tutti i computer che eseguono Debian Linux o un derivato (Ubuntu, Menta ecc.).

disconoscimento: Questa guida presuppone un livello intermedio di esperienza con Linux e la volontà di risolvere i problemi se e quando si presentano. L'esperienza precedente con le linee di comando e i firewall è un vantaggio.

Come funziona

Hardware

Useremo il Raspberry Pi 3 come filtro per il contenuto del router. Per questo, avremo bisogno due interfacce di rete su di esso - uno per connettersi a Internet e l'altro per fungere da hotspot WiFi per i nostri altri dispositivi a cui connettersi. Raspberry Pi 3 ha un jack Ethernet e un modulo WiFi integrati. Quindi, in questo scenario, possiamo usare un cavo Ethernet (eth0) per connettersi a Internet, mentre il modulo WiFi (wlan0) fungerà da hotspot.

Naturalmente, la connessione a Internet tramite Ethernet non è sempre possibile. In questo caso, avrai bisogno di un dongle WiFi USB compatibile (wlan1) per connettersi a Internet, mentre il modulo WiFi integrato (wlan0) fungerà da hotspot. Questa è la configurazione che useremo in questa guida.

Tieni presente che mentre un Raspberry Pi 3 è per lo più adeguato per una configurazione domestica con alcuni laptop e smartphone, non fornirà le prestazioni necessarie per una grande installazione in ufficio. Cerca hardware più capace se molti client si collegheranno al tuo filtro contenuto.

Software

Useremo l'eccellente E2guardian per intercettare e filtrare le nostre richieste web. Poiché il filtro dei contenuti può avere un impatto sulle prestazioni (a seconda della dimensione della block list), utilizzeremo la cache di Squid per compensare questo hit delle prestazioni.

Prerequisiti

1. Raspberry Pi 3 con l'ultima versione del sistema operativo Raspbian installata e accesso a Internet. Se stai iniziando con Raspberry Pi, ti consigliamo di leggere la nostra guida su come iniziare con Raspberry Pi 3.

2. [Opzionale] Dongle WiFi USB - Ciò è necessario se e solo se non è possibile connettere Raspberry Pi 3 a Internet con un cavo Ethernet. Se hai intenzione di utilizzare il WiFi sia per la connessione a Internet sia come hotspot, è necessario.

3. Accesso fisico al Raspberry Pi - A causa della natura di questo articolo, un singolo errore nella configurazione del firewall può bloccarti dal tuo Pi se lo usi in modalità senza testa. Pertanto, si consiglia di collegare un monitor, una tastiera e un mouse durante la configurazione fino a quando non viene impostato tutto.

Usa Raspberry Pi come router

1. Connetti il ​​tuo Pi a Internet tramite Ethernet (eth0). Se stai usando un dongle WiFi USB (probabilmente wlan1) invece, collegalo a Internet. Lascia il modulo WiFi integrato (wlan0) come è per ora.

2. Ottenere l software prerequisito di cui abbiamo bisogno:

sudo apt installa iptables iptables-persistent hostapd dnsmasq squid3

3. Installeremo hostapd in modo che il nostro Pi può fungere da hotspot WiFi. Per questo, crea un file di configurazione usando il tuo editor di testo preferito, ad esempio sudo nano /etc/hostapd/hostapd.conf, e incolla il contenuto dalla nostra pagina GitHub.

Alcune linee che potresti voler modificare in base ai gusti sono:

ssid = RaspberryPiAP

Questa riga determina quale sarà il nome del punto di accesso. Ho scelto RaspberryPiAP.

wpa_passphrase = beebom.com

Questo specifica la passphrase utilizzata per accedere all'hotspot. ero solito beebom.com, ma si consiglia di cambiarlo in una passphrase forte a scelta.

4. Successivamente, lo faremo impostare un server DHCP utilizzando dnsmasq. Modifica il file di configurazione /etc/dnsmasq.conf, e aggiungi le seguenti righe alla fine:

[Sorgente] interface = lo, wlan0

no-dhcp-interface = lo

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

Questo rende l'interfaccia attiva wlan0 (il modulo WiFi integrato) distribuisce gli indirizzi IP ai client nel 192.168.8.20 per 192.168.8.254 gamma.

5. Impostare un indirizzo IP statico per il modulo WiFi integrato wlan0. Apri il file / etc / network / interfaces. Probabilmente assomiglia a questo (enfasi mia):

[sourcecode] directory-origine /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.conf[/sourcecode]

Qui, individuare le linee in grassetto con wlan0, e cambiali, in modo che il file sia simile al seguente:

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

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet static
hostapd /etc/hostapd/hostapd.conf
indirizzo 192.168.8.1
maschera di rete 255.255.255.0
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Questo imposta un indirizzo IP statico 192.168.8.1 su wlan0. Ricorda questo indirizzo, come questo è l'indirizzo che useremo per comunicare con il nostro Raspberry Pi in seguito.

6. Adesso impostare l'inoltro IP. Modifica il file /etc/sysctl.conf, e aggiungi la seguente riga:

net.ipv4.ip_forward = 1

7. Adesso lo faremo configurare la traduzione dell'indirizzo di rete (NAT) nel nostro firewall. Per fare ciò, inserisci i seguenti 2 comandi:

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

Il primo comando imposta NAT, mentre il secondo comando salva la nostra attuale configurazione del firewall in un file chiamato /etc/iptables/rules.v4. Questo assicura che la configurazione persista durante i riavvii.

8. A questo punto, riavvia il tuo Raspberry Pi. Questo per assicurarsi che tutte le modifiche apportate ai file di configurazione siano funzionali.

9. Dopo il riavvio, dovresti essere in grado di vedere il nuovo creato RaspberryPiAP hotspot (a meno che non sia stato modificato il nome nel passaggio 3) su altri dispositivi come laptop e smartphone. È possibile connettersi ad esso utilizzando la password specificata e accedere a Internet.

Questo è tutto ciò che devi fare se hai bisogno di un router di base a bassa potenza. Se vuoi impostare anche un filtro contenuto, continua a leggere.

Configura filtro contenuti usando E2guardian

E2guardian non è presente nei repository Raspbian predefiniti. Per installarlo, vai alla pagina Github del progetto e scarica il file che termina con armhf.deb. Ora apri il Terminale, vai al tuo download cartella (o ovunque tu abbia scelto di scaricare il file) e installalo:

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

Probabilmente vedrai alcuni errori sui pacchetti mancanti quando installi E2guardian. Per correggere ciò, attendere che l'installazione finisca e immettere il comando seguente:

sudo apt-get install -f

Utilizzo degli elenchi di contenuti

Ci sono diverse liste presenti in / etc / e2guardian / liste directory. Questi file includono l'elenco di estensioni di bannede, l'elenco di bannati, l'elenco di bannati, l'elenco di bannedi, l'elenco di bannati, gli elenchi di eccezioni e altro ancora. Questi file sono adeguatamente documentati con commenti. Dai un'occhiata a loro per familiarizzare.

Ad esempio, supponiamo che lo desideri bloccare alcuni social network popolari. Apri il / Etc / e2guardian / lists / bannedsitelist file e sotto il Coperta SSL / CONNECT blocco (poiché utilizzano questi siti Web https invece di pianura http), aggiungi le seguenti righe:

facebook.com twitter.com reddit.com

Ora ricaricare il servizio E2guardian usando il comando sudo service e2guardian ricaricare (dovrai eseguire questo comando ogni volta che modifichi i file di configurazione). Tutti i client che utilizzano il filtro contenuti non potranno ora accedere a questi siti Web. Anche i siti mobili (ad es. M.twitter.com) e le app per smartphone dedicate non funzioneranno.

E2guardian anche blocca il porno per impostazione predefinita. Se desideri permetterlo (ehi, non stiamo giudicando), apri il file / Etc / e2guardian / lists / bannedphraselist file e individuare la seguente riga:

.Includere

Commentalo aggiungendo a hash (simbolo #) sul davanti, in modo che appaia così:

#.Includere

Ancora una volta, ricaricare la configurazione con sudo service e2guardian ricaricare, e hai finito.

Configurazione dei client

Ora che il nostro server proxy è impostato, possiamo passare alla configurazione dei client. Per utilizzare il filtro contenuto, tutti i client devono essere collegati all'hotspot di Rapberry Pi e configurati per utilizzare il proxy. La configurazione di un proxy è diversa in tutti i sistemi operativi e dispositivi. Tuttavia, dimostreremo come configurarlo su Windows e Android, poiché questi sono più popolari.

finestre

Vai a Pannello di controllo> Rete e Internet> Opzioni Internet. Nella finestra che si apre, vai su Connessioni scheda e fare clic su Impostazioni LAN.

Qui, clicca su Avanzate, ed entra 192.168.8.1 come indirizzo proxy e 8080 come il porto. Assicurarsi che il Utilizzare lo stesso server proxy per tutti i protocolli la casella è selezionata. Clic ok.

Questo è tutto ciò che devi fare. I browser Web più popolari come Google Chrome e Firefox rileveranno automaticamente le impostazioni del proxy di sistema.

androide

Vai a Impostazioni di sistema> WiFi. Ora tocca e tieni premuto l'hotspot Raspberry Pi e seleziona Modifica rete. Sotto Opzioni avanzate, impostare il delega opzione a Manuale. Ora, sotto Nome host proxy, inserisci l'indirizzo IP del Pi 192.168.8.1. Sotto Porta proxy, accedere 8080, e tocca Salva.

Ora puoi testare la configurazione del proxy. Prova ad accedere a un sito Web nella tua lista nera: vedrai una pagina "Accesso negato" come questa:

Applicazione del proxy

Finora, ci affidiamo ai clienti che giocano bene e usano Internet attraverso il filtro dei contenuti. Certo, questo accade raramente nel mondo reale. Quindi, per imporre a tutti i client di passare attraverso il proxy, eseguire i seguenti comandi:

sudo iptables -A PREROUTING -t nat -p tcp --destination-port 80 -j REDIRECT --to-doors 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

Questo reindirizzerà automaticamente tutto http (porta 80) e https (porta 443) traffico sull'hotspot del raspberry Pi verso il proxy del filtro contenuto. Ora, senza configurare le impostazioni proxy sui tuoi dispositivi, non saranno in grado di accedere in sicurezza https siti web come Facebook, Gmail, Twitter ecc. Questo si assicura che chiunque desideri connettersi al proprio hotspot Pi deve passare attraverso il proxy.

Questo è tutto ciò che devi sapere per l'utilizzo di base del filtro contenuti. Se desideri apprendere alcune funzionalità avanzate, continua a leggere.

Scenari di utilizzo avanzato

Impostazione di un filtro basato sul tempo

Diciamo che vuoi bloccare i siti web che abbiamo citato in Utilizzo degli elenchi di contenuti sezione sopra, ma solo in determinati momenti della giornata. Personalmente preferisco bloccare Reddit, Facebook e Twitter durante l'orario di lavoro (9: 00-17: 00) nei giorni feriali perché sono un incubo di produttività.

Apri il / Etc / e2guardian / lists / bannedsitelist file e aggiungere la seguente riga ad esso:

tempo: 9 0 17 0 01234

Questa riga funziona come segue: il timer inizia alle 9 (9 del mattino) 0 (00 minuti), fino al 17 (17:00 in formato 24 ore) 0 (00 minuti), da 0 (Lunedì) a 4 (Venerdì).

Facciamo un altro esempio:

tempo: 10 30 20 45 024

Ciò bloccherà i siti configurati dalle 10:30 (10 30) alle 20:45 (20 45) il lunedì (0), mercoledì (2) e venerdì (4).

Consentire a determinati indirizzi IP di bypassare il proxy

È possibile consentire a determinati indirizzi IP di ignorare il filtro contenuti. Questo può essere impostato da configurazione del firewall. Potresti averlo notato nel nostro dnsmasq.conf, impostiamo solo l'hotspot da cui assegnare gli indirizzi IP 192.168.8.20 per 192.168.8.254 ai clienti. Questo significa indirizzi da 192.168.8.2 per 192.168.8.19 non verrà assegnato automaticamente a nessun client (non possiamo utilizzarlo 192.168.8.1 perché è quello che utilizza il nostro Raspberry Pi stesso).

Per fare questo, prima di tutto impostare un IP statico sul dispositivo a cui si desidera dare pieno accesso. Ad esempio, per impostare un IP statico di 192.168.8.2 su un computer Windows, utilizzare queste impostazioni:

Ora, sul tuo Raspberry Pi, esegui i seguenti comandi.

sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 80 -j RITORNO sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 443 -j RETURN

Adesso, disabilita l'uso del proxy sul tuo dispositivo, e prova ad aprire un sito Web vietato. Dovresti essere in grado di aprirlo. Se ci sono più indirizzi IP che si desidera aggiungere alla lista bianca, eseguire nuovamente i due comandi precedenti, ma sostituire l'indirizzo IP con quello desiderato. Quando sei soddisfatto della whitelist, esegui il comando seguente per salvare la configurazione del firewall:

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

Una cosa importante da tenere a mente è che non dovresti far sapere a nessuno gli indirizzi IP autorizzati. Altrimenti, possono semplicemente impostare il proprio dispositivo su quell'indirizzo IP per bypassare il proxy.

Problemi di sicurezza

Poiché il tuo Raspberry Pi sarà il punto di entrata e di uscita di tutte le tue comunicazioni, è importante proteggerlo. Ecco alcuni suggerimenti su come migliorare la sicurezza. Tieni presente che questi sono solo suggerimenti di base e non un elenco completo di insidie ​​della sicurezza. La quantità di sicurezza dipenderà dalla natura della tua rete (casa, piccolo ufficio, ecc.) E da quanto siano maliziosi gli utenti.

Disabilita i servizi non necessari

Poiché si tratta di un router, è consigliabile eseguire solo i servizi richiesti. Più servizi in esecuzione significano più vulnerabilità che possono essere potenzialmente sfruttate. Decisamente non utilizzare questo sistema come un normale desktop.

Vai a Menu> Preferenze> Configurazione Raspberry Pi. Nel interfacce scheda, disabilita tutti i servizi che non ti servono.

Cambia la password predefinita

Una nuova installazione di Raspbian viene fornita con la password predefinita 'raspberry' per l'utente predefinito 'pi'. Si consiglia di cambiarlo con una password più sicura. Per cambiarlo, apri un terminale esegui questo comando:

passwd

Rimuovere il monitor e le altre periferiche

Poiché tutto ciò che verrà eseguito su questo Pi è il software necessario per utilizzarlo come router e filtro web, non abbiamo bisogno di un monitor o di altre periferiche come un mouse e una tastiera collegati ad esso. Se è necessario modificare le impostazioni e simili, è sempre possibile utilizzare SSH o collegare un monitor e una tastiera in base alle esigenze.

Disattiva l'accesso automatico

Raspbian è configurato per accedere automaticamente con le credenziali utente 'pi' senza richiedere la password. Questo potrebbe essere ok per un desktop di famiglia generico, ma pericoloso per un router. Per disabilitarlo, sul desktop Raspbian, vai a Menu> Preferenze> Configurazione Raspberry Pi. Nel Sistema scheda, di fronte al Login automatico intestazione, deseleziona il Accedi come utente 'pi' casella di controllo.

Nella stessa finestra di dialogo, è anche consigliabile impostare il Stivale impostazione su Alla CLI. Ciò consentirà di risparmiare risorse poiché non è necessaria una GUI su un router. Se si desidera utilizzare il desktop per qualsiasi motivo, accedere con il proprio nome utente ed eseguire il startx comando per attivare l'interfaccia grafica.

Risoluzione dei problemi comuni

Le interfacce continuano a essere rinominate

Questo è molto comune se si sta utilizzando due interfacce wireless sul tuo Pi. Se stai usando Ethernet per connettere il tuo Pi a Internet, puoi tranquillamente ignorare questa sezione. Il problema è che entrambe le interfacce wireless (wlan0 e wlan1) a volte scambiano nomi dopo un riavvio. Cioè, il modulo WiFi integrato wlan0 viene rinominato in wlan1, e viceversa. Questo è ovviamente un grosso problema poiché contiamo sul fatto che abbiano un nome coerente per i nostri file di configurazione. Ecco come renderlo coerente tra i riavvii:

1. Scopri il Indirizzo MAC delle tue interfacce. Esegui il comando ifconfig | grep HWaddr sul tuo Raspberry Pi. Vedrai un output come il seguente:

Annota il testo a destra della parola "HWaddr" in wlan0 e wlan1 sezione. Puoi tranquillamente ignorare il eth0 sezione. Questi sono gli indirizzi MAC delle tue interfacce wireless.

Se non si è sicuri di quale indirizzo MAC appartenga a quale interfaccia, è sufficiente scollegare il dongle WiFi USB ed eseguire nuovamente il comando. Il wlan l'interfaccia che viene fuori ora è la tua interfaccia WiFi integrata, mentre l'altra è USB.

2. Crea un nuovo file /etc/udev/rules.d/10-network.rules usando il tuo editor di testo preferito. Per esempio :

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

3. Inserisci il seguente testo in questo file. Sostituisci xx: xx: xx: xx ecc. Con l'indirizzo MAC appropriato:

[codice sorgente] # Imposta il modulo WiFi integrato come wlan0. Sostituisci xx: xx: xx ecc. Con
# indirizzo MAC del modulo integrato
SOTTOSISTEMA == "netto", AZIONE == "aggiungi", ATTR indirizzo == "xx: xx: xx: xx: xx: xx", NAME = "wlan0"

# Imposta il dongle WiFi USB come wlan1. Sostituisci yy: yy: yy ecc. Con
# Indirizzo MAC del dongle USB
SUBSYSTEM == "net", ACTION == "add", ATTR address == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]

Assicurarsi che l'indirizzo MAC dell'interfaccia WiFi integrata corrisponda a wlan0, e USB WiFi a wlan1 poiché questa è la convenzione che stiamo seguendo in questa guida.

4. Riavvia il tuo Raspberry Pi. Le tue interfacce inizieranno con il nome corretto ora.

Ripristino della configurazione del firewall

Un altro problema comune è un firewall mal configurato. A seconda della configurazione di rete, potrebbero essere necessari diversi tentativi prima di ottenere il firewall corretto. Se in qualsiasi momento ritieni di aver incasinato la configurazione del firewall, esegui i seguenti comandi per iniziare da zero:

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

Questo cancellerà tutti configurazione del firewall. Ora puoi iniziare a configurare il firewall da zero. Una volta che sei soddisfatto, esegui il comando sudo iptables-save | sudo tee /etc/iptables/rules.v4 per rendere permanente la configurazione.

VEDERE ANCHE: Come eseguire i comandi su Raspberry Pi tramite e-mail

Usa il tuo Raspberry Pi come router e filtro contenuti

Questo è tutto su come trasformare il tuo Raspberry Pi in un potente router più proxy del filtro contenuti. Puoi ottenere i file di configurazione esatti che abbiamo usato per la nostra configurazione sulla nostra pagina GitHub. Fateci sapere come funziona per voi. Se qualcosa non funziona come previsto o un passaggio sembra troppo confuso, sentiti libero di farci una domanda nella sezione commenti qui sotto.




Nessun utente ha ancora commentato questo articolo.

Guide per gadget, tecnologie che contano
Pubblichiamo la guida dettagliata per di attrezzature, creiamo elenchi interessanti dei migliori prodotti sul mercato, copriamo le notizie dal mondo della tecnologia