¿Cómo puedo configurar un servicio de recuperación de DNS dinámico en Ubuntu Server?

19

He creado cuentas y nombres de host dentro de mi http://no-ip.org/ cuenta, que es, con mucho, el servicio más utilizado para mi tipo de servidor. ¿Alguien puede guiarme a través del proceso de configuración del uso de ddclient con no-ip, ya que soy un novato en la línea de comandos?

Trevon
fuente

Respuestas:

21

Configuración de ddclient para No-IP

ddclientes un cliente de actualización dinámica (DUC) que se puede usar para actualizar entradas de DNS dinámicas. Comprueba la dirección IP actual a intervalos regulares y actualiza la información de DNS cuando se detecta un cambio. Aquí se explica cómo instalarlo y configurarlo para el servicio No-IP (noip.com/no-ip.com).

Primero, instale el ddclientpaquete. Lo configuraremos manualmente más tarde, así que solo presione enter para todas las preguntas de configuración.

sudo apt-get install ddclient

Detén al ddclientdemonio. El sudo service ddclient stopcomando no funciona en Ubuntu 12.04 debido a un error, por lo que usamos pkillen su lugar.

sudo pkill ddclient

Edite los archivos de configuración. Para desactivar los archivos de copia de seguridad (p /etc/ddclient.conf~. Ej. ) Que se geditcrean de manera predeterminada y que, por ejemplo, pueden contener contraseñas después de pensar que las había eliminado, desactive la configuración Edit -> Preferences -> Editor -> Create a backup copy of files before saving.

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

Elimine el contenido anterior /etc/ddclient.confy péguelo en la plantilla que se muestra a continuación.

Lea los comentarios de la plantilla y personalice el archivo según sus necesidades.

Podría ser una buena idea utilizar una subcuenta noip.com, es decir, un grupo con contraseña (esta función es un servicio de pago). De esta manera, la contraseña solo da acceso a la actualización de los hosts especificados y no acceso completo a toda su cuenta sin IP, lo que podría incluir registros MX (un atacante que adquiera su contraseña podría cambiar los registros MX para interceptar sus correos electrónicos ) u otros servicios como las cuentas IMAP.

Probablemente deberías configurar daemon_interval=3600(ver comentarios de plantilla).

Pruebe su configuración con el siguiente comando:

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

Debería obtener una goodrespuesta (dirección IP actualizada) o nochg(la dirección IP ya estaba configurada con ese valor). Está bien recibir la siguiente advertencia en este punto (pero no está bien seguir recibiendo la advertencia durante el funcionamiento normal):

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

Nota: Parece que hay algo de almacenamiento en caché en el servidor No-IP, por lo que si la respuesta que obtiene del servidor no es la que espera, puede ser útil esperar un poco.

Cuando haya terminado de configurar, inicie el ddclientdemonio:

sudo service ddclient start

El demonio también se iniciará automáticamente cada vez que inicies la computadora.

La entrada / entradas DNS ahora se actualizarán cada vez que se detecte un cambio de dirección IP.

Solución de problemas

Ejecute la configuración del paquete nuevamente:

sudo dpkg-reconfigure ddclient

Eliminar el paquete y los archivos de configuración:

sudo apt-get purge ddclient

Control de demonio:

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

Elimine el caché para engañar al demonio para que actualice la entrada DNS con fines de depuración (durante el funcionamiento normal, la entrada DNS solo se actualiza si la dirección IP actual es diferente de la dirección IP almacenada en el caché):

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.

Pruebe si el demonio realmente actualizará la entrada DNS cuando la dirección IP ha cambiado, estableciendo la dirección IP de la entrada DNS en 1.2.3.4 y luego iniciando el demonio:

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

Ejecución de depuración (actualizar la entrada DNS nunca / según sea necesario / siempre):

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

Intente detectar la dirección IP actual utilizando varios métodos:

sudo ddclient -query

Archivos de interés:

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

Los mensajes del demonio aparecerán aquí (y también se enviarán por correo electrónico si está configurado para hacerlo):

/var/log/syslog

Documentación:

Plantilla para /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='[email protected]'   # 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%[email protected]', password='1234'   myhost3.no-ip.biz,myhost4.no-ip.biz
#
#   myhost.no-ip.biz,myhost2.no-ip.biz

my.full.hostname

Actualización: la conexión cifrada al servicio de detección de IP es bastante inútil. Esto ahora se explica en la plantilla ddclient.conf y ahora usa de forma predeterminada la conexión no cifrada para la detección de IP.

Håkon A. Hjortland
fuente
0

No-ip tiene su propio cliente que funcionó para mí la primera vez que se instaló.

Hay instrucciones en su propio sitio web para descargar el cliente , y luego es una make && makeinstalación rápida y ya está. Tenga a mano sus credenciales de inicio de sesión para no-ip, ya que se le preguntará como parte del asistente de configuración. Luego, asegúrese de ejecutar noip2y puede verificar su cuenta de host en su sitio para ver si se ha actualizado.

Chris
fuente
ADVERTENCIA: ¡noip2 tiene problemas de seguridad! Mira esta respuesta .
Håkon A. Hjortland
@ HåkonA.Hjortland: No me di cuenta de que acepta conexiones HTTPS. He eliminado mi declaración anterior incorrecta, ¡gracias!
MestreLion