Thunderbird-Addons für “Profis”: Nostalgy

Teil 2 der Reihe Thunderbird Addons für Vielbenutzer

Mail, die man nicht archivieren möchte kann man einfach aus der Mailbox mit der Taste „D“ löschen und landet danach am Anfang der nächsten Email. Auf diese Art lässt sich eine volle Mailbox schnell duchlaufen und reduzieren. Leider geht das mit Mail, die man aufheben will nicht so leicht. Um Email zur Archivierung in Unterordner zu verschieben, muss man meist zur Maus greifen, was häufg lästig ist.

Mit dem Addon Nostalgy kann man auch diese Aufgabe bequem auf das Keyboard verlegen. Das lohnt sich insbesondere, wenn man viele Email bekommt, die man lediglich lesen und anschließend archivieren muss. (Die Möglichkeit, diese dann gleich per Filter in die passenden Ordner sortieren zu lassen, habe ich persönlich als nicht sinnvoll empfunden. Was bereits im Archivordner liegt liest man meistens gar nicht mehr…). „Thunderbird-Addons für “Profis”: Nostalgy“ weiterlesen

Wurmbefallenes Windows weiß waschen

Mit Schädlingsprogrammen befallene Windows-Systeme sind eine echte Pest. Auch im Uninetz tauchen solche Systeme immer wieder auf.

Die richtige Methode zur Problembehebung ist natürlich eine Neuinstallation. Leider gibt es aber auch Situationen, in denen das – zumindest temporär – nicht möglich ist. Hier wird man dann versuchen müssen, das System mit Hilfe von Virenscannern und Anti-Spyware-Programmen zu säubern. Angesichts der heutigen Vielfalt von Malware und der Frequenz, mit der immer neue Varianten erscheinen, hat man dabei jedoch häufig selbst bei der Verwendung mehrerer unterschiedlicher Programme schlechte Karten, wirklich alle unerwünschten Komponenten zu erwischen. Daß man dazu ein von Live-CD gestartetes Rettungssystem verwenden muß, ist ja ohnehin klar.

Eine weiteres Problem sind Hinterlassenschaften, die auch nach dem Löschen von als infiziert eingestuften Dateien zurückbleiben. Da wird dann beispielsweise die Windows-Firewall deaktiviert und eine Gruppenrichtlinie gesetzt, die ein einfaches Reaktivieren verhindert, oder die Einstellungen für die automatischen Updates von Windows werden unbrauchbar gemacht, so daß das System spätestens beim Entdecken der nächsten Windows-Sicherheitslücke gleich wieder infiziert werden kann.

Das häufigste Problem in dieser Hinsicht sind jedoch Manipulationen an den Netzwerkeinstellungen, um die Benutzer infizierter Rechner auf irgendwelche Phishing-Sites umzuleiten. Der Klassiker sind dabei sicherlich Manipulationen an der Datei %windir%system32driversetchosts. Da wurden dann gerne mal die Update-Server und Websites von Antivirenherstellern geerdet oder auch beliebte Angebote wie ebay.de umgeleitet. Diese Änderungen werden von Anti-Virus-Programmen mittlerweile aber meist erkannt. Sehr beliebt waren eine Zeit lang auch Eingriffe in den Netzwerkverkehr über Winsock-LSPs, wogegen aber zum Glück auch ein Kraut gewachsen ist. Inzwischen werden gleich ganz andere Geschütze aufgefahren.

Etwas weniger versiert, aber nach meiner Beobachtung derzeit weitaus weiter verbreitet, sind direkte Manipulationen an den Windows-eigenen Netzwerkverbindungen (also z.B. der „LAN-Verbindung“ oder der „Drahtlosen Netzwerkverbindung“). Da wird dann in den Eigenschaften von TCP/IP konfiguriert, daß zwar die IP-Adresse per DHCP bezogen werden soll, aber die Adresse des DNS-Servers wird manuell eingestellt – auf einen manipulierten DNS-Server der Phishing-Banden, versteht sich. Diese Vorgehensweise ist schon ziemlich clever: Bei einem einfachen ipconfig sieht alles OK aus, denn dort sieht man die Adresse des DNS-Servers nicht, und zunächst scheint im Netzwerk auch alles normal zu funktionieren. Nur die Webseiten, die man zu Gesicht bekommt, sind halt oft genug nicht die Originalseiten, sondern von den Phishern nachgemachte Seiten, bei denen die eingegebenen Paßwörter gestohlen werden. Statt eines einfachen ipconfig muß man also ipconfig /all verwenden und kontrollieren, ob die eingestellten DNS-Server die richtigen sind (im UKLAN sind das diese hier).

Natürlich gibt es noch viel mehr Dinge, die man auf einem einmal kompromittierten System kontrollieren müsste – von Backdoorprogrammen über Rootkits oder manipulierte Dienste bis zu geänderten Passwörtern oder neu angelegten Benutzerkonten. Die eingangs erwähnte Neuinstallation ist daher auf jeden Fall die beste Variante, die man wenn irgend möglich auch beherzigen sollte. Aber für die Fälle, in denen eben nicht neu installiert werden kann, sollte man zumindest die hier genannten Manipulationsmöglichkeiten kennen und überprüfen, ob Sie auf dem „gereinigten“ System vorliegen.

Thunderbird-Addons für „Profis“: Quicktext

Da es für Thunderbirds eine schier unübersichtliche Menge AddOns gibt, stelle ich mal die drei vor, die ich persönlich am wenigsten missen möchte:

Quicktext erlaubt es Antworten „aus der Dose“ direkt im Entwurfsfenster von Thunderbird einzufügen.

Wenn man konsequent immer wiederkehrende Antworten als Template abspeichert, spart man nach einer Weile eine ganze Menge Arbeit. Interessant ist hier auch das Feature, dass man in den Templates Variablen einfügen kann, an deren Stelle z.B. Namen des ursprünglichen Schreibers, Datum oder der Inhalt der Zwischenablage eingefügt werden kann.

Wie funktioniert das?

„Thunderbird-Addons für „Profis“: Quicktext“ weiterlesen

Python 3000 erschienen

Selten wurde das neue Release einer Programmiersprache so kontrovers diskutiert wie bei Python 3000 (auch „Py3K“ genannt). Und das hat seinen Grund, schließlich ist die neue Version in einigen häufig genutzten Bestandteilen inkompatibel zu den Vorgängern. Die Wandlung der „print“-Anweisung hin zur Funktion ist wohl das berühmteste Beispiel, aber darüber hinaus gibt es weitere wichtige Änderungen, u.a.:

  • viele Methoden und Funktionen liefern statt Listen nun Iteratoren oder „Views“ zurück (z.B. map, filter, dict.keys)
  • syntaktische Änderungen, z.B. beim Exception Handling („as“ statt Komma)
  • Unicode ist nun der Standard zur Zeichenkodierung (siehe das „Unicode-Howto“)
  • Divisionen liefern nun Fließkommazahlen, keine abgeschnittenen Integers
  • „old-style-classes“, also Klassen, die nicht von einer Basisklasse abgeleitet wurden, sind nicht mehr erlaubt
  • einige Funktionen und Methoden wurden umbenannt („raw_input“ wurde zu „input“) oder komplett entfernt („has_key“, „file“)
  • neue nützliche Helfer wie die „with“-Anweisung oder das „multiprocessing“-Paket sind hinzugekommen

Eine komplette Liste der Änderungen findet man unter: http://docs.python.org/dev/3.0/whatsnew/3.0.html. Zusätzlich sollte man beachten, dass die kürzlich erschienene Version 2.6 bereits einige Backports von Python 3000 beinhaltete, sofern diese kompatibel mit Python 2.x waren. Die (entsprechend langen) Release Notes zu Python 2.6 findet man unter: http://docs.python.org/dev/whatsnew/2.6.html

Wer seine bestehenden Skripte auf Kompatibilität zu Python 3000 prüfen möchte, kann dies unter Python 2.6 mit dem Kommandozeilenparameter „-3“ tun. Wer seine Skripte automatisch in Python 3000 portieren möchte, kann hierfür das Tool „2to3“ verwenden. Häufig ist manuelles Nacharbeiten aber dennoch erforderlich.

Passwortmanager in Browsern sind unsicher

Heise berichtet über einen Browser-Test mit erschreckenden Ergebnissen. Ich habe den Test selbst mit Safari und Firefox 3 durchgespielt. Wenn man das sieht, sollte man eigentlich auf die Verwendung dieser Manager verzichten. Andererseits verwende ich viele unterschiedliche Passwörter (auch aus Sicherheitserwägungen) und kann mir kaum für jede Website das jeweilige Passwort merken …
Man muss hoffen, dass die Browserhersteller hier reagieren.

Logfiles: zeitliche Verteilung von Fehlern schnell sichtbar machen.

Ein schnelle Kommando-Sequenz, die bei der Analyse von Logfiles nützlich sein kann:

Taucht eine Fehlermeldung (oder eine ungewöhnliche Meldung) im Logfile auf, dann ist die Frage wie die zeitliche Verteilung dieser Fehler aussieht:

grep $SUCHBEGRIFF /var/log/$LOGFILE | cut -c 1-9 | uniq -c

ergibt eine Ausgabe in der in der ersten Spalte die Anzahl der Vorkommnisse und in dahinter Datum und Uhrzeit stehen. Damit kann man schnell überblicken, ob der Fehler sporadisch auftritt oder zu einer Uhrzeit gehäuft. Je nach Wahl der Cut-Grenzen, kann man in Stunden- oder auch 10-Minuten Intervallen schauen.

Perl und Unicode

Obwohl ich eigentlich ganz gut verstehe, wie Unicode in seinen verschiedenen Ausprägungen funktioniert, war mir (und ist zum Teil noch) ein Rätsel, wie Perl damit umgeht. In der Vergangenheit hatte ich vornehmlich das Problem, dass Skripte obskure Unicode-Fehlermeldungen an Stellen produzierten, an denen ich garantiert nicht mit Unicode arbeiten wollte. Ursache ist die Verwendung eines Unicode-Locales unter Linux, z.B. das bei uns standardmäßig eingesetzte „de_DE.UTF-8“. Dafür benutze ich seit einiger Zeit diesen Quickfix:

if (defined $ENV{"LANG"}) {
exec 'env', 'LANG=C', $0, @ARGV unless $ENV{"LANG"} eq "C";
}

Damit wird das Skript garantiert im Locale „C“ ausgeführt.

Jetzt hatte ich zum ersten Mal eine Situation, in der ich wirklich Unicode benutzen wollte. Es ging darum, Umlaute im Input in die Umschreibung „ae“ etc. umzuwandeln. Mein erster Versuch dafür war grundsätzlich richtig:

$input =~ s/ä/ae/g;

Das funktionierte aber nicht, d.h. die Umlaute blieben erhalten. Nach etwas Suchen habe ich gefunden, dass man das Pragma utf8 setzen muss, wenn solche Zeichen im Skripttext auftauchen. So funktioniert es also:

use utf8;

$input =~ s/ä/ae/g;

NB: das setzt voraus, dass das Skript mit einem UTF8-fähigen Editor geschrieben und gespeichert ist.

Phishers Fritz

… fängt frische Phishe.

Derzeit sind wieder Phishing-Mails im Umlauf, die gezielt Passwörter von Nutzern der Uni Köln abphishen wollen. Hintergrund ist, dass mit Hilfe der Passwörter Spamkampagnen geskriptet über das Webmail-System der Uni gefahren werden können. Das ist kürzlich bereits einmal gelungen. Wir haben das Problem recht schnell erkannt und den geknackten Account temporär gesperrt, aber die Gefahr ist damit nicht grundsätzlich gebannt. Und es beweist, dass es immer wieder leichtgläubige Opfer gibt. Ein einziges reicht ja schon, um potenziell viel Schaden anzurichten.

Das größte Problem bei solchen Spam-Wellen ist aus unserer Sicht, dass die Reputation der Uni sinkt – sowohl die reale als auch die virtuelle. Mit Letzterem meine ich, dass Mailserver der Provider nur noch gedrosselt von uns Mail annehmen, bzw. wir im schlimmsten Fall auf sog. Blacklists landen und gar keine Mail mehr von uns angenommen wird. Beides ist in der Vergangenheit schon vorgekommen.

Fehler in Gnome bei Aufruf eines Webservers

Mir ist im Rahmen der Arbeit mit dem Modul “webserver” von Python aufgefallen, dass Gnome bzw. GTK einen kleinen Fehler aufweist. Beim Aufruf einer URL erscheint nämlich ggf. die Nachricht “Error: Failed to send command: 500 command not parseable” auf stderr. Der folgende Aufruf behebt das Problem (für Firefox als Webbrowser, eine Zeile):

gconftool –set /desktop/gnome/url-handlers/http/command
–type=string ‘firefox -remote openurl('/%s,new-tab')’

Ob der Fehler überhaupt existiert, kann mit folgendem Befehl geprüft werden:

gconftool –get /desktop/gnome/url-handlers/http/command

Wenn bei der Ausgabe die “openurl” Option in Anführungsstrichen steht, existiert der Fehler.

Die Kontrolle nochmal mit Python und dem subprocess-Modul:

>>> import subprocess
>>> p1 = subprocess.Popen([“gconftool”,”–get”,
”/desktop/gnome/url-handlers/http/command”],stdout=subprocess.PIPE)
>>> p1.communicate()[0]
‘firefox -remote “openurl('/%s,new-tab')”n’

Das Geheimnis der Semaphoren

Nein, hier geht es nicht etwa um die Hüter des schringseldingselnden Donnerwutzes aus Harry Potter, sondern um Datenstrukturen zur Prozesssynchronisation, die mich auf unseren Linuxservern schonmal des öfteren ärgern. Wenn beispielsweise Apacheprozesse mit einem “Segmentation fault” abrauchen oder mit der Meldung “no space left on device” die Arbeit verweigern, obwohl die Platte mehr als genug Platz bietet, sind nicht selten die Semaphoren daran schuld (wer nicht weiß, was Semaphoren sind: http://de.wikipedia.org/wiki/Semaphor_%28Informatik%29).

Nun gibt es zwei Wege, sich zu behelfen, wenn einem die Semaphoren ausgehen: Die Anzahl der Semaphoren erhöhen oder die bestehenden abschießen.

Die Anzahl der Semaphoren erfährt man im (virtuellen) proc-Dateisystem unter “/proc/sys/kernel/sem”. Die 4 Zahlen repräsentieren die Kernelparameter SEMMSL, SEMMNS, SEMOPM, SEMMNI (Google kennt die Bedeutung ;) ).

Die folgende Einstellung hat uns wesentlich mehr Ruhe vor diesen Plagegeistern verschafft:

sysctl -w kernel.sem=”1000 96000 128 500″

Zum Abschießen hat sich bei uns ein kleines Shellskript bewährt, das vor allem darauf achtet, keine Semaphoren des Users “root” zu erwischen, was unangenehme Folgen haben könnte (ohnehin übernehme ich für die Tipps keine Garantie in Bezug auf unerwünschte Nebenwirkungen!):

#!/bin/bash
sem=`sudo ipcs -s | grep -v root | grep 0×00 | cut -d’ ‘ -f2`
for i in $sem; do sudo ipcrm sem $i; done

Ein weiterer Beitrag zum Thema: http://www.cryptronic.de/wiki/Blogs/20070211_vserver_und_semaphores