Good to Know Database

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

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

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

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

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

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

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

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

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 ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer