summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow (mars.fritz.box) <paul@buetow.org>2014-03-24 23:54:45 +0100
committerPaul Buetow (mars.fritz.box) <paul@buetow.org>2014-03-24 23:54:45 +0100
commit49f8c8742ec53c080c831b1a0118887e326716f7 (patch)
treef9950d2e8ed958fe16795ea73031263dfceb02a3
initial import
-rwxr-xr-xupdate-dyndns66
1 files changed, 66 insertions, 0 deletions
diff --git a/update-dyndns b/update-dyndns
new file mode 100755
index 0000000..b3209a8
--- /dev/null
+++ b/update-dyndns
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+# Simple DynDNS Host update script
+# (C) by Paul C. Buetow 2006
+# Mail: paul at buetow dot org
+# WWW : http://buetow.org
+#
+# You need a running BIND on a server box with root access.
+# You also need a new zone for your dyndns host.
+#
+# 1) Add new user dyndns to your DNS server box.
+# 2) Read the nsupdate manpage at find out how to use it.
+# Create a nsupdate key called your-host-name if your host
+# is your.host.name.
+# 3) Copy the nsupdate key files of your host to ~dyndns and
+# chown them to the dyndns user.
+# 4) Also read the ssh manpage because you need to gerenate
+# a RSA Public Key if you want to update a dyndns host via
+# SSH without an interactive password prompt.
+# 5) Create an empty /var/log/lastnsupdate.log file and chown
+# it to the user dyndns.
+#
+# Further explanation:
+#
+# Call this script from a DynDNS-client box:
+# Syntax:
+# ssh dyndns@dyndnsserver /path/to/dyndns-update \
+# your.host.name. TYPE new-entry TIMEOUT
+# An real example:
+# ssh dyndns@dyndnsserver /path/to/dyndns-update \
+# local.buetow.org. A 137.226.50.91 30
+#
+# Because its a dyndns host, we set the timeout to very low
+# 30 seconds.
+#
+# If you use ppp on your client box, then you may add the
+# following lines to your /etc/ppp/ppp.linkup file:
+#
+# ! sh -c "echo \"MYADDR `date`\" >> /var/log/ips.log"
+# !bg /usr/bin/ssh dyndns@dyndnsserver \
+# /path/to/update-dyndns your.host.name. A MYADDR 30
+#
+# Here you need to generate a SSH RSA public key to allow root
+# to ssh into dyndns@dyndnsserver without a password. Ask
+# google or read the manpage and try it out! RTFM!
+#
+# your.host.name's A record should be changed to the dyndns
+# client's new ip address each time the internet protocol
+# number changes.
+# You may use the tools nslookup and dig to check if its working.
+#
+# Thanks to Lars Engels for some nice ideas concerning
+# ppp.linkup and nsupdate! :).
+
+host=$1
+type=$2
+addr=$3
+timeout=$4
+
+keyname=`echo $host | sed 's/\./-/g; s/-$/./'`
+
+cat << NSUPDATE | tee /var/log/lastnsupdate.log | nsupdate -k $HOME/:$keyname
+update delete $host $type
+update add $host $timeout IN $type $addr
+send
+NSUPDATE