Se hai figli a casa, potresti aver sentito il bisogno 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 determinati momenti della giornata.
Per renderlo possibile, abbiamo bisogno di un router più un filtro dei contenuti, un’appliance attraverso la 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 inserito nella lista nera.
Se volete continuare a leggere questo post su "Come utilizzare Raspberry Pi come router e filtro dei contenuti" cliccate sul pulsante "Mostra tutti" e potrete leggere il resto del contenuto gratuitamente. ebstomasborba.pt è un sito specializzato in Tecnologia, Notizie, Giochi e molti altri argomenti che potrebbero interessarvi. Se desiderate leggere altre informazioni simili a Come utilizzare Raspberry Pi come router e filtro dei contenuti, continuate a navigare sul web e iscrivetevi alle notifiche del blog per non perdere le ultime novità.
Sul mercato sono disponibili filtri per contenuti commerciali pronti all’uso, ma per noi tipi fai-da-te non c’è divertimento in questo. Quindi, ci sporcheremo le mani e configureremo un Raspberry Pi per il lavoro. Abbiamo scelto il Raspberry Pi per questo progetto a causa delle sue dimensioni ridotte e del consumo energetico trascurabile. Tuttavia, queste istruzioni funzioneranno quasi senza modifiche con quasi tutti i computer che eseguono Debian Linux o un derivato (Ubuntu, Mint ecc.).
Dichiarazione di non responsabilità: 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 righe di comando e firewall è un bonus.
Come funziona
Hardware
Utilizzeremo il Raspberry Pi 3 come filtro per i contenuti del router. Per questo, avremo bisogno di due interfacce di rete su di esso: una per connettersi a Internet e l’altra per fungere da hotspot WiFi per la connessione degli altri nostri dispositivi. Il Raspberry Pi 3 ha un jack Ethernet integrato e un modulo WiFi. Quindi, in questo scenario, possiamo utilizzare un cavo Ethernet ( eth0 ) per connetterci 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 connetterti 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 pochi laptop e smartphone, non fornirà le prestazioni necessarie per una configurazione da ufficio di grandi dimensioni. Cerca hardware più capace se molti client si connetteranno al tuo filtro dei contenuti.
Software
Utilizzeremo l’ottimo E2guardian per intercettare e filtrare le nostre richieste web. Poiché il filtraggio dei contenuti può avere un impatto sulle prestazioni (a seconda delle dimensioni della blocklist), utilizzeremo la cache Squid per compensare questo calo delle prestazioni.
Prerequisiti
1. Raspberry Pi 3 con l’ultima versione del sistema operativo Raspbian installata e accesso a Internet. Se stai solo iniziando con Raspberry Pi, ti consigliamo di leggere la nostra guida su come iniziare con Raspberry Pi 3 .
2. [Opzionale] USB WiFi Dongle – Questo è necessario se e solo se non puoi connettere il tuo Raspberry Pi 3 a Internet con un cavo Ethernet. Se hai intenzione di utilizzare il Wi-Fi sia per la connessione a Internet che 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 fuori dal tuo Pi se lo usi in modalità headless. Pertanto, si consiglia di collegare un monitor, una tastiera e un mouse durante la configurazione fino a quando tutto non è configurato.
Usa Raspberry Pi come router
1. Collega il tuo Pi a Internet tramite Ethernet ( eth0 ). Se invece stai utilizzando un dongle WiFi USB (probabilmente wlan1 ), collegalo a Internet. Lascia il modulo WiFi integrato ( wlan0 ) così com’è per ora.
2. Ottieni il software prerequisito di cui abbiamo bisogno:
sudo apt install iptables iptables-persistent hostapd dnsmasq squid3
3. Imposteremo hostapd
in modo che il nostro Pi possa 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 righe che potresti voler modificare secondo i tuoi gusti sono:
ssid=RaspberryPiAP
Questa riga determina quale sarà il nome del punto di accesso. Ho scelto RaspberryPiAP
.
wpa_passphrase=beebom.com
Specifica la passphrase utilizzata per accedere all’hotspot. Ho usato beebom.com
, ma si consiglia di cambiarlo con una passphrase forte di tua scelta.
4. Successivamente, configureremo un server DHCP utilizzando dnsmasq
. Modifica il file di configurazione /etc/dnsmasq.conf
e aggiungi le seguenti righe alla fine:
[sourcecode]interface=lo,wlan0
no-dhcp-interface=lo
dhcp-range=192.168.8.20,192.168.8.254,255.255.255.0,12h[/sourcecode]
Ciò fa sì che l’interfaccia su wlan0
(il modulo WiFi integrato) distribuisca gli indirizzi IP ai client nell’intervallo da 192.168.8.20 a 192.168.8.254 .
5. Impostare un indirizzo IP statico per il modulo WiFi integrato wlan0
. Apri il file /etc/network/interfaces
. Probabilmente assomiglia a questo (sottolineatura mia):
[codice sorgente]directory-sorgente /etc/network/interfaces.d
auto lo
iface lo inet loopback
manuale iface eth0 inet
allow-hotplug wlan0
manuale iface wlan0 inet
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
consentire-hotplug wlan1
manuale iface wlan1 inet
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]
Qui, individuare le righe in grassetto relative a wlan0
e modificarle, in modo che il file assomigli al seguente:
[codice sorgente]directory-sorgente /etc/network/interfaces.d
auto lo
iface lo inet loopback
manuale iface eth0 inet
allow-hotplug wlan0
iface wlan0 inet statico
hostapd /etc/hostapd/hostapd.conf
indirizzo 192.168.8.1
maschera di rete 255.255.255.0
consentire-hotplug wlan1
manuale iface wlan1 inet
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]
Questo imposta un indirizzo IP statico 192.168.8.1
su wlan0. Ricorda questo indirizzo, poiché questo è l’indirizzo che useremo per comunicare con il nostro Raspberry Pi in seguito.
6. Ora configura l’inoltro IP . Modifica il file /etc/sysctl.conf
e aggiungi la seguente riga:
net.ipv4.ip_forward=1
7. Ora configureremo la traduzione degli indirizzi 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
. Ciò garantisce che la configurazione persista durante i riavvii.
8. A questo punto, riavvia il tuo Raspberry Pi. Questo per assicurarci che tutte le modifiche apportate ai file di configurazione siano funzionanti.
9. Dopo il riavvio, dovresti essere in grado di vedere l’hotspot RaspberryPiAP
appena creato (a meno che tu non abbia cambiato il nome nel passaggio 3) sugli altri tuoi dispositivi come laptop e smartphone. Puoi connetterti ad esso utilizzando la password che hai specificato 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 per i contenuti, continua a leggere.
Imposta il filtro dei contenuti utilizzando 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 Terminale, vai alla cartella Download (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 risolvere questo problema, lascia che l’installazione finisca e inserisci il seguente comando:
sudo apt-get install -f
Utilizzo degli elenchi di contenuti
Ci sono diverse liste presenti nella directory /etc/e2guardian/lists
. Questi file includono l’elenco delle estensioni bannate, l’elenco delle estensioni bannate, l’elenco delle frasi bannate, l’elenco dei siti bannati, l’elenco delle URL bannate, l’elenco delle eccezioni e altro ancora. Questi file sono adeguatamente documentati con commenti. Dai un’occhiata a loro per familiarizzare.
Ad esempio, supponiamo che tu voglia bloccare alcuni popolari social network . Apri il file /etc/e2guardian/lists/bannedsitelist
e sotto il blocco Blanket SSL/CONNECT (poiché questi siti Web utilizzano https invece del semplice http ), aggiungi le seguenti righe:
facebook.com twitter.com reddit.com
Ora ricarica il servizio E2guardian usando il comando sudo service e2guardian reload
(dovrai eseguire questo comando ogni volta che modifichi i file di configurazione). Tutti i client che utilizzano il filtro dei contenuti non saranno ora in grado di accedere a questi siti Web. Anche i siti mobile (es. m.twitter.com) e le app dedicate per smartphone non funzioneranno.
E2guardian blocca anche il porno per impostazione predefinita. Se desideri consentirlo (ehi, non stiamo giudicando), apri il file /etc/e2guardian/lists/bannedphraselist
e individua la seguente riga:
.Include
Commentalo aggiungendo un hash (simbolo #) in primo piano, in modo che assomigli a questo:
#.Include
Ancora una volta, ricarica la configurazione con sudo service e2guardian reload
e il gioco è fatto.
Configurazione dei client
Ora che il nostro server proxy è configurato, possiamo passare alla configurazione dei client. Per utilizzare il filtro dei contenuti, tutti i client devono essere connessi 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
Andare su Pannello di controllo > Rete e Internet > Opzioni Internet. Nella finestra che si apre, vai alla scheda Connessioni e fai clic su Impostazioni LAN .
Qui, fai clic su Avanzate e inserisci 192.168.8.1
come indirizzo proxy e 8080
come porta. Assicurati che la casella Usa lo stesso server proxy per tutti i protocolli sia selezionata. Fare clic su OK.
Questo è tutto ciò che devi fare. I browser Web più diffusi come Google Chrome e Firefox acquisiranno automaticamente le impostazioni del proxy di sistema.
Androide
Vai su Impostazioni di sistema > Wi-Fi. Ora tocca e tieni premuto l’hotspot Raspberry Pi e seleziona Modifica rete . In Opzioni avanzate impostare l’opzione Proxy su Manuale. Ora, sotto Proxy hostname , inserisci l’indirizzo IP del Pi 192.168.8.1
. Sotto Proxy port , inserisci 8080
e tocca Salva .
Ora puoi testare la configurazione del proxy. Prova ad andare su un sito Web nella tua lista nera: vedrai una pagina “Accesso negato” come questa:
Applicazione dell’utilizzo del proxy
Finora, ci affidiamo ai clienti che giocano bene e utilizzano Internet attraverso il filtro dei contenuti. Naturalmente, 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-ports 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
Ciò reindirizzerà automaticamente tutto il traffico http (porta 80) e https (porta 443) sull’hotspot di Raspberry Pi al proxy del filtro dei contenuti. Ora, senza configurare le impostazioni proxy sui tuoi dispositivi, non saranno in grado di accedere a siti Web https sicuri come Facebook, Gmail, Twitter ecc. Ciò garantisce che chiunque desideri connettersi al tuo hotspot Pi debba passare attraverso il proxy.
Questo è tutto ciò che devi sapere per l’utilizzo di base del filtro dei contenuti. Se desideri apprendere alcune funzionalità avanzate, continua a leggere.
Scenari di utilizzo avanzati
Impostazione di un filtro basato sul tempo
Supponiamo che tu voglia bloccare i siti Web menzionati nella sezione Utilizzo degli elenchi di contenuti sopra, ma solo in determinati orari della giornata . Personalmente preferisco bloccare Reddit, Facebook e Twitter durante l’orario di lavoro (dalle 9:00 alle 17:00) nei giorni feriali perché sono un incubo per la produttività.
Apri il file /etc/e2guardian/lists/bannedsitelist
e aggiungi la seguente riga:
ora: 9 0 17 0 01234
Questa linea funziona come segue: il timer inizia alle 9 (9:00) 0 (00 minuti), fino alle 17 (17:00 nel formato 24 ore) 0 (00 minuti), da 0 (lunedì) a 4 (venerdì).
Facciamo un altro esempio:
orario: 10 30 20 45 024
Ciò bloccherà i siti configurati dalle 10:30 (10 30) alle 20:45 (20 45) di lunedì (0), mercoledì (2) e venerdì (4).
Consentire a determinati indirizzi IP di ignorare il proxy
È possibile consentire a determinati indirizzi IP di ignorare il filtro dei contenuti. Questo può essere impostato configurando il firewall. Potresti aver notato che nel nostro dnsmasq.conf
impostiamo solo l’hotspot per assegnare gli indirizzi IP da 192.168.8.20 a 192.168.8.254 ai client. Ciò significa che gli indirizzi da 192.168.8.2 a 192.168.8.19 non verranno assegnati automaticamente a nessun client (non possiamo usare 192.168.8.1 perché è quello che usa il nostro stesso Raspberry Pi).
Per fare ciò, imposta prima un IP statico sul dispositivo a cui vuoi 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 RETURN sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 443 -j RETURN
Ora disabilita l’uso del proxy sul tuo dispositivo e prova ad aprire un sito Web vietato. Dovresti essere in grado di aprirlo. Se sono presenti più indirizzi IP che desideri aggiungere alla whitelist, esegui nuovamente i due comandi precedenti, ma sostituisci l’indirizzo IP con quello desiderato. Una volta che sei soddisfatto della whitelist, esegui il seguente comando per salvare la configurazione del tuo firewall:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Una cosa importante da tenere a mente è che non dovresti far conoscere a nessuno gli indirizzi IP inseriti nella whitelist. 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 ingresso e di uscita per 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 delle insidie della sicurezza. La quantità di sicurezza dipenderà dalla natura della tua rete (casa, piccolo ufficio, ecc.) e da quanto sono dispettosi gli utenti.
Disabilita i servizi non necessari
Poiché si tratta di un router, è meglio eseguire solo i servizi di cui abbiamo bisogno. Più servizi in esecuzione significano più vulnerabilità che possono essere potenzialmente sfruttate. Sicuramente non utilizzare questo sistema come un normale desktop.
Vai a Menu > Preferenze > Configurazione Raspberry Pi. Nella scheda Interfacce, disabilita tutti i servizi che non ti servono.
Modifica la password predefinita
Una nuova installazione di Raspbian viene fornita con la password predefinita “raspberry” per l’utente predefinito “pi”. Si consiglia di cambiarla con una password più sicura. Per cambiarlo, apri un terminale esegui questo comando:
password
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 mouse e tastiera collegate ad esso. Se è necessario modificare le impostazioni e simili, è sempre possibile utilizzare SSH o collegare un monitor e una tastiera secondo necessità.
Disattiva l’accesso automatico
Raspbian è impostato per accedere automaticamente con le credenziali utente “pi” senza richiedere la password. Questo potrebbe andare bene per un desktop familiare generico, ma pericoloso per un router. Per disabilitarlo, sul desktop Raspbian, vai su Menu > Preferences > Raspberry Pi Configuration . Nella scheda Sistema, davanti all’intestazione Accesso automatico, deseleziona la casella di controllo Accedi come utente ‘pi’.
Nella stessa finestra di dialogo, è inoltre consigliabile impostare l’impostazione Boot su To CLI . Ciò farà risparmiare risorse poiché non abbiamo bisogno di una GUI su un router. Se desideri utilizzare il desktop per qualsiasi motivo, accedi con il tuo nome utente ed esegui il comando startx
per attivare l’interfaccia grafica.
Risoluzione dei problemi comuni
Le interfacce continuano a essere rinominate
Questo è molto comune se stai usando 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 i nomi dopo un riavvio. Cioè, il modulo WiFi integrato wlan0 viene rinominato in wlan1 e viceversa. Questo è ovviamente un grosso problema poiché ci affidiamo al fatto che abbiano un nome coerente per i nostri file di configurazione. Ecco come renderlo coerente tra i riavvii:
1. Scopri l’indirizzo MAC delle tue interfacce. Eseguire il comando ifconfig | grep HWaddr
sul tuo Raspberry Pi. Vedrai un output simile al seguente:
Annotare il testo a destra della parola “HWaddr” nella sezione wlan0 e wlan1 . Puoi tranquillamente ignorare la sezione eth0 . Questi sono gli indirizzi MAC delle tue interfacce wireless.
Se non sei sicuro di quale indirizzo MAC appartenga a quale interfaccia, scollega semplicemente il dongle WiFi USB ed esegui nuovamente il comando. L’interfaccia WLAN che appare 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. Immettere il seguente testo in questo file. Sostituisci xx:xx:xx:xx ecc. con l’indirizzo MAC appropriato:
[sourcecode]# Imposta il modulo WiFi integrato come wlan0. Sostituisci xx:xx:xx ecc. con il
# indirizzo MAC del modulo integrato
SUBSYSTEM==”net”, ACTION==”add”, ATTR{address}==”xx:xx:xx:xx:xx:xx”, NAME=”wlan0″
# Imposta il dongle WiFi USB come wlan1. Sostituisci yy:yy:yy ecc. con the
# Indirizzo MAC del dongle USB
SUBSYSTEM==”net”, ACTION==”add”, ATTR{address}==”yy:yy:yy:yy:yy:yy”, NAME=”wlan1″[/sourcecode]
Assicurati che l’indirizzo MAC dell’interfaccia WiFi integrata corrisponda a wlan0 e il WiFi USB a wlan1 poiché questa è la convenzione che stiamo seguendo in questa guida.
4. Riavvia il tuo Raspberry Pi. Le tue interfacce inizieranno ora con il nome corretto.
Reimpostazione 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 pensi di aver incasinato la configurazione del firewall, esegui i seguenti comandi per ricominciare da capo:
sudo iptables --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain
Questo eliminerà tutta la 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 dei contenuti
Questo è tutto per trasformare il tuo Raspberry Pi in un potente router più un proxy per il filtro dei contenuti. Puoi ottenere i file di configurazione esatti che abbiamo utilizzato per la nostra configurazione sulla nostra pagina GitHub. Facci sapere come funziona per te. Se qualcosa non funziona come previsto o un passaggio sembra troppo confuso, sentiti libero di farci una domanda nella sezione commenti qui sotto.