Hai preparato il tuo fantastico Raspberry Pi, installato di tutto: un server web , una VPN, il filtro anti pubblicità Pihole ed un gestore di download ma tutto viene inesorabilmente relegato alla tua rete interna, mentre nell’ internet of things tutto deve essere online e raggiungibile da qualsiasi dispositivo autorizzato.
Tra la rete interna ed internet di norma c’è un dispositivo con la funzione di firewall con lo scopo di proteggerci dagli attacchi esterni, filtrando il traffico dall’esterno all’interno e viceversa.
Per fare ciò, si fanno passare i dati attraverso delle porte virtuali ben precise, nei router, il menù di gestione può venir chiamato port forwarding, virtual server o NAT, in esso va sempre precisato l’indirizzo interno di destinazione, la porta utilizzata e il protocollo tra TCP e UDP.
Per esempio avendo il Raspberry Pi con un server web, che di norma usa la port 80, sarà necessario istruire il router affinchè il traffico dati proveniente dall’esterno attraverso la porta 80 col protocollo TCP, venga correttamente inoltrato all’indirizzo interno del Raspberry Pi, il quale deve essere fisso.
I metodi sono due: quello manuale, cioè entrare nel pannello di controllo del router / firewall e a mano configurare tutti i dati, oppure in alternativa, visto che spesso non si ha accesso al router perché il gestore non fornisce la password, si può usare il sistema chiamato UPNP che tramite un solo comando configura il tutto molto semplicemente e senza avere la password del router, l’unico requisito è che nel router sia abilitato il flag sulla voce , abilita UPNP.
In questo link c’è un approfondimento su UPNP per chi ne fosse interessato.
Preparazione del Raspberry Pi:
Per iniziare è necessario che il nostro Raspberry Pi abbia sempre lo stesso indirizzo ip, per fare ciò va modificato il file di configurazione tramite il comando seguente, impartito dal terminale del Raspberry
1 2 |
sudo su nano /etc/network/interfaces |
modifica la parte della scheda, di norma si chiama eth0, in questo modo (questi dati sono un esempio)
1 2 3 4 5 |
iface eth0 inet static address 192.168.1.200 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 195.238.1.1 8.8.8.8 |
per renderle attive le modifiche riavvia la scheda di rete con
1 |
ifdown -a ; ifup -a |
Spiegazione delle voci:
address: indirizzo interno del Raspberry Pi
netmask: la maschera di sotto rete, di solito è 255.255.255.0
gateway: l’ip del router/firewall
dns-nameservers : [ip del router] ed il server di google 8.8.8.8 , necessari a convertire i nomi dei siti o pc in indirizzi ip
Software:
Ora è necessario installare il software miniupnpc che penserà a configurare il router
1 2 |
apt-get update; apt-get upgrade -y apt-get install miniupnpc -y |
Finita l’installazione, verifichiamo che il router abbia la funzione UPNP abilitata, usando il comando
1 |
upnpc -S |
il quale elencherà i server UPNP in rete
1 |
Found valid IGD : http://192.168.1.1:2869/ctl/IPConn |
Ora che è tutto pronto, sarà sufficente aprire la porta ed inoltrarne il traffico dall’esterno verso l’ip del Raspberry Pi con il comando
1 |
upnpc -a [ip_RaspberryPi] 80 80 TCP |
mentre per eliminare la regola si userà
1 |
upnpc -d 80 TCP |
Per i comandi completi è sufficente eseguire
1 |
man upnpc |
Link utili
Note
Se si scegliesse la configurazione manuale, la maggior parte dei router domestici ha il pannello di gestione raggiungibile a questo indirizzo 192.168.1.1 con utente: admin e password: admin , in alternativa per trovare l’ip del router, è sufficente impostare su un pc o Raspberry Pi l’ip automatico (DHCP) e poi leggere il valore chiamato gateway.
Se vuoi restare aggiornato seguici sui nostri social: Facebook , Twitter, YouTube, Google+, Telegram