# Qmail

qmail ist ein Mailserver für Unix-Systeme. Er wurde von Dan Bernstein entwickelt.

## Sicherheit

Der Hauptgrund für die Entwicklung von qmail war die Unzufriedenheit des Autors mit den bestehenden Lösungen. Insbesondere der bekannte Mailserver Sendmail fiel immer wieder durch Sicherheitslücken auf. Daher wurde qmail so entworfen, dass es möglichst unanfällig für sicherheitskritische Schwachstellen ist. Bernstein hat im März 1997 eine Prämie von 500 Dollar für das Auffinden einer Schwachstelle ausgesetzt, und diese Prämie nach dem 10-jährigen Bestehen von qmail verdoppelt (vgl. S. 2 im PDF). Diese Prämie wurde bisher noch nicht ausgezahlt, jedoch behauptet Wietse Venema, eine Lücke gefunden zu haben, was Daniel Bernstein bislang kategorisch bestreitet. 2005 fand Georgi Guninski einen ausnutzbaren integer overflow, Bernstein verweigerte die Auszahlung jedoch mit dem Argument die Sicherheitslücke sei nur theoretischer Natur und nicht praktisch ausnutzbar. Den Patch der das Problem lösen würde lehnte Bernstein ab, es wurde keine neue Version veröffentlicht. 2020 veröffentlichte Qualys einen funktionierenden Exploit, der selbigen integer overflow unter anderem bei der Standardkonfiguration aktiv ausnutzen konnte. Bernstein weigert sich weiter, diese Sicherheitslücke anzuerkennen.
qmail hat eine modulare Struktur, jede der Aufgaben eines Mailservers wird von einem eigenen Programm erledigt. Dies steht im Gegensatz zu den meisten anderen MTAs, die meist eine monolithische Struktur besitzen. Durch diesen Ansatz entstehen kleinere Programme, die leichter zu warten und weniger anfällig für Fehler im Code sind.
Neben einem Mail Transfer Agent bilden die Module einen Server für das Post Office Protocol. Zur Verwaltung von Mailinglisten bietet sich das ebenfalls von qmail-Autor Bernstein geschriebene Programm ezmlm an.

## Innovationen

* Maildir ist ein Speicherkonzept für E-Mails, das mit qmail eingeführt wurde.
* XVERP ist eine Erweiterung für ESMTP, die Quellen von Bounce Messages offenlegt und auf qmail zurückgeht.
* Delivered-To leitet eine zusätzliche Kopfzeile von E-Mails ein, die überflüssige Zustellungen unterbindet und auf qmail zurückgeht.

## Kritikpunkte

Die Software ist immer wieder Anlass für Diskussionen. Die Befürworter des Mailservers führen den einfachen Aufbau und das robuste Design ins Feld. Die Gegner kritisieren unter anderem die fehlenden Anti-Spam-/Virus-Merkmale, wie sie in modernen Mailservern zu finden sind. Die letzte offizielle Version von qmail ist aus dem Jahr 1998, als Spam noch wenig verbreitet war.
Ebenfalls Anstoß erregte bei vielen der ungewöhnliche Ansatz von Bernstein bei der Platzierung von qmail-Dateien im Dateisystem zusammen mit den von ihm aufgestellten Restriktionen für die Weitergabe vorkonfigurierter qmail-Pakete, etwa in Linux-Distributionen. qmail stand zwar im Quelltext zum Herunterladen von Dan Bernsteins Webserver zur Verfügung, war von ihm aber nicht – wie sonst bei ähnlicher Software üblich – explizit unter eine Freie-Software-Lizenz gestellt worden, so dass das Urheberrecht dessen Veränderung und Weitergabe an Dritte ausschloss. Toleriert wurde die Weitergabe von Modifikationen und Erweiterungen in Form von Quelltext-Patches, wodurch zahlreiche Eigenschaften wie Spam- oder Virenschutz, SMTP-After-POP oder SMTP-Auth, die von Dritten implementiert wurden, „nachgerüstet“ werden konnten. Die Wartung einer solchen qmail-Installation war jedoch aufwändiger als zum Beispiel die Verwendung von fertigen Binärpaketen innerhalb einer Linux-Distribution, wie sie für die meisten anderen frei verfügbaren Mailserver möglich ist – Bernsteins restriktive Praxis, die Weitergabe von qmail-Binärpaketen nur dann zu gestatten, wenn sie genau mit seinem ursprünglichen Quellcode korrespondierten, zusammen mit dem Umstand, dass Bernsteins Standarddateistruktur für qmail dem Filesystem Hierarchy Standard für Linux widerspricht, führte dazu, dass die meisten Linux-Distributionen keine qmail-Binärpakete anboten.
Seit Ende 2007 ist qmail allerdings gemeinfrei, womit sich dieses Problem grundsätzlich erledigt hat. Eine Reihe von qmail-Anwendern hat netqmail herausgegeben, ein Paket, das einige wichtige Fehlerkorrekturen enthält, aber sonst nur wenige Änderungen gegenüber Bernsteins letzter Fassung integriert. Wichtige Zusatzeigenschaften wie SMTP-Auth, TLS und Virenschutz müssen wie bisher über zusätzliche Quelltext-Patches von Dritten realisiert werden, was qmail einen Nachteil gegenüber anderen modernen Mailservern wie Postfix verschafft. Debian hat Binärpakete von qmail mit dem Wechsel von Squeeze zu Wheezy eingeführt.

## Alternativen

* Postfix
* Exim