Wie kann ich einen Dynamic DNS-Abrufdienst auf Ubuntu Server einrichten?

19

Ich habe Konten und Hostnamen in meinem http://no-ip.org/ Konto erstellt, was bei weitem der am häufigsten verwendete Dienst für meinen Servertyp ist. Kann mich jemand durch den Konfigurationsprozess der Verwendung von ddclient mit no-ip führen, da ich ein Kommandozeilen-Noob bin?

Trevon
quelle

Antworten:

21

Einrichten von ddclient für No-IP

ddclientist ein Dynamic Update Client (DUC), mit dem dynamische DNS-Einträge aktualisiert werden können. Es überprüft in regelmäßigen Abständen die aktuelle IP-Adresse und aktualisiert die DNS-Informationen, wenn eine Änderung festgestellt wird. So installieren und konfigurieren Sie es für den No-IP-Dienst (noip.com/no-ip.com).

Installieren Sie zuerst das ddclientPaket. Wir werden es später manuell konfigurieren, drücken Sie einfach die Eingabetaste für alle Konfigurationsfragen.

sudo apt-get install ddclient

Stoppen Sie den ddclientDaemon. Der sudo service ddclient stopBefehl funktioniert auf Ubuntu 12.04 aufgrund eines Fehlers nicht, daher verwenden wir pkillstattdessen.

sudo pkill ddclient

Bearbeiten Sie die Konfigurationsdateien. Deaktivieren Sie die Einstellung, um die Sicherungsdateien (z. B. /etc/ddclient.conf~) zu geditdeaktivieren, die standardmäßig erstellt werden und beispielsweise Kennwörter enthalten können, nachdem Sie dachten, Sie hätten sie gelöscht Edit -> Preferences -> Editor -> Create a backup copy of files before saving.

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

Löschen Sie den alten Inhalt von /etc/ddclient.confund fügen Sie ihn in die unten gezeigte Vorlage ein.

Lesen Sie die Kommentare der Vorlage durch und passen Sie die Datei an Ihre Bedürfnisse an.

Es könnte eine gute Idee sein, ein noip.com-Unterkonto zu verwenden, dh eine Gruppe mit Passwort (diese Funktion ist ein Bezahldienst). Auf diese Weise ermöglicht das Kennwort nur die Aktualisierung der angegebenen Hosts und nicht den vollständigen Zugriff auf Ihr gesamtes No-IP-Konto, einschließlich MX-Datensätzen (ein Angreifer, der Ihr Kennwort erhält, kann die MX-Datensätze ändern, um Ihre E-Mails abzufangen ) oder andere Dienste wie IMAP-Konten.

Sie sollten wahrscheinlich festlegen daemon_interval=3600(siehe Vorlagenkommentare).

Testen Sie Ihre Konfiguration mit dem folgenden Befehl:

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

Sie sollten eine Antwort erhalten good(IP-Adresse aktualisiert) oder nochg(IP-Adresse wurde bereits auf diesen Wert festgelegt). Es ist in Ordnung, die folgende Warnung zu diesem Zeitpunkt zu erhalten (es ist jedoch nicht in Ordnung, die Warnung während des normalen Betriebs weiterhin zu erhalten):

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

Hinweis: Auf dem No-IP-Server scheint ein Caching-Vorgang zu laufen. Wenn die Antwort vom Server also nicht Ihren Erwartungen entspricht, kann es hilfreich sein, eine Weile zu warten.

Wenn Sie mit der Konfiguration fertig sind, starten Sie den ddclientDaemon:

sudo service ddclient start

Der Dämon wird bei jedem Neustart des Computers automatisch gestartet.

Der / die DNS-Eintrag / e wird / werden jetzt jedes Mal aktualisiert, wenn eine Änderung der IP-Adresse festgestellt wird.

Fehlerbehebung

Führen Sie die Paketkonfiguration erneut aus:

sudo dpkg-reconfigure ddclient

Paket- und Konfigurationsdateien entfernen:

sudo apt-get purge ddclient

Daemon-Steuerung:

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

Löschen Sie den Cache, um den Dämon zur Aktualisierung des DNS-Eintrags für Debugging-Zwecke zu bewegen (im Normalbetrieb wird der DNS-Eintrag nur aktualisiert, wenn die aktuelle IP-Adresse von der im Cache gespeicherten IP-Adresse abweicht):

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.

Testen Sie, ob der Dämon den DNS-Eintrag tatsächlich aktualisiert, wenn sich die IP-Adresse geändert hat, indem Sie die IP-Adresse des DNS-Eintrags auf 1.2.3.4 setzen und dann den Dämon starten:

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

Debug-Lauf (DNS-Eintrag nie / nach Bedarf / immer aktualisieren):

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

Versuchen Sie, die aktuelle IP-Adresse mit verschiedenen Methoden zu ermitteln:

sudo ddclient -query

Dateien von Interesse:

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

Hier werden Nachrichten des Daemons angezeigt (und, falls eingerichtet, auch per E-Mail gesendet):

/var/log/syslog

Dokumentation:

Vorlage für /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

Update: Die verschlüsselte Verbindung zum IP-Erkennungsdienst ist völlig sinnlos. Dies wird nun in der Vorlage "ddclient.conf" erläutert und verwendet standardmäßig eine unverschlüsselte Verbindung für die IP-Erkennung.

Håkon A. Hjortland
quelle
0

No-ip hat einen eigenen Client, der bei der Erstinstallation für mich funktioniert hat.

Auf der eigenen Website finden Sie Anweisungen zum Herunterladen des Clients . Anschließend erfolgt eine schnelle make && makeInstallation, und Sie sind fertig. Halten Sie Ihre Anmeldedaten für no-ip bereit, da Sie diese im Rahmen des Konfigurationsassistenten erhalten. Stellen Sie anschließend sicher, dass Sie ausgeführt werden noip2und Ihr Host-Konto auf seiner Website überprüfen können, um festzustellen, ob es aktualisiert wurde.

Chris
quelle
ACHTUNG: noip2 hat Sicherheitsprobleme! Siehe diese Antwort .
Håkon A. Hjortland
@ HåkonA.Hjortland: Mir ist nicht klar, dass es HTTPS-Verbindungen akzeptiert. Ich habe meine vorherige falsche Aussage gelöscht, danke!
MestreLion