12 Sep 2007, 15:17

Links des Tages: Apples iPhone offenbar geknackt und Linux Rechner von Mindfactory

Nach einem Bericht von heise ist der SIM-Lock von Apples iPhone offenbar geknackt worden; und zwar, im Gegensatz zur alten Methode, ohne Hardwaremodifikationen. Na, das wurde auch Zeit.

Die Firma Mindfactory bietet seit kurzem einen fertig konfigurierten Linux-PC mit Debian und vorinstalliertem Beryl an. Klasse, daran sollten sich andere ein Beispiel nehmen!

10 Sep 2007, 08:36

Debian - Alte Pakete löschen und Platz schaffen

Kurztipp: Wie schaffe ich auf der root-Partition meiner Debian-basierten Distribution (Debian, Ubuntu, Xandros, etc.) Platz?

aptitude autoclean

Dieser Befehl sorgt dafür, dass alte Pakete im Paketcache gelöscht werden. Da dieser oft genug auf der root Partition liegen dürfe kann es hilfreich sein diese Befehl in einen Cronjob von ‘root’ reinzupacken. Wenn das noch nicht reicht kann man auch noch ein

aptitude clean

versuchen. Dieser Befehl löscht auch aktuelle Pakete aus dem Cache.

06 Sep 2007, 10:49

Ostasiatische Schriften unter Debian GNU/Linux installieren

Kurztipp: Wie installiere ich ostasiatische Schrifen (japanisch, koreanisch, chinesich) unter Debian?

aptitude install ttf-alee ttf-arphic-bkai00mp ttf-arphic-gbsn00lp ttf-baekmuk ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts

Weiterführende Informationen gibts bei Meet Korea oder Nekobento.

03 Sep 2007, 13:41

Toshiba 4GB USB Flash Drive von Penny

In den Penny Märkten gibt es heute ein interessantes Angebot: 4GB USB-Stick von Toshiba für 29,99€. Das geht sicherlich noch günstiger, aber ich finde es ist ein akzeptabler Preis und da ich schon länger auf der Suche nach einem möglichst großen USB-Stick für unter 30 Euro war habe ich zugeschlagen.

Der USB-Stick wird mit einem Umhänge-Bändel und einer, wenig Hilfreichen, Bedienungsanleitung geliefert. Was mir gut gefällt ist, dass der Stick vorformatiert ist (FAT32).

Geschwindigkeit schreiben: 1GB in 04:15 (min:sec), d.h. ca. 4 Mb/s. Versprochen waren im Prospekt “Ca. 5MB/Sek.”, das geht für mich also in Ordnung.

Geschwindigkeit lesen: 1GB in 01:28, d.h. ca. 11,64 MB/s. Versprochen waren im Prospekt hier “Ca. 12Mb/Sek.”, das ist optimal.

Kompatiblität: Offiziell, d.h. im Prospekt und in der Bedienungsanleitung wird Kompatiblität zu Windows 98/2000/ME/XPund MacOS 10.0.2+ zugesichert. Und Linux (Debian/Lenny) läuft er aber auch einwandfrei. Alle Messungen wurden unter Linux (Kernel 2.6.21) vorgenommen. Aber ich bin mir sicher, dass sie auch auf Windows übertragbar sind.

Mein Fazit: Kein “Super-Knaller” aber ein sehr gutes Angebot das ich so durchaus weiterempfehlen kann. Wie “haltbar” der Stick ist wird sich mit der Zeit zeigen, aber Toshiba gewährt immerhin 5 Jahre Garantie, das ist schonmal sehr vielversprechend.

Details Erkannt wird der Stick als: kernel: scsi 5:0:0:0: Direct-Access TOSHIBA TransMemory 5.00 PQ: 0 ANSI: 0 CCS

Und schön gemounted unter:

/dev/sdb1 on /media/TOSHIBA type vfat (rw,nosuid,nodev,noatime,flush,uid=1000,utf8,shortname=lower)

Bilder

Hier noch zwei Bilder des USB-Sticks. Zunächst mal der Inhalt der Packung. Auf dem zweiten Bild ist sehr schön das RFID-Ettikett (oben) und der Diebstahlschutz (unten) zu erkennen.

Toshiba 4GB USB Flash Drive von PennyRFID & Diebstahlschutz

03 Sep 2007, 10:07

Besucherstatistiken - Firefox, Windows und 1280x1024

Eine kleiner Blick auf die Statistiken.

Browser:

  • Firefox (+ Mozilla Derivate) - 58,84%
  • Internet Explorer - 30,08%
  • Opera - 5,82%
  • Safari - 2,87%
  • Konqueror - 1,78%
  • Der Rest teilt sich auf in diverse Browser und interessante Kennungen wie “Gzip”.
Yeah, Firefox rocks! So ist es richtig. Die 30% vom IE bekommt der Firefox auch noch klein.

Betriebssysteme:

  • Windows - 76,87%
  • Linux - 17,61%
  • MacOS - 4,95%
  • FreeBSD - 0,04%
Schade, ich dachte Linux wäre stärker repräsentiert.

Bei den Bildschirmaufläsungen dominiert 1280x1024 mit 37,49% vor 1024x768 mit 23,24% und 1280x800 (9,41%). 800x600 ist mit nur 0,64% gerade mal auf Platz 11. Interessant sind ein paar Exoten wie z.B. 1920x1200 mit immerhin 2,80% oder 2560x1600 (0,11%). Bei so Auflösungen denke ich nur: “Ich will auch!”.

02 Sep 2007, 13:35

Google Earth mit Flugsimulator!

Omfg ist das genial - Google Earth gibts jetzt mit eingebautem Flugsimulator!

Ich bin definitiv nicht der Erste dem das Aufgefallen ist, aber ich bin gerade viel zu begeistert um nicht etwas darüber zu schreiben.

Um den Flugsimulator zu starten sollte man sich erstmal die neuste Version von Google Earth runterladen und dann, bei fokusiertem Hauptfenster, Strg+Alt+A drücken.

Es gibt auch eine Hilfe.

Google Earth Flightsim über Berlin Mitte

02 Sep 2007, 09:57

VirtualBox 1.5 veröffentlicht

Gerade wollte ich mein System aktualisieren und habe gesehen, dass VirtualBox, zumindest im Repository, in der Version 1.5 vorliegt. Auf der Webseite ist es allerdings noch nicht angekündigt.

Im Changelog steht nur “rebuild Debian packet” (Freitag, 31.Aug.07), was das auch immer heissen soll …

Update, 03.09.07: Jetzt ist auch die offizielle Ankündigung und das ausführliche Changelog raus.

27 Aug 2007, 20:01

MEncoder Tricks

Hier ein paar kurze Tricks für den MEncoder vom MPlayer.

Rotate: mencoder -ovc lavc -oac copy -o output.avi -vf rotate=0 input.avi Mögliche Werte für Rotate:

  • 0 - Drehe um 90 Grad im Uhrzeigersinn und stelle das Bild auf den Kopf
  • 1 - Drehe um 90 Grad im Uhrzeigersinn
  • 2 - Drehe um 90 Grad gegen den Uhrzeigersinn
  • 3 - Drehe um 90 Grad gegen den Uhrzeigersinn und stelle das Bild auf den Kopf
Remove Sound: mencoder -ovc copy -nosound input.avi -o output.avi

Change Sound: mencoder -ovc copy -audiofile tonspur.mp3 -oac copy input.avi -o output.avi

Create x264: mencoder-mt -ovc x264 INPUT.avi -x264encopts level_idc=12:bframes=3:subq=7:partitions=all:8x8dct:me=esa:me_range=23:frameref=6:trellis=1:weight_b:mixed_refs:threads=auto:qcomp=0.6:keyint=250:min-keyint=25:direct=temporal -vf scale=1440:1080 -oac lavc -lavcopts acodec=libfaac:abitrate=56 -srate 48000 -af channels=2 -of lavf -ofps 25 -lavfopts format=mp4 -o OUTPUT.mp4

27 Aug 2007, 10:20

Linus: I've never run Debian

Uhm, Linus Torvalds hat ja wirklich einen schlechten Eindruck von Debian:

“Funnily enough, the only distributions I tend to refuse to touch are the “technical” ones, so I’ve never run Debian, because as far as I’m concerned, the whole and only point of a distribution is to make it easy to install (so that I can then get to the part I care about, namely the kernel), so Debian or one of the “compile everything by hand” ones simply weren’t interesting to me.”
[1]

Ich denke, er sollte sich mal ein aktuelles Debian anschauen … aber wahrscheinlich hat er bessere Dinge zu tun.

Interessant an dem Interview fand ich auch, dass er Intel explizit empfohlen hat.

24 Aug 2007, 10:49

IntelliMouse Optical unter X.Org für Linkshänder einrichten

Kurztipp: Wie richtet man eine Maus, z.B. IntelliMouse Optical, unter X.Org für Linkshänder ein.

Entweder auf der Konsole: xmodmap -e “pointer = 3 2 1 4 5 6 7 8 9”

oder in der /etc/X11/xorg.conf unter “Section InputDevice”: Option “ButtonMapping” “3 2 1 4 5 6 7 8 9”

23 Aug 2007, 22:51

TV-Out unter Linux mit Nvidida GF6600

Es ist gar nicht so einfach den TV-Out der Nvidia Karten mit einem S-Video Kabel in Betrieb zu nehmen, schon gar nicht unter Linux.

Das ganze hat mich bis jetzt jedesmal Nerven gekosten, daher muss ich das jetzt nochmal festhalten.

Zunächst einmal zum physikalischen Anschluss. Das Kabel muss an den blauen Anschluss, ganz rechts, an der Breakout-Box. Auf der anderen Seite habe ich das ganze mit einem Scart-Adapter an den Scart-Eingang angeschlossen.

S-Video am Composite Out der neuern Nvidia Karten

Damit das auch funktioniert muss in der xorg.conf der Video-Modus “Composite” gewählt werden, und natürlich die richtige PAL Einstellung. Hier der relevante Auszug aus meiner xorg.conf: Section “Device” Identifier “nvidia0” Driver “nvidia” Option “NoLogo” “True” Screen 0 Option “TwinView” “true” Option “TwinViewOrientation” “clone”

PAL-B or PAL-G for Germany

Option “TVStandard” “PAL-B” Option “TVOutFormat” “COMPOSITE” Option “SecondMonitorHorizSync” “30-50” Option “SecondMonitorVertRefresh” “50” Option “MetaModes” “1024x768,1024x768;800x600,800x600” Option “ConnectedMonitor” “DFP,TV” EndSection

18 Aug 2007, 09:19

Skype ist kaputt

Ohman, da will man mal nach langer, langer Zeit wieder Skype benutzen und dann bricht das komplette Netzwerk von denen zusammen, und zieht die Netze der Nutzer gleich mit runter.

Naja, so gewinnen die jedenfalls keine neuen Kunden.

Ich weiss warum ich dem ganzen VoIP-Kram z.Z. noch den Rücken kehre und lieber auf POTS setze, mein ISDN Anschluss fällt nicht aus weil irgendein “Algorithmus” spinnt. Wobei das ganze für mich eher wie eine faule Ausrede klingt, ich vermute wirklich, dass das mit dem MS Patchday zusammenhängt und die vorher irgendeinen Windows Bug ausgenutzt haben um die SuperNodes zu verwalten, und der wurde dann plötzlich von MS gepatcht. Sowas nennt man wohl “natürliche Selektion”, die schlechten überleben einfach nicht. Und Skype gehört für mich definitiv nicht zu den guten. Wenn es endlich Clients gibt die Jingle ordentlich implementieren, dann brauche ich kein Skype mehr.

16 Aug 2007, 08:42

Wie geht AVM mit der GPL um?

Nachdem ich mich seit einiger Zeit mit der Fritz!Box von AVM beschäftige, hat sich mir die Frage gestellt wie AVM eigentlich mit der GPL umgeht, da sie ja Linux auf den Fritz!Boxen einsetzen. Zum Teil, d.h. mindestens bei 7170 und 7270, auch Samba und andere GPL Software.

Weder auf der AVM Homepage, noch in der Fritz!Box Dokumentation ist ein Verweis auf die GPL.

Aber in einem Unterverzeichniss auf dem FTP-Server von AVM liegen einige Archive mit allen geänderten Code-Teilen. Leider scheint das ganze ziemlich nutzlos zu sein, da dort lediglich die Patches liegen und sich so kaum eine vollwertige Fritz!Box Firmaware bauen lässt.

Update: Anscheinend machen sich auch andere Gedanken darüber wie AVM mit der GPL umgeht.

14 Aug 2007, 10:42

Wie schalte ich den nervige PC-Speaker unter Linux/KDE aus?

Ich benutze seit einiger Zeit KDE und bin ziemlich zufrieden damit, was mich aber gestört hat, war, dass unter einigen Programmen die Fehlermeldungen jetzt von einem ziemlich nervigen Piepen des PC-Speakers begleitet wurden.

Das ganz lässte sich allerdings, wie ich jetzt herausgefunden habe, ganz einfach abschalten:

xset -b

Entweder auf der Konsole eingeben oder in die .xsession einfügen.

08 Aug 2007, 18:59

Rezepte Sammlung in neuem Design

Die Rezepte-Sammlung unter rezepte.gauner.org wurde von mir in den letzten Tagen komplett überarbeitet und erstrahlt jetzt in neuem Glanz. Weg mit hässlichen Parametern (?id=X) und nichts sagenden Dateinamen. So dürfe das ganze wesentlich Nutzerfreundlicher sein, und die Suchmaschienen dürften damit auch besser klarkommen.

War interesse an der Umsetzung hat soll sich bei mir melden, dann werde ich das hier bei Gelegenheit erläutern.

Soviel sei schonmal verraten: Die Apache Mod Rewrite Konfiguration habe ich 1:1 von WordPress übernommen.

03 Aug 2007, 12:00

Was ist eigentlich die Load Average?

Ich habe bei I’m Mike gerade eine sehr gute Erklärung gefunden, was eigentlich die Load Average aussagt:

Die Load Average ist der expotentielle Mittelwert der Anzahl der Prozesse die im Status “running” oder “runnable” sind. Wichtig ist dabei folgende Faustregel: Die Load-Average sollte immer kleiner als die Anzahl der Processorkerne im System sein. D.h. ein Dual-Core System mit einem Processor ist zu 100% ausgelastet wenn die Load-Average 2 ist. Ein Dual-Processor System mit Single-Cores ebenfalls bei 2.

Wenn die Load-Average größer als die Anzahl der Cores ist, dann wollen mehr Prozesse zur Ausführung kommen, als das System zur Zeit verkraften kann.

Weitere Details gibts hier.

01 Aug 2007, 09:53

OpenWRT auf der Fritz!Box

Wie ich gerade erfahren habe gibt es offensichtlich die Möglichkeit OpenWRT Linux auf den Fritz!Boxen zu installieren.

Allerdings steht in der OpenWRT Table of Hardware noch untestet bzw. Work-in-Progress und ich werde bestimmt nicht das komfortable Web-GUI der Fritz!Box für lustiges konsolen-gefrickel eintauschen, aber eine interessante Alternative ist es in jedem Fall.

27 Jul 2007, 11:10

AVI Dateien mit defektem Index reparieren

Manchmal hat man das Problem, dass sich in einzelnen avi Filmen nicht springen bzw. spulen lässt weil der Index defekt ist.

Dies lässt sich mit MPlayer/Mencoder ganz einfach beheben: mencoder -idx input.avi -ovc copy -oac copy -o output.avi

Kurz zur Erklärung der Optionen:

  • ”-idx” weist mencoder an den Index neu zu erstellen
  • ”-ovc copy” weist mencoder an als Video-Output Codec “copy” zu verwenden, also den Stream zu kopieren
  • ”-oac copy” weist mencoder an als Audio-Output Code “copy” zu verwenden, also den Stream zu kopieren
  • ”-o output.avi” gibt die Ausgabedatei an
  • “input.avi” ist natürlich die Eingabedatei
Ich bin immer wieder fasziniert wie praktisch und vielseitig das MPlayer bundle ist. Ich verwende übrigens als Paketquelle folgenden sources.list Eintrag: deb http://www.debian-multimedia.org/ lenny main

27 Jul 2007, 10:48

Migrating Debian etch to Debian lenny

Zwar ist es noch nicht lange her, dass etch stable wurde, aber da es sich schon einige Zeit im Freeze befand ist es mal wieder soweit, dass ich mit der Aktualität nicht zufrieden bin und mich mal wieder Richtung testing orientiere.

Insbesondere aiccu brauche ich für IPv6 via SixXS.

Die Migration war eigentlich ganz einfach, wenn auch ein wenig verwirrend.

Einfach die /etc/apt/sources.list angepasst und erstmal ein aptitude update sowie ein aptitude -s dist-upgrade abgesetzt.

Danach hat mir aptitude zwar zunächst vorgeschlagen OpenOffice zu entfernen, aber das hat es sich dann nochmal anderst überlegt.

Grund waren wohl ein paar nicht ganz auflösbare Abhängigkeiten in Bezug auf OOo.

25 Jul 2007, 19:25

FRITZ!Box Wiki

Als ich gerade auf der Suche nach Informationen zu meiner FRITZ!Box 7170 war, bin ich auf ein sehr informatives Wiki zum Thema FRITZ!Box gestossen: wehavemorefun.

16 Jul 2007, 10:29

Aus jHTTPd wird libjhttpd

Nachdem ich den Code zu meinem einfachst-Webserver jHTTPd (HTTP/1.0, Multithreading, IPv6- und UTF-8-Support) in wesentlich mehr Projekten weiter verwendet habe, als zunächst geplant, habe ich mich entschlossen den Code nochmals zu überarbeiten, ein wenig refactoring zu betreiben und als Bibliothek umzuarbeiten.

Der Webserver kann jetzt auch ordentlich binäre Multipart POST Requests verarbeiten. Ein kleines Missverständnis zwischen mir und den Java Streams hat dafür gesorgt, dass es vorher nicht funktioniert hat.

Bytes nach String und wieder zurück zu casten geht selten gut ;)

Die Bibliothek ist so angelegt, dass man den bestehenden Code nicht ändern muss - wobei das für eine Bibliothek selbstverständlich sein sollte.

Im Package webserver.sample befindet sich ein Beispiel dafür wie man die Bibliothek verwenden kann.

Ähnlich wie beim Apache-Webserver existieren ein paar Hooks die es erlauben an verschiedenen Stellen der Request Verarbeitung einzugreifen und die Daten entsprechend zu manipulieren.

Eine lauffähige Instanz des Webservers erzeugt man mit folgendem Code:

Config config = new Config(); // read the config try { config.readConfig(Config.CONFIG_FILE); } catch (IOException e) { e.printStackTrace(); } // check command line arg count if (args.length > 0) { // parse args config.setPort(args[0]); } WebServer ws = new WebServer(config, new SampleHttpRequestFactory()); Thread t = new Thread(ws); t.start();

Weiterhin muss man in einer Klasse die Schnittstelle IHttpRequestFactory implementieren und dort die, ebenfalls zu implementierende, Klasse die von HttpRequest erbt, angeben.

HttpRequest bietet drei sog. Hooks.

  • postConnect() - wird aufgerufen sobald der Client die Verbindung hergestellt hat, aber bevor irgendetwas weiter passiert ist. Hier könnte man z.B. überprüfen ob der Client auf einer Blacklist steht, bzw. aus einem nicht zulässigen Netzwerk kommt und die Verbindung schliessen bevor weitere Ressourcen verbraucht werden.
  • postRequest() - wird aufgerufen nachdem der Request des Clients, d.h. inkl. evtl. vorhandenem POST-Body, verarbeitet wurde. Hier sollte eigentlich fast der gesamte benutzerspezifische Code landen.
  • preClose() - wird aufgerufen direkt bevor die Verbindung zum Client geschlossen wird und nachdem die Antwort gesendet und der Request geloggt wurde. Zu diesem Zeitpunkt besteht keine Garantie dafür, dass die Verbindung zu Client noch existiert.
Die Klasse HttpRequest bietet neben den Hooks noch eine Reihe von Methoden die den Zugriff auf die Daten des Requests ermöglichen.

Die wichtigsten wären:

  • getArgument() - um die komplette Liste der Argumente zu erhalten. Also POST und GET Argumente.
  • getMultiparts() - um die evtl. vorhandenen Multipart Teile eines POST Requests zu erhalten.
  • getRemoteAddress() - um die IP des Clients zu erhalten sowie getRemotePort() um den dazugehörigen Port zu erhalten. Diese zwei Felder sind die einzigen die während postConnect() schon gültige Daten enthalten.
  • getRequestHeader() - um den verarbeiteten Header auszulesen.
  • getResponseHeader() - um auf den Response Header zuzugreifen.
Für weitere Details möchte ich direkt auf den Quellcode verweisen. Fragen und Anmerkungen bitte über die Kommentarfunktion.

Den Quellcode und den Download gibts hier: libjhttpd.

05 Jul 2007, 16:02

Warum sich IPv6 in den nächsten 5 Jahren durchsetzen wird

  • Weil immer mehr Anwendungen (Apache, Mailserver, etc.) IPv6 fähig sind
  • Weil Windows Vista IPv6 standardmäßig aktiviert hat.
  • Weil meine Server alle IPv6 sprechen ;)
  • Weil China, mit seiner aufstebenden Wirtschaft, gerade einmal soviele IPv4 Adressen hat wie die Universität von Californien.
  • Weil dieICAAN massiv für IPv6 werben will.
Und wenn ich mich geirrt habe ist es auch nicht schlimm, denn IPv4 ist auch was tolles.

05 Jul 2007, 09:23

T-Online Benutzerkennung

Der Trick ist zwar schon alt, aber ich musst gerade mal wieder danach suchen:

Wie setzt sich der T-Online Benutzername, für Router oder Linux, zusammen.

Laut T-Online wie folgt: Anschlusskennung, T-Online Nummer, #, Mitbenutzernummer und @t-online.de.

Also so: AAAAAAAATTTTTTTTT#MMMM@t-online.de

03 Jul 2007, 11:54

3D Beschleunigung in VirtualBox

Es gibtim VirtualBox Forum einen interessanten Thread zum Thema “3D Beschleunigung in VirtualBox”.

Es wäre wirklich eine sehr nett wenn das irgendwann in naher Zukunft mal funktionieren würde.

Bei Parallels scheint es schon zu funktionieren

29 Jun 2007, 11:25

Intels Core 2 Duo Buggy as hell?

Einer der OpenBSD Entwickler, Theo de Raadt, weist in einer eindringlichen Mail an die openbsd-misc Liste darauf hin, dass Intels Core 2 Duo total verbuggt ist.

Ouch. Eigentlich wollte ich mir so einen Prozessor kaufen … naja, dann halt doch wieder AMD.

28 Jun 2007, 08:41

Eclipse macht unter Linux nur Probleme ...

Seit einiger Zeit macht Eclipse unter Linux nur noch Probleme.

Nicht nur, dass es extrem viel Speicher verbraucht, dank SWT/GTK, es stürtzt auch reproduzierbar beim öffnen das Auto-Complete Dialog ab und das neue Europa Release verabschiedet sich gar direkt wenn ich den  Software Update Dialog öffne.

Toll.

Es wird Zeit, das ich mich mit Netbeans beschäftige. Das läuft deutlich besser, nur mit der Bedienung muss ich mich noch anfreunden.

27 Jun 2007, 16:13

Exim4 Konfiguration mit SMA, MySQL, IPv6, SpamAssassin und TLS

Achtung: Dieser Beitrag ist schon älter und teilweise fehlerhaft. Unter dem Titel ISP Email Server mit Exim 4, Dovecot, MySQL und SpamAssassin auf Debian GNU/Linux etch habe ich eine ausführlichere und ausgereiftere Fassung veröffentlicht.

Ich möchte hier kurz meine Mailserver Konfiguration vorstellen, da ich es für gut möglich halte, dass diese Information auch für andere Betreiber von Mailservern von Intresse sein könnte.

Für den Betrieb meines Mailservers setze ich auf exim4 und Dovecot. Das ganze läuft unter Debian etch.

Unter Debian lassen sich die benötigten Pakete einfach mit folgendem Kommando installieren:

aptitude install dovecot-common dovecot-imapd dovecot-pop3d exim4-daemon-heavy mysql-server-5.0 pyzor razor spamassassin spamc dcc-client
Zu Dovecot ist eigentlich nichts weiter zu sagen, ausser das er wunderbar seinen Dienst verrichtet.

Exim greift auf eine MySQL Datenbank für die Überprüfung der Benutzer zurück, bindet SpamAssassin mit diversen Plugins ein, läuft sowohl auf IPv4 als auch IPv6 (via SixXS) und nimmt Mails auch via SMA/RFC2476 entgegen - natürlich alles auch über TLS.

Ein weiteres gute Beispiel für eine Exim4 Konfiguration gibt es hier.

Hier folgt jetzt meine kommentierte Exim 4 Konfiguration. Bei Fragen bitte die Kommentarfunktion des Blogs nutzen.

#######################################
# MACROS
#######################################
Zunächst werden einige Macros definiert um die gesamte Konfiguration übersichtlicher zu gestallten. Am Anfang stehe die Zugangsdaten zum MySQL-Server und die Tabellennamen.
MYSQL_SERVER=localhost
MYSQL_USER=user
MYSQL_PASSWORD=pass
MYSQL_DB=db
MYSQL_EMAILTABLE=exim_emailtable
MYSQL_DOMAINTABLE=exim_domains
MYSQL_WHITETABLE=exim_whitelist
MYSQL_BLACKTABLE=exim_blacklist
Dann folgt die Mailman Konfiguration. Dies wird weiter unten nochmal erläutert.
MAILMAN_HOME=/var/lib/mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/wrapper
MAILMAN_UID=list
MAILMAM_GID=list
Hier folgen die aktuelle verwendeten Blacklists, genauer: DNSRBL. Leider muss diese Liste in letzter Zeit oft angepasst werden da die BLs oft unter Beschuss stehen oder den Dienst einstellen.
BL_WARN=zen.spamhaus.org:ix.dnsbl.manitu.net
BL_DENY=zen.spamhaus.org:ix.dnsbl.manitu.net
Nun zum komplizierten Teil: Den SQL Querys. Ich werde nicht auf jede einzelne Query eingehen, aber mit ein paar SQL Kentnissen sollten sie kein Problem sein.
MYSQL_Q_ISAWAY=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND is_away='yes'
MYSQL_Q_AWAYTEXT=SELECT away_text FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}'
MYSQL_Q_FORWARD=SELECT forward FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND forward != '' AND is_enabled = 'yes'
MYSQL_Q_CC=SELECT cc FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND is_enabled = 'yes'
MYSQL_Q_LOCAL=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND forward = '' AND is_enabled = 'yes'
MYSQL_Q_WCLOCAL=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='*' AND forward != '' AND is_enabled = 'yes'
MYSQL_Q_WCLOCFW=SELECT forward FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='*' AND forward != '' AND is_enabled = 'yes'
MYSQL_Q_DISABLED=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND is_enabled = 'no'
MYSQL_Q_LDOMAIN=SELECT DISTINCT domain FROM MYSQL_DOMAINTABLE WHERE domain='$domain'
MYSQL_Q_RDOMAIN=SELECT DISTINCT domain FROM MYSQL_DOMAINTABLE WHERE domain='$domain'
MYSQL_Q_BOXPATH=SELECT CONCAT(domain,'/',local_part) AS boxpath FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}'
MYSQL_Q_SPAMC=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND spam_check='yes'
MYSQL_Q_SPAMPURGE=SELECT domain FROM MYSQL_EMAILTABLE WHERE domain='${quote_mysql:$domain}' AND local_part='${quote_mysql:$local_part}' AND spam_purge='yes'
MYSQL_Q_AUTHPLAIN=SELECT if(count(*), "1", "0") FROM MYSQL_EMAILTABLE WHERE CONCAT(local_part,'@',domain)='${quote_mysql:$2}' AND pwclear='${quote_mysql:$3}'
MYSQL_Q_AUTHLOGIN=SELECT if(count(*), "1", "0") FROM MYSQL_EMAILTABLE WHERE CONCAT(local_part,'@',domain)='${quote_mysql:$1}' AND pwclear='${quote_mysql:$2}'
MYSQL_Q_AUTHCRAM=SELECT pwclear FROM MYSQL_EMAILTABLE WHERE CONCAT(local_part,'@',domain)='$1'
MYSQL_Q_WHITELIST=SELECT DISTINCT MYSQL_WHITETABLE.address FROM MYSQL_WHITETABLE WHERE '${quote_mysql:$sender_address}' LIKE MYSQL_WHITETABLE.address
MYSQL_Q_BLACKLIST=SELECT DISTINCT MYSQL_BLACKTABLE.address FROM MYSQL_BLACKTABLE WHERE '${quote_mysql:$sender_address}' LIKE MYSQL_BLACKTABLE.address
# 'hide' damit diese Optionen nicht auf der Kommandozeile angezeigt werden.
hide mysql_servers = "MYSQL_SERVER/MYSQL_DB/MYSQL_USER/MYSQL_PASSWORD"
#######################################
# BASIC
#######################################
# Der primäre Hostname, sollte identisch mit dem RDNS Namen der IP sein.
primary_hostname = mail.gauner.org
# Welche Domains sind lokal
domainlist      local_domains = localhost:gauner.org:lists.gauner.org:mysql;MYSQL_Q_LDOMAIN
domainlist      relay_to_domains = mysql;MYSQL_Q_RDOMAIN
hostlist        relay_from_hosts = 127.0.0.1
# Definiert zu welchen Zeiten der SMTP Sitzung welche ACLs ausgeführt werden.
# Nachdem das RCPT Kommando gesendet wurde
acl_smtp_rcpt = acl_check_rcpt
# Nachdem das MAIL FROM Kommando gesendet wurd
acl_smtp_mail = acl_check_from
qualify_domain = gauner.org
never_users = root
host_lookup = *
# Trusted Users wird für SpamAssasin benötigt.
trusted_users = mail
rfc1413_hosts = *
rfc1413_query_timeout = 15s
check_spool_space = 50M
check_log_space = 20M
return_size_limit = 20k
message_size_limit = 20M
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
deliver_queue_load_max = 8
queue_only_load = 10
remote_max_parallel = 15
# TLS Konfiguration
tls_certificate = /etc/exim4/exim.cert
tls_privatekey = /etc/exim4/exim.key
tls_advertise_hosts = *
local_interfaces = < ; 127.0.0.1 ; aaa.bbb.ccc.ddd ;
                        2001:cafe:dead:beef::2
# Listen for SMTP on Port 25 and for SMA on Port 587
daemon_smtp_port = 25 : 587
#######################################
# ACL
#######################################
begin acl
acl_check_from:
  # drop connections on the SMA Port that did not auth
  drop condition = ${if={$interface_port}{587} {1}{0}}
  !authenticated = *
  # accept everything else (policy checks are in rcpt acl)
  accept
acl_check_rcpt:
  accept  hosts = :
  deny    domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]
  deny    domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/../
  accept  local_parts   = postmaster
          domains       = +local_domains
  require verify        = sender
  accept  authenticated = *
  # Add a warning header if the sending host is in theses
  # DNSBLs but accept the message
  # see http://www.exim.org/howto/rbl.html
  warn    message       = X-blacklisted-at: $dnslist_domain
          dnslists      = BL_WARN
  # Reject messages from senders listed in these DNSBLs
  deny    dnslists      = BL_DENY
  # Consult "greylistd" to obtain greylisting status for this
  # particulat peer/sender/recipient triplet.
  #
  # We do not greylist messages with a NULL sender,
  # because sender callout verification would break (and we
  # mitght not be able to send mail to a host that performs
  # callouts).
  #
  defer
          message       = $sender_host_address is not yet authorized to
                          deliver mail from <$sender_address> to < $local_part@$domain>.
                          Please try later.
          log_message   = greylisted.
          domains       = +local_domains : +relay_to_domains
          !senders      = : postmaster@*
    !hosts         = : +relay_from_hosts :
                     ${if exists {/etc/greylistd/whitelist-hosts}
                                 {net-lsearch;/etc/greylistd/whitelist-hosts}{}} :
                     ${if exists {/var/lib/greylistd/whitelist-hosts}
                                 {net-lsearch;/var/lib/greylistd/whitelist-hosts}{}}
          set acl_m9    = $sender_host_address $sender_address $local_part@$domain
          set acl_m9    = ${readsocket{/var/run/greylistd/socket}{$acl_m9}{5s}{}{}}
          condition     = ${if eq {$acl_m9}{grey}{true}{false}}
  accept  domains       = +local_domains
          endpass
          verify        = recipient
  accept  domains       = +relay_to_domains
          endpass
          verify        = recipient
  accept  hosts         = +relay_from_hosts
  deny    message       = relay not permitted
#######################################
# ROUTERS
#######################################
# ORDER MATTERS!
#######################################
# Die Router. Hier ist es wichtig darauf zu achten in welcher
# Reihenfolge die Einträge angegeben werden, da eine Mail
# von oben nach unten an jeden Router übergeben wird
# bis sie von einem akzeptiert wird.
begin routers
# In der Datenbank deaktivierte Adressen werden gleich zu beginn rausgeworfen.
fail_router:
  driver = redirect
  domains = ${lookup mysql {MYSQL_Q_DISABLED}{$value}}
  data = ":fail:"
allow_fail
# Hier werden Mailman Adressen behandelt
mailman_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases.mailman}}
  file_transport = address_file
  pipe_transport = address_pipe
  domains = lists.gauner.org
  user = list

# DnsLookup sind externe Nachrichten, d.h. Mails von diesem System an andere.
dnslookup:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

blacklist_router:
  driver = manualroute
  senders = ${lookup mysql {MYSQL_Q_BLACKLIST}{$value}}
  condition = "${if !def:h_X-Spam-Flag: {1}{0}}"
  headers_add = X-Spam-Flag: YES
  route_list = * localhost
  self = pass

# System Aliase
system_aliases:
  driver = redirect
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases}}
  file_transport = address_file
  pipe_transport = address_pipe

# SpamAssassin Integration (Scannen und Markieren)
spamcheck_director:
  driver = manualroute
  domains = ${lookup mysql {MYSQL_Q_SPAMC}{$value}}
  senders = ! ${lookup mysql {MYSQL_Q_WHITELIST}{$value}}
  condition = ${if and {
    {!eq {$received_protocol}{spam-scanned}}
    {!eq {$received_protocol}{local}}
    } {1}{0}}
  headers_remove = X-Spam-Flag
  route_list = "* localhost byname"
  transport = spamcheck
  verify = false

# SpamAssassin Integration (Spam löschen)
spampurge_director:
  driver = manualroute
  domains = ${lookup mysql {MYSQL_Q_SPAMPURGE}{$value}}
  condition = "${if eq{$h_X-Spam-Flag:}{YES} {1}{0}}"
  route_list = "* localhost byname"
  transport = devnull_transport
  verify = false

vacation_director:
  driver = accept
  domains = ${lookup mysql {MYSQL_Q_ISAWAY}{$value}}
  transport = vacation_autoreply
  unseen

virtual_cc_director:
  driver = redirect
  data = ${lookup mysql {MYSQL_Q_CC}{$value}}
  unseen

virtual_forward_director:
  driver = redirect
  data = ${lookup mysql {MYSQL_Q_FORWARD}{$value}}

# Lokale Zustellung für Benutzer aus der Datenbank
virtual_local_mailbox:
  driver = accept
  domains = ${lookup mysql {MYSQL_Q_LOCAL}{$value}}
  transport = virtual_local_md_delivery

virtual_wclocal_redirect:
  driver = redirect
  domains = ${lookup mysql {MYSQL_Q_WCLOCAL}{$value}}
  data = ${lookup mysql {MYSQL_Q_WCLOCFW}{$value}}

local_user:
  debug_print = "R: local_user for $local_part@$domain"
  driver = accept
  domains = +local_domains
  check_local_user
  local_parts = ! root
  transport = local_delivery

#######################################
# TRANSPORTS
#######################################
# ORDER DOES NOT MATTER
#######################################

begin transports

# Remote Deliveries
remote_smtp:
  driver = smtp
  # Use Interface aaa.bbb.ccc.ddd for Outgoing Communiction
  interface = aaa.bbb.ccc.ddd

devnull_delivery:
  driver = appendfile
  file = /dev/null
  group = mail

address_pipe:
  driver = pipe
  return_output

address_file:
  driver = appendfile
  delivery_date_add
  envelope_to_add
  return_path_add

address_directory:
  driver = appendfile
  #no_from_hack
  message_prefix = ""
  message_suffix = ""
  maildir_format

address_reply:
  driver = autoreply

# SpamAssassin Integration
spamcheck:
  driver = pipe
  command = /usr/sbin/exim4 -oMr spam-scanned -bS
  use_bsmtp = true
  transport_filter = "/usr/bin/spamc -u $local_part@$domain"
  home_directory = "/tmp"
  current_directory = "/tmp"
  user = mail
  group = mail
  log_output = true
  return_fail_output = true
  return_path_add = false
  message_prefix =
  message_suffix =

local_delivery:
  driver = appendfile
  directory = /home/users/${local_part}/Maildir
  delivery_date_add
  envelope_to_add
  return_path_add
  maildir_format

# Lokale Zustellung für Benutzer aus der Datenbank
virtual_local_md_delivery:
  driver = appendfile
  directory = /home/mail/${lookup mysql {MYSQL_Q_BOXPATH}{$value}}/Maildir
  maildir_format
  user = mail
  group = mail
  mode = 0660
  directory_mode = 0770
  check_string = ""
  message_prefix = ""
  message_suffix = ""

vacation_autoreply:
  driver = autoreply
  to = ${sender_address}
  from = "vacation@${domain}"
  subject = "Ihre Nachricht an ${local_part}@${domain}"
  text = ${lookup mysql {MYSQL_Q_AWAYTEXT}{$value}}

disabled_bounce:
  driver = autoreply
  from = ${local_part}@${domain}
  to = ${sender_address}
  user = mail
  subject = "Re $h_Subject:"
  text = "Your message to ${local_part}@${domain} was rejected due to an
    disabled account. Please try again later."

devnull_transport:
  driver = appendfile
  file = /dev/null
  user = mail

#######################################
# RETRY
#######################################
begin retry
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h
#######################################
# REWRITE
#######################################
begin rewrite
*@gauner.org    ${lookup{$1}lsearch{/etc/email-addresses}
                                                {$value}fail} frFs
#######################################
# AUTHENTICATORS
#######################################
begin authenticators

plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{MYSQL_Q_AUTHPLAIN}}
  server_set_id = $2

login:
  driver = plaintext
  public_name = LOGIN
  server_prompts = "Username:: : Password::"
  server_condition = ${lookup mysql{MYSQL_Q_AUTHLOGIN}}
  server_set_id = $1

cram:
   driver = cram_md5
   public_name = CRAM-MD5
   server_secret = ${lookup mysql{MYSQL_Q_AUTHCRAM}{$value}fail}
   server_set_id = $1
Die passenden Datenbankschemas für MySQL:
-- ----------------------------------------------------------
-- Tabellenstruktur für Tabelle `exim_emailtable`
--
CREATE TABLE `exim_emailtable` (
  `id` int(9) NOT NULL auto_increment,
  `local_part` varchar(255) NOT NULL default '',
  `domain` varchar(255) NOT NULL default '',
  `forward` varchar(255) default NULL,
  `cc` varchar(255) default NULL,
  `name` varchar(255) NOT NULL default '',
  `pwclear` varchar(255) NOT NULL default '',
  `pwcrypt` varchar(255) NOT NULL default '',
  `is_away` enum('yes','no') NOT NULL default 'no',
  `away_text` text,
  `spam_check` enum('yes','no') NOT NULL default 'no',
  `spam_purge` enum('yes','no') NOT NULL default 'no',
  `virus_check` enum('yes','no') NOT NULL default 'no',
  `is_enabled` enum('yes','no') NOT NULL default 'yes',
  `customer_id` int(9) NOT NULL default '0',
  `created_at` int(16) NOT NULL default '0',
  `updated_at` int(16) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Alle virtuellen Mail-Accounts' AUTO_INCREMENT=1;

--
-- Tabellenstruktur für Tabelle `exim_domains`
--
CREATE TABLE `exim_domains` (
  `id` int(9) NOT NULL auto_increment,
  `domain` varchar(255) NOT NULL default '',
  `is_enabled` enum('yes','no') NOT NULL default 'no',
  `customer_id` int(9) NOT NULL default '0',
  `created_at` int(16) NOT NULL default '0',
  `updated_at` int(16) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `domain` (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Tabelle aller von exim erkannten Domains' AUTO_INCREMENT=1;

24 Jun 2007, 12:42

Kernel bauen unter Debian

Aus aktuellem Anlass:

Wie baue ich unter Debian einen neuen Linux Kernel?

Antwort: Ganz einfach

Achtung: Ich beschreibe hier nicht den “Debian-way”, sondern so wie ich es immer mache.

# root werden
su
# in das build Verzeichnis wechseln
cd /usr/src
# den aktuellen Kernel runterladen, anpassen!
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.5.tar.bz2</pre>

<pre>
# den Kernel entpacken, anpassen!
tar xvfj linux-2.6.21.5.tar.bz2
# den alten Symlink entfernen
rm linux
# den neuen Symlink erstellen
ln -s linux-2.6.21.5 linux
# ins Verzeichnis mit den aktuellen Quellen wechseln
cd linux
# die .config des aktuellen Kernels kopieren
cp /boot/config-`uname -r` ./.config
# die alten Optionen übernehmen
make oldconfig
# ggf. die Config anpassen
make menuconfig
# compilieren
make -j10 &amp;&amp; make -j10 modules
# installieren
make install &amp;&amp; make modules_install
# grub aktualisieren
update-grub

21 Jun 2007, 11:29

Dovecot 1.0.1 veröffentlicht

Der IMAP4/POP3-Server Dovecot wurde vor einigen Tagen in der Version 1.0.1 veröffentlicht.

Die Liste der Änderungen ist relativ kurz und es handelt es sich hauptsächlich um einige kleinere Bugfixes.

Hier das Changelog und der Download.

20 Jun 2007, 07:48

Eclipse unter Linux ist super lahm!

Ich frage mich wirklich warum Eclipse unter Linux so super lahm sein muss.

Offensichtlich hängt das ganze mit SWT zusammen und Abhilfe ist auch möglich, aber mir ist es nicht gelungen SWT/Fox zu installieren. Das hängt wahrscheinlich auch damit zusammen, dass das SWT/Fox Projekt seit einiger Zeit inaktiv zu sein scheint.

Bei nächster Gelegenheit werde ich mir mal Netbeans anschauen, das scheint ja nicht ganz so schrecklich langsam zu sein …

19 Jun 2007, 07:30

Dovecot macht sich gut ...

Wie ich vor kurzem berichtet habe, läuft der Mailserver seit einiger Zeit unter Dovecot.

Bis jetzt gabs keinerlei Probleme, die Performance stimmt und mit den richtigen Munin Plugins lässt sich das ganze auch wunderbar monitoren.

Fazit: Toll :)

Update: Meine Konfiguration gibt es im Dovecot Wiki.

07 Jun 2007, 14:41

Virtual Box - VMs klonen

Ein “Virtual Disk Image” lässt sich mit dem Kommandozeilentool “VBoxManage” ganz einfach klonen:

VBoxManage clonevdi <QuellVDI.vdi> <ZielVDI.vdi>

Warum ich die Images klonen will?

Nun, ich habe einmal Debian stable installiert, die VDI geklont und aus der einen mache ich jetzt ein testing und aus der anderen ein unstable. Damit spare ich mir die Installation nochmal durchführen zu müssen. Toll :)

07 Jun 2007, 14:05

Virtual Box 1.4.0 - Keine Probleme mehr mit Linux als Gast

Nachdem ich die neue Version 1.4.0 von Virtual Box installiert habe gibt es endlich keine Probleme mehr mit Linux als Gast OS, wie ich sie noch mit 1.3.8 erleben musste.

Super!

Diesen Post schreibe ich auch gerade aus der VM heraus.

Host OS: Debian etch

Gast OS: (noch) Debian etch

Das Gast OS wird gleich zu einem Debian testing. Später, wenn ich genug Plattenplatz freiräumen kann, werde ich evtl. noch ein Debian SID installieren. Damit ich ein bischen auf dem laufenden bleiben kann was sich da so tut. Dafür jedenfalls sind virtuelle Maschinen super geeignet.

07 Jun 2007, 08:12

Gauner on IPv6

Der Server ist seit gestern auch provisorisch über IPv6 via SixXS zu erreichen.

Vorerst dürfte nur der Mailserver zu 100% IPv6 tauglich eingerichtet sein.

Der Apache ist zwar auch schon für IPv6 vorbereitet, die vHosts müssen aber noch entsprechende konfiguriert werden.

Bei den weiteren Diensten ist die IPv6 Unterstützung bis jetzt noch unklar, wird aber nach Möglichkeit bald folgen.

31 May 2007, 22:40

jPatchLib 0.0.1b

So, hier ist die nächste Version von jPatchLib: 0.0.1b.

Die Probleme mit den Leerzeilen sollten jetzt erledigt sein und ich habe die Dokumentation hinzugefügt: JavaDoc.

Mehr Infos. Weitere Projekte.

31 May 2007, 13:32

Patch Library für Java - jPatchLib

Nachdem ich lange vergeblich versucht habe eine Implementation von GNU Patch für Java zu finden bin ich zu dem Schluss gekommen, dass es wohl einfacher ist eine selbst zu schreiben.

Das Ergebniss findet sich unter http://developer.gauner.org/jpatchlib/.

Ein paar Sachen stehen noch auf meiner ToDo Liste, aber für einen ersten Eindruck sollte es reichen.

Was noch aussteht:

  • Dokumentation

  • Probleme mit Leerzeilen beheben

Ansonsten natürlich viel Spaß damit.

29 May 2007, 08:35

KVM Switch mit USB und Sound gesucht

Ich bin, schon seit langem, immer noch auf der Suche nach einem KVM-Switch mit DVI, USB und Sound, damit ich meinen Schreibtisch endlich mal etwas aufräumen kann.

Im Moment ist es mit zwei Tastaturen und zwei Mäusen etwas eng.

Heute morgen bin ich auf den AdsKVM Digitus DC-11801 KVM Switch DVI, 3PCs (USB) gestossen.

Leider konnte ich noch keine Testberichte finden, aber der klingt ganz so als wäre es was für mich.

Er verfügt über ordentliche Knöpfe zum umschalten, unterstützt offiziell Linux und hat alles was ich will.

Bleibt nur die Frage ob das umschalten auch so funktioniert wie es soll. Bei einigen günstieren Modellen macht das wohl hin und wieder Ärger.

23 May 2007, 10:24

Patch Library für Java?

Es gibt zwar ein paar Implementierungen von diff für Java, aber eine patch Implementierung konnte ich nicht finden.

Sollte ich doch noch fündig werden, werde ich darüber berichten.

22 May 2007, 10:49

Followup: vi-Like Bedienung bei Google

Eine Sache hatte ich in dem Post von gestern vergessen:

Mehr nette, neue Features gibt es bei Google Experimental.

21 May 2007, 10:16

vi-Like Bedienung bei Google

Howdy! Bei Google Experimental gibt es jetzt eine Möglichkeit in den Suchergebnissen wie in vi zu navigieren.

Um diese praktische Feature zu nutzen muss man einfach an die Suche (in der Adresszeile) den String “&esrch=BetaShortcuts” anhängen.

Das ganze sieht dann zum Beispiel so aus: flexicrypt

Als vi Nutzer bin ich begeistert!

16 May 2007, 09:22

Debian - Welchem Paket gehört diese Datei?

Wer wissen möchte zu welchem Paket eine bestimmte Datei auf seinem System gehört, findet das mit “dpkg -S” raus. Aber nur als root.

dpkg -S /usr/bin/lex flex: /usr/bin/lex

14 May 2007, 09:05

Skype aka the Worlds biggest Botnet

Ein sehr interessantes und vor allem detailiertes Essay zur Sicherheit von und mit Skype gibt es hier: Skype inSecurity Essay.

Jedem Netzwerkadministrator, Netzwerkverantwortlichen, Sicherheitsbewusstem Benutzer und allen auch nur halbwegs Paranoiden sei das dringend empfohlen.

Update 18.08.07: Siehe auch diesen Beitrag über die aktuellen Probleme mit  Skype.

12 May 2007, 14:26

Munin Plugins für Dovecot und die Auth-Facility

Ich habe im Munin Plugin Exchange (lokaler Mirror) zwei praktische Munin Plugins zur Verfügung gestellt.

Zum einen ein Plugin um die Logins und Verbindungen zum Dovecot IMAP/POP3-Server zu überwachen … Dovecot Day

… und zum anderen eine verbesserte Version das auth Plugin um Logins und fehlgeschlagene Versuche der Auth-Facility zu überwachen.

Auth Day

09 May 2007, 19:52

Eclipse: Dummer Update-Manager

Warum ist der Update-Manager von Eclipse eigentlich so blöd?

Kaum habe ich Eclipse nach der Installation der neusten Updates neu gestartet, fängt er wieder von Vorne an und will neue Updates installieren. Kann der das nicht auf einmal?

Ausserdem frage ich mich auch warum der nach jedem Start ewig braucht bis er die Updates gefunden hat? Da liese sich einiges verbessern …

08 May 2007, 18:50

Mailserver mit Dovecot

Seit mir einiges Positives über den IMAP/POP3-Server dovecot zu Ohren gekommen ist habe ich eine mögliche Migration evaluiert. Nachdem auch die letzten Probleme mit dem Migrations Skript für die Mailboxen behoben waren, habe ich den Mailserver gerade umgestellt. Wirklich kurz und schmerzlos muss ich sagen. Jetzt muss er sich nur noch in der Praxis beweisen.

27 Apr 2007, 20:55

Serienbriefe mit OpenOffice 2.2

Der größte Mangel von OpenOffice ist meiner Meinung nach das fehlen von guter Dokumentation.

Gerade wollte ich mal wieder Serienbriefe mit OOo erstellen aber das gestalltete sich alles andere als einfach.

Ich wusste natürlich nicht mehr wie ich es “früher” immer gemacht habe, aber es gibt ja unter “Extras -> Seríenbriefe” einen Assistenten dafür. Den gibt es seit 2.1 oder 2.2, früher musste man von Hand mit den Datenquellen hantieren.

Durch den Assistenten wird es zwar einfacher, aber leider passt das nicht mit meinem Datenformat zusammen. Vorgegeben war eine Tablle mit folgenden Feldern: Anrede, Name1, Name2, Anschrift, “PLZ+Ort” und die Briefanrede.

Leider möchte das Assistent gerne Felder haben aus denen er ableitet ob der Adressat männlich oder weiblich ist und akzeptiert ein Feld Briefanrede, d.h. sowas wie “Sehr geehrter Herr Mustermann”, gar nicht.

Serienbriefe mit OpenOffice.org 2.2 - Schritt 3

Um den Komfort des Assistenten mit der flexiblität der alten Lösung zu kombinieren muss man, wie auf den Bildern zu sehen, bei der Frage nach dem Adressfeld und der Briefanrede, die Fragen ausklammern und dafür die entsprechenden Felder, wie in der verlinkten Anleitung zu sehen, von Hand einfügen.

Serienbriefe mit OpenOffice.org 2.2 - Schritt 4

26 Apr 2007, 08:15

Linux Kernel 2.6.21 freigegeben!

Endlich, nach 7 RCs wurde gerade eben der Linux Kernel in der Version 2.6.21 freigegeben.

Ich hoffe die lang ersehnte Unterstützung für den PATA Port des VIA VT6421 Chips funktioniert endlich. Eigentlich war die entsprechende Änderung schon im rc4 drin, aber der hat bei mir nicht wirklich gut funktioniert.

Sobald ich Zeit habe werde ich es testen und hier berichten.

Download / Changelog / Ausführliches Changelog bei den KernelNewbies / Heise Open Artikel

22 Apr 2007, 20:03

Bloggen mit Gnome

Ich habe gerade ein Applet names “Gnome Blog” entdeckt.

Es ist eigentlich eine ganz nette Idee direkt vom Desktop, ohne Webbrowser, aus bloggen zu können. Zumal so der Browser nicht nach etlichen Zeilen den Geist aufgeben kann und man nicht unbedingt alles nochmal schreiben muss, aber ein wenig spartanisch ist das Interface schon.

Naja, man kann eben nicht alles haben ;)

21 Apr 2007, 12:41

Jabber Clients mit Jingle - Fehlanzeige!

Ich bin seit einiger Zeit auf der Suche nach einer brauchbaren alternative zu Skype.

GoogleTalk ist ein super Ansatz, aber ich hätte lieber etwas das auch unter Linux läuft.

Google war zwar so nett die Jingle Spezifikation zu veröffentlichen, aber so wie es aussieht gibt es im Moment keinen Client der das vernünftig implementiert.

  • PSI scheint kein Jingle zu unterstützen
  • Pidgin aka Gaim soll zwar “bald” Jingle Support haben, aber wann das konnte ich nicht in Erfahrung bringen
  • Cocinella scheint Jingle zu unterstützen, aber diesen Client konnte ich noch nicht testen
Fazit:

Schade, kein ordentlicher Jingle/VoIP Client unter Linux.

19 Apr 2007, 10:58

Debian 3.1 (sarge) auf 4.0 (etch) aktualisieren

Seit Debian etch stable ist, war mir klar, dass ich über kurz oder lang auch meine Produktiv-Maschinen auf etch umstellen muss. Bei der Planung von diesem Upgrade habe ich mir einige Gedanken gemacht, da ja einige essentielle Komponenten aktualisiert wurden. Der neue 2.6er Kernel, Apache 2.0 auf 2.2, MySQL, etc. pp.

Im Nachhinnein muss ich sagen, dass mich Debian mal wieder beeindruckt hat. Ein so problemloses Upgrade habe ich bis jetzt noch nicht erlebt, wobei es auch ein paar Stolpersteine gab.

Demnächst werde ich noch die verbleibenden Maschinen umstellen müssen, aber hier werde ich erstmal meine Erfahrungen mit der ersten Schildern.

Zunächst einmal habe ich mir die Release-Notes gründlich durchgelesen. Das kann ich auch jedem empfehlen!

Das folgende Vorgehen möchte nur kurz Stichpunktartig zusammenfassen. Jeder der ein wenig Erfahrung mit Debian hat sollte daraus schlau werden.

  • Datensicherung laufen lassen (dirvish-cronjob)
  • Neu mit dem Internet verbinden um eine Zwangstrennung während der Umstellung zu vermeiden
  • Einloggen und als root screen starten
  • sources.list anpassen, d.h. backports, etc. entfernen und alles von sarge auf etch umstellen Ich bevorzuge die Codenamen anstelle von stable oder testing damit ich selbst entscheiden kann wann ich das System umstelle und nicht vom Release überrascht werden.
  • mount -o remount,rw /boot - Meine Boot-Partition ist normalerweise Read-Only
  • aptitude upgrade - Zunächst nur ein minimales-Upgrade
  • aptitude install initrd-tools - Wichtig für das Kernel-Update, weitere Informationen sind in den Release-Notes zu finden
  • check configs - Konfigurationseinstellungen von Hand überprüfen
  • aptitude install linux-image-2.6-k7 - neuen Kernel installieren. K7 ist für meinen AMD Athlon64
  • check /etc/lilo.conf - Ist eine initrd=/initrd.img Zeile vorhanden? Verweist der Boot-Eintrag auf /vmlinuz und nicht auf einen alten Kernel?
  • /sbin/lilo - Lilo neu installieren
  • aptitude install libfam0 - Bei mir gab es Konflikte mit libfam0c102, daher habe ich diese Library von Hand installiert
  • aptitude dist-upgrade - Jetzt läuft das eigentlich upgrade durch. Bei Konflikten mit Configs habe ich meine alte von Hand gesichert und sie erstmal überschreiben lassen.
  • aptitude update
  • aptitude update
  • check configs (I) - Jetzt habe ich die neuen Configs anhand meiner Sicherungen wieder angepasst.
  • reboot - Ein neustart um den neuen Kernel zu aktivieren und das System zu testen - der nächste Stromausfall kommt bestimmt. Nach 20 bangen Minuten war er wieder da - fsck braucht halt eine Weile.

  • check services - Jetzt noch alle Dienst überprüfen.

  • check configs (II) - Ein paar unwichtige Konfigurationen hatte ich mir für später aufgehoben, die kommen jetzt an die Reihe

  • prepare for next release - Siehe den entsprechenden Eintrag in den Release Notes.

Da ich Courier als Mailserver (POP3/IMAP) mit MySQL-Authentifizierung verwende musst ich noch die geänderten Authlibs nachinstallieren.

aptitude install courier-authlib courier-authlib-mysql

So das war es erstmal :)

Alles in allem ein reibungsloses Upgrade.

Update: Ich habe gerade noch einen Server umgestellt, diesmal hat fsck nur 7 Minuten gebraucht ;)

19 Apr 2007, 10:42

Firefox AdBlock Code killt TinyMCE

Den meisten Wordpress Benutzer dürfte TinyMCE ein Begriff sein, und wenn nicht, dann haben sie es zumindest schon einmal gesehen. Das ist der AJAX Editor der sich in neueren Wordpress Versionen unter dem “Visual Editor” verbirgt.

Vor einiger Zeit gab es auf der Hilfe-Seite von Firefox eine AdBlock Sektion. Soweit ich weiss wurde die inzwischen entfernt, aber ich nutze den Code für die userContent.css seit dem und bin damit eigentlich extrem zufrieden, da er die Anzahl der angezeigten Ads auf eine sehr erträgliche Anzahl reduziert. Nur gegen Layer-Ads fehlt mir noch der entsprechende Block-Code, aber das ist eine andere Geschichte. Das Vorteil von dem userContent.css Code ist auch, dass es auf der Server Seite kaum zu erkennen ist ob die Ads angezeigt werden oder nicht, da diese Datei einfach ein zusätzliches CSS Darstellt das beim rendern vom Browser berücksichtigt wird.

Das Problem an dieser Lösung ist, dass es ab und zu Kollateralschäden kommt. Bis jetzt hat mich das nicht weiter gestört, aber seit TinyMCE in Wordpress integriert ist stört es schon ein wenig wenn der Editor nicht benutzbar ist. Daher habe ich den AdBlock-Code mal untersucht um die Bösewichte zu finden die TinyMCE zerschiessen.

Die Übeltäter waren folgende Anweisungen:

iframe[src=“/adv”], img[src=“/adv”], img[src*=“/adx”],

Hier gibts die korrigierte Datei: AdBlock für Mozilla Firefox

17 Apr 2007, 07:13

Top 5 Eclipse Plugins

Meine wichtigsten Eclipse Plugins:

Die “Plugins” die sowieso in der Eclipse-Distribution enthalten sind, bzw. von der Eclipse Foundation direkt gepflegt werden liste ich hier nicht auf. Das wären z.B. JDT, CDT, etc.

16 Apr 2007, 22:06

Version 0.3 von jTodoList

Die neue Version von jTodoList bietet jetzt auch die Möglichkeit die Todo-Liste als Treemap, gewichtet nach Priorität oder Risiko, darzustellen.

Für das nächste Release steht eine Überarbeitung der GUI an. Der Code gefällt mir so im Moment nicht.

Download: tar.bz2 / zip

Homepage: jTodoList

16 Apr 2007, 07:38

PowerNow! unter Linux für Athlon64 X2 3800+ auf Abit AX8 V2.0

Da einige Mainboardhersteller die ACPI Tabellen ihrer Produkte offenbar leider etwas schlampig pflegen muss man als Linux Nutzer teilweise selbst Hand an die DSDT-Tabellen legen.

Zwar gibt es beim Linux/ACPI-Projekt einige korrigierte DSDT-Tabellen, aber da mein Mainboard nicht dabei war musst ich selbst den Compiler anwerfen und mein Glück versuchen.

Das Ergebniss will ich der Welt nicht vorenthalten, vielleicht kann ja sonst noch jemand was damit anfangen. Zu finden ist das ganze hier: Fixed ACPI DSDT Tables for Linux.

Ich muss aber dazu sagen, dass ich für nichts garantiere. Diese DSDT läuft bei mir schon über ein halbes Jahr wunderbar, aber es kann gut sein, dass es auf einem anderen System zu ernsten Problemen - bis hin zu Hardware Schäden - kommen kann.

11 Apr 2007, 20:31

WEP gesicherte WLANs in weniger als einer Minute knacken

Wie heise vor ein paar Tagen berichtet hat, haben es ein paar meiner Komolitonen an der TU Darmstadt geschafft die WEP Verschlüsslung in unter einer Minute zu knacken - zumindest in 50% aller Fälle.

Gestern lief dazu auch ein Bericht im Nachtmagazin der ARD den es sogar Online gibt. Falls der Link nicht funktioniert kann man das ganze auch über tagesschau.de unter Multimedia finden.

09 Apr 2007, 09:47

Debian 4.0 -etch- ENDLICH freigegeben!

Es ist geschafft, nachdem die letzten RC-Bugs beseitigt wurde ist es soweit.

Es gibt ein neues stable Release von meiner lieblings Distribution Debian!

Hier gibt es die Release Notes, die Downloads und die offizielle Ankündigung.

Was gibt es neues in Etch?

07 Apr 2007, 14:22

jPOPc - Java POP3 Client veröffentlicht

Soeben habe ich unter jPOPc den angekündigten Java POP3 Client veröffentlicht.

Source

07 Apr 2007, 14:12

jHTTPd - Java Webserver veröffentlicht

Soeben habe ich unter jHTTPd den länger angekündigten simplen Java Webserver veröffentlicht.

Download Binary / Source

06 Apr 2007, 10:26

jUPnP - Java UPnP Beispiel Implementierung veröffentlicht

Soeben habe ich unter jUPnP eine UPnP-Implementierung in Java veröffentlicht.

Die Anwendung implementiert zwar nur ganz konkrete Funktionen, ist aber sicherlich für einige Personen trotzdem interessant wenn es um die Implementierung von UPnP in Java geht.

Download Binary / Source

03 Apr 2007, 14:44

Wine & Guildwars: Endlich mit Mauszeiger!

Howdy!

Seit kurzem - ich weiss nicht genau ob seit 0.9.33 oder 0.9.34 - wird in Guild Wars unter Wine der Mauszeiger angezeigt.

Ich warte schon seit langem darauf, dass die Entwickler diesem Bug endlich korrigieren, der bisher ein ordentliches Spielen von Guild Wars unter Linux verhindert hat.

Apropos Guild Wars: Mir ist gerade aufgefallen, dass ich in diesem Blog noch nie was über mein aktuelles Lieblingsspiel gepostet habe: Guild Wars :)

Update:

Noch ist die Unterstützung noch nicht perfekt. Sobald eine neue Karte geladen wurde muss ich zunächst den Maus über einen NPC bewegen bevor der Mauszeiger angezeigt wird. Das ist nicht perfekt, aber immerhin!

25 Mar 2007, 09:28

VirtualBox - Probleme mit Linux als Gast?

Hier möchte ich kurze meine Erfahrungen mit VirtualBox unter Debian GNU/Linux “etch” schildern.

Eigentlich ist VirtualBox eine wirklich gutes Programm, es mangelte lange an einer guten, freien Virtualisierungslösung, aber es ist sehr schade, dass VirtualBox offenbar einige Probleme mit Linux als Gast OS hat.

Vista hingegen hat bei mir einwandfrei funktioniert. ReactOS, XP und 2000 werde ich demnächst mal ausprobieren, wenn ich genug Speicherplatz geschaffen habe.

Ein kleiners Manko unter Windows Vista ist allerdings, dass Microsoft den Treiber für die emulierte Netzwerkkarte entfernt hat. Das lässt sich zwar dadurch lösen, dass man sich von der AMD Seite den Treiber herunterlädt und davon ein ISO erstellt was man dann in der VM mountet und den Treiber von Hand installiert. So wirklich einfach ist das aber nicht und ohne ein unixoides OS mit mkisofs dürfte es zudem relativ umständlich sein. Es wäre schön wenn der Hersteller entweder auf ein entsprechendes ISO auf der Homepage bereitstellen, oder direkt mitliefern oder eine andere Netzwerkkarte emulieren würde.

Ich werde meine Tests von VirtualBox demnächst fortsetzen und dann hier weiter davon berichten.

Für eine eingehenden Performance-Vergleich möchte ich auf diese Quelle verweisen, ich persönlich war allerdings immer sehr zufrieden mit der Performance.

25 Mar 2007, 09:27

FlexiCrypt 1.1 veröffentlicht

Die neue Version 1.1 von FlexiCrypt macht das Programm zu den neuen Versionen der zugrunde liegenden Bibliotheken kompatibel.

Da die Entwickler des FlexiProvider, entgegen aller “Best Practices”, die exportierte API geändert haben, musste ich einige Stellen in FlexiCrypt anpassen.

Durch die neue FlexiProvider Version 1.3.1p1 sind ein paar neue Algorithmen hinzugekommen. Details gibts auf der FlexiProvider Homepage.

25 Mar 2007, 09:22

jTodoList 0.2 veröffentlicht

Gestern Abend habe ich die Version 0.2 von jTodoList veröffentlicht.

Die wesentliche Neuerung sind die neuen Export-Filter.

Weiterhin wurde der Code für weitere Ex- und Import Filter vorbereitet. [UML]

16 Mar 2007, 10:16

AudioPlayer unter Linux: Quod Libet

“Ex falso quodlibet” (lat., aus falschem folgt beliebiges) - eigentlich ein bekannter Satz aus der Logik stand Pate bei der Nameswahl für meinen neuen lieblings AudioPlayer für Linux.

Das Duo Ex Falso / Quod Libet aus Tag-Editor und schlankem Musik-Player überzeugt durch seine hohe Geschwindigkeit, flexible Konfiguration und die interessante Auswahl an Plugins.

Es scheint so als hätte sich die Autoren Rhythmbox, Amarok, 1by1 und Co. angeschaut und sich nur die besten Features rausgepickt.

Dieses Programm ist wirklich empfehlenswert!

Wer damit nicht glücklich wird kann sich im ubuntuusers Wiki nach Alternativen umschauen.

06 Feb 2007, 16:49

jTodoList veröffentlicht!

Ich habe vor kurzem eine kleine, aber feine To-Do-Liste ein Java geschrieben.

Unter Windows gibt es das hervorragende Programm ToDoList von Abstract Spoon, aber unter Linux läuft das leider nicht.

Da ich aber nunmal beide System einsetze wollte ich auch unter Linux eine Möglichkeit meine ToDo zu bearbeiten.

Dabei rausgekommen ist dieses nette Programm.

Zu finden ist das ganze unter diesem Link. Dort gibts auch einen Screenshot und weiter Informationen.

Ach ja, es wird Java 5+ benötigt und das ganze steht unter GPL.

16 Oct 2006, 10:26

FlexiCrypt 1.0 veröffentlicht

Soeben haben wir unter developer.gauner.org/flexicrypt/ das universelle crypto toolkit FlexiCrypt veröffentlicht.

Es ist das Ergebniss einer 6 monatigen Entwicklung und ermöglicht es dem Benutzer beliebige Dateien zu ver- und entschlüsseln, zu signieren und verifizieren. Ausserdem enthällt es eine komplette Schlüsselverwaltung.

Das besondere daran ist, dass es auf den FlexiProvider vom Fachbereich Informatik der TU Darmstadt aufsetzt und damit auch Zugang zu den neusten Algorithmen bietet. Darunter z.B. ECC, Number Field Cryptography.

20 Sep 2006, 10:59

Kernel 2.6.18 released!

Aye!

Nach dem rc7 ist es endlich soweit. Das hat diesmal irgendwie ziemlich lange gedauert.

Endlich ist er da: Source, Changelog

05 Sep 2006, 18:40

Kernel 2.6.18-rc6 released

Schade, rc5 war wohl doch nicht der letzte.

Anyway, hier ist rc5 und das Changelog.

28 Aug 2006, 09:10

Kernel 2.6.18-rc5 released

Vor kurzem wurde der Linux Kernel 2.6.18-rc5 veröffentlicht.

Ich hoffe, dass das der letzte RC ist, ich warte auf einige Features, wie die Unterstützung des Abit µGuru-Chips, schon lange.

Hier das Changelog.