Good to Know Database

CentOS 5: 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@centos5 ~]# cd /usr/src/
[root@centos5 src]# wget http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz

Nachdem Sie den Quellcode entpackt haben, wechseln Sie in das Verzeichnis ddclient-3.8.0.

[root@centos5 src]# tar xfz ddclient-3.8.0.tar.gz
[root@centos5 src]# cd ddclient-3.8.0

Kopieren Sie ddclient in das Verzeichnis /usr/sbin/ und erstellen die Verzeichnisse /etc/ddclient und /var/cache/ddclient.

[root@centos5 ddclient-3.8.0]# cp ddclient /usr/sbin/
[root@centos5 ddclient-3.8.0]# 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@centos5 ddclient-3.8.0]# groupadd -r ddclient
[root@centos5 ddclient-3.8.0]# useradd -r -m -g ddclient -s /bin/false -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@centos5 ddclient-3.8.0]# vi /etc/ddclient/ddclient.conf

Eine minimale Konfiguration könnte wie folgt aussehen.

daemon=600
pid=/var/run/ddclient.pid
syslog=yes
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
login=Benutzername
password=Passwort
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@centos5 ddclient-3.8.0]# chown ddclient:ddclient /etc/ddclient/ddclient.conf
[root@centos5 ddclient-3.8.0]# chmod 0600 /etc/ddclient/ddclient.conf

Erstellen Sie als nächstes das Init-Skript für ddclient.

[root@centos5 ddclient-3.8.0]# 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@centos5 ddclient-3.8.0]# 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@centos5 ddclient-3.8.0]# chkconfig --add ddclient
[root@centos5 ddclient-3.8.0]# chkconfig --level 35 ddclient on

Der soeben erstellte Service kann jetzt gestartet werden.

[root@centos5 ddclient-3.8.0]# service ddclient start

Sollten Sie Probleme mit dem Daemon haben, überprüfen Sie die Logdatei /var/log/messages nach möglichen Fehlermeldungen.

[root@centos5 ddclient-3.8.0]# 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 5 mit dem folgenden Befehl.

[root@centos5 ddclient-3.8.0]# yum install perl-IO-Socket-SSL

Anschließend müssen Sie die Konfigurationsdatei um die Option ssl erweitern.

[root@centos5 ddclient-3.8.0]# 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@centos5 ddclient-3.8.0]# service ddclient restart

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@centos5 ddclient-3.8.0]# ddclient --help | less


Dieser Eintrag wurde am 28.12.2009 erstellt und zuletzt am 29.12.2009 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_830.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer