diff options
| author | Paul Buetow (mars.fritz.box) <paul@buetow.org> | 2014-03-24 23:54:45 +0100 |
|---|---|---|
| committer | Paul Buetow (mars.fritz.box) <paul@buetow.org> | 2014-03-24 23:54:45 +0100 |
| commit | 49f8c8742ec53c080c831b1a0118887e326716f7 (patch) | |
| tree | f9950d2e8ed958fe16795ea73031263dfceb02a3 | |
initial import
| -rwxr-xr-x | update-dyndns | 66 |
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 |
