Collegare un Dominio (GoogleDomains) a Raspberry Pi web server utilizzando un DDNS
Cercando su google ho trovato molte guide ma poche mi sono state di aiuto per questa problamatica.
Con questo articolo cercherò di rendere più semplice la configurazione per attivare questo servizio.
Per prima cosa sarà necessario disporre di un proprio domino, se cosi non fosse è possibile acquistarlo direttamente dalla pagina GoogleDomain al costo di 12€ l’anno.
Inoltre sarà necessario di disporre di un Raspberry Pi e configurarlo come web server. Precedentemente ho scritto un articolo su come installare e configurare WordPress su Raspberry Pi (non è necessario WordPress ma questo ci semplificherà nella creazione e gestione del sito).
Una volta acquistato il dominio e configurto il nostro Raspberry Pi possiamo procedere con la guida.
Apertura delle porte TCP 80 e 443 sul nostro Router
Per rendere accessibile il nostro sito web dall’esterno della nostra rete è necessario aprire le porte TCP 80 e TCP 443 sul nostro router e reindirizzarle sul nostro Raspberry Pi.
Ogni router ha delle schermate diverse (a seconda di marca e modello) ma in linea di massima basterà aprire un browser web e accedere al router. In genere il nostro router ha l’indirizzo IP 192.168.1.1 . Una volta inserito l’IP ci verranno chieste le credenziali di accesso. Anche qui in genere le credenziali di default dovrebbero essere “admin” “admin” ma questo varia da router a router. Una volta eseguito l’accesso cerchiamo la sezione di port forwarding, in genere basterà creare una nuova regola dove ci viene chiesto quale protocollo utilizzare (TCP o UDP, nel nostro caso TCP) qual’è la porta esterna da aprire (80 e 443),qual’è la porta interna (sempre 80 e 443) e il dispositivo di destinazione (il nostro Raspberry Pi) selezionabile o tramite indirizzo IP o tramite nome o tramite MAC Address (per rendere più facile e duratura la configurazione consiglio il MAC address considerando che se sposterete il web server su un nuovo Raspberry Pi andrà riconfigurato con il MAC address del nuovo dispositivo).
Mappatura del dominio su GoogleDomains con il nostro Raspberry Pi
Nel 90% dei casi il nostro abbonamento internet non dispone di un indirizzo IP statico. Se fosse così, ogni qualvolta che il nostro provider di servizi internet ci cambia l’indirizzo ci impedirà di accedere dall’esterno al nostro sito web. Per raggirare questo problema è possibile configurare il nostro Raspberry Pi a inoltrare il nuovo IP al dominio di google.
Il primo passaggio per abilitare questo inoltro è quello di accedere alla pagina https://domains.google clicchiamo sul burger munù sulla sinistra successivamente clicchiamo su “i miei domini” e a questo punto su gestisci.
Nel menù di sinistra clicchiamo su DNS, ora nella sezione Server dei nomi lasciamo flaggato Utilizza i server dei nomi di Google Domains.
Scorrendo la pagina arriviamo alla sezione Record sintetici e clicchiamo nel menù a tendina subito sotto e selezioniamo DNS dinamico, nel campo sottodominio digitiamo www e clicchiamo sul tasto aggiungi.
Ora dovrebbe apparire una nuova sezione all’interno di Record Sintetici, allarghiamola e dovrebbe comparirci un riquadro contenete un Nome utente e una password (a questo punto basterà premere su Visualizza credenziali subito sotto) e prendiamo nota di queste credenziali.
Creazione dello script per allineare il nostro dominio al nostro ip
A questo punto dobbiamo creare uno script nel nostro Raspberry che utilizzando queste credenziali potrà aggiornare dinamicamente il nostro dominio con il nostro eventuale nuovo IP esterno, quindi accediamo via SSH al nostro Raspberry Pi (se siamo in ambiante windows ci servirà un’applicazione chiamata Putty o se siamo in ambinte OS X potremmo utilizzare il terminale. Una volta eseguitol’accesso in SSH digitiamo:
sudo nano dns_update_script.sh
wget https://nomeutenteDNSsintetico:passwordDNSsintetico@domains.google.com/nic/update?hostname=www.nostrodominio.com -O dns_update_results.txt
echo " Last run `date`" >> dns_update_results.txt
ora digitiamo ctrl+x
per uscire e alla richiesta di salvare digitiamo y
a questo punto dobbiamo abilitare i permessi dello script per l’utente pi quindi digiteremo:
sudo chmod +x dns_update_script.sh
ora per eseguirlo possiamo digitare:
./dns_update_script.sh
Per visualizzare l’esito dello script, ci basterà leggere il file dns_update_results.txt per fare ciò digitiamo:
cat dns_update_results.txt
se troveremo la parola good vuol dire che il tutto è andato a buon fine e google è stato aggiornato con il nostro attuale indirizzo IP.
Come dicevo prima, il nostro IP cambierà nel tempo, per cui ora dobbiamo fa ripetere questo scrip periodicamente.
Fortunatamente all’interno del nostro Raspberry Pi è presente un’applicazione chiamata crontab attraverso la quale è possibile schedulare l’esecuzione di ogni singola cosa, per cui digitiamo:
crontab -e
al primo avvio ci verrà chiesto con quale editor preferiamo modificare questo file, digitaiamo 2
se volessimo utilizzare nano
.
Ora scorriamo in fondo al file e aggiungiamo la seguente riga:
0 * * * * /home/pi/dns_update_script.sh
con questa linea gli viene detto di eseguire lo script dns_update_script.sh ogni ora.
Ora chidiamo cronta premendo ctrl+x
e alla richiesta di salvataggio digitiamo y
Di seguito uno dei video che ho trovato che spiega al meglio questa guida