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, wo der User
* 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 Schreibrechte drauf hat.


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 /home/truniger/html_auth/htpasswd den Account dnsupdate enthält.
* Wo das File ~/html_auth/htpasswd den Account dnsupdate enthält (anlegen/verwalten mit "htpasswd")


Aufgerufen wird das CGI so:
* 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: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.

Latest revision as of 16: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