Good to Know Database

CentOS 5: Dynamischen DNS-Eintrag von DynDNS.com mit inadyn aktualisieren


Zum Aktualisieren eines dynamischen DNS-Eintrages von DynDNS.com können Sie neben ddclient auch das in C geschriebene Programm inadyn verwenden. inadyn ermittelt Ihre externe IP-Adresse mittels dem CheckIP Service von DynDNS.com.

Im folgenden Tutorial erfahren Sie, wie Sie inadyn installieren und einsetzen können.

Installation von inadyn

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

[root@centos5 ~]# cd /usr/src/
[root@centos5 src]# wget http://cdn.dyndns.com/inadyn.zip

Nachdem Sie den Quellcode entpackt haben, wechseln Sie in das Verzeichnis inadyn.

[root@centos5 src]# unzip inadyn.zip
[root@centos5 src]# cd inadyn

Im Unterverzeichnis bin/linux/ finden Sie bereits eine kompilierte Version von inadyn. Sollten Sie inadyn selber übersetzen wollen, rufen Sie einfach den Befehl make auf.

[root@centos5 inadyn]# make

Kopieren Sie inadyn in das Verzeichnis /usr/local/bin/ und setzen wenn nötig die Zugriffsrechte auf 0755.

[root@centos5 inadyn]# cp bin/linux/inadyn /usr/local/bin/
[root@centos5 inadyn]# chmod 0755 /usr/local/bin/inadyn

Die Manpages zu inadyn kopieren Sie mit den folgenden Befehlen in die vorgesehenen Verzeichnisse.

[root@centos5 inadyn]# cp man/inadyn.8 /usr/local/share/man/man8/
[root@centos5 inadyn]# cp man/inadyn.conf.5 /usr/local/share/man/man5/

Ob die Manpages erfolgreich installiert wurden können Sie mit den folgenden Befehlen überprüfen. Dabei können Sie sich auch gleich einen ersten Überblick über die Optionen von inadyn verschaffen.

[root@centos5 ~]# man inadyn
[root@centos5 ~]# man inadyn.conf

Dynamischen DNS-Eintrag bei DynDNS.com aktualisieren

Im einfachsten Fall sieht der Aufruf von inadyn wie folgt aus. Mit den Optionen --username und --password geben Sie Ihre Login-Daten von DynDNS.com an. Durch die Option --alias geben Sie den Hostnamen an, welchen Sie aktualisieren wollen. Die Option --iterations sorgt dafür, dass der DNS-Eintrag aktualisiert wird und sich inadyn anschließend beendet. Sollten Sie diese Option nicht angeben, wird inadyn im Minutentakt Ihre externe IP-Adresse überprüfen und wenn nötig den DNS-Eintrag aktualisieren.

[root@centos5 ~]# inadyn --username Benutzername --password Passwort --alias Hostname.dyndns.org --iterations 1
INADYN: Started 'INADYN version 1.96.2' - dynamic DNS updater.
I:INADYN: IP address for alias 'Hostname.dyndns.org' needs update to '84.146.27.18'
I:INADYN: Alias 'Hostname.dyndns.org' to IP '84.146.27.18' updated successful.

Wenn Sie mehrere DNS-Einträge aktualisieren wollen, geben Sie diese durch weitere --alias Optionen an.

Für einige der bereits erwähnten Optionen gibt es auch eine Kurzform. Diese können Sie dem folgenden Befehl entnehmen, welcher wie Sie sehen zwei DNS-Einträge aktualisiert.

[root@centos5 ~]# inadyn -u Benutzername -p Passwort -a Hostname.dyndns.org -a Hostname2.dyndns.org --iterations 1
INADYN: Started 'INADYN version 1.96.2' - dynamic DNS updater.
I:INADYN: IP address for alias 'Hostname.dyndns.org' needs update to '84.146.27.18'
I:INADYN: IP address for alias 'Hostname2.dyndns.org' needs update to '84.146.27.18'
I:INADYN: Alias 'Hostname.dyndns.org' to IP '84.146.27.18' updated successful.
I:INADYN: Alias 'Hostname2.dyndns.org' to IP '84.146.27.18' updated successful.

Damit inadyn im Hintergrund läuft, regelmäßig die externe IP-Adresse überprüft und gegebenenfalls den DNS-Eintrag aktualisiert, starten Sie inadyn mit den folgenden Optionen.

[root@centos5 ~]# inadyn -u Benutzername -p Passwort -a Hostname.dyndns.org --update_period_sec 600 --log_file /var/log/inadyn.log --background

Die Option --update_period_sec legt den Intervall in Sekunden fest, in welchem die externe IP-Adresse überprüft werden soll. Mit der Option --log_file können Sie eine Datei angeben, in welche die Logmeldungen protokolliert werden. Durch --background wird inadyn im Hintergrund gestartet.

Alternativ zu einer eigenen Logdatei können Sie die Meldungen mit der Option --syslog an den Syslog-Daemon übergeben, welcher diese in der Logdatei /var/log/messages protokolliert.

[root@centos5 ~]# inadyn -u Benutzername -p Passwort -a Hostname.dyndns.org --update_period_sec 600 --syslog --background

Mit der Option --change_persona können Sie festlegen unter welchem Account inadyn nach dem Aufruf laufen soll. Geben Sie hier die gewünschte Benutzer- und Gruppen-ID an.

[root@centos5 ~]# inadyn -u Benutzername -p Passwort -a Hostname.dyndns.org --update_period_sec 600 --syslog --background --change_persona 500:500

inadyn als Daemon einrichten

Damit inadyn beim Systemstart automatisch gestartet wird und die Einstellungen in einer eigenen Konfigurationsdatei hinterlegt werden, gehen Sie wie folgt vor.

Aus Sicherheitsgründen sollten Sie inadyn unter einem eigenen Benutzer laufen lassen. Dazu erstellen Sie mit den folgenden zwei Befehlen eine Systemgruppe inadyn und einen Systembenutzer inadyn welcher zur Gruppe inadyn gehört und sich nicht am System anmelden kann.

[root@centos5 ~]# groupadd -r inadyn
[root@centos5 ~]# useradd -r -m -g inadyn -s /bin/false -c "inadyn" inadyn

Erstellen Sie jetzt die Konfigurationsdatei /etc/inadyn.conf.

[root@centos5 ~]# vi /etc/inadyn.conf

Die Konfigurationsdatei sollte wie folgt aufgebaut sein.

# Check for a new IP every 600 seconds
update_period_sec 600

# Send the output to syslog
syslog

# Run in background
background

# Enter your DynDNS.com username and password here
username Benutzername
password Passwort

# Enter your DynDNS hostname here
alias 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 ~]# chown inadyn:inadyn /etc/inadyn.conf
[root@centos5 ~]# chmod 0600 /etc/inadyn.conf

Damit inadyn als Daemon verwendet werden kann, benötigen Sie ein Init-Skript welches Sie wie folgt erstellen.

[root@centos5 ~]# vi /etc/rc.d/init.d/inadyn

Das folgende Skript ermöglicht das Starten, Stoppen und Neustarten des inadyn-Daemons. Kopieren Sie den Code in die Datei /etc/rc.d/init.d/inadyn.

#!/bin/sh
# chkconfig: - 99 00
# description: Check and update your IP to dynamic DNS Server.

# Check that config file exist
[ -f /etc/inadyn.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/local/bin/inadyn
lockfile=/var/lock/subsys/inadyn
pid=/var/run/inadyn.pid

start() {
  echo -n "Starting inadyn: "
  [ -f $pid ] || touch $pid
  chown inadyn:inadyn $pid && chmod 0600 $pid || exit $?
  daemon --user=inadyn --pidfile=$pid $exec --input_file /etc/inadyn.conf
  retval=$?
  echo
  [ $retval -eq 0 ] && touch $lockfile
  return $retval
  }

stop() {
  echo -n "Stopping inadyn: "
  killproc $exec
  retval=$?
  echo
  [ $retval -eq 0 ] && rm -f $lockfile
  return $retval
  }

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    status inadyn
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
    ;;
esac

exit 0

Nachdem das Init-Skript erstellt wurde, ändern Sie die Zugriffsberechtigungen der Datei.

[root@centos5 ~]# chmod 0755 /etc/rc.d/init.d/inadyn

Anschließend wird der Service inadyn mit den folgenden Befehlen erstellt und im Runlevel 3 und 5 aktiviert.

[root@centos5 ~]# chkconfig --add inadyn
[root@centos5 ~]# chkconfig --level 35 inadyn on

Der soeben erstellte Service kann jetzt gestartet werden.

[root@centos5 ~]# service inadyn start

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

[root@centos5 ~]# tail -f /var/log/messages


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_829.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer