Wir ertrinken in Information, aber hungern nach Wissen [John Naisbitt]

Site menu:


Letzte Kommentare

Links:

Counter

Bloggerei

Blogverzeichnis - Blog Verzeichnis bloggerei.de

Archiv

Tag Cloud

Debian OpenSSL Schwachstelle - Nicht die SSH-Keys vergessen

Die OpenSSL-Schwachstelle in Debian Etch, Ubuntu von Feisty bis Gutsy und alle anderen Derivaten kann man getrost als GAU bezeichnen, denn die Konsequenzen können dramatisch sein. Leute die öfters mit Verschlüsselung zu tun haben wird der Satz

It is strongly recommended that all cryptographic key material which has
been generated by OpenSSL versions starting with 0.9.8c-1 on Debian
systems is recreated from scratch

alarmierend genug sein. Ubuntu ist da deutlicher:

This includes the automatically generated host keys used by OpenSSH, which are the basis for its server spoofing and man-in-the-middle protection.

Genau, eigentlich jeder mit einen Server auf dem eines der obigen Betriebs-Systemen läuft ist damit direkt von dieser Sicherheitslücke betroffen. Um, zum Beispiel auf einen Root-Server, bei Debian Etch neue Keys zu erzeugen sollte man zur Sicherheit eine zweite SSH-Session aufmachen, dann die alten Keys löschen und neue erzeugen:

 # apt-get update && apt-get -y upgrade
# cd /etc/ssh
# rm ssh_host_*
# /var/lib/dpkg/info/openssh-server.postinst configure

Danach ausloggen, den alten Key aus der ~/.ssh/know_hosts löschen und neu verbinden. Fertig.

Die Versions-Fetischisten haben bei Debian gewonnen oder von der Qual eine Distributions-Strategie zu entwickeln

Als ich gestern über das Ende von Debian Sarge nachdachte fiel mir auf, das diese Version nicht einmal 3 Jahre gehalten hat, eigentlich sehr schade, wie ich finde. Gerade die Langlebigkeit von Debian-Distributionen empfand ich immer sehr angenehm, denn für viele Server ist ein zu kurzer Lebenszyklus weder sinnvoll noch rentabel.

Schaut man über die Lebenszeit eines Systems, sind 3 Jahre eine verdammt kurze Zeit. Projektierung, Anschaffung, Test, Betrieb und das Ausphasen verschlingen doch etliche Zeit. Ist zu diesen Zeitpunkt die Distribution schon ein Jahr veröffentlicht verschlimmert sich die Sache sogar noch. Debian mit seinen bisherigen Lebenszyklen war daher für mich das erste Enterprise-Linux, auch wenn die Länge nicht immer geplant war, sondern sich durch Unzulänglichkeiten oder dem Erwachsenwerden der Organisation begründeten.

Man braucht also einen guten Kompromiss für den Lebenszyklus einer Distribution. Wenn 3 Jahre zu kurz sind, denke ich, kann man mit 5 Jahren gut leben. So hat man die Gewissheit auch noch mitten im Lebenszyklus einer Distribution nicht auf ein totes Pferd zu setzen. Diese lange Zeit stellt aber auch die Distribution vor Probleme, denn die Hardware ändert sich in dieser Zeitspanne dramatisch. Das war schon immer ein wunder Punkt von Debian, welches sich aber durch den Einsatz der Backports stark gebessert hat.

Wie es mit dem LTS von Ubuntu ausschaut wird sich auf Dauer zeigen. Im Moment sieht es so aus, das sie einen Haufen Software für Stabil erklärt haben und das für die nächsten 5 Jahre nicht ändern wollen. In Konsequenz bedeutet dieser Umstand schon heute, das Ubuntu Dapper LTS für langfristige Projekte Tod ist. Man stelle sich ein Projekt vor, das in ein, zwei Jahren erweitert werden muss. Die heutige Hardware ist nicht mehr lieferbar und installieren lässt sich Dapper LTS auch nicht mehr. Klar kann man nun zu Frickeln anfangen, aber das pflegen eigener Pakete kann ganz schön aufwändig sein.

Einen wirklich guten Kompromiss zwischen Lebenszyklus und Aktualität was Hardware-Treiber angeht liefert im Moment Redhat resp. CentOS. Selbst CentOS 4 kann man heute noch in Projekten ohne Bedenken einsetzen, da Redhat mit Version 4 bis ins Jahr 2012 plant. Neue Hardware trotz 2.6.9er-Kernel? Kein Problem!

Schaut man über den Tellerrand zu Solaris sieht die Situation noch besser aus. Nächstes Jahr fängt, nach über 10 Jahren, Solaris 8 an auszulaufen. Die Schmerzen die es hinterläßt sind aber erträglicher als die Schmerzen die ein Wechsel der Version unter Linux verursachen kann, besonders wenn man viel selbstgeschriebene oder gekaufte Software einsetzt. Bedeutet eine neue Version der Linux Distribution vielfach neue Software, kann man die alte unter Solaris dank der garantierten Binärkompatibilität weiter einsetzen. Das Solaris dafür an anderen Ecken stinkt macht die Wahl einer Umgebung nicht einfacher.

Ich wars nicht!

Heute mittag habe ich noch im IRC-Channel von Debian Deutschland nachgefragt, wann denn der Support für Debian Sarge ausläuft. Niemand wußte das so richtig und nun muss ich bei Heise lesen:

Die Debian-Entwickler wollen die Unterstützung für die Mitte 2005 erschienene Version Sarge (3.1) Ende März einstellen.

Hoffentlich habe ich niemanden dazu gebracht über das Thema nochmal nachzudenken und dann die Ankündigung rauszuhauen :/

Es könnt alles so einfach sein, ist es aber nicht

Die Entscheidung vermehrt auf CentOS resp. Redhat zu setzen ist mir beileibe nicht leicht gefallen, aber der extrem niedrige Frickelfaktor bei der Installation und die sehr gute Treiber-Unterstützung sind nicht von der Hand zu weisende Argumente. Redhat schenkt einem aber nichts, denn man bezahlt an anderer Stelle dafür. Besonders hart trifft es einen, wenn man von Debian kommt. Von deren Aufgeräumtheit und Verlässlichkeit im Konfigurationsbereich sind die Rothüte Kilometer weit entfernt.

Beispiel Bind unter Redhat/CentOS: Man installiert bind mit yum install bind, man startet es mit service named start, die Konfiguration liegt in /var/named. Unter Debian liegt die Konfiguration, egal ob Bind8 oder Bind9 unter /etc/bind, man installiert mit apt-get install bind(9) und startet mit /etc/init.d/bind(9). Dieses /var/named erinnert mich immer an bind4-Zeiten *schauder*

Oder Apache: Das Debian Konstrukt mit sites-available und sites-enabled ist simpel und effektiv, bei Redhat gibt es soetwas nicht. Dort heisst der Apache-Prozess auch httpd und nicht apache(2) wie bei Debian. Genau das gleiche Spiel bei der Installation: yum install httpd gegen apt-get install apache(2). Alles voll krass logisch und durchdacht.

Ich könnte jetzt wieder über die Netzwerk-Konfiguration lästern, aber das möchte ich nicht nochmal wiederholen.

Herr Seemann sucht das Distri-Glück

Irgendwie habe ich Ubuntu im Moment über, ich muss mich mal dringend nach Alternativen umschauen. Es sind immer wieder Kleinigkeiten die mich wahnsinnig nerven. Dabei ist es nicht der Fehler an sich, sondern der für mich zu grosse Unterschied zwischen Anspruch von Ubuntu und Wirklichkeit.

Meine Anforderungen sind eigentlich gar nicht so gross. Sie (die Distribution) sollte halbwegs aktuell sein, KDE (alternativ XFCE) und Firefox bereit halten. Ich möchte mit meiner DVB-T Karte TV gucken können, wobei die Karten nicht das Problem ist, sondern eine brauchbare Applikation wie z.B. klear. Damit hört es auch schon auf. Prinzipiell präferiere ich deb-basierende Distributionen gegenüber RPM, trotzdem wird es wohl mal Zeit für mich meine jahrelang gepflegte Abneigung neu aufleben zu lassen oder aufzugeben. Hier die Kandidaten:

  • Archlinux - a simple, lightweight distribution klinkt verlockend
  • Debian - Thats were my heart belongs ;)
  • Fedora - Irgendwas müssen die Leute daran finden
  • Mandriva - Hab ich mir noch nie Ernsthaft angeschaut, wird wohl mal Zeit
  • Sidux - Hatte früher eine Zeit mal Kanotix, vielleicht ist Sidux ja besser

Ich wurde heute auf der Arbeit auch schon gefragt ‘Wieso nicht Windows?’. Dazu kann ich nur wiederholen: So schlecht geht es mir nicht und so übel ist Ubuntu wiederum auch nicht.

Ich wäre alle meine Sorgen los

Linux und Solaris 8 in einer Solaris-Zone. Mit ersteren könnte man elegant die Kernel-Unzulänglichkeiten von Debian ausbügeln, mit letzteren Alt-Systeme von ihrer Hardware erlösen. Leider funktioniert das im Moment nur mit Kernel 2.4 und Solaris 8 geht gar nicht. Aber Abhilfe ist in Aussicht. Mit dem Support für Kernel 2.6 und dem Projekt Etude könnte ich noch viel Spass haben.

Das Leben ist halt doch ein Konjunktiv, ganz besonders in der IT.

hrmpf!

Freunde werden wir wohl nicht mehr, also ich und CentOS resp. Redhat. Mir hätte heute auch kein Redhat-Mitarbeiter über den Weg laufen sollen, es hätte Böse für ihn geendet. Warum ich mich so Aufrege? Es gibt anscheinend mehrere Wege unter Redhat Netzwerkkarten zu konfigurieren und die eine Möglichkeit weiss nichts von der anderen. Da lobe ich mir doch die einfache /etc/network/interfaces von Debian und selbst der krude Solaris-Krams macht eine um längen bessere Figur!

Spamassassin optimieren

Die Kunst beim Optimieren von Spamassassin heisst gute Planung, beobachten können und sich in Zurückhaltung üben. Man sollte zuallerst nie die Relationen aus den Augen verlieren. Wenn bei 100 Spams eine durchkommt liegt die Erkennungsrate immer noch bei 99 Prozent. Aktuell bekomme ich ca. 250 Spams am Tag. Selten wird davon eine nicht erkannt, womit ich schon im Nachkommta-Bereich bin. Auch Nutzer die aufgeregt anrufen, das eine Spam-Mail durchgekommen ist oder entsprechende Mails weiterleiten sollte man getrost ignorieren. Die Welt geht auch nicht unter, wenn eine Mail vom Bayes-System[1] vermeintlich falsch gelernt wurde. Dabei wird vergessen das es sich um eine statistische Wahrscheinlichkeit handelt und dafür braucht man die entsprechenden Wörter sowohl in der Spam, als auch in der Ham Datenbank. Ein Beispiel:

Kommt das Wort Viagra in 3000 Spam-Mails 500 mal vor und in 5 von 600, liegt die Wahrscheinlichkeit bei:

(300/5000) / (5/600 + 300/5000) = 0,98

Ausserdem macht die Bayes-Bewertung nur einen Teil des Gesamt-Score aus. Lange Rede, kurzer Sinn: Ruhe bewahren ist wichtig. Meiner Erfahrung nach bringt es ausser schlechten Erkennungsraten und False Positives nicht viel an den vorgegeben Scores herumzudrehen. Je mehr man daran rumdreht, umso mehr Arbeit macht man sich an anderer Stelle. Im Folgenden also ein paar Dinge, die man beim Betrieb von Spamassassin auf Servern beachten, tun und sein lassen sollte.

Ist das System schon in Betrieb und leidet unter schlechten Ergebnissen, sollte man zuerst feststellen welche Regeln für die Einteilung in Spam und Ham überhaupt greifen. Gute Dienste leistet hier sa-stats, welches allerdings ein Logfile des Spamd benötigt um aussagekräftige Statistiken zu erzeugen. Bei Debian wird hierzu /etc/default/spamassassin angepasst und das OPTIONS-Feld um -s /var/log/maillog erweitert. Anschließend einmal

touch /var/log/maillog

und den Spamd durchtreten nicht vergessen. Je nach Mail-Durchsatz muss man nun ein wenig warten, also Zeit logrotate einzurichten. Für die meisten sollte es reichen wöchentlich das Spamd-Logfile zu rotieren und somit einen guten Kompromiss zwischen Grösse des Logfiles und Aussagekraft der Statistik zu erreichen. So hat /etc/logrotate.d/spamassassin auszusehen:

/var/log/maillog {
       weekly
       missingok
       rotate 12
       compress
       delaycompress
       notifempty
       create 640 root root
       sharedscripts
       postrotate
               /etc/init.d/spamassassin reload >/dev/null
       endscript
}

Sind genug Daten gesammelt heisst es sa-stats auszuführen. Dem Ergebniss sieht man sofort ein paar wichtige Informationen an wie z.B. das Verhältnis von Spam und Ham oder der generelle Durchsatz an Mail. Am intressantesten sind natürlich die Top Fired Rules für Spam und Ham, die man unter den Gesichtspunkt durchschauen sollte, das Regeln welche für die Spamerkennung da sind, wie z.B. BAYES_99 für Spam oder AWL für Ham (AWL), auf den richtigen Seiten stehen. Tun sie es nicht sollte man mit diesen Datenbanken von vorne beginnen.

Das Bayes-System

Ich persönlich arbeite mit einer generellen Bayes- und AWL-DB für alle. Eigene Datenbanken für Benutzer sind ein stetiger Quell von False-Positives, da entweder komplett falsch gelernt wird oder garnicht. Es ist einfach zu aufwendig und ineffektiv an dieser Stelle hinterherzuräumen, daher lohnt es sich nicht. Solch generelles Setup erreicht man entweder durch ein Site-Wide Setup oder weil Spamassassin von z.B. Amavis getriggert wird und sich somit im Home-Verzeichnis vom Amavis-User die Datenbanken aufbauen.

Bevor es los geht noch ein paar Worte zu den Bayes- und AWL-DBs. Zu einem ist es gut, wenn man die Funktion der AWL versteht:

The AWL is actually a very simple system. In short, the AWL is a score averaging system. It keeps track of the historical average of a sender, and pushes any subsequent mail towards that average. So if someone that never sent you mail before sends you a mail that scores 20, and then sends you a second mail that would score 2.0 without the AWL, the AWL will push the score up to 11 on the second mail. This is auto blacklisting, based on their past history of spam.

Zum anderen sollte man sich abgewöhnen an der Bayes-DB rumzudrehen. Das Autolearning funktioniert bei vernünftigen Regelsätzen besser als jeder Mensch, also Finger weg. Bei solch einen Setup lohnt es sich auch nicht alle erkannten Spams und Hams nachträglich nocheinmal manuell nachzulernen, denn sie wurden bereits durch das Auto-Learning hinzugefügt.

Arbeitet das Bayes-System garnicht liegt es mit hoher Wahrscheinlichkeit an zu wenig gelernten Spam und Ham.

amavis@rte:$ sa-learn --dump magic
0.000          0          3          0  non-token data: bayes db version
0.000          0      21852          0  non-token data: nspam
0.000          0       7754          0  non-token data: nham
0.000          0     150913          0  non-token data: ntokens
0.000          0 1184319834          0  non-token data: oldest atime
0.000          0 1187116894          0  non-token data: newest atime
0.000          0          0          0  non-token data: last journal sync atime
0.000          0 1187084641          0  non-token data: last expiry atime
0.000          0    2764800          0  non-token data: last expire atime delta
0.000          0       1991          0  non-token data: last expire reduction count

Die Werte nham und nspam stehen für die Anzahl bereits gelernter Mails. Liegen sie unter 200 ist das Bayes-System deaktiviert. Möchte man es trotzdem starten kann man dies mit bayes_min_ham_num und bayes_min_spam_num in der Spamassassin-Konfiguration beeinflussen. Auch empfiehlt es sich vor der Inbetriebnahme Gedanken über wichtige Email-Partner zu machen und diese in die Whitelist zu nehmen. Man kann sie später wieder entfernen, da die Whitlist-Scores in die AWL eingegangen ist.

Netzwerkbasierte Tests

Spamassassin basiert im Grunde aus drei Teilen: Festen Regelsätzen, die in der Mail nach bestimmten Pattern suchen, dem Bayes-System und den Netzwerk-basierten Tests wie Razor, Pyzor und (Su)RBLs. Bei Debian geht die Installation recht einfach:

apt-get install libnet-dns-perl razor pyzor dcc-client dcc-common

Man sollte darauf achten einen schnellen DNS-Server in Reichweite zu haben oder lokal einen Caching-DNS betreiben um die Antwortzeiten und damit die Durchlaufzeit einer Mail zu minimieren. Steht der Server hinter einer Firewall sind entsprechende Regeln einzupflegen, näheres hier.

Externe Regelwerke

Die mitgelieferten Regelsätze von Spamassassin sind schon recht gut, man kann sie aber noch verbessern. Aber auch hier sollte man Vorsicht walten lassen. Viele Regeln helfen nicht viel, im schlimmsten Fall machen sie Spamassassin zu einen Ram fressenden Monster. Meine Daumenregel ist dabei, das ich sie wieder lösche wenn sie nach einer Woche nicht in den Top 20 Regeln auftauchen.

Ein guter Anfang sind die Regeln vom RulesEmporium. Die kann man einfach ins Konfigurations-Verzeichnis werfen und Spamassassin durchstarten. Da sie sich aber hin und wieder ändern ist ein automatisches Update wünschenswert. Anfangs gab es RulesDuJour das aber seit dem erscheinen von sa-update nicht mehr weiterentwickelt wird.

sa-update arbeite mit sogenannten Channels, die quasi jeder zur Verfügung stellen kann. Ich nutze zum einen den Update-Channel von Spamassassin und einen von Daryl O’Shea. Zuerst muss man die GPG-Keys installieren:

wget wget http://daryl.dostech.ca/sa-update/sare/GPG.KEY
gpg --import GPG.KEY
sa-update --import GPG.KEY
rm GPG.KEY
wget http://spamassassin.apache.org/updates/GPG.KEY
gpg --import GPG.KEY
sa-update --import GPG.KEY

Anschließend legt man ein File an, indem die Channels hinterlegt werden:

touch /etc/spamassassin/sare-sa-update-channels.txt

Und packt folgende Daten rein, welche die externen Regelwerke repräsentieren die geladen werden sollen:

updates.spamassassin.org
70_sare_stocks.cf.sare.sa-update.dostech.net
70_sare_adult.cf.sare.sa-update.dostech.net
70_sare_spoof.cf.sare.sa-update.dostech.net
70_sare_bayes_poison_nxm.cf.sare.sa-update.dostech.net
70_sare_genlsubj_x30.cf.sare.sa-update.dostech.net
70_sare_oem.cf.sare.sa-update.dostech.net
70_sare_random.cf.sare.sa-update.dostech.net
70_sare_specific.cf.sare.sa-update.dostech.net
70_zmi_german.cf.zmi.sa-update.dostech.net
88_FVGT_Bayes_Poison.cf.sare.sa-update.dostech.net
88_FVGT_Tripwire.cf.sare.sa-update.dostech.net
88_FVGT_rawbody.cf.sare.sa-update.dostech.net
88_FVGT_subject.cf.sare.sa-update.dostech.net
chickenpox.cf.sare.sa-update.dostech.net

Um beide Channels gleichzeitig updaten zu können braucht es nun noch ein Key-File

touch /etc/spamassassin/keys

indem die Keys stehen:

856AA88A
5244EC45

Nun kann man mit

sa-update -D --channelfile /etc/spamassassin/sare-sa-update-channels.txt --gpgkeyfile /etc/spamassassin/keys

die Regelsätze herunterladen und im späteren mit dem selben Befehl auf Stand halten. Vor dem Neustart von Spamassasin ist dringenden ein

spammassassin -D --lint

angesagt um Fehler im Regelwerk rechtzeitig zu erkennen.

Ausblick

Im zweiten Teil geht es um allerlei Plugins mit denen man unter Spamassassin arbeiten kann.

[1] - Kampf dem Spam

Unzufrieden mit Ubuntu

SimplyMepis basierte bis März 2006 auf Debian, dann entschloss man sich auf Ubuntu Dapper LTS zu wechseln. Nun, im Juli 2007 erfolgt die Rolle rückwärts. Der Gründer von Mepis Warren Woodford findet ein paar nette Worte wie ich finde:

“Dapper was not updated in the way our users expected,” Woodford said. “Personally, I think the Ubuntu people spoke sincerely and accurately, but perhaps ambiguously. So there was a misunderstanding among users. The fact is Dapper was updated with security fixes, but not with new versions of the applications.”

Und zu den spezielleren Problemen:

“Ubuntu is almost a whole new distro each time it’s released,” he said. “By using the EXPERIMENTAL code, each and every time, the Ubuntu code tree is inherently less stable than the Debian code tree, which contains additional levels of testing and vetting and fixing of code.”

Er hat in meinen Augen noch einen vergessen: Ubuntu verzettelt sich. Hier eine neue Variante, da irgendeine Software. Das wird auf Dauer nicht funktionieren.

Novell iFolder nimmt wieder an Fahrt auf

Wer hier schon länger mitliest ist öfters über das Thema Novell iFolder gestolpert. Beim iFolder handelt es sich um Client-/Server-Software die ein vernünftiges Syncronisieren von Verzeichnissen, den iFoldern, zulassen inkl. Kollisionskontrolle, Gruppenfoldern, Quota, Offline arbeiten etc. pp. Anfänglich gab es iFolder nur für Novell Netware bis es dann irgendwann unter GPL v2 freigegeben wurde.

Seitdem ist es ein Auf und Ab. Manchmal hatte man das Gefühl es geht garnicht weiter, dann wieder meldeten sich die Programmierer zu Wort und kündigten den iFolder 3.6 an, der mit dem Open Enterprise Server 2 (OES 2) released werden soll. Mittlerweile gibt es auch wieder Nighly Builds für Fedora und Suse des SVN-Trees und an Paketen für Debian/Ubuntu wird auch gearbeitet.

Freut mich ganz ehrlich, denn iFolder war schon unter Novell Netware ein tolles, aber total unbekanntes und unterschätztes Produkt. Die vielfältige Verfügbarkeit von Paketen wird der Verbreitung bestimmt gut tun, ob die Entwicklung noch mehr an Fahrt aufnimmt wage ich zu bezweifeln. Denn anscheinend haben nur die beiden Novell-Entwickler vollen Zugriff auf das SVN und iFolder ist komplett in Mono geschrieben