Come posso impostare un servizio di recupero DNS dinamico su Ubuntu Server?


19

Ho creato account e nomi host all'interno del mio account http://no-ip.org/ , che è di gran lunga il servizio più comunemente usato per il mio tipo di server. Qualcuno può guidarmi attraverso il processo di configurazione dell'uso di ddclient con no-ip, dato che sono un noob della riga di comando?

Risposte:


21

Impostazione di ddclient per No-IP

ddclientè un Dynamic Update Client (DUC) che può essere utilizzato per aggiornare voci DNS dinamiche. Controlla l'indirizzo IP corrente a intervalli regolari e aggiorna le informazioni DNS quando viene rilevata una modifica. Ecco come installarlo e configurarlo per il servizio No-IP (noip.com/no-ip.com).

Innanzitutto, installa il ddclientpacchetto. Lo configureremo manualmente in seguito, quindi premi Invio per tutte le domande di configurazione.

sudo apt-get install ddclient

Ferma il ddclientdemone. Il sudo service ddclient stopcomando non funziona su Ubuntu 12.04 a causa di un bug, quindi usiamo pkillinvece.

sudo pkill ddclient

Modifica i file di configurazione. Per disattivare i file di backup (ad es. /etc/ddclient.conf~) Che vengono geditcreati per impostazione predefinita e che potrebbero ad esempio contenere password dopo aver pensato di averle eliminate, disattivare l'impostazione Edit -> Preferences -> Editor -> Create a backup copy of files before saving.

sudo gedit /etc/ddclient.conf /etc/default/ddclient

Elimina il vecchio contenuto /etc/ddclient.confe incollalo nel modello mostrato di seguito.

Leggi i commenti del modello e personalizza il file in base alle tue esigenze.

Potrebbe essere una buona idea utilizzare un account secondario noip.com, ovvero un gruppo con password (questa funzione è un servizio a pagamento). In questo modo, la password dà accesso solo all'aggiornamento degli host specificati e non al completo accesso all'intero account No-IP, che potrebbe includere record MX (un utente malintenzionato che acquisisce la password potrebbe modificare i record MX per intercettare le e-mail ) o altri servizi come account IMAP.

Probabilmente dovresti impostare daemon_interval=3600(vedi commenti al modello).

Prova la tua configurazione con il seguente comando:

sudo ddclient -daemon=0 -debug -verbose -noquiet -force

Dovresti ricevere una risposta good(indirizzo IP aggiornato) o nochg(indirizzo IP già impostato su quel valore). A questo punto è corretto ricevere il seguente avviso (ma non è corretto continuare a ricevere l'avviso durante il normale funzionamento):

WARNING: updating <hostname>: nochg: No update required; unnecessary attempts to change to the current address are considered abusive

Nota: sembra che ci sia un po 'di memorizzazione nella cache sul server No-IP, quindi se la risposta che ricevi dal server non è quella che ti aspetti, potrebbe essere utile aspettare un po'.

Al termine della configurazione, avvia il ddclientdaemon:

sudo service ddclient start

Il daemon verrà inoltre avviato automaticamente ogni volta che si avvia il computer.

La voce / voci DNS verrà ora aggiornata ogni volta che viene rilevata una modifica dell'indirizzo IP.

Risoluzione dei problemi

Eseguire di nuovo la configurazione del pacchetto:

sudo dpkg-reconfigure ddclient

Rimuovi pacchetto e config file:

sudo apt-get purge ddclient

Controllo daemon:

sudo service ddclient status
sudo service ddclient start
sudo service ddclient stop
# The stop command above does not work on Ubuntu 12.04 due to a bug, but
# it works on 14.04. Here are alternative ways to control the daemon:
ps -A f | grep -i ddclient
sudo pkill ddclient

Elimina la cache per indurre il demone ad aggiornare la voce DNS a scopo di debug (durante il normale funzionamento la voce DNS viene aggiornata solo se l'indirizzo IP corrente è diverso dall'indirizzo IP memorizzato nella cache):

sudo pkill ddclient
sudo rm /var/cache/ddclient/ddclient.cache
sudo service ddclient start
# See the result:
tail /var/log/syslog
# If you have set up mail=..., you should also receive an e-mail.
# The syslog and e-mail should show a "good" or "nochg" response.

Verifica se il demone aggiornerà effettivamente la voce DNS quando l'indirizzo IP è cambiato, impostando l'indirizzo IP della voce DNS su 1.2.3.4 e quindi avviando il demone:

sudo pkill ddclient
sudo ddclient -daemon=0 -debug -verbose -noquiet -force -use ip -ip 1.2.3.4
sleep 30   # ddclient will not perform updates less than 30 seconds apart
sudo service ddclient start

Esecuzione del debug (aggiornamento della voce DNS mai / secondo necessità / sempre):

sudo ddclient -daemon=0 -debug -verbose -noquiet -noexec
sudo ddclient -daemon=0 -debug -verbose -noquiet
sudo ddclient -daemon=0 -debug -verbose -noquiet -force

Prova a rilevare l'indirizzo IP corrente utilizzando vari metodi:

sudo ddclient -query

File di interesse:

/etc/ddclient.conf
/etc/default/ddclient
/var/cache/ddclient/ddclient.cache

I messaggi del demone appariranno qui (e verranno inviati anche via e-mail se impostato per farlo):

/var/log/syslog

Documentazione:

Modello per /etc/ddclient.conf

################################################################################
# Configuration file for ddclient
################################################################################


################################################################################
# Misc. configurations

# To choose between ipup mode (for dial-on-demand) and daemon mode, please edit
# /etc/default/ddclient.

#mail=root           # E-mail messages to this address
#mail-failure=root   # E-mail messages about failed updates to this address


################################################################################
# How to obtain current IP address

# Methods:
#   use=ip, ip=ADDRESS                                   # Set the IP address to ADDRESS
#   use=if, if=INTERFACE, if-skip=PATTERN                # Obtain IP address by calling 'ifconfig INTERFACE'
#   use=web, web=PROVIDER|URL, web-skip=PATTERN          # Obtain IP address from IP discovery web page
#   use=cmd, cmd=PROGRAM, cmd-skip=PATTERN               # Obtain IP address by calling PROGRAM
#   use=fw|FWMODEL, fw=ADDRESS|URL, fw-skip=PATTERN      # Obtain IP address from firewall web page
#                   fw-login=LOGIN, fw-password=SECRET
#
# The *-skip options can be used to skip IP addresses found before PATTERN.
#
# NOTE: The ddclient IP detection routines do not respect the HTTPS prefix in
# URLs, and instead fall back to HTTP (this is fixed in version 3.8.1). The
# option ssl=yes does not apply to the IP detection either (this is at least
# how versions 3.8.0 to 3.8.2 behave).
#
# The default time between each IP address change check is daemon_interval=300
# (5 minutes), which may be a bit too frequent when using an external IP
# discovery service. To set the checking interval to e.g. one hour instead,
# please edit /etc/default/ddclient and set daemon_interval=3600.

# Obtain IP address from network interface
#use=if, if=eth0

# Obtain IP address from no-ip.com IP discovery web page (unencrypted connection)
use=web, web='http://ip1.dynupdate.no-ip.com:8245/'

# Obtain IP address from no-ip.com IP discovery web page (encrypted connection)
# Encryption does not offer any real protection since a man-in-the-middle
# attack could route the HTTPS connection through a host belonging to the
# attacker, thus causing an incorrect IP address to be reported.
#use=cmd, cmd='bash -c "set -o pipefail; timeout 120 wget -qO- \
#  --header=Host:ip1.dynupdate.no-ip.com https://dynupdate.no-ip.com/ | head -c 1000"'


################################################################################
# Dynamic DNS service setup

protocol=noip
#server=   # Defaults to dynupdate.no-ip.com for noip protocol
ssl=yes   # NOTE: Does not apply when obtaining IP address, just when updating the DNS entry!
login='nobody@nowhere.com'   # Username. For No-IP sub-accounts (groups with passwords), use '<groupname>%3A<username>'.
password='1234'


################################################################################
# Hosts to update, with optional per-host options

# Examples:
#   protocol=hammernode1, \
#   login='my-hn-login', password='my-hn-password' \
#   myhost.hn.org,myhost2.hn.org
#
#   login='group2%3Ajohndoe@domain.com', password='1234'   myhost3.no-ip.biz,myhost4.no-ip.biz
#
#   myhost.no-ip.biz,myhost2.no-ip.biz

my.full.hostname

Aggiornamento: la connessione crittografata al servizio di rilevamento IP è abbastanza inutile. Questo è ora spiegato nel modello ddclient.conf e per impostazione predefinita ora utilizza la connessione non crittografata per il rilevamento IP.



0

No-ip ha un suo client che ha funzionato per me la prima volta che è stato installato.

Ci sono istruzioni sul proprio sito Web per scaricare il client , quindi è una rapida make && makeinstallazione e il gioco è fatto. Tieni a portata di mano le tue credenziali di accesso per no-ip poiché ti verrà chiesto come parte della procedura guidata di configurazione. Successivamente, assicurati di eseguire noip2e puoi controllare il tuo account host sul loro sito per vedere se è stato aggiornato.


ATTENZIONE: noip2 ha problemi di sicurezza! Vedere questa risposta .
Håkon A. Hjortland,

@ HåkonA.Hjortland: non mi rendevo conto che accetta connessioni HTTPS. Ho cancellato la mia precedente dichiarazione errata, grazie!
MestreLion,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.