Dynamic DNS: Difference between revisions
(Created page with "= Dynamic DNS auf trash.net = * Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND, wo der User www Schreibrechte drauf hat. Mein Script für die Zone von djbdns is...") |
No edit summary |
||
Line 6: | Line 6: | ||
Mein Script für die Zone von djbdns ist sehr einfach: | Mein Script für die Zone von djbdns ist sehr einfach: | ||
<pre> | |||
#!/bin/sh | #!/bin/sh | ||
echo "Content-type: text/plain" | echo "Content-type: text/plain" | ||
Line 21: | Line 21: | ||
EOF | EOF | ||
mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null | mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null | ||
</pre> | |||
Für eine signierte BIND Zone so: | Für eine signierte BIND Zone so: | ||
<pre> | |||
#!/bin/sh | #!/bin/sh | ||
echo "Content-type: text/plain" | echo "Content-type: text/plain" | ||
Line 39: | Line 40: | ||
EOF | EOF | ||
mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null | mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null | ||
</pre> | |||
Abgelegt ist dieses Script als public_html/cgi-bin/update-dns.cgi | Abgelegt ist dieses Script als public_html/cgi-bin/update-dns.cgi | ||
Dort liegt auch noch ein AccessFile für die Zugangskontrolle: | Dort liegt auch noch ein AccessFile für die Zugangskontrolle: | ||
<pre> | |||
AuthType Basic | AuthType Basic | ||
AuthName "Privat Area" | AuthName "Privat Area" | ||
AuthUserFile /home/truniger/html_auth/htpasswd | AuthUserFile /home/truniger/html_auth/htpasswd | ||
Require user dnsupdate | Require user dnsupdate | ||
</pre> | |||
Wo das File /home/truniger/html_auth/htpasswd den Account dnsupdate enthält. | Wo das File /home/truniger/html_auth/htpasswd den Account dnsupdate enthält. |
Revision as of 20:39, 5 May 2011
Dynamic DNS auf trash.net
Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND, wo der User www Schreibrechte drauf hat.
Mein Script für die Zone von djbdns ist sehr einfach:
#!/bin/sh echo "Content-type: text/plain" echo "" ZONEFILE=/etc/djbdns/tinydns/root/datafiles/truniger.ch FOUND=`grep "^+privat.truniger.ch:$REMOTE_ADDR:" $ZONEFILE` if [ -n "$FOUND" ] ; then exit fi ed -s $ZONEFILE <<EOF >/dev/null /^+privat.truniger.ch:/s/^.*$/+privat.truniger.ch:$REMOTE_ADDR:300 w q EOF mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null
Für eine signierte BIND Zone so:
#!/bin/sh echo "Content-type: text/plain" echo "" ZONEFILE=/var/named/truniger.ch/zone.db FOUND=`grep "^privat\.truniger\.ch\..*${REMOTE_ADDR}$" $ZONEFILE` if [ -n "$FOUND" ] ; then exit fi ed -s $ZONEFILE <<EOF >/dev/null /^privat.truniger.ch..*IN.*A/s/^.*$/privat.truniger.ch. 300 IN A $REMOTE_ADDR w q EOF mailx -s "New IP Adress $REMOTE_ADDR" truniger@trash.net </dev/null
Abgelegt ist dieses Script als public_html/cgi-bin/update-dns.cgi Dort liegt auch noch ein AccessFile für die Zugangskontrolle:
AuthType Basic AuthName "Privat Area" AuthUserFile /home/truniger/html_auth/htpasswd Require user dnsupdate
Wo das File /home/truniger/html_auth/htpasswd den Account dnsupdate enthält.
Aufgerufen wird das CGI so: /usr/bin/curl -s -o /dev/null --user dnsupdate:xxxxxxx http://www.truniger.ch/cgi-bin/update-dns.cgi
Ich richte dir gerne eine eigene Domain für djbdns oder BIND ein.
- Wie du sicherlich gemerkt hast, habe ich das Problem noch während der
Arbeitszeit gelöst. Ich habe dabei temporär dein .htaccess File inaktiviert, damit ich den Echtzugriff ausführen konnte.
Dabei habe ich realisiert, dass mit http://www.trash.net/~romanf der Zugriff mit UID=romanf,GID=trash passiert, während mein Zugriff mit http://www.truniger.ch mit UID=www,GID=www erfolgt. Aus diesem Grund habe ich den Owner des Zonenfiles auf romanf geändert und schon ging es. Das hat weiter den Vorteil, dass du dein Zonenfile selbständig warten kannst.