LDAP – Howto: StandbyMaster / Multi-Master

Im folgenden Blogeintrag moechte ich beschreiben, wie man eine einfache LDAP-StandbyMaster bzw. Multi-Master Loesung implementiert. Das Ziel ist, dass sich zwei LDAP-Server permanent gegeneinander replizieren so dass im Bedarfsfall der StandbyMaster die Funktionen des Masters transparent uebernimmt, ohne das angeschlossene Dienste davon etwas mitbekommen.

All mein Wissen was ich hier beschreibe habe ich aus dem wirklich tollen Buch OpenLDAP 2.4 – Das Praxisbuch, sowie den Quellen die, wenn man sie nicht beachtet, normalerweise mit der Aussage „RTFM“ gemeint sind. Das Buch kann ich nur jedem ans Herz legen, der sein Wissen ueber LDAP erweitern und auf eine feste Grundlage stellen moechte. Es ist hervorragend geschrieben, leicht verstaendlich, und bietet gute Praxisbeispiele.

Die Umgebung in der ich arbeite ist Debian Lenny 32bit. Es handelt sich bei beiden LDAP-Servern um mit KVM virtualisierte Maschinen auf zwei unterschiedlichen physikalischen Servern. Alle Konfigurationseinstellungen, Pfade etc. beziehen sich auf die beiden genannten Systeme.

Weiterlesen

Schnitzeljagd 2.0

Es bietet koerperliche Betaetigung in Form von Spaziergaengen, macht Spass beim Loesen von Raetseln und finden von Verstecken: die Schnitzeljagd. Seit einiger Zeit gibt es die Schnitzeljagd 2.0, auch Geocaching genannt.

Kurz erklaert: Es versteckt jemand einen Cache, indem sich mind. ein Zettel zum Eintragen befindet, und veroeffentlicht die GPS-Koordinaten anschliessend im Internet. Ziel ist es, dann von anderen diesen Cache zu finden.

Wer mehr darueber erfahren will liest am besten den oben verlinkten Wikipedia Artikel oder guckt sich bei www.geocaching.de oder www.geocaching.com einmal um.

Anja und ich haben den Punkt bereits seit laengerem auf unserer Liste stehen, und ich habe mich in den letzten Tagen mal rangemacht u mich ein bisschen mit dem Thema auseinandergesetzt. Mein Handy, ein Sony Ericsson C702, besitzt ein eingebautes GPS und ist deswegen fuer Dinge wie Geocaching praedestiniert. Als Software habe ich mich fuer vlkGPS entschieden. Da die Homepage zur Zeit nicht erreichbar ist, die Version die ich einsetze an dieser Stelle zum Download: vlkGPS-20080912-0.8.1+svn24.jar

Dann habe mich dann auf geocaching.com angemeldet und mir einige Caches hier fuer Hamburg heruntergeladen, und aufs Handy gepackt. Der Import von *.loc Dateien in vlkGPS funktioniert einwandfrei. Nur einmal hatte ich ein Problem mit Sonderzeichen in der Beschreibung, was sich aber durch ein schnelles editieren der Textdatei beheben lies. Das interne GPS wird erkannt und die Bedienung ist sehr einfach. Toll finde ich, dass es auch keine Karten dazu anzeigt, sondern das man nur seine aktuelle Position, den zurueckgelegten Weg und den Ort des Caches angezeigt bekommt.

Alles in allem eine Supersache, wir haben bereits drei Caches „geloggt“ und es hat trotz des typisch Hamburger Wetters echt superviel Spass gemacht! :-)

OpenVPN mit Linux/Windows

Nach einiger Zeit hab ich mir nun auch mal OpenVPN angeguckt. Ich benoetige von meinem Netbook unter Linux (und leider auch manchmal Windows) eine VPN-Einwahl in zwei Netze. Einmal das Wohnheimnetz in dem Studentenwohnheim in dem ich lebe (ATW) und einmal das Subnetz in der Uni wo ich arbeite. In beiden Netzen laufen Server 24/7 mit festen IPs die ich entsprechen erreichen kann. Vorab gesagt: Eine VPN-Verbindung fuer einen PC einzurichten ist sehr einfach. Doch von Anfang an…:
Auf dem Server und dem Client:

aptitude install openvpn

Anschliessend auf dem Server als root in /etc/openvpn/ mit dem folgenden Befehl einen statischen Schluessel erzeugen:

openvpn --genkey --secret mykey.txt

Diesen Schluessel dann auf einem sicheren Weg (z.B. scp) auf den Client transportieren. Mit einem

chmod 600 mykey.txt

sollte er gegen unbefugtes Lesen gesichert werden. Nun sind die Konfigurationsdateien /etc/openvpn/myvpn.conf anzulegen. Auf dem Server wie folgt:

dev tun
ifconfig 10.10.100.41 10.10.100.42
secret mykey.txt
port 5000

und auf dem Client folgende:

remote 123.123.123.123
dev tun
ifconfig 10.10.100.41 10.10.100.42
secret mykey.txt
port 5000
route-gateway 10.10.100.41
redirect-gateway

Auf dem Server muss Port 5000 UDP erreichbar sein. Wenn beide Dateien angelegt sind, kann man den Server starten mit dem Befehl:

openvpn --config /etc/openvpn/myvpn.conf

mit dem selben Befehl kann man anschliessend auf dem Client die Verbindung zum VPN-Server herstellen. Das das erfolgreich war kann man anhand der Statusmeldung „Initialization Sequence Completed“ erkennen.
Das die Verbindung funktioniert kann man mit entsprechendem hin- und hergepinge ueberpruefen.

Auf dem Server fehlen nun noch zwei kleine Einstellungen damit auch das routen ins Netzwerk/Internet funktioniert. Zueinem muss ip_forward aktiviert sein und man muss eine iptables NAT Regel hinzufuegen:

echo "1" >> /proc/sys/net/ipv4/ip_forward  
iptables -t nat -A POSTROUTING -o eth0 -s 10.10.100.41/24 -j SNAT --to 123.123.123.123

Damit die Einstellungen nicht bei einem Neustart verloren gehen, kann man sie z.B. in die /etc/rc.local eintragen. Ob alles funktioniert kann man dann erkennen, indem man z.B. www.heise.de/ip aufruft um seine IP rauszufinden, dann den VPN-Tunnel aufbauen und die Seite refreshen…

Unter Windows gestaltet es sich aehnlich einfach. Man muss OpenVPN fuer Windows installieren. Das Konfigurationsverzeichnis ist dann C:\Programme\OpenVPN\config. Dort wieder die mykey.txt ablegen (WinSCP) und eine VPN Konfigurationsdatei erstellen wie bereits oben beschrieben. Es ist nur wichtig, dass sie die Endung *.ovpn erhaelt. Bei der Vergabe der IP-Adressen fuer den VPN Tunnel ist weiter zu beachten, dass nur IP-Adressen aus dem Subnetz 255.255.255.252 benutzt werden koennen. Welche das sind, kann man sich unter Windows mit dem Befehl

openvpn --show-valid-subnets

anzeigen lassen.

Die hier beschriebenen Infos habe ich von da und von da.

Temperatur aus Goettingen twittern…

Nachdem vorlon078 meinte wir braeuchten ein Skript das die Temperatur in Goettingen automatisch zwitschert…

#!/bin/bash
 
# fetch site
curl -s http://62.8.156.193/aktwert.aspx?St=GNCC >> temptmp
 
# find and get temperature
ROW=`nl temptmp | grep Temperatur | head -1 | awk {'print $1'}`
LINE=`echo $ROW + 1 | bc`
TEMP=`nl temptmp | grep $LINE | sed 's/.*SIZE="2">\|<\/FONT><\/TD>//g'`
 
# date and time
DATE=`date +"%d %B %Y"`
TIME=`nl temptmp | grep 13 | head -1 | sed 's/.*<BR>vom\|<\/FONT><\/B> <\/td>//g' | awk {'print $2'}`
 
#send to twitter
curl -s --connect-timeout 30 --max-time 60 -u TWITTERUSER:TWITTERPASS -d status="In Goettingen sind es am $DATE um $TIME Uhr genau $TEMP°C." http://twitter.com/statuses/update.xml 
 
# remove helpfile
rm temptmp

Der dazugehoerige crontab Eintrag lautet bei mir:

43 *	* * *	root	export LANG=de_DE.UTF-8 ; /root/skripte/goetemp.sh >> /dev/null

Followed einfach goetemp. Da gibts einmal pro Stunde die Temperatur…