snapshot.debian.org: Eine Zeitreise in die Vergangenheit des Debian-Archivs

Während meiner Experimente mit Debian Unstable, den Nvidia-Treibern und meinem Spielesystem habe ich als weitere Möglichkeit, neben Backports oder Upgrades auf experimentelle Pakete, einen sehr nützlichen Dienst von Debian in Anspruch genommen.

snapshot.debian.org

Dieser Service startete am 12. April 2010 und stellt eine Art Zeitmaschine dar, die es möglich macht alle Pakete seit 2005, die schon lange aus den aktuellen Repositorien verschwunden sind, erneut installieren zu können.
Am Beispiel des Grafikkartentreibers von Nvidia will ich kurz erklären, wie er funktioniert.

Paketsuche

Wenn ihr auf snapshot.debian.org steuert, lässt sich in der linken Navigationsspalte nach Quell- oder Binärpaketen suchen, die alle über den verlinkten Anfangsbuchstaben zu erreichen sind. In meinem Fall wollte ich eine ältere Version des Nvidia-Treibers ausprobieren, die weder in Wheezy noch in den Backports verfügbar war.
Nachdem man Kategorie n ausgewählt hat, befindet man sich auf einer Übersichtsseite aller Pakete mit Anfangsbuchstaben n. Aus dem Quellpaket nvidia-graphics-drivers werden die verschiedenen Binärpakete für Debian gebaut. Interessiert ihr euch für 275.36 seid ihr nur einen Klick vom Download der Quellen und der Binärpakete dieser speziellen Version entfernt.
Natürlich gibt es auch ein Suchfeld auf der Hauptseite, das die Suche etwas abkürzt, sofern man den exakten Namen des Pakets kennt.

Snapshot-Archiv in sources.list einbinden

Am interessantesten ist aber die Möglichkeit einen Snapshot des Archivs in die sources.list einzubinden und dann wie gewohnt mit apt-get oder aptitude Pakete zu installieren.
Neben den archivierten Paketen wird immer auch ein Link angeboten, der so aufgebaut ist, dass er anzeigt aus welchem ehemaligen Repo das Paket stammt (also z.B. Security, Backports, main, non-free, usw.) und sich dann in die sources.list mit dem vorangestellten deb einfügen lässt.

deb http://snapshot.debian.org/archive/debian/20111105T032915Z/ wheezy main contrib non-free

Der Snapshot stammt bei dem oben genannten Beispiel aus dem Jahr 2011 und wurde am 05.11. um 03.29 Uhr und 15 Sekunden Zulu-Zeit (UTC) archiviert. Wenn man nun die normale deb-Zeile deaktiviert hat, diese hier freischaltet und ein aptitude update macht, erscheint jene Fehlermeldung.

E: Release file for http://snapshot.debian.org/archive/debian/20111105T032915Z/dists/wheezy/InRelease is expired (invalid since 261d 16h 13min 14s). Updates for this repository will not be applied.

Hier wird signalisiert, dass die Pakete veraltet sind, weswegen Apt ein Update des Paketcaches verhindern will. Damit es trotzdem funktioniert, lässt sich Apt folgendermaßen belehren.
aptitude -o Acquire::Check-Valid-Until=false update
Danach lassen sich die älteren Pakete wie gewohnt installieren.

archive.debian.org

Noch ein kleiner Tipp. Wer auf der Suche nach der ganz alten Debian-Veröffentlichung ist, sollte archive.debian.org einen Besuch abstatten.

Nvidia-Treiber und das Spielesystem: Zurück zu Debian Stable

In den vergangenen Monaten habe ich einige leidvolle Erfahrungen mit dem Nvidia-Treiber gemacht und dieses schlimme Unbill unter dem Schlagwort Nvidia in diesem Blog kundgetan. Nun mischten sich unter den Ärger mit den proprietären Grafikkartentreibern anderweitige Hardwareprobleme mit meinem Mainboard und es war nicht immer einfach das auseinanderzuhalten. Zu Nvidias Ehrenrettung muss ich noch hinzufügen, dass es für einen Grafikkartenhersteller auch nicht immer ganz einfach ist, das gesamte Sortiment an Modellen fortwährend mit aktuellen Linuxtreibern zu versorgen, wenn die ABI des X-Servers scheinbar monatlich wechselt. Das mag aber auch meine laienhafte Sicht der Dinge sein und am Ende hat immer derjenige die Torte im Gesicht, der unfreie Treiber anbietet und den Quellcode unter Verschluss hält oder?
Tatsache ist, dass ich seit der Version 1.10 des X-Servers und dem Nvidia-Treiber 275.36 kein vernünftiges X plus Treiberpaar mehr auf meinem Rechner benutzen konnte. Alles was danach kam war schlicht unbrauchbar. In meinem /var/log/Xorg.0.log war dann z.B.

Increasing EQ size to 512 to prevent dropped events

oder

EQ overflow continuing. 100 events have been dropped

zu lesen. Aktuell hängt bei mir jedes Mal das gesamte System, wenn ich z.B den Webbrowser oder ein Spiel wie OpenArena schließe. Wenn ich Glück habe hört es irgendwann von alleine auf, wenn ich Pech habe friert der Computer ein. Keine wirklich guten Voraussetzungen für eine dauerhafte Beziehung, weswegen ich auf einem zuerst reinen Debian Sid mittlerweile den alten X-Server und Nvidia-Treiber aus den Backports von Squeeze beziehe und auf Hold gesetzt habe.
Nicht wirklich überraschend holte mich der gleiche Fluch auch mit Ubuntu 12.04 ein. Meine kleine Sammlung von Tipps zum Lösen der Nvidia-Probleme ist, man glaubt es kaum, seit der Veröffentlichung einer der meistgelesenen Artikel dieses Blogs. Ich denke, es klingt zu Unrecht etwas gehässig, aber ich bin froh, dass ich da draußen nicht alleine mit meinem Nvidia-Ärger bin. 😛
Nach wie vor halte ich es so, dass ich zuerst die freien Nouveau-Treiber installiere. Auf den älteren Laptops sind natürlich noch ganz andere Grafikkarten verbaut (Stichwort Neomagic). Überall dort wo ich ein paar Mails abrufe, im Netz surfe oder einen Film anschaue, reicht das aber ohne Probleme aus.

Das Spielesystem

Gleiches kann ich von einem Spielesystem nicht mehr behaupten. Hier ist 3D-Performance schlicht ein Muss. Um jeden Fehler meinerseits auszuschließen, habe ich nochmal versucht ein sauberes Wheezy mit allen momentan zur Verfügung stehenden Treibern zum Laufen zu bringen. Leider Fehlanzeige. Sowohl 295 aus den Backports, 302 in Wheezy oder sogar der brandneue 304 aus Experimental, immer das gleiche niederschmetternde Ergebnis. Und dabei sollte doch schon mit Version 295.59 meine 9600GT wieder zu den Gewinnern zählen.
Man sieht daran aber auch, es liegt nicht an Debian Sid. Als ich vor einem Jahr das Multiboot-System aufgesetzt habe, wollte ich auch herausfinden wie sinnvoll ein solches System für Spieler ist. Heute bin ich mir sicher: Ja, man kann Debian Unstable benutzen, aber was nützt die marginale Performance-Verbesserung des Treibers, wenn er nicht funktioniert?
Ich habe ein altes Backup eingespielt und in der sources.list die Quellen von Sid auf Wheezy geändert. Da ich außer den Spielen und dem Grafikkartentreiber keine neuere Version der Software vermisst und ich diese Versionen fast ausschließlich auch über die Backports bekommen hätte, bleibt als Fazit nur zu sagen:
Zurück zu Debian Stable

Jessie ist der neue Codename für Debian 8.0

Vor wenigen Stunden hat Adam D. Barrat auf der Mailingliste debian-devel-announce diese Ankündigung öffentlich gemacht.
Wie viele sicher wissen besteht in Debian die Tradition, die Codenamen für die nächste stabile Veröffentlichung von Charakteren aus dem Film "Toy Story" abzuleiten.
Das hier ist Jessie.
Jessie aus dem Film Toy Story
Neben Bo ist sie der zweite weibliche Charakter, der aus dem Film als Codename für Debian verwendet wird. In Wikipedia wird sie als mutig, athletisch aber auch leicht reizbar beschrieben. Wie der Name für Debian 9.0 heißen könnte, lässt sich durch ein Lesen dieser Liste erfahren.
Ich bin schon jetzt gespannt, welche Ziele sich Debian für die übernächste Veröffentlichung der Distribution setzen wird. Doch bevor es soweit ist, müssen noch für Wheezy eine ganze Menge Bugs gefixt werden. Da ich mich persönlich mehr und mehr für die Entwicklung von Debian interessiere, sind hier mal ein paar Links wie und wo man helfen kann, damit Wheezy so schnell wie möglich veröffentlicht werden kann.

Gegen die Feuerwand: Mal wieder DRDoS-Attacke auf OpenArena-Server

Seit ein paar Tagen wird mein OpenArena-Server erneut mit einer sogenannten DRDoS-Attacke überzogen. Der oder die Angreifer senden dabei gefälschte IP-Pakete mit Hilfe von Spoofing an den Server, damit dieser wiederum Statusanfragen an Webserver und ähnliche Dienste weiterleitet, deren Kapazitäten irgendwann nicht mehr ausreichen, um die gerechtfertigten Anfragen zu beantworten.
Mit iftop sieht das im Moment so aus:

Ich bin mir nicht sicher, ob das Ganze überhaupt durchdacht worden ist, momentan rauscht einfach alles in die Firewall. Es wird nicht einmal geprüft, ob der Server verwundbar ist, sondern einfach stur immer die gleichen Anfragen geschickt. Dass die Attacke somit sehr ineffizient ist, scheint niemanden zu stören.
Ich bin mit dem Server einen Port weitergezogen, um irgendeine negative Auswirkung auf das Spielerlebnis auszuschließen. Die beim letzten Mal erstellten Firewallregeln und der gepatchte Server haben zuvor ihr Übriges getan.
Da zwar sehr viele Anfragen hereinkommen, jedoch keine beantwortet wird, kann man diesen Umstand wunderbar mit vnstat beobachten. Normalerweise ist der Wert des TX-Graphen (grau) größer als der RX-Graph (grün).
Vnstat-stündlicher-Netzwerkverkehr
Vnstat-täglicher-Netzwerkverkehr
Letztes Mal hat es knapp zwei Wochen gedauert bis der Spuk vorbei war. Mal schaun wie lange es dieses Mal dauert.

Upgrade auf Debian Wheezy: Toshiba Portégé 3110CT Pentium II 300 MHz mit 64 MB RAM

Zur Zeit verwende ich einen meiner ältesten Laptops, den Toshiba Portégé 3110CT zum Debuggen des OpenArena-Servers. Ich war es leid die ganzen Tests auf meinem Live-Server durchzuführen. Während ich die aktuelle Testing-Version 0.8.8-5 von OpenArena einspielte, kam mir die Idee gleich das ganze System auf Wheezy upzugraden.
Nach wie vor war auf dem Laptop aus dem Jahr 1999 Debian Squeeze in Betrieb gewesen, welches ich im Jahr 2010 zusammen mit Fluxbox und mit Hilfe von CD-ROM und PEX installiert hatte. Zusammen mit den üblichen Verdächtigen, Software ohne und mit X, verrichtete er bisher auch klaglos seine Arbeit. Ich benutze ihn immer noch hauptsächlich als Heimserver, da man ihm hier seine 64 MB Arbeitsspeicher selten anmerkt.

Eine Weile hatte ich auch überlegt Squeeze gegen ein anderes Betriebssystem wie Slitaz oder gar CRUX auszutauschen, die Überlegung jedoch schnell wieder verworfen, da es schlicht funktionierte. Ja, man darf Distro-Hopping auch mal widerstehen. 🙂
Zusätzlich ist es in den letzten zwei Jahren schwieriger geworden ein neues Betriebssystem via CD-ROM-Laufwerk zu installieren. Ich bin mir nicht sicher, ob man das früher bei vergleichbaren Subnotebooks von Toshiba jedes Mal machen musste, bei meinem durfte ich zumindest immer eine Tastenkombination (ich glaube es war CTRL+c) beim Starten drücken, damit vom CD-ROM-Laufwerk gelesen und gebootet werden konnte. Das scheint nun alles hinfällig zu sein, das CD-ROM-Laufwerk möchte nicht mehr und großen Bedarf für eine PEX-Installation habe ich auch nicht.
Wozu also in die Ferne schweifen, wenn ich Debian Squeeze durch ein Dist-Upgrade in Debian Wheezy verwandeln konnte? Nachdem ich die Quellen auf Wheezy umgeändert hatte, installierte ich zuerst apt und aptitude aus dem Wheezy-Repo. Prinzipiell, aber gerade auch wegen Multiarch, macht es Sinn hier zuerst gezielt ein Upgrade zu machen, damit der Paketmanager später alle Konflikte sauber auflösen kann. Dann folgte nur noch

aptitude full-upgrade


Das Problem bei jedem Dist-Upgrade scheint zu sein, dass neue Pakete installiert werden sollen, die man nicht unbedingt haben wollte. Nach dem Upgrade hatte ich unter anderem PolicyKit, ConsoleKit, ein paar Gnome3-Werkzeuge und -Bibliotheken zusätzlich installiert, die ich nicht gebrauchen konnte. Dieses Dilemma lässt sich umgehen, indem gezielt einzelne Pakete erneuert werden oder man entfernt schon vorher überflüssige Pakete, die neue Abhängigkeiten in das System einfließen lassen.
Man kann natürlich auch später Debian erneut auf minimal stutzen und den Aufräumtipps folgen und schon ist das System wieder in dem gewohnt schlanken Zustand. Mir hat sowohl Deborphan als auch Debfoster wieder einmal geholfen.
Weitere Überraschungen gab es danach keine mehr, weshalb ich mich nun einfach über weitere zwei Jahre mit Debian auf dem Toshiba freue und alle Finger kreuze, dass die Hardware weiterhin intakt bleibt. 🙂

Hier sieht man die aktuelle RAM-Auslastung und die Last auf dem Server. Ich vermute gdb ist daran Schuld, dass letztere um die 1.0 pendelt. Im Spiel selbst merkt man nichts davon.
Htop-Anzeige von Speedy
Der OpenArena-Server funktioniert in der Tat ziemlich gut auf dem Rechner. "Leider" muss ich dazusagen, denn ich möchte ja, dass er abstürzt und die Ergebnisse auf dem Live-System bestätigt. 🙂
Bisher verfolge ich zwei Bugs #664637 und #681812. Letzterer lässt sich zu 100% reproduzieren, einen Backtrace mit dem GNU Debugger habe ich auch schon erstellt. Der erste Bug ist z.Z das Problem, da er mit der aktuellen OpenArena-Version nur noch sehr selten auftritt und er sich nicht gezielt auslösen lässt.
Ich verzichte an dieser Stelle auf einen Bericht meiner zahllosen gescheiterten Versuch einen Core-Dump des Servers zu erstellen. Erst nachdem ich ihn lokal getestet habe und er mit Root-Rechten läuft (böse, ich weiß), konnte ich für #681812 innerhalb von gdb mit dem Befehl generate-core-file diese Datei erzeugen, die immerhin 165 MB groß ist. Weitere Details spare ich mir, weil ich selbst noch dabei bin mich mit der Materie vertraut zu machen und Debuggen nun wirklich nicht den gleichen Spannungsfaktor wie ein guter Krimi hat. Sagte Nuff.

Debians offizielle Multimedia-Pakete kontra deb-multimedia.org

Erst kürzlich ist mir aufgefallen, dass ein Namenswechsel stattgefunden und debian-multimedia.org sich in deb-multimedia.org umbenannt hat. Christian Marillat, langjähriger Debianentwickler und Verantwortlicher dieses inoffiziellen Debian-Repos für Multimedia-Software, tat dies aber nicht freiwillig. Am 5. Mai 2012 wurde Christian von Stefano Zacchiroli, seines Zeichens zum dritten Mal wiedergewählter Anführer des Debianprojekts, aufgefordert auf die Differenzen zwischen ihm und dem Debian-Multimedia-Team einzugehen oder sich ausdrücklich von dem Namen Debian in seinem Webauftritt zu distanzieren.
Er zog Letzteres vor und benannte die bekannte Domain debian-multimedia.org in deb-multimedia.org um. Zur Zeit gibt es noch eine Umleitung und auch die alten Einträge in der sources.list funktionieren noch. Das wird sich in ein paar Monaten aber ändern.

Die Geschichte

Was war passiert? Nun zum einen achtet Debian seit einiger Zeit verstärkt darauf, dass Domains, die in ihrer Bezeichnung den Namen Debian tragen, von offiziellen Debianentwicklern geführt werden, weswegen meine Anfrage für debiangames.de auch zum Scheitern verurteilt war. Nun war mir von vorne herein bewusst, dass meine Chancen schlecht standen, debian-multimedia.org gab es aber schon seit zehn Jahren und so ziemlich jeder, der mit Debian in Berührung kommt, stößt irgendwann auf Christian Marillats inoffizielles Multimedia-Archiv.
Das Problem lässt sich leicht erklären. Die Chemie stimmt zwischen dem offiziellen Multimedia-Team und Christian Marillat nicht mehr. Nachzulesen unter anderem in der FAQ von Debian-Multimedia oder diesem Beitrag auf der Mailingliste der Debian-Entwickler, dessen Betreff, "debian-multimedia.org considered harmful", für sich spricht. Die Zusammenarbeit, wenn man davon überhaupt sprechen kann, ist so zerrüttet, dass keine Absprachen zwischen dem offiziellen Team und Christian Marillat mehr stattfinden.
Durch die eigenwillige Benennung seiner Debianpakete werden diese selbst dann installiert, wenn sie in Debian in einer neueren Version vorliegen sollten. Durch das Mischen unterschiedlicher Versionen kommt es jedoch bei manchen Nutzern zu Bugs und Abstürzen. Da manche debian-multimedia.org für eine offizielle Debian-Domain gehalten haben, wurden Fehlerberichte eben auch für Debian verfasst, womit die Paketverwalter aber nichts anfangen konnten und genervt die Fehlerberichte wieder geschlossen haben. Der Konflikt war also vorprogrammiert.
Debian-Multimedia.org ist deswegen so bekannt, weil es seit zehn Jahren die wohl einzige externe Quelle war, wo man problematische Multimedia-Software für Debian ohne Umstände herunterladen konnte. Wobei "problematisch" mit Patenten behaftet und nicht DFSG-konform bedeutet. Hier konnte man schon sehr früh die Software finden, mit der es möglich ist DVDs auf dem heimischen PC abzuspielen oder erste Debianpakete von Mplayer bewundern.
Die Multimedia-Situation hat sich nach und nach in Debian gebessert. Zum einen hat das Multimedia-Team gute Arbeit geleistet und wichtige Codecs und Software DFSG-konform nach Debian bringen können. Dazu musste die Software oft aufwendig analysiert und unfreie Komponenten entfernt werden. Natürlich kostet das mehr Zeit als einfach alles so zu belassen und dem Nutzer ein unfreies Paket vorzusetzen.
Zum Anderen gab es letztes Jahr einen Lichtblick in der Patenthölle. Zusammen mit Rechtsanwälten des Software Freedom Law Center und dem Debian-Projekt wurde eine FAQ zum Thema Patentrichtlinie erstellt. Hierin werden Entwicklern von Freier Software Wege und Verhaltensweisen aufgezeigt, um sich im Einklang mit bestehendem Recht zu bewegen.
Dabei wurde deutlich, dass es durchaus rechtmäßig sein kann patentbehaftete Software in einer Distribution wie Debian zu vertreiben, wenn man gewisse Punkte beachtet. Interessanterweise scheint es (in den USA) umso unwahrscheinlicher zu sein, wegen willentlicher Patentrechtsverletzung angeklagt zu werden, je weniger man von dem eigentlichen Patent weiß und je geringer der kommerzielle Nutzen ist, den man aus dem Patent für sich selbst zieht. Wer jetzt die Augenbraue hebt, sollte sich den ganzen Text mal selbst durchlesen. 🙂
Das eröffnet Problempaketen wie Avidemux die Chance, das übrigens seit neun Jahren auf die Aufnahme in Debian wartet, tatsächlich in Debian zu erscheinen. Es sei denn natürlich die technischen Probleme lassen sich lösen...Ein interessanter Fehlerbericht mit Sprüngen von teilweise 2 Jahren zwischen einzelnen Posts. 😉
Doch genau solche Pakete wie Avidemux gibt es eben schon seit einer Ewigkeit bei deb-multimedia.org. Ein Grund warum Linux Mint Debian diese externe Quelle standardmäßig freischaltet und mit verbesserten Multimediafähigkeiten wirbt, dabei aber unter den Teppich kehrt, dass Softwarefreiheit nicht ganz so ernst genommen wird.

Die Alternativen

  1. Probiert immer zuerst die Multimedia-Software in Debian selbst aus. In den meisten Fällen ist die offizielle Software nämlich ausreichend, um Videos und Musik anschauen und hören zu können.
  2. Treten tatsächlich einmal Probleme mit dem Abspielen auf und weder Totem mit Gstreamer, Mplayer oder VLC können weiterhelfen, dann greift auf die Backports zurück. Denn wahrscheinlich benutzt ihr Debian Stable und benötigt lediglich eine neuere Version eurer Software.
  3. Wenn alles versagt und sozusagen als letztes Mittel: Schaltet deb-multimedia.org frei und installiert euch die w32codecs, libdvdcss2 und Avidemux, wenn ihr sie denn tatsächlich brauchen solltet. Ich hatte persönlich noch nie größere Probleme mit Christian Marillats Software. Ich gebe aber zu, dass ich ziemlich enttäuscht bin, wie er auf die öffentliche Aufforderung von Stefano Zacchiroli reagiert hat.

Apt-Pinning

Um mehr Kontrolle über Drittquellen wie deb-multimedia.org zu haben, könnt ihr diesen Paketen eine niedrige Pin-Priorität zuweisen und mit Apt-Pinning arbeiten. Ersetzt einfach "testing" mit eurem bevorzugten Debian-Repo. Die Datei /etc/apt/preferences sieht z.B. so aus.

Package: *
Pin: release o=Debian, a=testing
Pin-Priority: 990
Package: *
Pin: origin www.deb-multimedia.org
Pin-Priority: 101

Zusätzlich muss noch diese Zeile in /etc/apt/sources.list nachgetragen werden.

deb http://www.deb-multimedia.org testing main non-free

Jetzt solltet ihr aber keine Fehlerberichte mehr an den Bugtracker von Debian schicken. 😈

Fwlogwatch: Ein Firewall-Loganalysierer und Sicherheitswerkzeug

Eine der ersten Amtshandlungen auf dem neuen vServer war es, eine Firewall aufzusetzen. Das stellte sich Dank ufw als gar nicht so schwierig heraus. Ich experimentierte dann mit verschiedenen Logleveln und stellte schnell fest, dass ich ohne einen Loganalysierer für die Firewall schnell den Überblick verlieren würde.
Ich installierte daraufhin Fwlogwatch, ein Sicherheitswerkzeug, dass schon seit einem Jahrzehnt als Freie Software vorliegt. An dieser Stelle wollte ich es kurz vorstellen, da ich nicht wirklich viele Erfahrungsberichte dazu gefunden habe, die sich mit Fwlogwatch auseinander gesetzt haben. Mit Sicherheit gibt es noch andere Loganalysierer für Firewalls. Welche kennt und benutzt ihr davon und wie geht ihr generell mit dieser Thematik um?

Installation und Konfiguration

aptitude install fwlogwatch


Fwlogwatch kann sowohl per Konfigurationsdatei als auch über die Kommandozeile konfiguriert werden. Nur die Optionen, die nicht ausdrücklich in fwlogwatch.config definiert wurden, können per Kommandozeilenparameter geändert werden. Im Folgenden konzentriere ich mich auf die Beschreibung der Konfigurationsdatei.
Bei Debian und Ubuntu ist es am sinnvollsten zuerst die Standardeinstellungen mit

dpkg-reconfigure fwlogwatch


festzuschreiben. Die Einstellungen befinden sich danach in /etc/default/fwlogwatch. Die Screenshots zeigen die sechs Möglichkeiten, die zur Auswahl stehen. Ich habe mich dafür entschieden Fwlogwatch als Daemon im Echtzeitmodus zu starten und zusätzlich einmal täglich eine E-Mail-Benachrichtigung mit der Auswertung der vergangenen 24 Stunden zu erhalten. Auf das automatische Anlegen von Firewall-Regeln habe ich verzichtet.

Die zentrale Konfigurationsdatei existiert in /etc/fwlogwatch/fwlogwatch.config. Die Datei ist sehr gut in Englisch dokumentiert. Hier ist ein Auszug mit den für mich wichtigsten Einstellungen.

# Input-Datei
input = /var/log/messages
# Wir analysieren eine Netfilter-Firewall
parser = n
# Angezeigt werden: Quell-IP, Protokoll und Zielport.
src_ip = on
protocol = on
dst_port = on
# Diese Quelle soll ausgeschlossen werden
exclude_src_host = 123.123.123.123
# Sortierungsreihenfolge
sort_order = Sacd
# Anzeige der Paketgröße
data_amount = yes
# nur die letzten 24 Stunden anzeigen
recent = 24h
# Fwlogwatch soll als Benutzer nobody laufen
run_as = nobody
# Im Echtzeitmodus soll benachrichtigt werden
notify = yes

Einmal am Tag erhält man danach eine E-Mail, die alle Vorkommnisse in der vorher festgelegten Sortierreihenfolge auflistet. Dieser ältere Artikel für die Slackware-Distribution erklärt anhand einiger Beispiele wie man Fwlogwatch von der Kommandozeile bedient und verschiedene Sortierverfahren nutzen kann, um Muster in einem Angriff zu erkennen.

Jul 18 06:58:29 to - - [9948935.724847] [UFW BLOCK]  1 tcp packet (44 bytes) from xxx.xxx.xxx.xxx port 22
Jul 18 07:05:27 to - - [9949353.404245] [UFW BLOCK]  1 tcp packet (48 bytes) from xxx.xxx.xxx.xxx port 5900
Jul 18 07:30:49 to - - [9950876.155902] [UFW BLOCK]  1 udp packet (23 bytes) from xxx.xxx.xxx.xxx port 27970

Echtzeitmodus

Für den Echtzeitmodus existiert noch ein zusätzliches Webinterface, welches ebenfalls in fwlogwatch.config aktiviert wird. Das Statuspasswort muss verschlüsselt sein und lässt sich mit htpasswd -nb admin meingeheimesPasswort erzeugen. Man kann sich dann z.B. über einen SSH-Tunnel mit dem Webinterface verbinden.
ssh -p 44444 -L 8888:127.0.0.1:888 meinserver

server_status = yes
listen_port = 888
status_user = admin
status_password = Xjswdw/we3 #Beispiel für ein verschlüsseltes Passwort

Fwlogwatch-Status

Zum Schluss

Fwlogwatch bietet in /usr/share/doc/examples/ noch zwei CGI-Skripte, mit denen eine Zusammenfassung im HTML-Format auf einem Webserver präsentiert werden kann. Auch lassen sich alle täglichen Berichte per HTML-Mail verschicken, wenn man das möchte. Wurde notify=yes in der Konfigurationsdatei gesetzt wird zusätzlich eine Alarmnachricht versandt, wenn ein Schwellenwert an Verbindungen pro Zeitintervall überschritten wurde. Der Inhalt der Mail orientiert sich an den Angaben in /etc/fwlogwatch/fwlw_notify. Außerdem lassen sich auch automatisch neue Firewall-Regeln anlegen, wozu das Skript /etc/fwlogwatch/fwlw_respond berücksichtigt wird und externe CERT-Stellen mit vorgefertigten Templates alarmieren.
Ich persönlich finde die vielfältigen Sortierungsmöglichkeiten von Fwlogwatch nützlich, womit sich tatsächlich überhaupt erst eine Übersicht in die Analyse der Firewall-Logdateien bringen lässt. Ich stelle mir nur hin- und wieder die Frage, wie ich am besten auf die Tatsache reagiere, dass mein Server permanent gescant wird.

Debian Wheezy, KDE 4.8 und die Netzinstallation

Wenn man das letzte Jahr Revue passieren lässt, kommt man fast gar nicht auf den Gedanken, dass es neben Gnome 3 noch eine andere große Desktopumgebung für freie Betriebssysteme gibt und die heißt KDE. Erstmals 1996 ins Leben gerufen ist es weiterhin deren Ziel eine einheitliche Softwaresammlung anzubieten und ein konsistentes Desktoperlebnis zu erschaffen.
Im Gegensatz zu Gnomes GTK-Bibliothek wird zur Darstellung der grafischen Oberfläche jedoch QT verwendet. Sowohl GTK- als auch QT-Programme lassen sich bei Debian parallel installieren und optisch so konfigurieren, dass sie sich in die jeweilige Desktopumgebung einfügen, was im Jahr 2012 keine größeren Probleme mehr bereitet.
Im folgenden beschreibe ich als Teil meiner Debian-Anleitung, wie man in wenigen Schritten von einer Netzinstallation zu einer vollständigen Desktopumgebung mit Debian und KDE 4.8 kommt.

Installation von KDE

Ebenso wie bei der Installation mit Gnome 3 erleichtern sogenannte Metapakete die Einrichtung der Desktopumgebung. Leider ist die Benennung bei Gnome, KDE, Xfce und LXDE nicht einheitlich. Alle vier Desktopumgebungen haben unterschiedliche Vorstellungen, was Kernkomponenten oder Sonderausstattung ist.

Möglichkeit 1

aptitude install kdm kde-plasma-desktop
aptitude install kdm kde-plasma-netbook


Die Pakete kde-plasma-desktop und kde-plasma-netbook, welches speziell für den Einsatz auf Netbooks abgestimmt ist, stellen die minimale Auswahl an Basisanwendungen zur Verfügung, die die Entwickler und die Debianverwalter für sinnvoll und notwendig erachten um die KDE-Desktopumgebung zu betreiben.

Möglichkeit 2

aptitude install kdm kde-standard


Das Paket kde-standard enthält alle Anwendungen aus dem Metapaket kde-plasma-desktop und einige zusätzliche Programme, die in jeder Standardinstallation anzutreffen sind.

Möglichkeit 3

aptitude install kdm kde-full


Das Metapaket kde-full bietet schließlich den kompletten Rundumblick und enthält alle offiziellen Module der KDE-Desktopumgebung und weitere Anwendungen, die für einen Desktopbenutzer hilfreich sind.
Ich persönlich wähle gerne Alternative Nr. 2, wenn ich KDE ausprobiere. Erfahrene Anwender können mit einer Einzelinstallation von KDE-Paketen sicherlich ein noch schlankeres KDE installieren. Ich denke jedoch, dass weder Gnome noch KDE die Zielgruppe von "PowerUsern" sind und vielmehr die Konsistenz der miteinander interagierenden Programme und ein einheitliches Erscheinungsbild im Vordergrund stehen. Um die deutsche Lokalisierung zu installieren genügt ein
aptitude install kde-l10n-de

Eine Rundreise mit KDE

Für welches Metapaket man sich auch immer entscheidet, am Ende landet man beim Login-Bildschirm des Display-Managers KDM.


Nach Eingabe von Benutzernamen und Passwort wird der KDE-Plasma-Desktop aufgerufen. Dessen standardmäßiges Aussehen zeichnet sich vor allem durch das klassische Panel am unteren Bildschirmrand und einige optische Hingucker in Form von kleinen Miniprogrammen alias Widgets aus, die über den Knopf am oberen rechten Bildschirmrand frei auf der Arbeitsfläche positioniert werden können. Zur Verfügung stehen unter anderem eine Binäruhr oder die Möglichkeit Prozessorleistung und Speicherauslastung in einer Kugel darzustellen, viele weitere Widgets mit fortgeschrittenen Funktionen lassen sich direkt aus dem Netz herunterladen. Insgesamt geht das Einbinden leicht von der Hand und auch das Hinzufügen und Entfernen neuer Panel ist kein Problem.


Im Gegensatz zu Gnome 3 bieten sich mehr Einstellungsmöglichkeiten den Desktop an die eigenen Vorstellungen anzupassen, was man nicht nur an dem Menüpunkt "Systemeinstellungen", sondern auch an den vielen KDE-Anwendungen selbst erkennt (sieht man einmal vom Dragon Player ab).

Es gibt zahlreiche auf den KDE-Desktop zugeschnittene Anwendungen, die man nicht alle in einem einzigen Blogbeitrag vorstellen kann. Meine Lieblingsanwendungen von früher sind Amarok und K3b. Erwähnenswert sind sicherlich auch Konqueror, ein Webbrowser, der sowohl die KHTML als auch WebKit-Engine benutzen kann, der Dateimanager Dolphin und KMail, eine funktionsreiche E-Mail-Anwendung, die Bestandteil des persönlichen Informationsverwalters Kontact ist.
KDE-Anwendungen KMail und Dolphin
Wie auch schon für Gnome bekannt, existiert für KDE mit kde-look.org ein spezieller Webauftritt, der sich ausschließlich der Gestaltung und Anpassung der Arbeitsfläche widmet.

Mein persönliches Fazit

KDE hat nicht den Ruf eine minimalistische Desktopumgebung zu sein und beansprucht bei meiner Testinstallation in Virtualbox für die i386-Architektur ca. 320 MB Arbeitsspeicher nach dem Login. Die Effekte passen sich zwar je nach Hardware an, für die Verwendung auf einer älteren Maschine gibt es jedoch schlankere und damit effizientere Alternativen. Ich persönlich benötige die vielen grafischen Spielereien und Überblendungen nicht und auch die Benachrichtigungen könnten dezenter sein. Insgesamt zieht es mich seit längerem mehr zu schlichterer und genügsamerer Software. Es macht jedoch Spaß dieses andere Konzept kennenzulernen.
KDE ist eine absolut vollwertige Desktopumgebung, die man entdecken kann und auch sollte. Das geschieht nicht an einem Tag, eher in Wochen, vielleicht sogar Monaten. Egal wie das Ergebnis dieser Entdeckungsreise aussieht, am Ende steht die Erkenntnis, dass es da noch ein ganzes Universum an Möglichkeiten gibt, wie man einen Computer benutzen und kontrollieren kann. Mit Debian und der Netzinstallation ist es jedenfalls kein Problem einen Blick über den Tellerrand zu riskieren.

Lecker – Cube 2: Sauerbraten

Es ist angerichtet. Anstatt kulinarischer Spezialitäten gibt es heute jedoch das native Linuxspiel Cube 2: Sauerbraten. Zugegeben für all die, wo Deutsch als Muttersprache haben tun, klingt dieser Name für einen waschechten Ego-Shooter erst einmal seltsam in den Ohren. Scheinbar aber nicht für den Erschaffer des Spiels, Wouter „Aardappel“ van Oortmerssen. Wen sollte das bei seinem Spitznamen, "Kartoffel", auch wundern.
In diesem Beitrag stelle ich Cube 2: Sauerbraten vor, das seit mehr als vier Monaten zu meinem Spieleprojekt gehört. Ich beschreibe hier die wichtigsten Spielmerkmale, natürlich gibt es auch Bilder und Links und eine auf den Punkt gebrachte Anleitung, wie man selbst einen dedizierten und offenen Sauerbraten-Server mit Debian und Ubuntu aufsetzen kann.
Und was den Namen anbelangt...einfach Englisch aussprechen: Sourrrrbrrrääten. Perfekter Name für einen Ego-Shooter. 🙂

Warum Sauerbraten?

Nachdem ich mir ein paar Kriterien für in Frage kommende Spiele ausgedacht hatte, punktete Sauerbraten auf jeden Fall mit seinen außerordentlich geringen Hardwareanforderungen sowohl beim Client als auch beim Server.
Das Spiel ist schnell, wirklich schnell, genauso wie in den guten alten Zeiten. Neben 20 verschiedenen Spielmodi existieren auch noch mehr als 150 offizielle Karten, 7 Waffen, ein toller Soundtrack und ein bemerkenswertes Feature, neue Karten mit mehreren Spielern gleichzeitig online zu erschaffen. Von all den Spielen auf dem Server ist es jedoch am "unfreisten". Richard Stallman wird es vermutlich nie spielen. Die Spielengine und damit der Server ist zwar unter einer freien Lizenz verfügbar, große Teile der Mediendateien jedoch nicht.
Dennoch glaube ich, dass Sauerbraten eine Chance verdient hat, da das Spiel nicht nur die Möglichkeit bietet neue freie Inhalte zu schaffen, sondern auch schon Projekte wie Red Eclipse inspiriert hat, deren Medieninhalte unter freien Lizenzen stehen.

Der Sauerbraten-Client

aptitude install sauerbraten
Die Spielanforderungen von Sauerbraten sind moderat. Eine 1-GHz-CPU, 256MB RAM und eine Geforce 4 MX sollten es mindestens sein. Wer jemals einen Ego-Shooter gespielt hat, kennt das grundlegende Prinzip. So lässt sich auch Sauerbraten mit den W-A-S-D-Tasten steuern, mit Space springt der eigene Avatar, mit der linken Maustaste wird geschossen und mit kreisenden Mausbewegungen das Sichtfeld geändert.
Danach sind noch erwähnenswert:
R - Sollte man trotz aller Versuche in einer Ecke zu campen über die Flagge gestolpert sein, dann kann man sie mit einem Druck auf R wieder fallenlassen. 😉
T - öffnet den Chat. Auf einem öffentlichen Server ohne AUTH kann man mit der Eingabe von /setmaster 1 Masterrechte erlangen. Dazu gleich mehr.
E - Startet den Bearbeitungsmodus, in dem es möglich ist, innerhalb des Coop-Edit-Modus mit mehreren Mitspielern gleichzeitig eine Karte zu verändern oder neuzugestalten! Auf ogros.org gibt es eine nette Übersicht zu einer (englischen) Videoanleitung zum Thema.
Mehr ist wirklich nicht notwendig, um in das Spiel einsteigen zu können.

Serverbrowser und das Menü

Das Spielmenü und insbesondere der Serverbrowser könnten übersichtlicher gestaltet sein. Es gibt jedoch die Möglichkeit ein eigenes zu erstellen, wie dieser Artikel auf ogros.org beschreibt. Da die Voreinstellungen gut sind und man intuitiv in das Spiel findet, muss man sich hier nicht lange aufhalten. Unter Keys lassen sich die Tastenbelegungen ändern.

Cube Server Lister

Ich hatte den Cube Server Lister schon an anderer Stelle erwähnt. Wer sich mit dem normalen Serverbrowser nicht anfreunden kann, sollte sich die Zeit nehmen und der Anleitung folgen, wie man sich ein eigenes CSL-Debianpaket erstellen kann. Mit diesem Hilfsprogramm, dass unter der GPL veröffentlicht worden ist, lassen sich Details zu allen Cube-2-Servern anzeigen und mit einem Doppelklick auf den Servernamen des jeweiligen Spiels tritt man einem Spiel bei.

Spielmodi

Sauerbraten bietet ein Wiki mit einem Multiplayer Guide und eine umfangreiche Dokumentation.
Im Mehrspielermodus gehört man entweder dem guten oder dem bösen Team an. Mit leisen Zwischentönen halten wir uns natürlich nicht auf. Unabhängig davon gilt: Die roten Spieler sind immer die Gegner und mit den blauen spielt man in einem Team zusammen.
In Sauerbraten gibt es sieben verschiedene Waffen: Doppelläufige Schrotflinte, Minigun, Gewehr, Raketenwerfer, Granaten, Pistole, Fäuste/Kettensäge. Dazu lassen sich in den meisten Modi Gesundheit, Rüstung und Munition aufsammeln.
Das Spiel bietet zur Zeit 20 verschiedene Spielmöglichkeiten und in der aktuellen Entwicklerversion stehen schon weitere parat. Neben dem klassischen Free For All (FFA) und InstaGib, wo es einfach nur um "Jeder gegen Jeden" geht, gibt es natürlich auch noch Fahnenraub (alias Capture the Flag). Mir persönlich gefällt "Regen Capture" ziemlich gut, wo man auf einer relativ großen Karte verschiedene Punkte kontrollieren muss. An einer eroberten Station erhält man Waffen, Leben und Punkte. Dieser Modus ist auch mit sehr vielen Spielern noch interessant und sehr dynamisch.
Der Screenshot zeigt eine Szene aus einem Spiel mit dem Modus "Regen Capture". Außerdem erkennt man an der Servernachricht, dass der Server gepatcht wurde.

Coop-Edit-Modus

Auf meinem offenen Server wird sehr oft der Coop-Edit-Modus genutzt. Hier lassen sich gemeinsam mit anderen Spielern bestehende Karten modifizieren oder komplett neue erstellen. Die oben erwähnte Anleitung zum Kartenbau oder ein Blick auf die Wiki-Seite Mapping and Editing ist ein guter Start in die Materie. Das Wichtigste: Wenn ihr einem Server beitretet, auf dem an einer neuen Karte gearbeitet wird, einfach /getmap in den Chat schreiben und ihr seht den aktuellen Stand vor euch. Hier sind ein paar Screenshots von einer Coop-Edit-Sitzung auf dem Server.
In Natenoms Blog findet ihr unter anderem ein cooles Video zu einer selbst erstellten Karte, die eine in sich geschlossene kleine Stadt darstellt. Da steckt sicher eine Menge Arbeit drin.

Musik

Sauerbratens instrumentaler Metalsoundtrack stammt von Marc A. Pullen, lässt sich auf last.fm herunterladen und befindet sich selbstverständlich auch im OGG-Format in /usr/share/games/sauerbraten/fanatic/.

Der Sauerbraten-Server

Aufgrund des besonderen Client-Server-Modells ist der Sauerbraten-Server sehr leichtgewichtig. Der Speicherverbrauch liegt bei 2-3 MB RAM auf einem 64bit-System und auch die CPU-Anzeige von htop habe ich selbst bei einem vollen Server noch nie über 1% springen sehen. Im Gegensatz zu vielen anderen Mehrspieler-Spielen ist es bei Sauerbraten nicht notwendig, dass Server und Client sich permanent über Treffer und Aktionen austauschen, was es erlaubt die wesentlichen Funktionen des Servers auf ein Minimum zu beschränken. Dadurch bleibt das Spiel selbst bei hohen Pings noch spielbar. Auf der anderen Seite macht es Sauerbraten gegenüber Cheatversuchen auch verwundbarer, was durch die Open-Source-Natur des Spiels noch begünstigt wird.

Die Authentifizierung

Sauerbraten begegnet diesem Problem mit einer ungewöhnlichen, aber nachvollziehbaren Entscheidung. Da selbst die populärsten proprietären Spiele mit einem Stab von bezahlten Entwicklern keinen vollkommenen Schutz gegen jede Art von Manipulationsversuch bieten können, haben die Entwickler die Verantwortung und Kontrolle an die Spielgemeinschaft zurückgegeben. Auf jedem Server kann ein Spieler sogenannter "Master" werden und Verstöße mit einem Bann vom Server bestrafen. Die Funktion wird entweder über das Spielmenü oder durch Eingabe von /setmaster 1 im Chat (Taste t) aufgerufen.
Sauerbraten-Server kennen im Wesentlichen zwei Arten von Autorisation: Mit Auth-Schlüssel und ohne.

  • Auth-Schlüssel. Durch den Hauptentwickler des Spiels werden sogenannte Auth-Schlüssel vergeben, mit denen vertrauenswürdige Spieler auf jedem Server mit Auth-Status Master werden können.
  • Öffentliche Server. Jeder kann dem Server beitreten. Diejenige, welche zuerst /setmaster 1 in den Chat eingibt, erhält den Master-Status.

Von diesen beiden Formen der Registrierung ist der Administrator des Server mit seinem Admin-Passwort jedoch nicht betroffen. Er kann jederzeit mit /setmaster und der anschließenden Eingabe des Admin-Passworts selbst dann zum Master werden, wenn diese Rechte schon an einen anderen Spieler vergeben worden sind.
Für mein Projekt habe ich mich für einen öffentlichen Sauerbraten-Server entschieden, auf dem jeder Master werden kann. Zusätzlich ist es möglich den Server so zu sperren, dass zwar weiterhin Spieler beitreten können, diese aber nur zuschauen und den Chat mitlesen dürfen. (L=Locked)

Installation und Konfiguration

aptitude install sauerbraten-server
Zur Inbetriebnahme des Servers ist es sinnvoll einen unprivilegierten Benutzer mit adduser anzulegen, z.B. sauerbraten. In dessen Home-Verzeichnis wird die zentrale Konfigurationsdatei server-init.cfg erstellt. Die verfügbaren Einstellungsmöglichkeiten sind überschaubar, was es einfach macht sich zurechtzufinden. Es ist sinnvoll die Shell des Benutzer auf /bin/false zu setzen.
chsh sauerbraten -s /bin/false
Das Programm lässt sich am besten in einer Screen-Sitzung starten. Hierzu erstellt man eine ausführbare Datei start.sh mit folgendem Inhalt.

#!/bin/sh
while true
do
/usr/games/sauerbraten-server -q/home/sauerbraten
echo "server abgestuerzt am `date`" > letzter_crash.txt
done

Den Server kann man danach auf diese Weise starten:
su sauerbraten -s /bin/dash -c "screen -m -d -S ffa_sauer sh start.sh"
Sollte es tatsächlich zu einem Absturz kommen, sorgt die While-Schleife automatisch für den Neustart und für einen kurzen Vermerk in der Datei "letzter_crash.txt". Sauerbraten läuft sehr stabil. Bei einer Uptime von > 30 Tagen kam es jedoch auch schon zum Crash. Die oben genannte Konfiguration sorgt dann dafür, dass der Server nur wenige Sekunden nicht erreichbar ist.
Schließlich lässt er sich auch über eine Cron-Reboot-Aktion bei einem Neustart hochfahren. In /etc/crontab steht deswegen
@reboot sauerbraten screen -d -m -S ffa_sauer sh /home/sauerbraten/start.sh
Der Port des Servers lässt sich ändern. Wer eine Firewall betreibt muss den Standardport 28785 und 28786 freigeben. Spielt man im LAN gilt das auch für Port 28784. Allgemein gesprochen: Gebt immer Port und Port+1 frei und im LAN zusätzlich noch 28784.

Modifikationen

Ich betreibe den Server, so wie ihn Debian und auch Ubuntu ausliefern, ohne jede Form von Modifikation. Es gibt verschiedene Projekte, die die Standardfunktionen erweitert haben, jedoch weiterhin kompatibel zum Original sind. Neue Merkmale sind unter anderem veränderte Statistikanzeigen im Spiel, neue Kontrollmöglichkeiten durch den Admin und Integration mit IRC. Maßgeblich sind das die Projekte XSBS und Hopmod. Ebenfalls erwähnenswert ist Bandnudel, ein Skript um Statistiken für den Server zu erstellen. Da ich diese Modifikationen nicht benutze, seid ihr hier auf euch allein gestellt.
Des Weiteren bietet der gesamte Webauftritt des Ogros-Clans einen guten Überblick, was man mit selbst erstellen Servermodifikationen erreichen kann. Leider werden diese im Gegensatz zum Cube-Server-Lister, der ebenfalls von dort stammt, nicht frei zur Verfügung gestellt.

Screenshots

Hier sind ein paar Screenshots. Viele weitere gibt es hier.

Links

Wyrd und Remind: Erinnerungen per E-Mail erhalten

Damit die Idee nicht ganz in Vergessenheit gerät, bekommt sie einen eigenen kurzen Beitrag. Remind, ein Terminplaner für die Konsole, hatte ich im Zusammenspiel mit Wyrd letztes Jahr vorgestellt. Beide zusammen kombinieren eine mächtige Syntax zur Beschreibung von Terminen mit einer effizienten und eleganten Benutzerschnittstelle auf Basis von Ncurses.
Nun habe ich in den letzten Monaten ebenfalls festgestellt, dass ich gar nicht alle Funktionen brauche, die dieses Programm mir zur Verfügung stellt, um Wyrd und Remind wirklich vollkommen auszureizen. Eine wiederkehrende Anforderung an Terminplaner und Erinnerer gibt es dennoch. Geburtstage!
Natürlich, in Zeiten von Sozialen Netzwerken war es nie einfacher an das Geburtsdatum eines flüchtig bekannten zu gelangen und darüber benachrichtigt zu werden. Doch nehmen wir an, wir kennen die Geburtstage unserer Freunde und Bekannten aus erster Hand, haben einen fertig eingerichteten Mailserver, der nur E-Mails versenden kann, dann funktioniert das Ganze unter Umständen nach diesem netten Tipp aus der FAQ von Remind.

  • Startet wyrd
  • Wählt das Datum aus und tragt einen beliebigen Geburtstag ein (Taste t)
  • Beispiel: REM Jul 10 +14 MSG Annas Geburtstag %b (14 Tage vorher möchte man eine Mail erhalten)
  • Tragt weitere Geburtstage nach dem selben Schema ein.
  • Startet Remind als Daemon. remind -z -k'echo "%s" | mail -s "Erinnerung" apo' ~/.reminders &

Mit der Option -z wird Remind als Daemon im Hintergrund ausgeführt und greift dabei auf die Textdatei ~/.reminders zu, in der Wyrd die Termine speichert. Durch die Option -k führt Remind ein Kommando aus, in diesem Fall den Echo-Befehl. Der Platzhalter %s wird durch den Text nach MSG ersetzt, also "Annas Geburtstag in 14 Tagen" und danach der gesamte Inhalt durch eine Pipe an mail geschickt.
Die E-Mail hat also den Inhalt %s, den Betreff "Erinnerung" und geht an den Benutzer apo. In /etc/aliases könnt ihr eine externe Mailadresse für diesen Benutzer definieren und schon erhaltet ihr zu jedem Geburtstag 14 Tage im Voraus eine Erinnerung.
Wenn man das jetzt noch mit etwas Skriptkunst kombiniert, einen Zufallsgenerator bemüht, sich Inhalte für die Variablen $ANREDE, $FLOSKELN, $GLUECKWUENSCHE ausdenkt, kann man aus der Erinnerungsmail direkt eine Glückwunschmail machen. Ah, die Wunder des Informationszeitalters. 🙄