Don't understand german? Read or subscribe to my english-only feed.

Danke für Ihren Besuch im A1 Shop

August 8th, 2007

Danke für Ihren Besuch im A1 Shop! Wie gut war unsere Betreuung? Antworten Sie bitte per Gratis SMS mit einer Note von 1=sehr gut bis 5=nicht gut. Ihr A1 Team.

Eine solche SMS hab ich schon beim 1. Besuch eines Shops von A1 (österreichischer Handy-Provider) am 27. Juli bekommen. Und auch heute wieder gab es eine solche auf mein Handy. Doch zuerst einmal von vorne…

Mein Siemens S35 Handy hat um die 5 Jahre auf dem Buckel. Nachdem es mit meinem Jugendtarif (Xcite) bei A1 bald vorbei ist (von nun an geht’s bergab), wollte ich eine Tarif-Zwangsumstellung vermeiden, mir den neuen Tarif selbst aussuchen und im gleichen Atemzug ein frischeres Handy holen.

Mein Wunsch-Handy war das Sony Ericsson K750i. Als Tarif hat mir die fesche Dame im A1-Shop am 27. Juli dann als Angebot A1 SPECIAL ZERO zum Erstanmeldungspreis unterbreitet: 15 Euro/Monat für die ersten 24 Monate (entspricht auch gleichzeitig der Bindungsdauer, danach sind es 20 Bimbes) statt den bei einem Tarifwechsel normalerweise sofort anfallenden Fixkosten von 20 Euro/Monat. Nach meinem Besuch im Shop bekam ich die Anfangs erwähnte SMS. Ich wurde freundlich und kompetent beraten und habe im Endeffekt eine SMS mit dem Inhalt ‘1’ zurückgeschickt.

Ich hab mich in den Tagen darauf noch bei der Konkurrenz informiert (ich bin schockiert über die verifiziert falschen Auskünfte im T-Mobile-Shop) und im Endeffekt bin ich bei A1 und somit heute noch einmal im A1-Shop gelandet.

Nachdem ich der Dame im Shop vermittelt habe was ich möchte, hat sie zuerst einmal ca. 5 Minuten lang (ohne einem einzigen Wort in meine Richtung) nach dem von mir erwähnten Tarif-Angebot am Rechner gesucht. Nachdem das mit dem 15 Euro-Angebot dann endlich geklärt war und der Tarifwechsel mit einer Unterschrift meinerseits vollzogen war, wollte ich eigentlich das neue Handy mitnehmen. Denkste.

Die Dame hat zuerst einmal gesagt, dass der Tarifwechsel 2-3 Tage dauern würde (WTF?) und ich erst dann ein neues Handy bekommen könnte. Warum das so ist, hat sie selbst nicht gewusst. Auf meine Frage, ob ich denn dann wenigstens über den Tarifwechsel via SMS informiert werde wusste sie auch keine Antwort. Langer Rede, kurzer Sinn: die Beratung war definitiv ‘5’: nicht genügend.

Gnaaaa, also ohne Handy aus dem Shop und nächste Woche wieder Richtung Shop, oder so… Ich bin dann mit einem Freund auf einen Kaffee gegangen und keine Stunde später erreichen mich die folgenden 2 SMS:

Lieber A1 Kunde, ab sofort genießen Sie die Vorteile Ihres neuen Tarifs! Freundliche Grüße Ihr A1 Service Team

Lieber A1 Kunde, danke für Ihre Treue! Ihre Bestellung haben wir gerne erledigt. Viel Spaß mit A1 wünscht Ihnen Ihr A1 Service Team

Ok, wie erwartet doch rasch und mit SMS-Benachrichtigung. Aber: wieso bekam ich jetzt eigentlich keine SMS bezüglich meinem Besuch im A1-Shop? Ich hätte gerne eine ‘5’ geschickt, aber wenn mich keiner fragt…

Also wieder zum Shop geschaut (liegt ja auf dem Nachhause-Weg) und mit einer anderen Dame gesprochen. Ich wurde diesmal äusserst kompetent beraten: alle meine Fragen – auch jene auf die Dame Nr. 2 keine Antwort wusste – wurden zu meiner Zufriedenheit beantwortet. 20 Minuten später bin ich mit meinem Sony Ericsson K750i aus dem Shop gegangen…. Und dann wieder die SMS mit “Danke für Ihren Besuch im A1 Shop […]”. Huh? Ich war in diesem Fall zufrieden mit der Beratung und habe abermals eine ‘1’ zurückgeschickt. Und jetzt zum Grund meines Blogeintrags (hat bisher überhaupt jemand durchgehalten? danke ;-)):

Ich habe nämlich die Vermutung, dass diese Feedback-SMS von der Verkäuferin im Shop getriggert wird. Dass ich mit der Beratung im 2. Fall nicht zufrieden war (wo es keine Feedback-SMS gab), muss auch der beratenden Dame klar gewesen sein. Umgekehrt dürfte den Damen Nr. 1 und 3 nicht entgangen sein, dass ich mit deren Beratung zufrieden war. Jetzt liegt es für mich nahe, dass die Damen die Feedback-SMS vom System nur dann verschicken lassen (wie auch immer das ausgelöst wird), wenn sie das Gefühl haben, dass die Beratung mit einer guten Note belohnt wird. Und das würde sich dann wohl auf ihre Benotung im Unternehmen (und damit u.U. auch auf Prämien am Gehaltszettel oder so) auswirken. So meine Vermutung bisher. ;-)

Weiss jemand der hier Anwesenden dazu was Näheres? War das nur ein blöder Zufall?

Österreichisches Kino: Jenseits

August 7th, 2007

Jenseits - Bild

Mit dem Mystery-Thriller »Jenseits« produziert die junge Filmgruppe LOOM einen Nachwuchs-Spielfilm, der für österreichische Maßstäbe nicht nur inhaltlich ungewöhnlich ist. Die Erzählung rankt sich um einen fiktiven Mythos rund um die menschliche Vorgeschichte und Entstehung einer unmenschlichen Gestalt, deren Schicksal noch 300 Jahre später – in der Gegenwart des 21. Jahrhunderts – seine Auswirkungen auf die Suche eines jungen Mannes nach seiner verschwundenen Liebe zeigt. Die kunstvolle Verwebung von Mythos und Realität, Vergangenheit und Gegenwart entführt den Zuschauer zwei Stunden lang in eine phantastische Welt jenseits unserer alltäglichen Erfahrungen.

jenseits.at/about.html

‘Jenseits’ (Eintrag bei IMDB.com) lief im Jahr 2006 im Kino und nachdem der Produzent ein ehemaliger Studienkollege von mir ist und ich mich mit ihm vor kurzem auf einen Kaffee getroffen habe (hallo Robert! :-)), hab ich mir den Film natürlich auf DVD angesehen (nachdem ich es damals beim Kino nicht geschafft habe, grml).

Erwähnenswert: es gibt (absichtlich) keinen Raubkopier-Nervtext am Anfang, und die DVDs sind ohne Kopierschutz. Was ich auch sehr schön finde: man bekommt enorm viel Bonusszenen dazu. Allein die 2. DVD (voll mit Specials) hat eine Gesamtlaufzeit von 218 Minuten.

Zum Film selbst: kein Mainstream-Kino, aber am Besten einfach auf der Homepage zum Film selbst informieren…. Wo man die DVD herbekommt steht auch auf der Webseite.

Hygiene des Geschlechtslebens

August 7th, 2007

Hygiene des Geschlechtslebens

von Dr. Max v. Gruber
Geh.Rat und Obermedizinalrat,
o.ö.Professor der Hygiene an der Universität München

Neubearbeitet von
Dr. Wilhelm Heyn
Hautartzt in Berlin

366.-400.Tausend
Mit 13 Abbildungen

Union Deutsche Verlagsgesellschaft Berlin Roth & CO.

Dieses Buch in einer Auflage aus dem Jahr 1939 lag heute Vormittag neben mir. Einfach nur unglaublich. 8-)

Kill your server with slrn

August 7th, 2007

No, that’s not a joke. Today I had to (hard-)reboot one of my servers because the console newsreader slrn produced such a high load on the system that it was everything but responsive as a consequence.

Huh. What? Yes, right. It was the fault of slrn. I had not set up any default limits on the server yet (stupid, me) but finally I could find and reproduce the source of the problem under the control of pam-limits.

What was going on? slrn failed at processing a message on gmane.linux.debian.user.german. It always hang at the same message. Via setting ‘limit addressspace 62000’ and therefore causing slrn to fail with ‘Memory allocation failure.’ instead of requesting more and more resources I could find the origin of the problem: slrn fails to parse the X-Face header in my UTF8 enabled setup. *gna* Looks like I’ve to investigate on that in further detail… In the mean time I set up limits and a monitoring system…

Small brother is watching you

August 3rd, 2007

Mika am Woerthersee - Bild

I had no chance against my small brother and his camera spotting me at my orkplace. Damn. 8-)

PS: Thanks Ali for spotting and mailing me the result. :)

My orkplace

August 2nd, 2007

Sitting at Wörthersee (Klagenfurt/Austria):

Image of my [w]orkplace at Woerthersee/Klagenfurt

Eine Luftmatraze die keine ist…

August 2nd, 2007

Aus der Gebrauchsanweisung meiner neu erstandenen Luftmatraze:

Nicht für den Gebrauch im Wasser geeignet!

Äh… Bisher bin ich zumindest nicht untergegangen. 8-) Grüße vom Wörthersee.

Use root=UUID on NSLU2

July 27th, 2007

As I wrote a few monce ago I’m owner of a NSLU2 device powered by Debian. Now I had to install another device (using di-nslu2-etch-4.0r0.bin – md5: db8e8ec3571aff8fb2132479f860f16b this time) and I wanted to change the setup from using /dev/sda2 to a UUID based one – to get a stable root device.

Nothing really tricky (thanks to the existing documentation) but just as a reference (for myself and other users considering the switch as well) the relevant steps…

First of all identify the root-device (/dev/sda2 in my case) and get its UUID:

# /lib/udev/vol_id -u /dev/sda2
a98ebb0f-84ae-4f7a-a070-b94ecee3f94a

Make sure initramfs-tools use the given UUID as ROOT-option:

# echo "ROOT=/dev/disk/by-uuid/a98ebb0f-84ae-4f7a-a070-b94ecee3f94a" > \\
/etc/initramfs-tools/conf.d/root-device-hack
# update-initramfs -k all -u

Replace the /dev/sda2 line in your /etc/fstab with:

/dev/disk/by-uuid/a98ebb0f-84ae-4f7a-a070-b94ecee3f94a /               ext3    defaults,errors=remount-ro 0       1

Make a backup of the original mtdblock2 and install the one Martin Michlmayr thankfully provides:

# cat /dev/mtdblock* > mtdblock.backup
# cat /dev/mtdblock2 > mtdblock2.original

# wget http://www.cyrius.com/debian/nslu2/files/etch-modified-mtdblock2.bin
# md5sum etch-modified-mtdblock2.bin
e5154ceed8ad7de5bca83cc98fbb4d79  etch-modified-mtdblock2.bin
# cat etch-modified-mtdblock2.bin > /dev/mtdblock2
# apex-env printenv
... compare output with http://www.nslu2-linux.org/wiki/Debian/ChangeKernelCommandLine

Finally set the new kernel commandline:

apex-env setenv cmdline 'console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug rootdelay=10 root=UUID=a98ebb0f-84ae-4f7a-a070-b94ecee3f94a'

That’s it. Now after rebooting your system should use the UUID-approach instead of /dev/sd*. Check via:

# cat /proc/cmdline
console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug rootdelay=10 \\
root=UUID=a98ebb0f-84ae-4f7a-a070-b94ecee3f94a

Ressources:

Linux on the Lenovo Thinkpad X61s

July 27th, 2007

Lenovo X61s - picture

Since about two days I’m proud owner of a Lenovo X61s notebook. It will become my main and new developer box for grml, featuring all that nifty stuff like 64bit support, hardware virtualization and so on…

I managed to use all the important features with a very current version of grml. I’m using kernel 2.6.22-grml on a setup with LVM, cryptsetup-luks,… everything works fine so far (including Suspend-To-RAM – even in grml live-mode when booting from USB pen :-) – thanks for the excellent hibernate package, madduck!).

As you won’t find useful and approriate information about Linux on the X61s yet (either pretty incomplete or wrong) I decided to put all relevant information on a webpage in the grml-wiki:

Short version: the X61s rocks.

I’ll provide information to thinkwiki as soon I checked out all the details…

Setting up your own jabber server: ejabberd

July 27th, 2007

It was on my todo list since ages, finally I took some minutes to set up my own jabber server (reach me at mika@jabber.grml.org). I’m using ejabberd, a free and open source instant messaging server written in Erlang.

Reference system: Debian etch (current stable), ejabberd version 1.1.2-6, installed via a simple:

# aptitude install ejabberd

Adjust the hostname in /etc/ejabberd/ejabberd.cfg (I suggest to use something like ‘jabber.$YOURDOMAIN’ so you can update jabber’s DNS SRV according on upgrades, downtimes, moves,…):

{hosts, ["jabber.yourdomain"]}.

Register an account:

# /etc/init.d/ejabberd restart
# ejabberdctl register username jabber.yourdomain password

You might want to give your username admin permissions, so adjust /etc/ejabberd/ejabberd.cfg according:

{acl, admin, {user, "username"}}.

That’s it. If you want to disable registration of users just use (instead of the ‘allow’ line):

{access, register, [{deny, all}]}.

Restart the server and make sure you have a running server:

# /etc/init.d/ejabberd restart
# ejabberdctl status

Now you should be able to point your browser to http://yourdomain:5280/admin/ and set up your new jabber account inside your jabber client.

Froscon 2007

July 27th, 2007

Die FrOSCon ist eine zweitägige Konferenz rund um die Themen Freie Software und Open Source, die am 25. und 26. August 2007 bereits zum zweiten Mal an der Fachhochschule Bonn-Rhein-Sieg in Sankt Augustin bei Bonn in Deutschland stattfindet.

Meine eingereichten Vorträge wurden angenommen und somit halte ich auf der FrOSCon einen Vortrag über grml – Linux Live-CD für Systemadministratoren und Texttool-Freunde und gemeinsam mit Alexander Wirt werde ich etwas über Infrastruktur bei OpenSource-Projekten erzählen.

Am 28. August bin ich dann noch zu Besuch bei der LUGMOE (Linux-Usergroup Mönchengladbach) und halte dort einen Vortrag über grml. Danke für die Einladung an Timo Boettcher.

Deutschland, ich komme! :)

Find out what users request…

July 14th, 2007

One of the coolest features of grml IMO is grml-tips. grml-tips is a collection of tips you can request via a keyword. For example if you want to know how to use grml-x just run ‘grml-tips grml-x’:

mika@meilenschwein ~ % grml-tips grml-x
Start X window system (XFree86 / Xorg / X.org):

% grml-x $WINDOWMANAGER

Usage examples:

% grml-x fluxbox
% grml-x -mode '1024x768' wmii
% grml-x -nosync wm-ng
--
mika@meilenschwein ~ %

So as soon as you invoke ‘grml-x $keyword’ and if the grml-tips collection includes something with $keyword inside you’ll get it. I use that on daily base because all the hard-to-remember command sequences or dangerous commands like mdadm, sfdisk,… are easy to use this way. :-)

But how about keywords not being availble in grml-tips collection yet? What about keywords other users request but don’t get a match? Thanks to formorer we have a submit feature within grml-tips since version 0.4.1:

% grml-tips nfs
Sorry, could not find a tip for 'nfs'. :-(

Do you want to submit the keyword 'nfs' to grml's keyword database?
The grml team will write tips for the most requested and useful keywords.
To use and contribute to this feature you'll need a working networking connection.
No personal data will be transmitted to the database.

Send "nfs" to grml's keyword database? [y|N]

Keyword 'nfs' has been submitted to grml's keyword database.
Thanks.
%

Now being the maintainer of grml-tips I can check what users want to get through querying the sqlite database which stores the submitted keywords. Dear paranoid users: by default the keyword is not transfered to the database of course, you have to manually press ‘y’ to submit it. It’s not the default behaviour but an option. And there’s really no personal information stored inside the database, all I can query looks like the following:

$ID|nfs|grml 1.0-1 Release Codename Sonnenbrand [2007-07-13]|1184261151

Oh and thanks to Nico we also have our 24/7 support slave within the #grml channel:

19:37 <     mika > grml-tips: grml-x
19:37 < grml-tips> matches: http://www.grml.org/tips/index.html#23

And if our support guy does not work as expected:

19:38 <     mika > grml-tips: does-not-match
19:38 < grml-tips> Sorry, could not find a tip for 'does-not-match'.
If you want to submit a tip please mail it to tips (at) grml.org - thank you!

… and once a week I get a cronjob-triggered mail sending me all the keywords without a match. Cool, ey? ;-) All what’s missing now is a bot that writes all the missing tips on its own. 8-)

Conclusion: make it easy for your users to submit information you might be interested in – to help your users.

Und noch ein idiotischer Dialog…

July 13th, 2007

Gefunden im Zuge der Cisco VPN Client-Installation auf Windows XP:

Screenshot

VirtualBox + USB

July 11th, 2007

Running hot off the press 2.6.22-grml I took a look at the current version of VirtualBox. And I’m really amazed how responsive it is. Not only booting grml is rocking fast but also typing on the console is reaaaally fast – much more responsive than with VMware. (I took a look at VirtualBox several months ago already but the 64bit version did not work and I lost interest in it temporarly therefore.)

Though I stumbled upon a small problem, that’s why I’m feeding google (several users don’t seem to manage the problem ;-)):

Virtualbox - USB error message - screenshot of Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer. Result Code: 0x80004005

That’s telling you that USB might not work as expected. ;-) When straceing the process you’ll notice that VirtualBox tries to access /proc/bus/usb/devices. Nowadays /proc/bus/usb is deprecated by libusb + /dev/bus/usb but of course it’s no problem to use /proc/bus/usb anyway. So until upstream of VirtualBox moves to libusb the workaround is as simple as:

# VBOX=$(grep vboxusers /etc/group | sed 's/vboxusers:x:\\(.*\\):.*/\\1/')
# mount -t usbfs -o devgid=$VBOX,devmode=664,nodev,noexec,nosuid none /proc/bus/usb

Stuff you don’t want to read

July 11th, 2007
This is UNPUBLISHED PROPRIETARY SOURCE CODE of CyberTAN Inc.
the contents of this file may not be disclosed to third parties,
copied or duplicated in any form without the prior written
permission of CyberTAN Inc.

This software should be used as a reference only, and it not
intended for production use!

Found in HTML source of original Linksys Firmware (Version: v1.05.3)

synergy – share mouse and keyboard

June 29th, 2007

Quoting the project homepage:

Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware. It’s intended for users with multiple computers on their desk since each system uses its own monitor(s).

It really rocks, especially as it works for Linux/Unix as well as for Windows and Mac OS. The setup is simple: just run ‘aptitude install synergy‘ on your Debian system(s) or grab the sources/binaries for the other platforms. Assuming you want one screen named meilenschwein on the left, and another client named funkenzutzler on the right:

mika@funkenzutzler ~ % cat .synergy.conf
# synergy configuration file
section: screens
   funkenzutzler:
   meilenschwein:
end

section: links
   funkenzutzler:
      left = meilenschwein
   meilenschwein:
      right = funkenzutzler
end

Now start synergy on the “server” running “synergys -f –config ~/.synergy.conf” and start it on the client using “synergy -f $SERVER”. That’s it. Make sure to check out the security page.

Die grml-Benutzerumfrage

June 22nd, 2007

Am 28.01.2007 habe ich eine grml-Userbefragung ausgeschrieben. Am 9. Juni habe ich dann die Evaluierung abgeschlossen und Mails an alle Teilnehmer geschickt. Die detaillierte Auswertung zur grml-Benutzerumfrage findet man im grml-Wiki. Warum ich das jetzt eigentlich schreibe? Weil es eine sehr interessante Erfahrung war. Aber mal von Anfang an….

Die erste Version von grml gab es im Oktober 2004. Wie man so schön sagt, ist seither viel Wasser die Mur runtergeflossen. :) Ich habe in dieser Zeit viele (sowohl positive als auch negative) Erfahrungen gewonnen. Aber: bewegt sich grml eigentlich in die richtige Richtung? Wie sehen die Benutzer das? Was wünschen sich die grml-Benutzer für die Zukunft eigentlich? Ich wollte mal die Welt aus der Sicht eines Anwenders sehen und meinen Elfenbeinturm als Entwickler ein bisschen auf die Seite schieben.

phpsurvey hatte ich sogar schon installiert, aber: ich habe mich für den Weg der Benutzerumfrage via Mail entschieden. Denn der Aufwand mit der Lösung via Mail ist höher (sowohl für die Teilnehmer als auch für mich!), und damit erhoffte ich mir im Schnitt bessere Antworten. Und besonders wichtig: ich habe als Zeitrahmen den Start- und Endpunkt genau zwischen 2 stabilen grml-Versionen angesetzt. Warum? So wollte ich besonders jene Leute erreichen, die sich auch abseits von Release-Announcements für grml interessieren – also der Zielgruppe von grml möglichst stark entsprechen. Und das Resultat sollte mir rechtgeben: 103 Personen haben den Aufwand nicht gescheut und mir den Fragebogen ausgefüllt gemailt. Mit teilweise sehr interessanten Erkenntnissen:

  • Auffällig war, dass unser Zielpublikum keineswegs nur Debian-Anwender sind. Der Großteil kommt zwar durchaus aus der Debian-Ecke, aber es waren auch viele Solaris, Gentoo, Ubuntu, Mac OS und Windows-User dabei. Auch Anwender von i5/OS, z/OS, BSD, CentOS und SuSE sind dabei.
  • Die Wahl, einen 64-Bit-Port von grml zu machen war richtig: eine 64-bittige Version von grml war der am häufigsten genannte Feature-Request.
  • Es gab einige sehr nette Ideen, die ich in das Bug Tracking System von grml eingepflegt oder sogar gleich noch für grml 1.0 implementiert habe. (Zum Beispiel finde ich apwal auf die rechte Maustaste in fvwm-crystal gelegt absolut spitze!)
  • Details wie “welche Tools sind eigentlicher weniger bekannt, welche verwendet fast jeder” kamen an den Tag. Oder auch, an welcher Stelle die Dokumentation noch verbessert gehört. Ebenso, dass sehr viele Leute das Booten von grml via USB probieren wollen (diejenigen die das schon verwenden, wollen das gar nicht mehr hergeben ;-)) – wir sollten da wohl mal mit grml bootfähig ausgestattete USB-Sticks auf Events anbieten.
  • Sehr interessant waren viele Antworten auf die Frage: “If you want to see grml more widely used, what do you think we could do to make this happen?” Viele Leute wollen nämlich gar keine größere Publicity für grml, sondern möchten, dass der Fokus wie schon bisher einfach auf Systemadministratoren/Texttoolanwendern bleibt. Viele äusserten die Meinung, dass in jenem Moment, in dem man den Markt erweitern möchte auch eine andere Benutzerschicht an Board geholt wird, und damit bewegt sich auch das Produkt in eine andere (ungewünschte) Richtung. War eine sehr interessante Erfahrung, dass das nicht nur Entwickler, sondern auch Anwender so sehen.
  • Lest euch mal durch, was die Antworten aufWhat is your favourite user documentation for any software projects or products you have used?” sind. Lernt davon.

Zum Aufwand: für mich waren das ca. 30 Stunden Arbeit. Das inkludiert die Planung der Fragen, das Evaluieren der Antworten, die quantitative Auswertung dieser sowie das Einpflegen von Wünschen in das Bug Tracking System. Und schließlich die insgesamt 103 Mails an die Teilnehmer. War es denn den Aufwand wert? JA! Ich würde das sofort wieder machen. Bei manchen Mails kribbelt es einfach und man bekommt Gänsehaut vor lauter netten Worten. Ego++, Ideen++ und Motivation++. Danke!

Empfehlung: wenn ihr ein Software-Projekt betreut, dann fragt doch mal bei euren Anwendern genauer nach. Ihr werdet ziemlich sicher auf Sachen stoßen, deren ihr euch bisher noch nicht bewusst wart. Ihr werdet auch zwischen den Zeilen wertvolle Informationen finden, so offensichtlich manche Antworten auch ausfallen mögen.

Tipp: den Fragebogen gut planen. Ihr wollt ja aus den Fragen was gewinnen. Auch unbedingt mal (egal ob per Mail oder Webformular) mit 3-5 Testpersonen durchspielen. Manche Fragen werden einfach nicht klar genug formuliert sein. Vermeidet unbedingt Akronyme/Abkürzungen und und auch entwicklerspezifische Formulierungen.

Rejects am Mailserver

June 22nd, 2007

Die PDF-Spamwelle dieser Tage hat wohl jeder Mailserver-Admin mitbekommen (siehe Heise: "Nach Bild-Spam nun PDF-Spam"). Ich habe das zum Glück sehr zeitnahe bemerkt und die Welle schon direkt am Mailserver unterbunden. Die Zahlen für die letzten 2 Tage auf einem einzelnen Mailserver sprechen für sich selbst:

# grep -c 'PDF-Spam detected' /var/log/mail.log*
/var/log/mail.log:1006
/var/log/mail.log.0:1272

Dieses Ereignis möchte ich nutzen, um mal ein paar Sätze zu ‘Rejects am Mailserver’ loszuwerden. Ich habe nämlich die iX-Blacklist DNSBL vor ein paar Wochen auf einem meiner Mailserver testweise in Betrieb genommen und wollte natürlich wissen, welche Auswirkungen das auf das Spamfiltern hat.

Auf dem betroffenen Mailserver terminieren mehrere Domains (teilweise mit aktiviertem Catchall-Account). Pro Tag werden ca. 3k-5k Mails empfangen, weitere 3k-4k Mails werden dabei aber schon direkt am Mailserver abgelehnt (der erwähnte ‘Reject’). Es läuft Postfix mit folgender relevanter Konfiguration bezüglich der Rejects:

smtpd_recipient_restrictions =
[...]
  reject_unauth_destination,
  reject_non_fqdn_sender,
  reject_non_fqdn_recipient,
  reject_non_fqdn_hostname,
  reject_unknown_sender_domain,
  reject_unknown_recipient_domain,
  reject_unauth_pipelining,
  reject_invalid_hostname,
[...]
body_checks = regexp:/etc/postfix/body_checks
header_checks = regexp:/etc/postfix/header_checks
[...]
smtpd_helo_required = yes
strict_rfc821_envelopes = yes

Tägliche Reports über die Postfix-Aktivitäten lasse ich mir übrigens von Pflogsumm generieren.

Gemittelt über die letzten Mailserver-Logs sind Rejects mit ‘Domain not found’ (~150 Hits), ‘User unknown’ (~80 Hits) und ‘Need fully-qualified address’ (~50 Hits) wie auch ‘Relay access denied’ (~50 Hits) eigentlich in der Minderheit. Trotz aktiviertem Catchall fange ich aber täglich rund 100 Mails durch Blacklisting von nur ein paar selektiven Mailadressen – wie Usenet-Wegwerfadressen – ab. Dieselbe Anzahl (~100 Mails) weise ich mit manuellen header_checks-Regeln ab. body_checks greift langfristig nicht wirklich, wirkt aber durchaus bei kurzfristigen Trends. Das große Rennen macht aber ‘need fully-qualified hostname’ mit ~2000 Rejects pro Tag.

Zwischen 1k und 2k Mails konnten durch Einsatz der iX-Blacklist DNSBL pro Tag zurückgewiesen werden. Ein durchaus schönes Ergebnis. Aber: die DNSBL war am 13. Juni einem DoS ausgesetzt und leider hat der DNSBL-Betreiber das System auf eine Whitelist umgestellt. Das ist für mich keine wirklich akzeptable Lösung, daher habe ich den Dienst momentan auch wieder deaktiviert. (Gibt es brauchbaren Ersatz?)

Ach ja: an meine Spamcatcher-Mailadressen habe ich in den ~3 Jahren seit ich das betreibe rund 20k(!) Mails erhalten. Da muss ich bei Gelegenheit wohl mal eine eigene Statistik und genauere Recherche dazu machen…

Tunneln von Tor + Privoxy

June 12th, 2007

Mein Internetzugang über den Virtuellen Campus Graz (VCG) stinkt dank der Einführung eines Intrustion Prevention Systems (IPS) von McAfee seitens der TU Graz ohne Ende. Nicht nur diverse Ports, sondern auch jeglicher Bittorrent-Traffic und sogar das Tor-Netzwerk werden gefiltert. Das betrifft übrigens nicht nur den VCG, sondern (teilweise) auch die TU Graz als Ganzes. Man bekommt nicht mal ein sauberes Reject, sondern lauft einfach in ein Timeout… gnaaaaah

Ich verwende schon seit Jahren diverse Tunnel um meine Infrastruktur möglichst kontrollierbar zu halten. Das inkludiert u.a. mein Mailsetup (bei dem ich mich nicht auf den Mailserver der TU Graz verlassen möchte). Da verwende ich mutt mit msmtp über einen SSH-Tunnel zu meinem Mailserver:

% grep sendmail ~/.mutt/settings
set sendmail="/usr/bin/msmtp"

% cat ~/.msmtprc
[...]
host localhost
port 9999

Und mit einem:

ssh -l mika -L 9999:$SERVER:25 $SERVER -N -f

steht dann der Tunnel fürs Mailen.

So, aber jetzt zurück zum Thema: ich brauch manchmal das Tor-/Privoxy-Setup. Was also machen? Ebenfalls tunneln halt. Dazu setze ich Privoxy und Tor auf $SERVER auf. /etc/privoxy/config sieht dabei wie folgt aus:

listen-address $SERVER_IP:8118
permit-access $CLIENT_IP # allow connections from client
permit-access $SERVER_IP # allow connections from server itself too (if wanted)
forward-socks4a            /     127.0.0.1:9050 .

Jetzt fehlt nur noch der Tunnel (ich stelle mit den Control*-Optionen sicher, dass nicht versehentlich ein existierender Connection-Socket genommen wird und der Tunnel dann nicht korrekt aufgebaut wird):

ssh -o "ControlMaster=no" -o "ControlPath=/dev/null" -l mika -L 1234:$SERVER_IP:8118 $SERVER_IP -N -f

HTTP_PROXY zeigt dann auf dem Client ($CLIENT_IP) auf http://localhost:1234/ und schon geht es dahin. Eklig? Ja, aber als Workaround für ein ekliges Netz tut es. Als nächsten Schritt möchte ich mir dann einmal das Tunneln von Bittorrent ansehen. (Empfehlungen in diese Richtung sind natürlich willkommen.)

Error handling: ENOSPC

June 12th, 2007

Hopefully fuzz testing is well known nowadays, right? But did you check how smart your software can handle ENOSPC – the ‘No space left on device’ error?

I like stress testing software (to be honest: no, not really). Yesterday I debugged a problem regarding zsh history writing on ENOSPC. Usually I use the grml Linux live-cd for stress testing (often running inside Qemu, Virtbox, VMware,…) like in:

dd if=/dev/zero of=/tmp/home.lo count=1000
losetup /dev/loop1 /tmp/home.lo
mkfs.ext3 /dev/loop1
mount /dev/loop1 /home
mkdir /home/grml
chown grml: /home/grml

Now after restarting the shell session of user grml I can play with ‘No space left on device’ situations. (Notice: I adjust the count=… according to what type of application I want to test.)

Too many applications don’t really cope with the ENOSPC situation. Firefox for example is very funny, depending on the situation it either just segfaults when trying to start up, or decides to not start up at all and just exits with ‘1’. See the relevant strace output:

mkdir("/home", 0700)                    = -1 EEXIST (File exists)
access("/home", F_OK)                   = 0
mkdir("/home/grml", 0700)               = -1 EEXIST (File exists)
access("/home/grml", F_OK)              = 0
mkdir("/home/grml/.mozilla", 0700)      = -1 ENOSPC (No space left on device)
access("/home/grml/.mozilla", F_OK)     = -1 ENOENT (No such file or directory)
exit_group(1)                           = ?

Opera also just exits when already running and receiving an ENOSPC – I encountered data loss (for example the transfer history got lost) more than once. Very "funny" to see how applications like dillo, joe, wireshark,… behave in the ENOSPC situation. Not.

Oh, your application handles ENOSPC just fine? Then continue testing with read-only filesystem, using NFS, removing files randomly,…