CentOS 6: Dynamischen DNS-Eintrag von DynDNS.com mit ddclient aktualisieren
Zum Aktualisieren eines dynamischen DNS-Eintrags von DynDNS.com können Sie neben dem Programm inadyn auch das Perl-Skript ddclient verwenden. ddclient kann Ihre externe IP-Adresse direkt von der Hardware-Schnittstelle, von der Statusseite Ihres Routers oder mittels dem CheckIP Service von DynDNS.com ermitteln. Seit der Version 3.7.0 unterstützt ddclient auch das Updaten über HTTPS.
Im folgenden Tutorial erfahren Sie, wie Sie ddclient installieren und einsetzen können.
Installation und Konfiguration
Wechseln Sie zuerst ins Verzeichnis /usr/src/ und laden den Quellcode herunter.
[root@centos6 ~]# cd /usr/src/
[root@centos6 src]# wget http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.1/ddclient-3.8.1.tar.gz
[root@centos6 src]# wget http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.1/ddclient-3.8.1.tar.gz
Nachdem Sie den Quellcode entpackt haben, wechseln Sie in das Verzeichnis ddclient-3.8.1.
[root@centos6 src]# tar xfz ddclient-3.8.1.tar.gz
[root@centos6 src]# cd ddclient-3.8.1
[root@centos6 src]# cd ddclient-3.8.1
Kopieren Sie ddclient in das Verzeichnis /usr/sbin/ und erstellen die Verzeichnisse /etc/ddclient und /var/cache/ddclient.
[root@centos6 ddclient-3.8.1]# cp ddclient /usr/sbin/
[root@centos6 ddclient-3.8.1]# mkdir /etc/ddclient /var/cache/ddclient
[root@centos6 ddclient-3.8.1]# mkdir /etc/ddclient /var/cache/ddclient
Aus Sicherheitsgründen sollten Sie ddclient unter einem eigenen Benutzer laufen lassen. Dazu erstellen Sie mit den folgenden zwei Befehlen eine Systemgruppe ddclient und einen Systembenutzer ddclient welcher zur Gruppe ddclient gehört und sich nicht am System anmelden kann.
[root@centos6 ddclient-3.8.1]# groupadd -r ddclient
[root@centos6 ddclient-3.8.1]# useradd -r -m -g ddclient -s /sbin/nologin -c "ddclient" ddclient
[root@centos6 ddclient-3.8.1]# useradd -r -m -g ddclient -s /sbin/nologin -c "ddclient" ddclient
Anschließend erstellen Sie die Konfigurationsdatei /etc/ddclient/ddclient.conf. Im Quellcode finden Sie die Beispiel-Konfigurationsdatei sample-etc_ddclient.conf.
[root@centos6 ddclient-3.8.1]# vi /etc/ddclient/ddclient.conf
Eine minimale Konfiguration könnte wie folgt aussehen. Passen Sie die Login-Daten (username und password) und die DynDNS-Adresse (hostname.dyndns.org) entsprechend an.
daemon=600
pid=/var/run/ddclient.pid
syslog=yes
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
login=username
password=password
protocol=dyndns2
server=members.dyndns.org
hostname.dyndns.org
pid=/var/run/ddclient.pid
syslog=yes
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
login=username
password=password
protocol=dyndns2
server=members.dyndns.org
hostname.dyndns.org
Um zu verhindern, dass alle Benutzer die Login-Daten lesen können, ändern Sie den Besitzer und die Zugriffsrechte der Konfigurationsdatei.
[root@centos6 ddclient-3.8.1]# chown ddclient:ddclient /etc/ddclient/ddclient.conf
[root@centos6 ddclient-3.8.1]# chmod 0600 /etc/ddclient/ddclient.conf
[root@centos6 ddclient-3.8.1]# chmod 0600 /etc/ddclient/ddclient.conf
Erstellen Sie als nächstes das Init-Skript für ddclient.
[root@centos6 ddclient-3.8.1]# vi /etc/rc.d/init.d/ddclient
Das folgende Skript ermöglicht das Starten, Stoppen und Neustarten des ddclient-Daemons. Kopieren Sie den Code in die Datei /etc/rc.d/init.d/ddclient.
#!/bin/sh
# chkconfig: - 65 35
# description: ddclient provides support for updating dynamic DNS services.
# Check that config file exist
[ -f /etc/ddclient/ddclient.conf ] || exit 0
# Source function library
. /etc/rc.d/init.d/functions
# Source networking configuration
. /etc/sysconfig/network
# Check that networking is up
[ "$NETWORKING" = "no" ] && exit 0
exec=/usr/sbin/ddclient
lockfile=/var/lock/subsys/ddclient
cache=/var/cache/ddclient/ddclient.cache
pid=/var/run/ddclient.pid
start() {
echo -n "Starting ddclient: "
[ -f $cache ] || touch $cache
chown ddclient:ddclient $cache && chmod 0600 $cache || exit $?
[ -f $pid ] || touch $pid
chown ddclient:ddclient $pid && chmod 0600 $pid || exit $?
daemon --user=ddclient --pidfile=$pid $exec
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n "Stopping ddclient: "
killproc $exec
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status ddclient
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
exit 0
# chkconfig: - 65 35
# description: ddclient provides support for updating dynamic DNS services.
# Check that config file exist
[ -f /etc/ddclient/ddclient.conf ] || exit 0
# Source function library
. /etc/rc.d/init.d/functions
# Source networking configuration
. /etc/sysconfig/network
# Check that networking is up
[ "$NETWORKING" = "no" ] && exit 0
exec=/usr/sbin/ddclient
lockfile=/var/lock/subsys/ddclient
cache=/var/cache/ddclient/ddclient.cache
pid=/var/run/ddclient.pid
start() {
echo -n "Starting ddclient: "
[ -f $cache ] || touch $cache
chown ddclient:ddclient $cache && chmod 0600 $cache || exit $?
[ -f $pid ] || touch $pid
chown ddclient:ddclient $pid && chmod 0600 $pid || exit $?
daemon --user=ddclient --pidfile=$pid $exec
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n "Stopping ddclient: "
killproc $exec
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status ddclient
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
exit 0
Nachdem das Init-Skript erstellt wurde, ändern Sie die Zugriffsberechtigungen der Datei.
[root@centos6 ddclient-3.8.1]# chmod 0755 /etc/rc.d/init.d/ddclient
Anschließend wird der Service ddclient mit den folgenden Befehlen erstellt und im Runlevel 3 und 5 aktiviert.
[root@centos6 ddclient-3.8.1]# chkconfig --add ddclient
[root@centos6 ddclient-3.8.1]# chkconfig --level 35 ddclient on
[root@centos6 ddclient-3.8.1]# chkconfig --level 35 ddclient on
Der soeben erstellte Service kann jetzt gestartet werden.
[root@centos6 ddclient-3.8.1]# service ddclient start
Sollten Sie Probleme mit dem Daemon haben, überprüfen Sie die Logdatei /var/log/messages nach möglichen Fehlermeldungen.
[root@centos6 ddclient-3.8.1]# tail -f /var/log/messages
Übertragung der DNS-Updates mit SSL absichern
Wenn Sie die Übertragung der DNS-Updates mittels SSL absichern wollen, benötigen Sie das Perl-Modul IO::Socket::SSL. Dieses installieren Sie unter CentOS 6 mit dem folgenden Befehl.
[root@centos6 ddclient-3.8.1]# yum install perl-IO-Socket-SSL
Anschließend müssen Sie die Konfigurationsdatei um die Option ssl erweitern.
[root@centos6 ddclient-3.8.1]# vi /etc/ddclient/ddclient.conf
Fügen Sie die folgende Zeile in die Konfigurationsdatei ein.
ssl=yes
Nachdem Sie die das Perl-Modul installiert und die Konfiguration angepasst haben, müssen Sie ddclient neu starten.
[root@centos6 ddclient-3.8.1]# service ddclient restart
Überprüfen der Funktionalität
Die von ddclient erzeugten Logmeldungen finden Sie in der /var/log/messages.
[root@centos6 ~]# tail -f /var/log/messages
Hat sich die öffentliche IP-Adresse seit der letzten Überprüfung beziehungsweise Aktualisierung geändert, sollte die folgende Meldung in der Logdatei protokolliert werden.
May 19 18:10:51 centos6 ddclient[2843]: SUCCESS: updating hostname.dyndns.org: good: IP address set to 84.146.64.104
Online-Hilfe
Die Online-Hilfe von ddclient wird Ihnen durch die Option --help angezeigt. Da diese jedoch sehr umfangreich ist, sollten Sie diese an less weiterleiten.
[root@centos6 ddclient-3.8.1]# ddclient --help | less
Dieser Eintrag wurde am 19.05.2012 erstellt.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_1615.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2021 by Georg Kainzbauer