| FOTO | AUTO | EDV | AUDIO |

dynDNS

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.

Wie funktioniert dyndns

Konto erstellen

Dazu auf die Seite http://www.dyndns.org/account/create.html gehen und dort ein Konto erstellen.

Nach der Aktivierung des Accounts legen wir uns zuerst einen Host (der Name, unter dem unsere Homepage gefunden werden soll) an. Falls noch nicht geschehen bitte mit den Userdaten bei http://www.dyndns.org einloggen (auf der Webseite oben rechts). Um einen neuen Host anzulegen, müssen wir in den Bereich „Services“ wechseln und dort „Add Host“ auswählen.
Im folgenden Formular können wir nun unseren gewählten Host-Namen eintragen und einer Domain zuweisen. Als dynDNS Name eine das angebotenen Domänen auswählen und bestätigen.

Installation und Konfiguration

Bei erweiterten Repositorys ist die Installation einfach:

yum install ddclient

Dieser Weg ist zu empfehlen. Ist dies nicht möglich, bleibt der Weg der manuellen Installation:

Wechseln Sie zuerst ins Verzeichnis /usr/src/ und laden den Quellcode herunter.

[root@centos ~]# cd /usr/src/
[root@centos src]# wget http://sourceforge.net/projects/ddclient/files/latest/download?source=files
Nachdem Sie den Quellcode entpackt haben, wechseln Sie in das Verzeichnis ddclient-3.8.0.
[root@centos src]# tar xfz ddclient-3.8.0.tar.gz
[root@centos src]# cd ddclient-3.8.0
Da es vorkommen kann, dass sich die Installationsanweisung modernerer Versionen verändert, ist es ratsam ab hier zuerst die Datei README zu lesen.

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

[root@centos ddclient-3.8.0]# cp ddclient /usr/sbin/
[root@centos 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@centos ddclient-3.8.0]# groupadd -r ddclient
[root@centos 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@centos 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@centos ddclient-3.8.0]# chown ddclient:ddclient /etc/ddclient/ddclient.conf
[root@centos ddclient-3.8.0]# chmod 0600 /etc/ddclient/ddclient.conf
Erstellen Sie als nächstes das Init-Skript für ddclient.
[root@centos 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@centos 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@centos ddclient-3.8.0]# chkconfig --add ddclient
[root@centos ddclient-3.8.0]# chkconfig --level 35 ddclient on
Der soeben erstellte Service kann jetzt gestartet werden.
[root@centos 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@centos 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 folgendem Befehl.

[root@centos ddclient-3.8.0]# yum install perl-IO-Socket-SSL
Anschließend müssen Sie die Konfigurationsdatei um die Option ssl erweitern.
[root@centos ddclient-3.8.0]# vi /etc/ddclient/ddclient.conf
Fügen Sie die folgende Zeile in die Konfigurationsdatei ein.
ssl=yes
</coe>
Nachdem Sie die das Perl-Modul installiert und die Konfiguration angepasst haben, müssen Sie ddclient neu starten.
<code/bash>
[root@centos 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@centos ddclient-3.8.0]# ddclient --help | less

Kurzanleitung

Installation

wget http://cdn.dyndns.com/ddclient.tar.gz
tar -xzvf ddclient.tar.gz
cd ddclient-3.7.3/
mkdir /etc/ddclient
mkdir /var/cache/ddclient
cp ddclient /usr/local/bin
cp sample-etc_ddclient.conf
cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
chkconfig --add ddclient
cd ..
rm -rf ddclient-3.7.3/
Now edit the /etc/ddclient/ddclient.conf file:
vim /etc/ddclient/ddclient.conf
so that it contains something like:
use=web
login=yourdndnslogin
password=yourdyndnspassword
server=members.dyndns.org,            \
protocol=dyndns2                      \
yourhost.dyndns.domain
Now start the ddclient daemon:
/etc/init.d/ddclient start
You can check status and troubleshoot using:
/etc/init.d/ddclient status
/etc/init.d/ddclient stop
tail /var/log/messages

Konfiguration mit Wenmin

Dazu unter www.webmin.org das Paket ddclient suchen und als neues Modul in Webmin installieren.
Die Konfiguration (/etc/ddclient/ddclient.conf) muss noch angepasst werden

Weitere Anwendungen

Alternativen zu DynDNS

Leider kostet der Dienst mitlerweile bei langfristiger Nutzung Geld. Alternativen sind:

  • Selfhost ist eindeutig spendabler als DynDNS, was kostenlose Features betrifft. Ihr Hostname wird nicht gelöscht und Sie haben sogar Zugang zu beliebig vielen Subdomains. Praktischerweise wird der Anbieter schon von vielen Routermodellen unterstützt.
  • SPDNS ist eine weitere deutsche Alternative zu DynDNS. Hier können Sie fünf Domainnamen wählen, zudem haben Sie aber die Auswahl aus acht Domains. Ein breites Angebot für einen kostenlosen Service. Als kleines Extra wird sogar erklärt, wie man den benutzerdefinierten Zugang im Interface der Fritz!Box einrichtet. Hierfür gibt es ein eigenes FAQ.
  • MyFRITZ!. Wenn Sie stolzer Besitzer einer Fritz!Box sind, haben Sie Glück gehabt. Sie brauchen sich auf keiner alternativen Website registrieren und zurechtfinden. Sie können einfach den hauseigenen Service benutzen. Dazu wechseln Sie einfach auf der Weboberfläche der Fritz!Box zu „Internet“ → „MyFRITZ!“ und erstellen sich einen Account. Sie haben natürlich keine riesige Anzahl an Domains zur Verfügung, aber können sämtliche Vorteile der Fritz!Box aus der Ferne nutzen. Beispielsweise das Abhören des Anrufbeantworters.

Kurzanleitung SPDNS mit dyndns

  • ein SPDNS-Account unter www.spdns.de erstellen
  • dyndns installieren
  • dyndns konfiurieren

daemon=600                                       # alle 600 Sekunden wird synchronisiert
mail=deine@mail.adresse                          # für Info-Mails (alle 10 Minuten!)
mail-failure=deine@mail.adresse                  # für Error-Mails
pid=/var/run/ddclient.pid                        # PID-File
cache=/tmp/ddclient.cache                        # Cache
protocol=dyndns2
use=web, web=checkip.spdns.de
wildcard=YES
server=update.spdns.de
#ssl=yes
login=benutzername                               # Bitte ändern
password='passwort'                              # auch ändern
erster_Host.spdns.de,zweiter_Host.spdns.de       # hier auch ändern

  • Berechtigung an der conf-und pid-Datei anpassen

chown ddclient:ddclient /etc/ddclient/ddclient.conf
chmod 0600 /etc/ddclient/ddclient.conf
touch /var/run/ddclient.pid
chown ddclient:ddclient /var/run/ddclient.pid

  • ddclient starten

service ddclient start

  • manuell synchronisieren

chmod 777 /tmp/ddclient.cache                   
ddclient -daemon=0 -debug -verbose -noquiet
Die Rechteänderung am tmp-File ist nur nötig, da ddclient zuvor als Dämonn, und damit unter root, gestartet wurde.

ddclient-Bug beseitigen

Wenn ein ähnlicher Fehler

cannot connect to checkip.spdns.de:80 socket: IO::Socket::INET: Bad hostname 'checkip.spdns.de'

auftritt, ligt das an einem Namenauflösungsfehler. Dies kann man so beheben:
In die Datei /etc/ddclient.conf diese Zeile hinzu fügen:

use=cmd, cmd=/etc/checkip.sh, cmd-skip='IP Address' # found after IP Address

Jetzt dei Datei /etc/checkip.sh erstellen

#!/bin/sh
#
# A script to fill in for what ddclient
# can't seem to do: reliably connect to checkip.dyndns.org.
curl http://checkip.dyndns.org/
und die Datei für alle ausführbar machen.
ddclient neu starten