blob: b3209a87a0a47503cf2d670d978f6c24d12db601 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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
|