DNS dinamici: come ottenerli e configurarli: differenze tra le versioni
Wtf (discussione | contributi) mNessun oggetto della modifica |
m (Estesa a googledns) |
||
(17 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili}} | {{Versioni compatibili|Squeeze|Wheezy|Jessie|Stretch|Buster}}{{Gateway-Router}} | ||
== Introduzione == | == Introduzione == | ||
Sottoscrivere un servizio di DNS dinamico risulta molto utile per coloro i quali desiderano rendere raggiungibile uno o più computer da internet, perché per esempio hanno installato un webserver come apache o perché vogliono monitorare da remoto un programma di file sharing, ecc. | Sottoscrivere un servizio di DNS dinamico risulta molto utile per coloro i quali desiderano rendere raggiungibile uno o più computer da internet, perché per esempio hanno installato un webserver come apache o perché vogliono monitorare da remoto un programma di file sharing, ecc. | ||
Come noto un servizio DNS permette di associare ad un indirizzo IP un nome o alias o [ | Come noto un servizio DNS permette di associare ad un indirizzo IP un nome o [[alias]] o [[FQDN]], ovvero permette di accedere alle varie pagine di un sito web digitandone il nome invece che un numero IP.<BR> | ||
Nel caso di IP statici quest'associazione può evidentemente essere fatta un'unica volta, viceversa deve essere ripetuta ad ogni cambio di IP nel caso di assegnazione dinamica dal proprio ISP. Quest'ultimo è il caso tipico di utenti domestici e piccole imprese/uffici, ai quali tra l'altro non viene automaticamente assegnato un | Nel caso di IP statici quest'associazione può evidentemente essere fatta un'unica volta, viceversa deve essere ripetuta ad ogni cambio di IP nel caso di assegnazione dinamica dal proprio ISP. Quest'ultimo è il caso tipico di utenti domestici e piccole imprese/uffici, ai quali tra l'altro non viene automaticamente assegnato un FQDN.<BR> | ||
Tutto ciò implica che tali utenti non possono sperare di connettersi sempre con successo alla propria macchina usando l'indirizzo IP associatogli in un certo momento, poiché questo è destinato prima poi a cambiare. Associando invece un | Tutto ciò implica che tali utenti non possono sperare di connettersi sempre con successo alla propria macchina usando l'indirizzo IP associatogli in un certo momento, poiché questo è destinato prima poi a cambiare. Associando invece un FQDN ad una macchina o LAN ed installando un apposito applicativo (o possedendo un router adeguato) che tenga traccia delle variazioni di IP è possibile collegarsi alla propria macchina/LAN digitando sempre lo stesso FQDN.<BR> | ||
Esistono società che offrono gratuitamente, previa registrazione sempre gratuita, a chiunque la possibilità di dotarsi di un proprio | Esistono società che offrono gratuitamente, previa registrazione sempre gratuita, a chiunque la possibilità di dotarsi di un proprio FQDN (in genere la prima parte del dominio è fissa, l'utente può scegliere solo l'ultima parte), come ad esempio dyndns<sup>[[#Collegamenti esterni| [1]]]</sup>. | ||
In genere la soluzione che preveda l'utilizzo di un router per l'aggiornamento dell' | In genere la soluzione che preveda l'utilizzo di un router per l'aggiornamento dell'IP è sconsigliata, poiché non è garantito che la funzione integrata in un router rimanga compatibile nel tempo col servizio offerto dalle varie società. | ||
== ddclient == | == ddclient == | ||
Uno degli applicativi atti ad ottenere quanto descritto nell'introduzione è <code>ddclient</code>; naturalmente ai fini di questa guida si assume che il lettore abbia sottoscritto un servizio compatibile con questo programma. Una volta che l'utente si è registrato ed ha ottenuto un proprio | Uno degli applicativi atti ad ottenere quanto descritto nell'introduzione è <code>ddclient</code>; naturalmente ai fini di questa guida si assume che il lettore abbia sottoscritto un servizio compatibile con questo programma. Una volta che l'utente si è registrato ed ha ottenuto un proprio FQDN può procedere all'installazione del programma, disponibile da repository:<BR> | ||
<pre># apt-get install ddclient</pre> | <pre># apt-get install ddclient</pre> | ||
Nel caso di LAN evidentemente si sceglierà per l'installazione del programma la macchina che rimane accesa più spesso e/o a lungo. Si noti che detto programma non determina l'accessibilità della macchina o della LAN dall'esterno, aspetto che dipende da una corretta configurazione del proprio router/modem, ma come già scritto garantisce solo che i dati inviati dall'esterno ed indirizzati al proprio | Nel caso di LAN evidentemente si sceglierà per l'installazione del programma la macchina che rimane accesa più spesso e/o a lungo. Si noti che detto programma non determina l'accessibilità della macchina o della LAN dall'esterno, aspetto che dipende da una corretta configurazione del proprio router/modem, ma come già scritto garantisce solo che i dati inviati dall'esterno ed indirizzati al proprio FQDN raggiungano effettivamente il nostro modem/router, cui saranno collegati una o più macchine.<BR> | ||
Durante l'installazione verranno chiesti i nomi registrati, l'utenza e la password del servizio sottoscritto, tutti parametri necessari al programma per contattare il fornitore di servizi e mantenere aggiornato l' | Durante l'installazione verranno chiesti i nomi registrati, l'utenza e la password del servizio sottoscritto, tutti parametri necessari al programma per contattare il fornitore di servizi e mantenere aggiornato l'IP associato all'alias. | ||
{{Box|Client configurator|Nel caso si sia sottoscritto il servizio offerto da dyndns<sup>[[#Collegamenti esterni| [1]]]</sup> è possibile generare automaticamente un'apposita configurazione da inserire nel file <code>ddclient.conf</code> a quest'indirizzo<sup>[[#Collegamenti esterni| [3]]]</sup>.}} | |||
A prescindere dal servizio sottoscritto <code>ddclient</code> risulta già funzionante al termine dell'installazione e già configurato per l'avvio automatico al boot di sistema. Per il suo funzionamento non è necessario aprire alcuna porta aggiuntiva sul proprio modem/router.<BR> | A prescindere dal servizio sottoscritto <code>ddclient</code> risulta già funzionante al termine dell'installazione e già configurato per l'avvio automatico al boot di sistema. Per il suo funzionamento non è necessario aprire alcuna porta aggiuntiva sul proprio modem/router.<BR> | ||
È possibile testare il funzionamento di <code>ddclient</code> digitando da terminale: | È possibile testare il funzionamento di <code>ddclient</code> digitando da terminale: | ||
<pre># ddclient -daemon=0 -debug -verbose -noquiet</pre> | <pre># ddclient -daemon=0 -debug -verbose -noquiet</pre> | ||
Qualora si volesse abilitare la crittografia | Qualora si volesse abilitare la crittografia SSL sulle comunicazioni è sufficiente aggiungere la riga: | ||
<pre>ssl=yes</pre> | |||
al file <code>ddclient.conf</code> ed assicurarsi di avere installato <code>ssh</code> e <code>libio-socket-ssl-perl</code>. | |||
=== /etc/default/ddclient === | |||
Se si desidera far girare il servizio come [[demone]] è necessario editare il file <code>/etc/default/ddclient</code> cambiando due variabili come indicato qui di seguito: | |||
<pre> | |||
run_ipup="false" | |||
run_daemon="true" | |||
</pre> | |||
=== Esempio /etc/ddclient.conf generico === | |||
<pre> | |||
daemon=300 # Controlla ogni 300 secondi (o 5 minuti). | |||
syslog=yes # Scrivi log in syslog. | |||
mail=root # Invia tutti i messaggi a root | |||
mail-failure=root | |||
pid=/var/run/ddclient.pid # Registra PID in un file. | |||
ssl=yes # Usa ssl-support, richiede ssl-library. | |||
# Usa direttamente l'IP associato all'interfaccia che comunica col provider internet, per esempio ppp0 | |||
#use=if, if=ppp0 | |||
# oppure contatta un server esterno (cambiare "indirizzo_web" con quello fornito dal proprio DNS provider) | |||
use=web, web=indirizzo_web/, web-skip='IP Address' # Indirizzo del server da cui prendere il proprio IP pubblico | |||
# oppure ancora usa uno script dedicato che restituisce un IP formattato correttamente (es.: 104.15.7.189) | |||
#use=cmd, cmd=/percorso/script/nome_script.sh | |||
# IP del server che aggiorna i DNS (cambiare "indirizzo_server" con quello fornito dal proprio DNS provider) | |||
server=indirizzo_server | |||
protocol=dyndns2 | |||
login=nome_utente # Nome utente | |||
password=password_servizio # Password in chiaro o password "in formato" MD5 | |||
# Elencare i FQDN da aggiornare (cioè che puntano alla macchina dove è in esecusione ddclient), uno per riga | |||
dominio1 | |||
dominio2 | |||
... | |||
</pre> | |||
=== Esempio /etc/ddclient.conf per domains.google.com === | |||
Dopo aver effettuato le modifiche al file /etc/default/ddclient come indicato sopra è sufficiente sostituire il file /etc/ddclient.conf con quanto segue | |||
<pre> | |||
ssl=yes | |||
use=web | |||
protocol=googledomains | |||
login=LOGIN_TOKEN | |||
password=PASSWORD | |||
iltuodominio | |||
</pre> | |||
Dove LOGIN_TOKEN è il "Nome utente" generato nell'interfaccia di [https://domains.google.com google domain] andando sul proprio sito => DNS => DNS dinamico. Mentre PASSWORD è la password generata nella medesima interfaccia. | |||
Inoltre iltuodominio va sostituito con il nome del dominio che si sta gestendo. | |||
A questo punto per rendere effettive le modifiche è possibile riavviare il servizio ddclient con | |||
<pre>service ddclient restart</pre> | |||
Per testare che la configurazione sia corretta si può lanciare manualmente | |||
<pre>ddclient -query</pre> | |||
=== Esempi di script per estrarre l'IP pubblico dal router === | |||
==== Fritz!Box ==== | |||
Quello che segue è un esempio di script per interrogare il proprio router e ottenere l'IP pubblico associato alla sua WAN. | |||
<pre> | |||
#!/bin/bash | |||
# | |||
# Script to fetch external IP from Fritz!Box router, it can be used in the | |||
# configuration of ddclient by adding | |||
# | |||
# use=cmd, cmd=/path/to/script/nome_script.sh | |||
# | |||
# Since you need to declare both a username and password in this script, | |||
# restrict file permissions to "600". | |||
# Do not forget to: | |||
# * make this script executable; | |||
# * make sure that both "TR-064" and "UPnP" protocols are enabled in the router; | |||
# "Network --> Network settings --> Access Settings in the Home Network". | |||
# * create a dedicated user on the fritzbox router | |||
# "System --> Fritz!Box users". | |||
# You can substitute your actual router LAN IP to "http://fritz.box" if necessary. | |||
# | |||
curl --anyauth --user nome_utente:password_utente http://fritz.box:49000/upnp/control/wanpppconn1 -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:WANPPPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u='urn:dslforum-org:service:WANPPPConnection:1'></u:GetExternalIPAddress> </s:Body> </s:Envelope>" | sed -n -e 's#^.*<NewExternalIPAddress>\(.*\)</NewExternalIPAddress>.*$#\1#p' | |||
</pre> | |||
'''NOTE''' | |||
* Sostituire nel soprastante script il nome utente e la password creati per permettere al presente script di interrogare il router. Tali credenziali sono ovviamente associate all'utente "nome_utente" che si suppone essere già stato creato con l'apposità funzionalità del router ("Sistema --> Utenti FRITZ!Box"). | |||
* Nel router devono essere spuntate entrambe le seguenti opzioni "Consentire l'accesso alle applicazioni" e "Trasmettere le informazioni di stato tramite UPnP" ("Rete domestica --> Schema rete --> Impostazioni rete") | |||
* Script testato con "''Fritz!Box 7530''" (''Fritz!OS 7.02''). | |||
* Altri script utili per i router Fritz!Box disponibili [https://github.com/elbosso/FritzBoxShell qui] | |||
== | == Approfondimenti == | ||
=== Collegamenti esterni === | |||
[1] [http://www.dyndns.com dyndns home]<br> | |||
[2] [http://dyndns.it/2011/12/configurazione-di-ddclient/ dyndns.it], guida rapida in italiano sul sito ufficiale<br> | |||
[3] [https://help.dyn.com/ddclient/ ddclient], guida sul sito ufficiale con collegamento al client configurator<br> | |||
[4] [https://help.ubuntu.com/community/DynamicDNS DynamicDNS] su Ubuntu | |||
{{Autori | |||
|Autore = [[Utente:Wtf|Wtf]] 22:39, 11 ago 2011 (CEST) | |||
|Estesa_da = | |||
: [[Utente:Marcomg|marcomg]] ([[Discussioni utente:Marcomg|discussioni]]) | |||
|Verificata_da= | |||
: [[Utente:Marcomg|marcomg]] ([[Discussioni utente:Marcomg|discussioni]]) | |||
|Numero_revisori = 2 | |||
}} | |||
[[Categoria:DNS e DHCP]] | [[Categoria:DNS e DHCP]] |
Versione attuale delle 18:20, 14 feb 2021
Versioni Compatibili Debian 6 "squeeze" Debian 7 "wheezy" Debian 8 "jessie" Debian 9 "stretch" Debian 10 "buster" |
Gateway-Router |
Sommario |
Introduzione
Sottoscrivere un servizio di DNS dinamico risulta molto utile per coloro i quali desiderano rendere raggiungibile uno o più computer da internet, perché per esempio hanno installato un webserver come apache o perché vogliono monitorare da remoto un programma di file sharing, ecc.
Come noto un servizio DNS permette di associare ad un indirizzo IP un nome o alias o FQDN, ovvero permette di accedere alle varie pagine di un sito web digitandone il nome invece che un numero IP.
Nel caso di IP statici quest'associazione può evidentemente essere fatta un'unica volta, viceversa deve essere ripetuta ad ogni cambio di IP nel caso di assegnazione dinamica dal proprio ISP. Quest'ultimo è il caso tipico di utenti domestici e piccole imprese/uffici, ai quali tra l'altro non viene automaticamente assegnato un FQDN.
Tutto ciò implica che tali utenti non possono sperare di connettersi sempre con successo alla propria macchina usando l'indirizzo IP associatogli in un certo momento, poiché questo è destinato prima poi a cambiare. Associando invece un FQDN ad una macchina o LAN ed installando un apposito applicativo (o possedendo un router adeguato) che tenga traccia delle variazioni di IP è possibile collegarsi alla propria macchina/LAN digitando sempre lo stesso FQDN.
Esistono società che offrono gratuitamente, previa registrazione sempre gratuita, a chiunque la possibilità di dotarsi di un proprio FQDN (in genere la prima parte del dominio è fissa, l'utente può scegliere solo l'ultima parte), come ad esempio dyndns [1].
In genere la soluzione che preveda l'utilizzo di un router per l'aggiornamento dell'IP è sconsigliata, poiché non è garantito che la funzione integrata in un router rimanga compatibile nel tempo col servizio offerto dalle varie società.
ddclient
Uno degli applicativi atti ad ottenere quanto descritto nell'introduzione è ddclient
; naturalmente ai fini di questa guida si assume che il lettore abbia sottoscritto un servizio compatibile con questo programma. Una volta che l'utente si è registrato ed ha ottenuto un proprio FQDN può procedere all'installazione del programma, disponibile da repository:
# apt-get install ddclient
Nel caso di LAN evidentemente si sceglierà per l'installazione del programma la macchina che rimane accesa più spesso e/o a lungo. Si noti che detto programma non determina l'accessibilità della macchina o della LAN dall'esterno, aspetto che dipende da una corretta configurazione del proprio router/modem, ma come già scritto garantisce solo che i dati inviati dall'esterno ed indirizzati al proprio FQDN raggiungano effettivamente il nostro modem/router, cui saranno collegati una o più macchine.
Durante l'installazione verranno chiesti i nomi registrati, l'utenza e la password del servizio sottoscritto, tutti parametri necessari al programma per contattare il fornitore di servizi e mantenere aggiornato l'IP associato all'alias.
Client configurator Nel caso si sia sottoscritto il servizio offerto da dyndns [1] è possibile generare automaticamente un'apposita configurazione da inserire nel file ddclient.conf a quest'indirizzo [3].
|
A prescindere dal servizio sottoscritto ddclient
risulta già funzionante al termine dell'installazione e già configurato per l'avvio automatico al boot di sistema. Per il suo funzionamento non è necessario aprire alcuna porta aggiuntiva sul proprio modem/router.
È possibile testare il funzionamento di ddclient
digitando da terminale:
# ddclient -daemon=0 -debug -verbose -noquiet
Qualora si volesse abilitare la crittografia SSL sulle comunicazioni è sufficiente aggiungere la riga:
ssl=yes
al file ddclient.conf
ed assicurarsi di avere installato ssh
e libio-socket-ssl-perl
.
/etc/default/ddclient
Se si desidera far girare il servizio come demone è necessario editare il file /etc/default/ddclient
cambiando due variabili come indicato qui di seguito:
run_ipup="false" run_daemon="true"
Esempio /etc/ddclient.conf generico
daemon=300 # Controlla ogni 300 secondi (o 5 minuti). syslog=yes # Scrivi log in syslog. mail=root # Invia tutti i messaggi a root mail-failure=root pid=/var/run/ddclient.pid # Registra PID in un file. ssl=yes # Usa ssl-support, richiede ssl-library. # Usa direttamente l'IP associato all'interfaccia che comunica col provider internet, per esempio ppp0 #use=if, if=ppp0 # oppure contatta un server esterno (cambiare "indirizzo_web" con quello fornito dal proprio DNS provider) use=web, web=indirizzo_web/, web-skip='IP Address' # Indirizzo del server da cui prendere il proprio IP pubblico # oppure ancora usa uno script dedicato che restituisce un IP formattato correttamente (es.: 104.15.7.189) #use=cmd, cmd=/percorso/script/nome_script.sh # IP del server che aggiorna i DNS (cambiare "indirizzo_server" con quello fornito dal proprio DNS provider) server=indirizzo_server protocol=dyndns2 login=nome_utente # Nome utente password=password_servizio # Password in chiaro o password "in formato" MD5 # Elencare i FQDN da aggiornare (cioè che puntano alla macchina dove è in esecusione ddclient), uno per riga dominio1 dominio2 ...
Esempio /etc/ddclient.conf per domains.google.com
Dopo aver effettuato le modifiche al file /etc/default/ddclient come indicato sopra è sufficiente sostituire il file /etc/ddclient.conf con quanto segue
ssl=yes use=web protocol=googledomains login=LOGIN_TOKEN password=PASSWORD iltuodominio
Dove LOGIN_TOKEN è il "Nome utente" generato nell'interfaccia di google domain andando sul proprio sito => DNS => DNS dinamico. Mentre PASSWORD è la password generata nella medesima interfaccia.
Inoltre iltuodominio va sostituito con il nome del dominio che si sta gestendo.
A questo punto per rendere effettive le modifiche è possibile riavviare il servizio ddclient con
service ddclient restart
Per testare che la configurazione sia corretta si può lanciare manualmente
ddclient -query
Esempi di script per estrarre l'IP pubblico dal router
Fritz!Box
Quello che segue è un esempio di script per interrogare il proprio router e ottenere l'IP pubblico associato alla sua WAN.
#!/bin/bash # # Script to fetch external IP from Fritz!Box router, it can be used in the # configuration of ddclient by adding # # use=cmd, cmd=/path/to/script/nome_script.sh # # Since you need to declare both a username and password in this script, # restrict file permissions to "600". # Do not forget to: # * make this script executable; # * make sure that both "TR-064" and "UPnP" protocols are enabled in the router; # "Network --> Network settings --> Access Settings in the Home Network". # * create a dedicated user on the fritzbox router # "System --> Fritz!Box users". # You can substitute your actual router LAN IP to "http://fritz.box" if necessary. # curl --anyauth --user nome_utente:password_utente http://fritz.box:49000/upnp/control/wanpppconn1 -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:WANPPPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u='urn:dslforum-org:service:WANPPPConnection:1'></u:GetExternalIPAddress> </s:Body> </s:Envelope>" | sed -n -e 's#^.*<NewExternalIPAddress>\(.*\)</NewExternalIPAddress>.*$#\1#p'
NOTE
- Sostituire nel soprastante script il nome utente e la password creati per permettere al presente script di interrogare il router. Tali credenziali sono ovviamente associate all'utente "nome_utente" che si suppone essere già stato creato con l'apposità funzionalità del router ("Sistema --> Utenti FRITZ!Box").
- Nel router devono essere spuntate entrambe le seguenti opzioni "Consentire l'accesso alle applicazioni" e "Trasmettere le informazioni di stato tramite UPnP" ("Rete domestica --> Schema rete --> Impostazioni rete")
- Script testato con "Fritz!Box 7530" (Fritz!OS 7.02).
- Altri script utili per i router Fritz!Box disponibili qui
Approfondimenti
Collegamenti esterni
[1] dyndns home
[2] dyndns.it, guida rapida in italiano sul sito ufficiale
[3] ddclient, guida sul sito ufficiale con collegamento al client configurator
[4] DynamicDNS su Ubuntu
Guida scritta da: Wtf 22:39, 11 ago 2011 (CEST) | Debianized 40% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |