Hosting del proprio sito in NAS domestico

La stessa curiosità e passione, nonché desiderio di indipendenza e autonomia, che mi ha portato a costruirmi da solo la mia bike, mi ha portato anche a voler posizionare il mio sito in un server casalingo anziché presso un hosting commerciale.
Mi sono dovuto perciò confrontare con IP statici o dinamici, DNS o DNSS, porte di accesso, Web server, configurazione router... e ne sono uscito dopo diversi giorni di letture ed esperimenti.
Perciò, se può essere utile a qualcuno, riporto qui questa mia esperienza.

PRE-REQUISITI

Ovviamente è necessario anzitutto avere a casa un PC dove installare la funzionalità di Web server e posizionare il proprio sito.
Si può fare con qualsiasi PC, ma se si vuole puntare su un risultato affidabile, un server sicuro dal punto di vista hardware e software, è bene puntare su un NAS che abbia anche la funzionalità di WebServer.
Io avevo comperato da più di un anno un NAS della Qnap che ho usato per il backup dei miei file più importanti (documenti e fotografie), poi per scaricare un po' di film ed ora per questa simpatica sfida nel mondo dei siti Web.

Altro requisito è disporre di una linea Internet capace, con un router sufficientemente configurabile. Con Tim Fibra non ho avuto problemi di sorta, credo che anche con altri gestori e relativi router problemi non ce ne siano, anzi per chi ha Fibra le cose vanno anche meglio perché mi risulta che questo gestore assegni un IP statico ai propri utenti. Eventualmente un utile riferimento di configurazione router è QUI.

E' necessario poi registrarsi presso un provider che consenta queste due funzionalità:
1) registrazione del dominio
2) associazione del dominio all'indirizzo IP dinamico del proprio Webserver (che si trova nel NAS)

Spiego meglio il secondo punto, perché mi è rimasto oscuro per parecchio tempo.
I provider come Aruba, Host.it, etc. hanno un indirizzo IP pubblico STATICO che resta sempre lo stesso e quindi tutte le interrogazioni alla ricerca di un determinato sito presso di loro, fatto tramite i vari browser, fanno il percorso logico: nome_sito.it --> numero IP ---> provider depositario di quell'indirizzo ---> server host del sito ---> pagina del sito richiesta.
Il problema per un privato è che molto speso non dispone di un IP statico, ma DINAMICO, cioè il numero IP cambia tutte le volte che il proprio gestore della linea lo decide, quindi anche nel corso di una stessa giornata. Per far sì che i DNS (domain name server = i server che associano il dominio dei siti ai loro specifici indirizzi IP) possano fare l'associazione necessaria anche per quei siti che si trovano su server con un IP dinamico, è necessario appoggiarsi ad un gestore che "ascolti" costantemente il nostro router, verificando l'indirizzo IP in un dato momento e lo associ al dominio del nostro sito, cambiando automaticamente il numero di IP quando necessario.

Ora il problema è che questo servizio di associazione dinamica al nostro IP, appunto, dinamico, non è fornito dai classici provider come Aruba, ma è fornito da altri provider quali ad esempio DynDNS e No-IP. Quindi sarà necessario registrarsi presso uno di questi provider per associare il dominio del nostro sito all'indirizzo IP dinamico del nostro router/NAS/WebServer.
Il guaio è che questi provider forniscono un dominio di secondo livello e, pertanto, il mio sito sarebbe apparso (con DynDNS) come pedalelibero.ns0.it o (con No-IP) come pedalelibero.hopto.org o similare... decisamente poco professionale!

Forse esistono provider che associano il proprio IP dinamico al nome del dominio (di primo livello) del loro cliente, ma dalle mie ricerche mi risultava una spesa maggiore di quella che già sostenevo per fare direttamente l'hosting di tutto il sito presso il provider precedente.

Pertanto il prerequisito sopra richiamato diventa:
1) registrazione del dominio presso un primo provider (tipo Aruba)
2) impostazione di un reinvio dal provider del dominio ad un provider di gestione dell'IP dinamico (tipo DynDNS)
3) registrazione e associazione tra il provider di gestione IP dinamico e proprio router/NAS/WebServer (operazione da fare nel proprio router)

Lo so, è piuttosto oscuro, ma ora vediamo come fare nel dettaglio.

Teniamo presente questa catena illustrata nell'immagine:

Hosting su NAS con IP dinamico 

Partiamo dalla fine e vediamo come configurare il NAS per poi risalire verso il gestore del dominio.

 

CONFIGURAZIONE DEL NAS

Parto dal presupposto che il vostro sito sia già caricato nel WebServer del NAS e perfettamente funzionante. Fino a questo momento possiamo consultarlo e gestirlo tramite la nostra rete locale, ad esempio chiamando l'indirizzo IP di rete locale (!!) del nostro NAS così: 192.168.1.2:80
Se il sito è in una sottocartella della directory del WebServer del Nas, basterà naturalmente richiamarlo con 192.168.1.2:80/NomeSottocartella.
Se per ora vi bastava avere un sito per la vostra consultazione dalla rete interna, tutto questo dovrebbe essere già collaudato e funzionante. Ma ora volete che il vostro sito sia visibile dall'esterno e.... bisogna iniziare ad aprire qualche porta per lasciar passare gli ospiti!

Nelle impostazioni del NAS è necessario:

attivare il WebServer (consigliabile tramite le porte standard 80 e 8081 per la connessione sicura https)

Attivazione Web Server

creare un virtual-Host (non è necessario, ma è opportuno per fare ordine nel caso volessimo ospitare più siti, anche solo privati per nostro uso, nel nostro NAS)

Host virtuale

Ora che il NAS è pronto risaliamo nella nostra catena e passiamo a configurare il router.

 

CONFIGURAZIONE DEL ROUTER

Molti router sono predisposti per richiamare i servizi di IP dinamici offerti dai vari provider.
Il mio (della TIM Fibra) aveva questa funzionalità nelle impostazioni / ....... che vanno così settate:

Configurarioze router-DynDNS

Dove nei campi Username e Password andranno impostate le credenziali con cui ci saremo registrati in DynDNS. Praticamente con questa impostazione si sta dicendo al router di inviare periodicamente (ogni volta che il gestore, la TIM, cambia il numero IP pubblico a me assegnato) il numero IP dinamico alla DynDNS che provvederà ad associarlo all'indirizzo pedalelibero.ns0.it.

Un'altra impostazione necessaria da fare sul router è il forwording della porte di comunicazione.
Quando arriva una richiesta alla porta 80 del router (quella di default su cui viaggiano le comunicazioni dei siti web, si può fissare anche un altro numero di porta, ma non conviene perché poi il sito sarebbe raggiungibile solo da coloro che conoscono quello specifico numero), il router la deve inoltrare alla nostra rete interna, quindi ai vari PC o periferiche di rete che abbiamo in casa. Ma noi dobbiamo far sì che quella richiesta vada alla porta (interna) del NAS, ovvero alla porta 80 del NAS, quella che riceve le richieste relative al WebServer.

 Port mapping

Poiché qui il NAS è chiamato con l'indirizzo IP interno della rete LAN, è necessario far sì che il NAS abbia sempre quel numero, quindi, sempre nelle impostazioni del router, è necessario che all'accensione dei vari apparati (anche del router stesso, se manca la corrente o lo resettiamo) uno specifico numero sia sempre assegnato (prenotato) per il NAS. Così facendo le impostazioni che facciamo a valle con quel numero, saranno sempre corrette.

Prenota IP NAS

Volete fare una prova se queste impostazioni sono a posto?
Verificate qual è il vostro attuale numero IP (pubblico e dinamico!) del router, o spulciando tra le finestre del router, o semplicemente utilizzando il sito www.indirizzo-ip.com e poi, nella barra di uno smartphone collegato ad internet tramite propria scheda (non alla rete Wifi di casa, così sarete veramente sicuri che funziona la chiamata esterna al vostro sito), digitate

http://xx.xx.xxx.xxx:80/NomeSottocartella/

dove xx.xx.xxx.xxx è il numero IP pubblico del vostro router (in questo momento... finché il gestore non ve lo cambia!)
:80 specifica su quale porta viaggia l'interrogazione Web. Si può omettere perché 80 è lo standard, se invece avete specificato un numero diverso nel NAS e nel router forwording è necessario specificare quel numero esatto;
/NomeSottocartella/ è la cartella (del WebServer nel NAS) dove avete salvato il vostro sito.

Funziona tutto? Bene possiamo passare ai settaggi successivi!

 

CONFIGURAZIONE GESTORE IP DINAMICO

Con DynDNS, dopo essersi registrati, è sufficiente creare un host selezionando il nostro operatore telefonico, il nome del sito (di secondo livello), e l'estensione che desideriamo per il primo livello scegliendolo dal menu a tendina tra ns0, homePC, etc.

Configurazione DynDNS 

 Atteso qualche minuto, dopo il salvataggio, per vedere se ora il nostro sito si può chiamare dall'esterno anziché con un astruso numero IP (per di più soggetto a cambiamenti nel tempo non dipendenti da noi), lo possiamo chiamare dal nostro smartphone digitando:

pedalelibero.ns0.it

Funziona ancora tutto?
Bene, ora il nostro sito è raggiungibile da chiunque e possiamo già pubblicizzare il suo indirizzo mnemonico ad amici e conoscenti, o metterlo nella coda di firma delle nostre mail!

Però quel .ns0, un po' rode, vero? vogliamo registrare il nostro dominio, in modo che sia solo nostro e che nessuno lo possa utilizzare con altre estensioni? (ad esempio qualcuno potrebbe registrare tranquillamente il sito miodominio.hopto.org su No-IP.... per carità, lo potrà sempre fare anche dopo, ma solo noi saremo i legittimi proprietari del sito di primo livello miodominio.it!).
Peggio ancora se abbiamo già registrato da tempo il dominio miodominio.it ed è diventato un sito molto ricercato dagli utenti. In questo caso l'abbinamento per renderlo raggiungibile dall'indirizzo di secondo livello è assolutamente necessario.

Vediamo quindi l'ultimo passaggio del settaggio che dobbiamo fare.

 

CONFIGURAZIONE GESTORE DI DOMINIO

Registriamoci al relativo sito e paghiamo la registrazione del nostro dominio presso un gestore tipo Aruba, Infocert, Host.it, Register.it etc.

Io dopo anni di Host.it, pur trovandomi benissimo, sono passato ad Aruba per ridurre i costi e per la voglia di sperimentare questa esperienza di tenere il sito presso il mio NAS, in quanto per Aruba avevo trovato dei tutorial che spiegavano bene quanto vi sto per illustrare ora.

Ottenuta la registrazione del sito, nel pannello di configurazione del DNS del nostro provider, non dobbiamo far altro che associare le chiamate al nostro dominio al dominio di secondo livello. Nel mio caso da pedalelibero.it a pedalelibero.ns0.it.
Questa associazione si fa con la funzione CNAME che, per Aruba, si configura così:

 Configurazione CNAME

Per ottenere questo risultato, dalla gestione DNS è necessario cancellare o disattivare tutti i puntamenti delle chiamate del dominio pedalelibero.it ai vari server (identificati con i numeri IP del gestore) presenti nella funzione A.
Nella funzione CNAME è invece necessario impostare

sia        pedalelibero.it CNAME pedalelibero.ns0.it


che       www.pedalelibero.it CNAME pedalelibero.ns0.it

in modo tale che sia che gli utenti cerchino il nostro sito, nella loro barra di ricerca, senza il classico www che con il www, la loro richiesta del nostro dominio di primo livello venga trattata come alias del dominio di secondo livello e trasformata (tramite la funzione CNAME) in pedalelibero.ns0.it.

(NB: nella figura Aruba al salvataggio del CNAME toglie le lettere "pedalelibero.it" dal Nome host in quanto le dà per sottintese, ma nell'impostazione bisogna scrivere come vi ho riportato)

A questo punto le chiamate al sito (di primo livello!) miodominio.it, pur facendo un giro un po' tortuoso, dovrebbero raggiungere sempre il nostro NAS.... se il sito avrà successo la nostra rete casalinga avrà un po' di traffico internet da gestire, ma ci darà delle grandi soddisfazioni.

Mi raccomando: come per la mountain bike vale il consiglio "casco sempre in testa e ben allacciato", qui, nel mondo di internet, è necessario ricordare che "fireware e antivirus del router e del NAS sempre attivi ed aggiornati"... e sperando che basti a tenere lontano gli hacker!

Buon divertimento!

La possibilità di inserire commenti è momentaneamente sospesa.