Comment puis-je configurer un service de récupération DNS dynamique sur le serveur Ubuntu?

19

J'ai créé des comptes et des noms d'hôtes au sein de mon compte http://no-ip.org/ , qui est de loin le service le plus couramment utilisé pour mon type de serveur. Quelqu'un peut-il me guider dans le processus de configuration de l'utilisation de ddclient avec no-ip, car je suis un noob en ligne de commande?

Trevon
la source

Réponses:

21

Configuration de ddclient pour No-IP

ddclientest un client de mise à jour dynamique (DUC) qui peut être utilisé pour mettre à jour des entrées DNS dynamiques. Il vérifie l'adresse IP actuelle à intervalles réguliers et met à jour les informations DNS lorsqu'un changement est détecté. Voici comment l'installer et le configurer pour le service No-IP (noip.com/no-ip.com).

Tout d'abord, installez le ddclientpackage. Nous allons le configurer manuellement plus tard, il vous suffit donc d'appuyer sur Entrée pour toutes les questions de configuration.

sudo apt-get install ddclient

Arrêtez le ddclientdémon. La sudo service ddclient stopcommande ne fonctionne pas sur Ubuntu 12.04 en raison d'un bug, nous utilisons donc à la pkillplace.

sudo pkill ddclient

Modifiez les fichiers de configuration. Pour désactiver les fichiers de sauvegarde (par exemple /etc/ddclient.conf~) qui geditcréent par défaut et qui pourraient par exemple contenir des mots de passe après que vous pensiez les avoir supprimés, désactivez le paramètre Edit -> Preferences -> Editor -> Create a backup copy of files before saving.

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

Supprimez l'ancien contenu de /etc/ddclient.confet collez-le dans le modèle ci-dessous.

Lisez les commentaires du modèle et personnalisez le fichier selon vos besoins.

Ce pourrait être une bonne idée d'utiliser un sous-compte noip.com, c'est-à-dire un groupe avec mot de passe (cette fonctionnalité est un service payant). De cette façon, le mot de passe ne donne accès qu'à la mise à jour des hôtes spécifiés et non à un accès complet à l'ensemble de votre compte No-IP, ce qui pourrait inclure des enregistrements MX (un attaquant qui acquiert votre mot de passe pourrait modifier les enregistrements MX afin d'intercepter vos e-mails ) ou d'autres services tels que les comptes IMAP.

Vous devriez probablement définir daemon_interval=3600(voir les commentaires du modèle).

Testez votre configuration avec la commande suivante:

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

Vous devez obtenir une goodréponse (adresse IP mise à jour) ou nochg(adresse IP déjà définie sur cette valeur). Il est OK de recevoir l'avertissement suivant à ce stade (mais il n'est pas OK de continuer à recevoir l'avertissement pendant le fonctionnement normal):

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

Remarque: Il semble y avoir une mise en cache sur le serveur sans IP, donc si la réponse que vous obtenez du serveur n'est pas celle que vous attendez, il peut être utile d'attendre un peu.

Une fois la configuration terminée, démarrez le ddclientdémon:

sudo service ddclient start

Le démon démarre également automatiquement à chaque démarrage de l'ordinateur.

L'entrée / les entrées DNS seront désormais mises à jour chaque fois qu'un changement d'adresse IP est détecté.

Dépannage

Exécutez à nouveau la configuration du package:

sudo dpkg-reconfigure ddclient

Supprimez le package et les fichiers de configuration:

sudo apt-get purge ddclient

Contrôle démon:

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

Supprimez le cache pour inciter le démon à mettre à jour l'entrée DNS à des fins de débogage (pendant le fonctionnement normal, l'entrée DNS n'est mise à jour que si l'adresse IP actuelle est différente de l'adresse IP stockée dans le 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.

Testez si le démon mettra réellement à jour l'entrée DNS lorsque l'adresse IP a changé, en définissant l'adresse IP de l'entrée DNS sur 1.2.3.4 puis en démarrant le démon:

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

Exécution du débogage (mise à jour de l'entrée DNS jamais / selon les besoins / toujours):

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

Essayez de détecter l'adresse IP actuelle en utilisant différentes méthodes:

sudo ddclient -query

Fichiers d'intérêt:

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

Les messages du démon apparaîtront ici (et seront également envoyés par e-mail si configuré pour le faire):

/var/log/syslog

Documentation:

Modèle pour /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

Mise à jour: La connexion cryptée au service de détection IP est tout à fait inutile. Ceci est maintenant expliqué dans le modèle ddclient.conf et il utilise désormais par défaut une connexion non chiffrée pour la détection IP.

Håkon A. Hjortland
la source
0

No-ip a son propre client qui a fonctionné pour moi la première fois qu'il a été installé.

Il y a des instructions sur leur propre site Web pour télécharger le client , puis c'est une make && makeinstallation rapide et vous avez terminé. Ayez vos identifiants de connexion pour no-ip à portée de main car ils vous seront demandés dans le cadre de l'assistant de configuration. Ensuite, assurez-vous que vous exécutez noip2et vous pouvez vérifier votre compte hôte sur leur site pour voir s'il a été mis à jour.

Chris
la source
ATTENTION: noip2 a des problèmes de sécurité! Voir cette réponse .
Håkon A. Hjortland
@ HåkonA.Hjortland: Je ne savais pas qu'il accepte les connexions HTTPS. J'ai supprimé ma précédente déclaration incorrecte, merci!
MestreLion