Archiv für Mai 2011

DynDNS selbst gemacht

von MichiK am 25. Mai 2011 um 09:56 Uhr

Mich hat die zunehmend kommerzielle Natur von DynDNS in letzter Zeit mehr und mehr angenervt. Außerdem ging die (gefühlte) Zuverlässigkeit immer weiter zurück. Also musste eine neue Lösung her, idealerweise auch eine, bei der ich Hosts meiner eigenen Domain dynamisch vergeben kann, und das ohne externe Dienstleister (einfach der Coolness wegen).

Mein schnell zusammengehacktes System hier besteht jetzt aus zwei Elementen: Einerseits muss der dynamische Host dem Server irgendwie mitteilen, wie seine IP lautet, andererseits muss der Server die neue IP in die Welt hinausposaunen.

Für den ersten Teil habe ich genutzt, was da war: Zu Hause steht ein Linksys mit OpenWRT, auf dem Server läuft ohnehin ein Webserver, der auch CGI spricht (Natürlich würde sich hier auch jeder andere Service eignen, bei dem eine Verbindung aufgebaut und irgend eine Art von Authentifizierung durchgeführt wird. Meine Variante hat aber den netten Vorteil, dass hier auf Serverseite ein Skript angestoßen wird, was die IP des dynamischen Hosts einfach in eine Datei schreiben kann. Andere benutzen an der Stelle SSH oder POP, aber dann muss man die IP-Adresse hinterher umständlich aus irgendwelchen Logfiles popeln.). Auf dem Linksys läuft der folgende Cronjob:

/usr/bin/wget -O /dev/null "http://www.example.com/cgi-bin/ipupdate?foobar" >/dev/null 2>/dev/null

Der String “foobar” in der URL erfüllt dabei die Funktion eines Passworts, um ein Mindestmaß an Authentifizierung sicherzustellen. Man kann die Sache an dieser Stelle beliebig komplex machen, aber für mich reicht es. Das ipupdate-Skript auf Serverseite sieht folgendermaßen aus:

#!/bin/sh
echo "Content-type: text/html\n"
if [ "$QUERY_STRING" = "foobar" ] ; then
echo "$REMOTE_ADDR" > /tmp/ip.txt
fi

Es tut nichts anderes als zu prüfen, ob das Passwort stimmt und wenn ja, schreibt es die IP-Adresse des Clients in eine Datei. Diese IP-Adresse muss nun natürlich noch an einen DNS-Server verfüttert werden. Wer keinen eigenen DNS-Server hat, sondern den seines Providers verwendet (mache ich normalerweise auch so), kann sich nun ein Skript schreiben, was im Administrations-Interface des Providers die IP-Adresse des Hosts ändert. Das ist sicher möglich, war mir aber einerseits zu kompliziert, andererseits haben die Einträge beim DNS-Server meines Providers eine lange Lebensdauer von 86400 Sekunden, die ich nicht anpassen kann. Übliche Cachelebensdauern sind zwar meist kürzer, aber ich habe dennoch keine Kontrolle darüber, wie lange die alte IP von anderen Servern ggf. noch verwendet wird, ohne mal nach der neuen zu fragen.

Also habe ich einfach selbst einen primitiven DNS-Server mit minimalistischer Konfiguration eingerichtet. BIND ist natürlich totaler Overkill an dieser Stelle, also habe ich mich für MaraDNS entschieden. Die MaraDNS-Konfiguration ist nicht schwierig, ich habe lediglich folgendes in meiner Konfigurationsdatei stehen:

bind_address = "127.0.0.1 1.2.3.4"
chroot_dir = "/etc/maradns"
csv2 = {}
csv2["dynamic.example.com."] = "db.dynamic.example.com"

Hierbei ist 1.2.3.4 die externe IP-Adresse des Servers und dynamic.example.com der Host, unter dem der Rechner mit der dynamischen IP später erreichbar sein soll.

Was nun noch fehlt, ist das Zonefile. MaraDNS liest seine Zonefiles leider nur neu, wenn man es beendet und neu startet (das ist in meinem Fall kein großes Problem, weil meine dynamische IP sich nur selten ändert – im Idealfall einmal am Tag – möchte man viele oder schnell wechselnde IPs verteilen, muss man sich hier natürlich etwas anderes einfallen lassen). Ich habe an dieser Stelle einen Cronjob als root eingerichtet, der minütlich folgendes Skript aufruft:

#!/bin/sh
[ -e /tmp/ip.txt -a -e /etc/maradns/db.dynamic.example.com ] || exit 1
if [ `cat /tmp/ip.txt` != `cut -d " " -f 4 /etc/maradns/db.dynamic.example.com` ] ; then
echo "dynamic.example.com. +60 A `cat /tmp/ip.txt` ~" > /etc/maradns/db.dynamic.example.com
/etc/init.d/maradns restart >/dev/null
fi

Es vergleicht den (von ihm selbst in einem früheren Lauf angelegten) alten Eintrag im Zonefile (das deshalb nur eine Zeile mit eben diesem Eintrag haben sollte, die am Schluss einfach wieder überschrieben wird) mit der letzten vom dynamischen Host gemeldeten IP-Adresse. Falls sich die IP-Adresse geändert haben sollte, wird das Zonefile aktualisiert und der DNS-Server neu gestartet.

Man muss nun natürlich noch dem DNS-Server seines Providers mitteilen, dass er die Anfragen für die Subdomain dynamic.example.com an den eigenen Nameserver delegiert. Ob und wie das geht, ist natürlich von Provider zu Provider unterschiedlich – ich konnte es bequem im Webinterface klicken.

GLS vs. Packstation

von MichiK am 20. Mai 2011 um 23:12 Uhr

Jetzt wird es spannend: Ein Amazon-Händler hat mir heute mitgeteilt, dass er meine Bestellung abgeschickt hat. An eine Packstation. Mit GLS. Jetzt darf mit Spannung erwartet werden, ob das Paket ankommt, wo es ankommt – und vor allem: wann es ankommt.

Wetten werden angenommen. ;)

Osama bin Laden ist tot. Na und?

von MichiK am 3. Mai 2011 um 23:17 Uhr

Ich frage mich ja, warum ausgerechnet diese Meldung ausgerechnet zum jetzigen Zeitpunkt kommt. Wie es scheint, haben die Amerikaner den guten Mann ja schon einige Monate lang observiert und er konnte ihnen schlecht davonlaufen – warum ermorden sie ihn also jetzt? Nächstes Jahr im Wahlkampf wäre doch ein taktisch viel besserer Zeitpunkt gewesen. Vermutlich gibt es da noch einige Dinge, die erst in den nächsten Wochen und Monaten langsam durchsickern werden.

Das ist aber garnicht der Punkt. Wenn man den Medienberichten glauben darf, war bin Laden beim Zugriff der Navy SEALs unbewaffnet und wurde “versehentlich” durch einen Kopfschuss getötet. Wer’s glaubt… Politiker in aller Welt freuen sich nun über diesen Mord und betonen im selben Atemzug fleißig, dass zwar der Staatsfeind Nr. 1 nun tot ist, aber dass das natürlich kein Grund zum Aufatmen sein kann und der Terror nun erst so richtig losgeht. Was hinkt hier?

Die Amerikaner stellen sich immer als die großen Kämpfer für Freiheit, Demokratie und Menschenrechte dar. Nun ermorden sie einen ihrer Widersacher einfach so und fast alle finden es gut. Damit haben sie allerdings ihre Prinzipien verraten, für die sie diesen Kampf angeblich überhaupt nur führen. Sie haben sich damit auf die Stufe der “Barbaren” begeben, anstatt die moralischen und ethischen Werte der westlichen Zivilisation hochzuhalten. Die gestehen auch einem Massenmörder, so brutal und böse er auch sein mag, zunächst einmal ein Recht auf Leben und einen fairen Prozess zu. Anstatt Osama bin Laden festzunehmen und von einem internationalen Gericht verurteilen zu lassen (und somit der Welt zu zeigen, dass man es ernst meint mit der Freiheit und der Demokratie), hat man ihn erschossen und so zum Märtyrer gemacht. Immerhin war man klug genug, bin Laden im Meer zu bestatten und somit zu verhindern, dass sein Mausoleum zur Pilgerstätte wird.

Eigentlich ist diese Diskussion ohnehin müßig. Meine Argumentation basiert darauf, dass es der Politik ernsthaft darum geht, dem Terrorismus die Grundlage zu entziehen. Doch das ist anscheinend garnicht das Ziel. Den Regierungen (egal ob in den USA, in Deutschland oder anderswo auf der Welt) kommt die angebliche terroristische Bedrohung gerade recht, lassen sich doch so immer neue Sicherheitsgesetze durchboxen oder zumindest die bestehenden Notstandsgesetze weiterhin rechtfertigen. Dass man durch dieses künstlich hochgehaltene Klima der Angst den Terroristen nur einen Gefallen tut, wird billigend in Kauf genommen – und das Volk fällt darauf herein.

Denn: Was ist das Ziel von Terrorismus? Anschläge verüben und möglichst viele Menschen töten? Nein. Das Ziel heißt Angst. Die Menschen sollen Angst haben. Es gibt zwei Wege, Terror die Grundlage zu entziehen: Entweder man stellt die Ursachen ab oder aber man nimmt die Terroristen nicht ernst. Warum muss man es denn in den Medien groß aufbauschen, wenn jemand festgenommen wird, der Grillanzünder und Aceton im Haus hat und dann auch noch einen Lötkolben kauft? Wenn man meint, Leute wegen sowas festzunehmen, soll man es meinetwegen machen, aber nicht an die große Glocke hängen. Gab es in den letzten 10 Jahren in Deutschland auch nur einen einzigen Terroranschlag? Ich kann mich an keinen erinnern. Entweder gibt es also garkeine Terroristen, oder diejenigen, die es gibt, haben es nicht auf uns abgesehen, oder aber die Sicherheitsbehörden arbeiten schon lange effektiv genug, um alle Anschlagspläne, so sie existieren, im Vorfeld zu verhindern.

Warum also Angst haben? Es ist doch alles gut. Wenn niemand in Terrorpanik verfällt, werden es die Terroristen irgendwann von selbst sein lassen. Ich sehe das genauso wie mit einer Strategie gegen Mobbing in der Schule, die bei mir wunderbar funktioniert hat: Man hat versucht, mich zu provozieren, ich habe nicht reagiert. Irgendwann hat man es aufgegeben.