Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
shackspace Dynamic DNS Service
Das ist ein einfach nutzbarer Dynamic DNS Server unterhalb der Zone dyn.shackspace.de.
Die Aktualisierung des Eintrags geschieht ganz einfach ueber den Aufruf der URL
http://dyn.shackspace.de/dyn?digest=md5sum(HOSTNAME:AUTH)
Es wird die absendende IP-Adresse eingetragen, das gilt gleichermassen fuer IPv6 & und IPv4.
Wenn man den Parameter &ip=xxxx angibt, wird diese Adresse eingetragen:
- fuer eine IPv4-Adresse ein DNS IN A RR
- fuer eine IPv6-Adresse ein DNS IN AAAA RR
- fuer alles uebrige ein DNS IN TXT RR
Zugangsdaten gibt's bei admin at, bitte Rechnernamen angeben, Auth-Code kommt zurueck.
Beispiele:
wget -O /dev/null http://dyn.shackspace.de/dyn?digest=$( echo -n HOSTNAME:AUTH | md5sum | awk '{print $1}' )
wget -O /dev/null http://dyn.shackspace.de/dyn?digest=$( echo -n HOSTNAME:AUTH | md5sum | awk '{print $1}' )\;ip=127.0.0.1
wget -O /dev/null http://dyn.shackspace.de/dyn?digest=$( echo -n HOSTNAME:AUTH | md5sum | awk '{print $1}' )\;ip=offline
Der '\' vor dem Semikolon ist notwendig, damit die Shell dieses nicht als Meta-Character interpretiert
Der Dienst selbst ist nicht besonders gesichert, er kann mit SSL verwendet werden:
Beispiele:
wget -O /dev/null --no-check-certificate https://dyn.shackspace.de/dyn?digest=$( echo -n HOSTNAME:AUTH | md5sum | awk '{print $1}' )
wget -O /dev/null --no-check-certificate https://dyn.shackspace.de/dyn?digest=$( echo -n HOSTNAME:AUTH | md5sum | awk '{print $1}' )\;ip=127.0.0.1
wget -O /dev/null --no-check-certificate https://dyn.shackspace.de/dyn?digest=$( echo -n HOSTNAME:AUTH | md5sum | awk '{print $1}' )\;ip=offline
Implementierung
angelegt:
// dynamic zone "dyn.shackspace.de" w/ nsupdate & dyn
include "/etc/bind/dyn-key.key";
acl "update-dyn" {
key dyn-key;
};
zone "dyn.shackspace.de" {
type master;
file "/etc/bind/dyn.shackspace.de.";
allow-update { update-dyn; };
allow-transfer { xfer-allowed; };
};
// "dyn.shackspace.de" END
rndc reconfig
rndc reload
HOST=dyn
KEYNAME=$HOST-key
dnssec-keygen -a hmac-md5 -b 256 -n host $HOST
awk '/^Key: / { k = $2; exit }
END {
print "key \"'"$KEYNAME"'\" {";
print "\talgorithm hmac-md5;";
print "\tsecret \"" k "\";";
print "};";
}' K$HOST.+*+*.private > $KEYNAME.key
rm K$HOST.+*+*.{key,private}
chmod g+w /etc/bind
/etc/bind/shackspace.de.
dyn IN A 141.31.176.214 dyn IN AAAA 2a01:4f8:190:5484::20 dyn.v4 IN A 78.46.139.5 dyn.v6 IN AAAA 2a01:4f8:190:5484::20 dyn IN NS ns.shackspace.de. dyn IN NS ns3.shackspace.de. dyn IN NS perl.opsec.eu.
rndc reload shackspace.de wget http://www.fischglas.de/software/dyn/dyn -O /var/www/dyn.shackspace.de/htdocs/dyn chmod 755 /var/www/dyn.shackspace.de/htdocs/dyn DOMAIN=shackspace.de mkdir /etc/dyn cat > /etc/dyn/dyn.cfg << EOF DNS.Host: 127.0.0.1 DNS.Key: (secret aus /etc/bind/dyn-key.key ) DNS.Key.Name: dyn-key Authfile: /etc/dyn/dyn.$DOMAIN.auth NSUpdate: /usr/bin/nsupdate Debug: 0 EOF cat >> /etc/dyn/dyn.$DOMAIN.auth << EOF test.dyn.$DOMAIN:$(apg -n 1) EOF # fuer nsupdate: aptitude install dnsutils
apache config (aktuell)
/etc/apache2/sites-available/dyn.shackspace.de.conf
ScriptAlias /dyn /var/www/dyn.shackspace.de/htdocs/dyn
apache mod_rewrite config (aktuell)
/etc/apache2/sites-available/px4.shackspace.de
# forward ip address to "dyn" service if none given
RewriteCond %{HTTP_HOST} '^dyn(|.v4|.v6]).shackspace.de$'
RewriteCond %{REQUEST_URI} ^/dyn$
RewriteCond %{QUERY_STRING} ^digest=[0-9a-f]{32}$
RewriteRule ^/dyn$ http://web07.v6.shackspace.de/dyn?%{QUERY_STRING}&ip=%{REMOTE_ADDR} [P,L]
# redirect "/dyn" to web07.v6 = dyn.shackspace.de
RewriteCond %{HTTP_HOST} '^dyn(|.v4|.v6]).shackspace.de$'
RewriteCond %{REQUEST_URI} ^/dyn$
RewriteRule ^/dyn$ http://web07.v6.shackspace.de/dyn?%{QUERY_STRING} [P,L]
# forward ip address to "dyn" service if none given (legacy as of 2016-11-22)
RewriteCond %{HTTP_HOST} '^shackspace.de$'
RewriteCond %{REQUEST_URI} ^/dyn$
RewriteCond %{QUERY_STRING} ^digest=[0-9a-f]{32}$
RewriteRule ^/dyn$ http://web07.v6.shackspace.de/dyn?%{QUERY_STRING}&ip=%{REMOTE_ADDR} [P,L]
# redirect "/dyn" to web07.v6 = dyn.shackspace.de (legacy as of 2016-11-22)
RewriteCond %{HTTP_HOST} '^shackspace.de$'
RewriteCond %{REQUEST_URI} '^/dyn$'
RewriteRule ^/dyn(|\?.*)$ http://web07.v6.shackspace.de/dyn$1 [P,L]
service apache2 reload
lighttpd config (Stand 2011-10)
/etc/lighttpd/20-shackspace.de.conf
cgi.assign = (
...
"/dyn" => "",
...
/etc/init.d/lighttpd reload
History
- 2016-11-28
- eigener Vserver dyn.shackspace.de
- Service-URL angepasst
