Dynamic DNS: Difference between revisions
From Elch-Wiki
				
				
				Jump to navigationJump to search
				
				
No edit summary  | 
				No edit summary  | 
				||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
= Dynamic DNS auf trash.net =  | = Dynamic DNS auf trash.net =  | ||
*    | * Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND  | ||
Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND  | * Abhängig vom verwendeten URI muss das Zonefile entweder für www (Aufruf über eigenen Domain-Namen) oder für den eigenen User (z.B. romanf) schreibbar sein  | ||
www   | |||
Mein Script für die Zone von djbdns ist sehr einfach:  | * Mein Script für die Zone von djbdns ist sehr einfach:  | ||
<pre>  | <pre>  | ||
#!/bin/sh  | #!/bin/sh  | ||
| Line 23: | Line 22: | ||
</pre>  | </pre>  | ||
Für eine signierte BIND Zone so:  | * Für eine signierte BIND Zone so:  | ||
<pre>  | <pre>  | ||
#!/bin/sh  | #!/bin/sh  | ||
| Line 42: | Line 41: | ||
</pre>  | </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 (.htaccess) für die Zugangskontrolle:  | ||
<pre>  | <pre>  | ||
   AuthType Basic  |    AuthType Basic  | ||
| Line 51: | Line 50: | ||
</pre>  | </pre>  | ||
Wo das File   | * Wo das File ~/html_auth/htpasswd den Account dnsupdate enthält (anlegen/verwalten mit "htpasswd")  | ||
Aufgerufen wird das CGI   | * Aufgerufen wird das CGI mit einem Cronjob: <pre>33      *       *       *       *       /usr/bin/curl --ipv4 -s -o /dev/null --user dnsupdate:20dns+update11 http://www.trash.net/~romanf/cgi-bin/update-dns.cgi</pre>  | ||
/usr/bin/curl -s -o /dev/null --user dnsupdate:  | |||
http://www.  | |||
Latest revision as of 15:51, 14 May 2011
Dynamic DNS auf trash.net
- Voraussetzung ist ein eigenes Zonenfile für djbdns oder BIND
 - Abhängig vom verwendeten URI muss das Zonefile entweder für www (Aufruf über eigenen Domain-Namen) oder für den eigenen User (z.B. romanf) schreibbar sein
 
- 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 (.htaccess) für die Zugangskontrolle:
 
AuthType Basic AuthName "Privat Area" AuthUserFile /home/truniger/html_auth/htpasswd Require user dnsupdate
- Wo das File ~/html_auth/htpasswd den Account dnsupdate enthält (anlegen/verwalten mit "htpasswd")
 
- Aufgerufen wird das CGI mit einem Cronjob: 
33 * * * * /usr/bin/curl --ipv4 -s -o /dev/null --user dnsupdate:20dns+update11 http://www.trash.net/~romanf/cgi-bin/update-dns.cgi