Skip to content

Mein neues Spielzeug

^ v M ><
Ich hab mir ein neues Spielzeug besorgt. Nachdem endlich der eeepc 901 in schwarz und ohne Microsoft-Steuer nicht nur "anderswo" sondern tatsächlich auch im IT-Drittweltland Schweiz verfügbar ist, habe ich natürlich sofort zugegriffen. Danach musste als erstes das Xandros-Verräterlinux runter. Stattdessen läuft nun ein Debian Sid mit nur freier Software.

Die 16GB SSD habe ich komplett verschlüsselt. Die Installation war drum etwas knifflig da der Debian EEE Installer das nicht von Haus aus beherrscht und ich drum eine normale Installation mit Ergänzungen gemäss Anleitung vornehmen musste.

Die Hardware ist ganz OK. Die SSD überzeugt mit ihrer Geschwindigkeit. Um sie zu schonen habe ich sämtliche Tricks von meiner Xubuntu-Stick-Installation vorgenommen, das Debian-Wiki hält auch noch ein paar Tricks parat. Zum Surfen ist die CPU passabel schnell. Der Akku hält auch lange genug. Einzig das kleine Display ist etwas gewöhnungsbedürftig. Die Tastatur ist aber definitiv zu klein für mich, da werd ich längere Gewöhnungszeit brauchen. Vor allem tipp ich gerne auf "Cursor hoch" statt der rechten Shift-Taste.

Ein Bisschen Zugriffsstatistik

^ v M ><
Nicht dass es wichtig, signifikant, besonders präzise oder sonst was wär, aber ich hab ein Bisschen Zugriffsstatistik erstellt. Dazu hab ich Bisschen durch die Logfiles gegrept, mit folgendem Befehl:
nice -n 5 zgrep -i Stichwort /var/log/apache2/access.log.?.gz | wc -l

Als Stichwort hab ich dann Clientstrings oder Betriebssystemnamen eingesetzt. Anschliessend hab ich das gegen die Anzahl Gesamtzeilen ausgewertet. Überraschungen gibt's eigentlich keine grossen.

Aus der Statistik ausgeschlossen hab ich die Anfragen von Nagios und von Grendel. Ersteres überwacht regelmässig von einem externen Rechner aus, ob der Webserver noch läuft, zweiteres ist ein Sicherheitsscanner für Webskripte, den ich mal ausprobiert habe. Ebenfalls nicht berücksichtigt habe ich Bots von Suchmaschinen, welche ansonsten signifikante Werte erreicht hätten. Die Frage ist allerdings, ob ich die eher unter Betriebssysteme, Browser oder beides hätte einordnen sollen. Total gehen rund 10% aller Anfragen von Bots aus, wovon GoogleBot den Löwenanteil ausmacht.
Überhaupt eine Kennung mitgeschickt haben 94% aller verbleibenden Anfragen. Die anderen 6% waren entweder auf Anonymität getrimmte Browser, irgendwelche Skripte oder Hackversuche.

Betriebssysteme

Windows: 75%
Linux: 21%, davon macht Ubuntu 81% oder 16.9% total aus
Mac OS X: 4.1%
*BSD: Lächerliche 2 Anfragen total.

Browser

Firefox: 49.2%
MSIE: 43.2%
Opera: 4.2%
Google Feedfetcher: 1.9%
Safari: 0.8%
Konqueror: 0.3
Liferea: 0.3%
Chrome: 0.05%

Da diese Statistik einfach über die Gesamtzahlen der letzten 3 Monate erstellt wurde, lassen sich daraus keinerlei Schlüsse bezüglich Veränderungen ziehen. Im Grossen und Ganzen gefällt mir aber der hohe Anteil an Linux und Firefox. Dennoch muss ich unbedingt noch etwas an den Werten des Internet Explorer arbeiten. Wie vergraule ich die IE-Fraktion wohl am besten? Verzerrt wird das ganze Bild wohl durch meine häufigen Zugriffe auf einige installierte Webtools, darauf dürfte der hohe Ubuntu-Anteil zurückführen sein. Google macht vor allem durch seine Bots und den Feedfetcher auf sich aufmerksam, Chrome ist absolut irrelevant.

Biometriewahn

^ v M ><
So langsam ergreifen die Parteien die Parole für die Abstimmung über die biometrischen Pässe vom 17. Mai. Unsere demagogischen jederzeit neutralen, objektiven und unparteiischen Medien berichten auch brav darüber. Jedoch immer mit zwei klitzekleinen Detailfehlern: Erstens titeln sie ihre Beiträge jeweils immer zum Thema "Einführung von biometrischen Pässen" bzw der "Nichteinführung von biometrischen Pässen". Das ist leider, leider, leider KREUZFALSCH!!! Die biometrischen Pässe sind nämlich bereits eingeführt worden. Es ist bereits jetzt problemlos möglich, seine Fingerabdruckdaten zentral registrieren zu lassen und diese brav per in alle Welt funkenden Pass zu verteilen. Zweitens kann das nicht so ein zwingendes Kriterium für die Schengenmitgliedschaft sein, wenn die Schengenländer Irland, Grossbritannien und Dänemark kein Obligatorium für biometrische Pässe kennen.

Richtigerweise geht es in der Abstimmung um die "Abschaffung traditioneller, nichtbiometrischer Pässe". Wird nämlich an der Abstimmung der Zwang zu biometrischen Pässen abgelehnt, ändert sich nichts. Dann behält man weiterhin die Wahl zwischen biometrischem und nichtbiometrischem Pass. Wer also "nichts zu verbergen™" hat, darf sich trotzdem den biometrischen Pass holen. Wird hingegen der Zwang zu biometrischen Pässen angenommen, so muss jeder Schweizer einen teuren, unsicheren, ortbaren Pass kaufen und sich wie ein Verbrecher fichieren lassen. Ob er nun in die USA reisen will oder nicht.

Übrigens, liebe Windfähnlipartei (CVP), die ihr ja den Biometriezwang so sehr unterstützt: Ich hab euch noch eine coole Idee für einen Vorstoss nach der Abstimmung. In Mexiko bekommt man jetzt neue Handies nur noch gegen Abgabe eines Fingerabdrucks. Das könnt ihr doch auch in der Schweiz versuchen einzuführen. Damit würdet ihr mir helfen, viel, viel Geld zu sparen. Weil ich dann das Handy wieder abschaffen und Kontakte künftig ganz traditionell mit der analogen Technik Stift und Papier aufnehmen werde. Meine Fingerabdrücke gibt's erst, wenn mir ein Verbrechen untergeschoben wird. Punkt.

Apache mit voll funktionalem mod_chroot in Debian

^ v M ><
Apache ist ein äusserst exponierter Dienst. Grad auf Servern mit vielen Seiten und zahlreichen PHP-Skripten ist das durchaus die grösste Bedrohung für die Serversicherheit. Daher empfiehlt es sich, der Absicherung von Apache besonders viel Aufmerksamkeit zukommen zu lassen. Eine wichtige Methode der Absicherung ist das chroot, in dem der Apache in ein Unterverzeichnis des Systems gesperrt wird. Gelingt ein Angriff auf ein Webskript, so sind für den Angreifer noch immer weitere Hürden in den Weg gelegt, bevor er sich im System einnisten kann.

Relativ einfach lässt sich ein chroot mittels mod_chroot einrichten. Es gibt auch unzählige Howtos im Internet. Aber leider kein einziges brauchbares. Apache ins chroot sperren ist an sich keine Sache. Die nötigen Pakete installieren, dann noch zwei Konfigurationseinträge vornehmen und gut. Gut? Nein! Denn damit geht eigentlich gar nichts mehr, ausser der Auslieferung statischer Webseiten und ein Bisschen Basis-PHP. Email? Tot! ImageMagick? Tot! Das muss nicht sein. Daher mein Howto für Apache mit mod_chroot, mod_php5, suhosin und PHP im safe_mode:

Zuerst müssen die nötigen Pakete installiert werden:
aptitude install apache2 libapache2-mod-chroot libapache2-mod-php5 php5-suhosin php5-imagick imagemagick dash msttcorefonts

Weitere PHP-Module können nach Bedarf installiert werden, wie z.B. php5-gd php5-imap php5-ldap php5-mcrypt php5-mysql. Vorsicht ist bei suhosin geboten, einige grössere PHP-Applikationen bekommen dadurch Probleme. Entsprechende Workarounds müssen dann per individueller Konfiguration eingebaut werden. Die meisten wichtigeren Applikationen haben in ihrer Hilfe oder im Supportbereich entsprechende Informationen.

Ein erster Härtungsschritt ist, dass Apache der Zugang zu einer Shell entzogen wird. Eine Shell ist nicht notwendig und nur ein weiterer potentieller Unsicherheitsfaktor. Also:
usermod -s /bin/false www-data


Nun müssen die Module aktiviert werden:
a2enmod mod_chroot && a2enmod php5


In der Datei /etc/apache2/apache2.conf muss folgende Zeile eingefügt werden:
ChrootDir /var/www


Als nächster Schritt wird das chroot gebaut. Das ist ein sehr langer und aufwändiger Prozess. Denn ins chroot müssen sämtliche ImageMagick-Binaries sowie ein SMTP-Server samt ihrer Abhängigkeiten kopiert werden. Ich hab das chroot wie schon bei Teamspeak mit den Thread Local Storage Bibliotheken gebaut. XEN-User sollten davon Abstand nehmen und die "normalen" Bibliotheken verwenden. Als Mini-Mailserver habe ich mich für esmtp entschieden, wer andere vorlieben hat, darf sich natürlich auch gerne ssmtp anschauen oder versuchen mini_sendmail zum Laufen zu überreden.

Mailer vorbereiten

Leider akzeptiert Debian nur die Installation eines MTA gleichzeitig. Da man als Systemmailer wohl lieber Postfix oder Exim einsetzt, muss hier etwas getrickst werden. Verwendet hier bitte für den Download der Pakete (auch wenn sie recht klein sind) den Debian Mirror EURER Wahl, damit sich die Last entsprechend verteilt. Ausserdem muss auf die Versionsnummer acht gegeben werden, die kann sich natürlich mit der Zeit ändern. .deb-Pakete sind mit dem Packer ar gepackt, dieser sollte standardmässig auf jedem Debian-System installiert sein.
mkdir ~/esmtp
cd ~/esmtp
wget http://mirror.switch.ch/ftp/mirror/debian/pool/main/e/esmtp/esmtp_0.5.1-4.1_i386.deb
wget http://mirror.switch.ch/ftp/mirror/debian/pool/main/libe/libesmtp/libesmtp5_1.0.4-2_i386.deb
ar xv esmtp_0.5.1-4.1_i386.deb
tar -zxf data.tar.gz
ar xv libesmtp5_1.0.4-2_i386.deb
tar -zxf data.tar.gz


Basis-Chroot bauen

Bei sämtlichen Befehlen, die nun folgen, wird davon ausgegangen, dass man sich im Verzeichnis /var/www befindet. Ist dem nicht so, so stimmen natürlich die relativen Pfade nicht mehr und das Howto schlägt fehl. Wie schon eingangs erwähnt, sollten XEN-User aus Performancegründen nicht die TLS-Bibliotheken verwenden.
cd /var/www
mkdir bin etc lib tmp usr
mkdir -p lib/tls/i686/cmov usr/lib/i686/cmov var/lib/php5 var/log/apache2 var/run
chown www-data:www-data tmp
chown www-data:www-data var/lib/php5
chown www-data:www-data var/log/apache2
chown www-data:www-data var/run
touch var/run/apache2.pid
ln -sf var/run/apache2.pid /var/run/apache2.pid
cp /bin/dash bin
cd bin
ln -sf dash sh
cd ..
cp /etc/mime.types etc
grep www-data /etc/passwd > etc/passwd
cp /lib/ld-linux.so.2 lib
cp /lib/libgcc_s.so.1 lib
cp /lib/libnss_dns.so.2 lib
cp /lib/tls/i686/cmov/libc.so.6 lib/tls/i686/cmov
cp /lib/tls/i686/cmov/libdl.so.2 lib/tls/i686/cmov
cp /lib/tls/i686/cmov/libpthread.so.0 lib/tls/i686/cmov
cp /lib/tls/i686/cmov/libresolv.so.2 lib/tls/i686/cmov
cp /usr/lib/libz.so.1 usr/lib
cp /usr/lib/i686/cmov/libcrypto.so.0.9.8 usr/lib/i686/cmov
cp /usr/lib/i686/cmov/libssl.so.0.9.8 usr/lib/i686/cmov

Dash wird als Shell mit minimalem Speicherbedarf installiert. Leider benötigt esmtp zwingend eine Shell, ansonsten verweigert er den Dienst. Dies ist natürlich ein klarer Sicherheitsmangel, der durch Workarounds wie safe_mode behoben werden muss.

Nun wird der Mailer ins chroot kopiert:
cp ~/esmtp/usr/bin/esmtp bin
cp -r ~/esmtp/usr/lib usr/lib


Und als nächstes wird der Mailer konfiguriert. Unter Annahme, dass auf dem Server z.B. ein Postfix oder Exim als Mailserver läuft, muss dazu die Datei /var/www/etc/esmtprc mit folgendem Inhalt erstellt werden:
hostname = 127.0.0.1:25
starttls = disabled


Ausserdem ist jetzt der Zeitpunkt gekommen, um PHP mitzuteilen, wie es mailen soll. Ausserdem kann man bei der Gelegenheit auch weitere Absicherungen vornehmen und z.B. den safe_mode einschalten. Dazu müssen ein paar Direktiven in der Datei /etc/php5/apache2/php.ini angepasst oder eingefügt werden. Beachte, dass die Shell in /bin liegt, während als safe_mode_exec_dir /usr/bin konfiguriert wird. PHP-Skripte können also nicht auf die Shell zugreifen.
safe_mode = On
safe_mode_exec_dir = /usr/bin
expose_php = Off
display_errors = Off
log_errors = On
sendmail_path = /bin/esmtp -t

ImageMagick und Schriften

Es müssen ein paar weitere Bibliotheken sowie die benötigten ImageMagick-Binaries ins chroot kopiert werden:
mkdir -p usr/lib/mime/packages/
mkdir usr/bin
cp /lib/tls/i686/cmov/libm.so.6 lib/tls/i686/cmov/
cp /usr/lib/libMagick.so.9 usr/lib/
cp /usr/lib/liblcms.so.1 usr/lib/
cp /usr/lib/libtiff.so.4 usr/lib/
cp /usr/lib/libjasper-1.701.so.1 usr/lib/
cp /usr/lib/libjpeg.so.62 usr/lib/
cp /usr/lib/libpng12.so.0 usr/lib/
cp /usr/lib/libXext.so.6 usr/lib/
cp /usr/lib/libXt.so.6 usr/lib/
cp /usr/lib/libSM.so.6 usr/lib/
cp /usr/lib/libICE.so.6 usr/lib/
cp /usr/lib/libX11.so.6 usr/lib/
cp /lib/libbz2.so.1.0 usr/lib/
cp /usr/lib/libxml2.so.2 usr/lib/
cp /usr/lib/libfreetype.so.6 usr/lib/
cp /lib/tls/i686/cmov/libdl.so.2 usr/lib/
cp /usr/lib/libXau.so.6 usr/lib/
cp /usr/lib/libXdmcp.so.6 usr/lib/
cp /usr/lib/mime/packages/imagemagick usr/lib/mime/packages
cp /usr/bin/animate usr/bin
cp /usr/bin/compare usr/bin
cp /usr/bin/composite usr/bin
cp /usr/bin/conjure usr/bin
cp /usr/bin/convert usr/bin
cp /usr/bin/display usr/bin
cp /usr/bin/identify usr/bin
cp /usr/bin/import usr/bin
cp /usr/bin/mogrify usr/bin
cp /usr/bin/montage usr/bin

Wer noch Schriften braucht, kann diese nach Bedarf installieren. Die Dateinamen der Schriftdateien müssen komplett in Kleinbuchstaben gehalten sein.
mkdir -p usr/share/fonts/truetype/msttcorefonts/
cp /usr/share/fonts/truetype/msttcorefonts/verdana.ttf usr/share/fonts/truetype/msttcorefonts/

DocumentRoot

Der Startvorgang des Apache verläuft in etwa folgendermassen:
  1. Apache startet ausserhalb der chroot-Umgebung und wertet die Konfiguration in /etc/apache2 aus.
  2. Apache schreibt sein PID in die vorgegebene pid-Datei
  3. Apache prüft die Existenz der DocumentRoot-Verzeichnisse gemäss Konfiguration in den vhosts.
  4. Apache öffnet die Logfiles gemäss Konfiguration in den vhosts.
  5. Apache wechselt ins chroot.
  6. Apache öffnet die Sockets.
  7. Apache wechselt zu einem unpriviliegierten User.
  8. Apache ist bereit. Sämtliche Anfragen werden nun im chroot bearbeitet. Die Ausführung von PHP-Skripten findet nun im chroot statt.

Folglich muss von den DocumentRoot-Verzeichnissen eine Schatteninstallation und eine Life-Installation vorgenommen werden. Wird in der Apache-Konfiguration z.B. die Direktive
DocumentRoot /var/www/htdocs/myhost

eingetragen, müssen folgende Verzeichnisse erstellt werden:
mkdir -p /var/www/htdocs/myhost
mkdir -p /var/www/var/www/htdocs/myhost

Effektiv arbeiten wird Apache dann mit dem Verzeichnis /var/www/var/www/htdocs/myhost, dorthin gehören folglich alle HTML-Dateien.

Apache starten, stoppen, neu laden

Jetzt kann man mal die ganze Sache testen und Apache starten. Ich habe festgestellt, dass mod_chroot leider die reload- und restart-Befehle zerschiesst. Folglich bleiben nur noch start und stop übrig. Um eine geänderte Konfiguration einzulesen, bleibt folglich leider keine andere Möglichkeit, als Apache erst zu stoppen und dann wieder zu starten. Bei stärker frequentierten Seiten freuen sich da vermutlich nicht alle User darüber. Sorry, aber dafür gibt's wohl keine Lösung.
/etc/init.d/apache2 start
/etc/init.d/apache2 stop

Microsoft Bugs

^ v M ><
Bill Gates war vor allem bekannt dafür, dass er Software mit vielen, vielen Bugs verkauft. Software verkauft er jetzt zwar nicht mehr, aber an den Bugs hängt er offensichtlich immer noch, hat er doch einen Schwarm Moskitos auf die Zuhörer eines Referats losgelassen.

Schuster bleib bei deinem Leisten. Schön, dass Bill diese alte Redensart so sehr beherzigt.

Quelle

Verein zur Etablierung einer Schweizer Teekultur

^ v M ><
Langsam hab ich's echt satt. Andauernd wenn ich mir einen Tee zubereite erfolgt irgendwoher die Frage: "Bist du krank?". Meine kurze Antwort: "Ja, vermutlich psychisch". Die etwas längere: "Das kommt drauf an. Physisch geht's mir gut. Allerdings würde man in einem totalitären System Typen wie mich wegen wegen Verhaltensstörung in einer geschlossenen Anstalt für mental Benachteiligte (ou, political correctness) wegsperren, da sie eine Gefahr für die Gesellschaft und sich selbst darstellen. Wer sich schon gegen harmlose, gesellschaftlich aufoktroierte Verhaltensweisen wie z.B. den allmorgendlichen Zwangskaffee sträubt, nun, von dem geht Gefahr aus. Es könnte durchaus sein, dass er z.B. sich weigert, eine Tibetflagge aus seinem Schaufenster zu entfernen oder nicht gemäss dem Willen von Ex-GröBaZ Christoph Blocher wählen und abstimmen zu gehen. Sowas geht natürlich nicht und muss zu seinem eigenen Schutz und dem Wohle unserer glorreichen Gesellschaft geheilt werden."

Wenn ich denn nach den genaueren Gründen gefragt werde, kann ich auch etwas weniger sarkastisch antworten. Erstens mag ich zwar Produkte mit Mokkaaroma, aber der Geschmack von purem Kaffee sagt mir gar nicht zu. Zweitens vertrage ich Kaffee nicht, anschliessend bin ich ordentlich zugedröhnt. Drittens sehe ich täglich die Koffeinjunkies nach ihrem Fix an der Kaffeemaschine lechzen, dagegen sind andere Drogensüchtige grad noch harmlos. Meine Antwort impliziert es bereits, ich betrachte Kaffee tatsächlich als eine legalisierte Droge mit hohem Suchtpotential. Das reiht sich bei mir nahtlos ein zwischen Alkohl, Tabak und (abgesehen von der Legalität) auch Cannabis.

Daher trinke ich Tee. Der macht zwar auch süchtig, aber nur nach dem Trinkgenuss :-) Tee ist ausserdem sehr gesund. Er stärkt dank des teilweise hohen Fluorgehalts die Zähne. Er neutralisiert den PH-Wert des Körpers, wodurch er den in unseren Breiten hohen Säuregehalt der Nahrung ausgleicht. Dies erhält u.a. die Knochenmasse und beugt Osteoporose vor (ja meine Damen, Sie sind angesprochen). Er enthält viele Antioxydanzien, die vor Krebs schützen. Folglich ist es zwingend notwendig, der Schweiz den harmlosen Genuss guten, gesunden Tees nahezubringen, bis wir in einem Zug mit England, Friesland, Indien, China und Japan genannt werden.

Die Zwecke und Ziele meines hiermit ausgerufenen Vereins lassen sich folgendermassen formulieren:
  • Entwicklung eines typisch schweizerischen Teerituals
  • Einführung von Tee als Nationalgetränk
  • Nationales und später internationales Verbot der Klassenfeinde Kaffee (zu hohes Suchtpotential) und Schoggimilch (zu zucker- und fetthaltig für unsere Übergewichtsgesellschaft)
  • Entwicklung und Anbau einer zentraleuropäischen Teesorte (die Klimaerwärmung arbeitet für uns).

Die Definition von Tee ist folgende:
  • Tee kommt vom Teestrauch. Da gibt es kein wenn und aber.
  • Schwarzer Tee, grüner Tee, weisser Tee etc sind folglich Tee.
  • Maté und Rooibos sind kein Tee sondern Extrakte (aber trotzdem gut).
  • Pfefferminze, Lindenblüte, Salbei etc pp sind kein Tee sondern Extrakte von Heilkräutern (aber trotzdem gut).
  • Beuteltee ist kein Tee sondern Abfall. Das taugt nur im extremsten Notfall, wenn absolut keine Möglichkeit für einen anständigen Tee gegeben ist.

Ich habe gesprochen.

Nein, ich hab kein Facebook

^ v M ><
Nein, ich werd mich dort auch nicht registrieren. Nein, weder das Argument "aber ich und alle anderen sind auch dort" noch "aber Facebook ist toll" mögen mich dazu bewegen.

Grund: Ich nutz privat keine Sachen, wo Microsoft seine Finger drin hat. Und Microsoft hält 5% Anteil an Facebook. EOD.

Es ist doch jedes Mal dieselbe Scheisse!

^ v M ><
Wie üblich habe ich pünktlich nach 2.5 Wochen Winterkrieg eine deftige Erkältung eingefangen. Wieso eigentlich werden mir die paar Tage, die ich nach dem WK noch im Bett verbringe um den Dreck wieder loszubekommen nicht als Diensttage angerechnet? Schliesslich ist meine Produktivität in der Zeit gleich hoch wie im Dienst und die Produktionseinbusse ist durch den Dienst verursacht...

Da ist das titelgebende Zitat meines ehemaligen VWL-Professors doch einfach nur passend. Er kommentierte damit übrigens den regelmässigen Ausfall des Projektors.

Ach, wenigstens war letzte Woche das Essen durchgehend spitzenklasse.

Krieg ist schlecht...

^ v M ><
... das ist eine allgemein bekannte Tatsache. Hier nun die Gründe des gelangweilten schweizer WK-Soldaten:
  • Krieg nix zu tun.
  • Krieg nix gutes zu essen (diese Woche war's wesentlich schlechter als letzte Woche).
  • Krieg zu wenig Schlaf.
  • Krieg in der unterheizten Kaserne noch eine Erkältung.
  • Krieg zu wenig Sold für den ganzen Scheiss
  • ...

Tischgebet des WK-Soldaten

^ v M ><
Komm, Ueli Muurer, und sehe, was zu uns bescheret hast...

Na ja, eigentlich hab ich ja nicht viel Grund, mich übers Essen zu beschweren. Die Quantität stimmt und die Qualität ist auch ganz passabel. Lediglich am Montag war's unmöglich zu sagen, ob das nun noch als Rösti oder schon als Kartoffelstock durchgeht und der Fleischvogel vom Mittwoch war auch eher grenzwertig. Aber grad seit Donnerstag war's schon fast Gault-Millau-verdächtig. Einzige Ausnahme bildet das Gemüse, in 5 Tagen 4 mal etwas, das ich ums verrecken nicht leiden kann. Es gibt genau 5 Gemüse, die ich nicht essen kann: Blumenkohl, Broccoli, Kohlrüben, Kohlrabi und grüne Bohnen. Wobei mir letztere wesentlich sympathischer sind als das ganze Kohlzeugs. Im Menüplan waren die Kohlrabi glücklicherweise nicht vertreten.

Aber selbst die beiden Fehltritte vom Montag und Mittwoch waren qualitativ kein Vergleich zum Frass zu meinen RS-Zeiten. Ich hock ja in einer Kaserne und leiste Unterstützung für eine RS. Daher kann ich ganz klar sagen: Das heutige Rekrutendasein ist im Vergleich zu meinem total Schoggi (das Essen ist nur einer von vielen Punkten, welche sich bei der Sklavenhaltung verbessert haben). Und mit solchen Waschlappen wollen wir also die beste Armee der Welt bilden, Herr Muurer???

Früher (als ich noch jung und ALLES besser war), da gab's üblicherweise folgende Menüvarianten im Round-Robin-Verfahren:
  • Johnny, eine Notration aus der Büchse. 50 Jahre lang eingelagert. Einheitlicher Geschmack und Konsistenz in allen Komponenten. Das war auch das einzige zarte Fleisch.
  • Als Kartoffeln bezeichnete, gewürfelte Kohlrüben, dazu "Fleisch", sprich ein Knochen mit etwas Fett und Knorpeln.
  • Militär-Cordon-Bleu, also etwas ranziger Schmelzkäse zwischen zwei Scheiben "gstampfter Jud" (Büchsenwurst aus Fleisch, das qualitativ nicht geeignet war für Hundefutter), wobei letzteres genau so übel schmeckt wie die Bezeichnung politisch inkorrekt ist.
Und natürlich gab's für jeden nur eine etwas knappe Portion. Wer hinten in der Reihe stand, war glücklich genug nichts mehr abzukriegen und musste sich aus Fresspäckli zu bedienen (denn irgend eine Möglichkeit Essen sonstwo einzukaufen gab es nicht). Das war eben noch Abhärtung, da wurde man alleine beim Essen so zäh wie ein Grenadier. Oder wie die servierten Schnitzel.

Ab ins Terrorcamp

^ v M ><
Nach langen, langen, langen 5 Monaten Fronturlaub darf ich morgen endlich wieder einen WK absolvieren und die Schweiz vor den Russen, den Deutschen, der Al Kaida und der eigenen Bevölkerung verteidigen. Das wär dann der dritte WK à 3 Wochen innert 14 Monaten. Ist ja nicht so, dass ich auch besseres zu tun hätte.
Etwas Sorgen macht mir aber, dass es sich nun um die beste Armee der Welt handelt. Ob ich da noch ausreichend qualifiziert bin?

Gegen den Kater

^ v M ><
Heute ist Silvester - oft ein weiterer willkommener Grund für ordentlichen Alkoholkonsum. Blöd nur, dass der am nächsten Morgen eine unangenehme Nebenwirkung hat. Ich hab daher mal alle meine Tricks gegen den Kater zusammengestellt. Dabei gelten folgende Grundregeln:
  1. Vorbereiten

  2. In der richtigen Menge konsumieren

  3. Am richtigen Ort konsumieren

  4. In der richtigen Reihenfolge konsumieren

  5. Den richtigen Alkohol konsumieren

  6. Richtig schlafen

  7. Entkatern


Nichts geht über die Vorbereitung! Schon vorher genügend Wasser trinken und sich einen Boden schaffen ist richtig wichtig. Fettiges, also z.B. Käse, ist eine ausgezeichnete Basis. Vorbereitet rangehen ist die erste Regel.

Die richtige Menge in Bezug auf Kater ist ganz klar so klein wie möglich. Denn nur wenn wenig Alkohol getrunken wird, entstehen wenige Abbaustoffe und der Körper wird wenig dehydriert. Die zweite Grundregel lautet also: So viel wie nötig, so wenig wie möglich.

Zigarettenrauch vertrag ich überhaupt nicht. Das verstärkt den Kater, im schlimmsten Fall bekomme ich ohne einen Tropfen Alkohol schon einen Kater (bzw Kopfweh), wenn ich zu lange im Rauch sitze (danke liebes Stimmvolk für die Annahme der Rauchverbote!). Ideal sind also Orte unter freiem Himmel oder Nichtraucherlokale sowie zuhause, wo man den Rauchern einen (Tür)riegel vorschieben kann. Eine gute Umgebung, das ist eine weitere Regel.

Bei der richtigen Reihenfolge kann man sich auf das alte Sprichwort "Wein auf Bier, das rat ich dir. Bier auf Wein, das lass sein" verlassen. Von schwächeren sollte man nur zu stärkeren Getränken wechseln, aber nicht wieder zurück. Ausserdem sollten möglichst wenige unterschiedliche Alkoholsorten getrunken werden. Alkoholfreies kann jederzeit dazwischen getrunken werden. Als nächste Regel halten wir also fest: Nur stärker, nie schwächer werden. Möglichst beim gleichen Alkohol bleiben.

Der richtige Alkohol ist entweder tiefprozentig oder klar. Bier gibt relativ wenig Kater. Klare Schnäpse auch nicht, der Wodka als quasi purer Alkohol ist klarer Favorit. Weisswein ist oft geschwefelt, das ist böse. Zucker beschleunigt die Aufnahme und Koffein verlangsamt den Abbau, beides ist schlecht. Wobei da jeder seinen eigenen Alkohole finden muss. Was bei mir gar nicht geht ist Rum, da bekomme ich immer Kater. Wird wohl nichts mit meiner Piratenkarriere... Die daraus gefolgerte Regel ist also, Bier oder Wodka zu konsumieren.

Der richtige Schlaf ist ganz entscheidend. Erst muss die Nacht vorbereitet werden. Vor dem Schlafengehen sollte noch mindestens ein halber Liter reines Wasser getrunken werden. Mein Geheimtipp: dazu eine Calcium-Brausetablette bewirkt wahre Wunder. Allerdings sollte man nicht so viel trinken, dass es einem ab der grossen Wassermenge schlecht wird. Dann ist nix mit schlafen. Ebenfalls wichtig ist gute Luft. Idealerweise lässt man also das Fenster offen. Abschliessend sorgt langer und tiefer Schlaf für einen Alkoholabbau, ohne dass man was davon mitbekommt.

Ergibt sich trotz allem ein Kater, muss sauber entkatert werden. Als erstes sollte genügend getrunken werden, das hilft schon ganz gut. Wasser ist gut, Orangensaft führt Vitamine und Zucker zu, Grüntee enthält Antioxydanzien (kann auf der anderen Seite aber wieder dehydrieren). Zähneputzen entfernt den pelzigen Geschmack aus dem Mund, das ist Gold wert. Wenn es der Magen zulässt, sollte man etwas essen, ideal mit Proteinen, Fleisch oder Milchprodukte machen sich also gut. Ebenso ist Salziges wie eine Suppe geeignet. Gemüse oder Früchte sind leichte Kost und enthalten viel Vitamine und Wasser. Duschen aktiviert den Kreislauf, entfernt den Alkoholgestank und rehydriert. Ebenfalls ist Sport gut, das aktiviert den Kreislauf noch stärker und entsorgt übers Schwitzen auch Abbauprodukte. Folglich muss man erst als Ultima Ratio zur Chemiekeule greifen und sich ein Aspirin antun.

Enterprise WLAN mit Radius und LDAP

^ v M ><
Ich habe mein WLAN jetzt umgestellt auf Authentifizierung per Radius und LDAP. Das ist eigentlich schon eine Konfiguration für grössere Firmen. Ich mach das für mich allein :-) Damit habe ich mein privates Single-Sign-On nun auch auf WLAN ausgeweitet.

Das Setup:
  • OpenLDAP als zentrale Authentifizierungs-Instanz. Die Passwörter sind mittels SSHA1 verschlüsselt.

  • FreeRadius als Authentikator für WLAN.

  • WRT54GL mit Tomato-Firmware (wobei DDWRT mit Chillispot jetzt erst recht interessant wäre)

  • Client mit Ubuntu 8.10, die Konfiguration erfolgt Klickibunti über den Network Manager


An sich ist das gar nicht mal schwer, eine gute Vorkonfiguration und gutes Howto vorausgesetzt. Für die Vorkonfiguration habe ich mich auf Gentoo verlassen, nach der Installation von FreeRadius lag da schon ein recht brauchbares und sauber strukturiertes Setup vor. Die Anpassungen habe ich anhand dieses Howtos vorgenommen, welches fast alles erklärt. Lediglich eine Sache bleibt dieses Howto schuldig: Was mache ich, wenn ich keine Passwörter im Klartext in meinem LDAP möchte?

Die Antwort auf diese Frage hat eine kurze Recherche und etwas ausprobieren ergeben: Die PAP-Konfiguration muss so eingestellt werden, dass PAP die Header des Passwort-Strings auswertet. LDAP liefert nämlich ein Passwort in der Form {SSHA}XYZ/ABC zurück, der Teil in den Klammern ist der Header und gibt den verwendeten Hashing-Algorithmus an. Das geschieht durch folgende Konfiguration in /etc/raddb/modules/pap:
pap {
auto_header = yes
}


Uffa, so einfach. Jetzt sollte ich nur noch die Radius-Konfiguration etwas ausmisten und nicht benötigte Authentifizierungs-Module deaktivieren sowie Accounting (z.B. per MySQL) einbauen.

Update: In letzter Zeit habe ich mehrere Anfragen zu diesem Beitrag erhalten. Ich nutze und betreue seit Jahren keine Radius-Installationen mehr, so dass ich bei Problemen mit Radius keine Fragen beantworten kann.

PHP und LDAP

^ v M ><
Ich weiss ja echt nicht, was die PHP-Entwickler geritten hat, als sie ihre Anbindung an LDAP zusammengefrickelt (oh ja!) haben:

Wenn Daten aus dem LDAP-Verzeichnis ausgelesen werden, erfolgt die Rückgabe als Array. Sämtliche Keys des Arrays sind in Kleinbuchstaben geschrieben. Möchte man aber Daten ins LDAP-Verzeichnis schreiben, müssen die Array-Keys Gross-/Kleinschreibung berücksichtigen. Und nur die wenigsten Keys sollten dann reine Kleinbuchstabenketten sein.

Die Fehlermeldungen sind absolut nichtssagend und teilweise falsch. Wenn PHP rumschreit "Value array must have consecutive indices 0, 1,", dann muss das mitnichten bedeuten, dass die Indices nicht konsekutiv sind. Es kann auch einfach heissen, dass die Array-Keys nicht die Gross-/Kleinschreibeordnung einhalten. Es kann aber auch sein, dass ein Array-Feld leer ist.

Oder ganz kurz gesagt: AAAAAAAAAAAAAAAARGH!!!