Project Ryuko, nasce dalla necessità di fornire molti servizi locali e remoti tramite docker.
Il problema della maggior parte dei progetti casalinghi è che il gestore Adsl, non fornisce un ip pubblico statico.
L'ip pubblico è l'equivalente del numero di telefono, serve a rendere raggiungibile il tuo modem in modo univoco a livello mondiale.
Il tuo lo troverai aprendo il sito https://ifconfig.me/ oppure da console tramite il comando linux o powershell.
curl https://ifconfig.me/
L'ip pubblico statico è prerogativa delle aziende, le quali di solito hanno sistemi d'allarme, telecamere, server, ecc.. da gestire in remoto. I pezzenti a casa non fanno niente di interessante secondo i provider internet.
E qui li freghiamo...
Partiamo dal desiderio di avere tutti i nostri servizi, ad esempio nextcloud, con un bel certificato ssl e la possibilità di usare il nostro nome di dominio acquistato dal bambino cinese dietro un vicolo buio la notte di san silvestro.
Abbiamo un dominio, ad esempio mondiali-2022.it con il suo bel gestore di dns, io ad esempio uso Aruba perché essendo un hobby, la loro pessima qualità si compensa con il loro costo.
A casa abbiamo il nostro bel router adsl, che adora cambiare ip pubblico ogni volta che salta la corrente. Ed il nostro turbo server docker hyper power now 🔥 .
Il trucco è questo:
- Installiamo nel server duckdns il quale aggiornerà il record dns creato durante la registrazione. Tipo modiali2020.duckdns.org
- Tramite la gestione dei dns del dominio web, creiamo un record CNAME che punti a duckdns
Dns dinamico tramite DuckDns
Dopo anni a cercare un servizio di dns dinamico gratuito, finalmente ho trovato ed usato da anni, duckdns.
DuckDns, è veramente gratuito, chiede una onesta offerta.
La registrazione è molto semplice, basterà scegliere il metodo di autenticazione preferito, anche se il mio preferito è google o github.
Dopo il login, potremmo creare gratuitamente, ben cinque nomi host.
Il nome host è solo una parola univoca prima di duckdns.org
Successivamente cliccando in alto sul menù install, ci verrà chiesto di selezionare il sistema operativo su cui installeremo il client per aggiornare il ddns, cliccando anche il nome host.
Il fatto di scegliere il nome host, ci fornirà una pratica guida copia/incolla facilissima per avere il nostro client installabile.
Il compito del client duckdns è aggiornare la voce nomehost.duckdns.org ogni volta che il nostro router adsl decide di cambiarlo. Potremmo usarlo su vari sistemi contemporaneamente, magari sul pc desktop e sul server.
Una volta fatto, eseguendo il comando
ping nomeHostScelto.duckdns.org
risponderà sempre l'ip pubblico del nostro router fibra.
Come fare per usare invece nome.ilNostroDominio.it
Redirect dns verso duckdns
Andiamo del pannello di gestione dns del nostro gestore di dominio. Nel mio caso aruba.
In Home Page da "Record CNAME" cliccare su "Gestisci";
Per aggiungere un Record CNAME:
- Accedere al Pannello di Gestione DNS;
- In Home Page da "Record CNAME" cliccare su "Gestisci";
- Su "Aggiungi Record CNAME", inserire il nome del server richiesto come Name Server all'interno del campo "nextcloud" (per le caratteristiche che deve avere il nome Host visionare la guida dedicata);
- Inserire il nome Host al quale puntare hostScelto.duckdns.org , all'interno del campo "Nome CNAME";
- Cliccare su "Aggiungi";
- Il record inserito è visibile su pannello. Spuntare "Prosegui" in fondo alla pagina:
- Dalla pagina principale del Pannello di Gestione DNS cliccare su "Salva Configurazione", quindi su "Conferma" alla finestra visualizzata per concludere l'operazione.
L'esecuzione comporta dei tempi tecnici di attivazione, in base alla propagazione del DNS, che si aggirano intorno alle 24/48 ore.
Dopo la propagazione dei dns a livello mondiale, aprire il sito https://nostroServer.duckdns.org o htttps://nostroServer.NostroDominio.it sarà la stessa cosa, e funzionerà anche se il nostro internet provider ci cambierà l' ip pubblico.
Usare un nome completo fqdn porta un importante vantaggio, il poter sfruttare bene i certificati ssl, oltre alla comodità di un nome facile da ricordare ed anche con un impatto reputazionale migliore.
La sfida successiva al project Ryuko, è stata trovare un servizio docker facile e veloce per sfruttare molti siti tramite un unica porta web, il sistema di chiama Reverse Proxy e si può fare in vari modi.
Di default quando apri una pagina web https, stai contattando il server sulla porta 443 che verrà reindirizzata (port forwarding) dal router o firewall verso il server o indirizzo prestabilito.
Per le pagine web http sarà la porta 80, ma evitiamola perché è sempre bene avere il traffico crittografato, grazie letsencrypt e certbot .
Ce la farò ad attivare un servizio docker di reverse proxy facile facile ? Ci vediamo a prossimo post...