OpenSMTPD für Ubuntu 14.04 LTS

english version available

Aktuelles x86_64 Debian Paket - aus den Quellen des Projektes gebaut

File Link
Download: opensmtpd_201602131907p1_amd64.deb
sha512sum: opensmtpd_201602131907p1_amd64.deb.sha
Source: opensmtpd-201602131907p1.tar.gz (external)

Was für eine Version ist das?

Es handelt sich um eine veränderte Version des Originalpaketes, welches man bekommt, wenn man OpenSMTPD unter Ubuntu 14.04 installiert, ohne externe Paketquellen hinzugefügt zu haben.

Dazu habe ich OpenSMTPD direkt aus dem Sourcecode des Projekts neu gebaut, ohne dabei distributionsspezifische Paches zu verwenden.

Das resultierende Paket ist eine etwas merkwürdige Mischung aus Teilen des Ubuntu Pakets (mit abgewandeltem Postinstallationsskript) und aktualisierter Software aus meinem Build.
Zum Zeitpunkt, als ich OpenSMTPD kompiliert habe, war das Quellarchiv mit der Version 201602131907p1 “latest” und liegt noch hinter der Version 5.7.3p2.

Durch den vom Standardpaket abweichenden Build ergeben sich ein paar Fallstricke:

  • es wurde gegen libasr (github) gelinkt, welches auch gleich mit enthalten ist
  • der Nutzername und die Gruppe entsprechen denen, die OpenSMTPD standmässig verwended und damit nicht denen, die das normale Ubuntu Paket verwenden würde
  • es erwartet ein Rootzertifikat Bundle unter /etc/ssl/cert.pem,
    es sollte ein symlink auf
    /etc/ssl/certs/ca-certificates.crt
    angelegt werden, wenn verbundene Server verifiziert werden sollen

Hilfestellung:

sudo ln -s /etc/ssl/certs/ca-certificates.crt /etc/ssl/cert.pem

Warum hast du es gebaut?

Jetzt wo du fragst… meinen ersten eigenen Mailserver habe ich in 2003 mit sendmail betrieben. Dazu habe ich einen alten Computer verwendet, den ich ohnehin schon als Router für mein brandneues DSL laufen hatte.
Als ein Virus damit begann, die Rechner zufälliger Privatpersonen zu missbrauchen, um sich selbst zu verbreiten (das war etwas Neues zu der Zeit), brach meine Internetverbindung ein, weil es mir nicht möglich war, sendmail dazu zu bewegen Mails von bestimmten Adressen zu verwerfen.
Es war nur dazu in der Lage, Mails zu verwerfen, nachdem die Mail komplett angenommen war. Infolgedessen war meine Verbindung mit dem Traffic von Mails verstopft, die nur angenommen wurden, um niemals zugestellt zu werden.
Dadurch bin ich für einige Jahre auf postfix gewechselt, da es mit postfix ziemlich einfach ist, Verbindungen zu beenden, direkt nachdem ein bestimmtes Wort im Kopf der Mail erkannt wurde.
Vor Jahren hatte ich aufgehört, meinen eigenen Mailserver zu betreiben. Das aufkommende und allgegenwärtige Gmail machte ihn überflüssig und sogar hiesige Anbieter konnten die von mir benötigten Funktionen bieten.

Leider bin ich nie wirklich davon losgekommen, Mailserver einzurichten und zu warten. Es gab immer irgendeinen Kunden, der (aus für mich nicht nachvollziehbaren Gründen) darauf bestand, Mails von seinen eigenen Systemen verarbeiten zu lassen.
Das wurde in letzter Zeit unangenehm, als immer mehr Anbieter damit begannen, Mails die nicht von den “großen” Anbietern, oder von Servern die neuere Technologien nicht verwendeten, als Spam zu betrachten.

Um mal zum Punkt zu kommen - postfix könnte einfach nicht mehr das sein, was man heutzutage benutzen will, wenn es darum geht mit Mails umzugehen.

Ich habe mir exim4 flüchtig angeschaut, welches verspricht einfacher zu konfigurieren zu sein als postifx und dabei noch performanter. Zum letzteren kann ich keine Aussage treffen, aber die Konfiguration ist definitiv nicht einfacher und das obwohl (möglicherweise sogar gerade weil) damit eine neue Konfigurationssprache vorgestellt wurde.

Als der Konfigurationsdialog mich fragte, ob ich lieber haufenweise kleine Dateien, oder eine einzelne Datei mit mehreren hundert Zeilen haben wollte, fragte ich mich doch, ob das wirklich ernst gemeint ist.

Also dachte ich mir, es könnte mal wieder an der Zeit sein, einen neuen Mailserver auszuprobieren, der verspricht einfacher, sicherer, performanter usw. zu sein.
Nicht, dass ich das nicht alles schon mal gehört hätte, aber man weiß ja nie.

Ich entschied OpenSMTPD eine Chance zu geben.

Bevor ich das jedoch tat, hörte ich, dass die Version die man mit Ubuntu 14.04 LTS bekommt veraltet ist und - was noch schlimmer ist - reichlich instabil.
Es gab keinen einfachen Weg, eine aktuelle Version aus PPAs oder wenigstens vorgebauten Paketen zu bekommen (wenn man nicht gerade bereit ist, seine Paketquellen mit debian testing zu mischen und ab dem Tag ein Leben in der Hölle zu fristen).

Dies ist die Version, die ich jetzt selbst verwende und bis jetzt funktioniert sie.

Wirst du neuere Builds liefern?

Vermutlich nicht. Ich erwarte keine großen Bugs oder neue Releases, bevor Ubuntu 16.04 freigegeben wird, wodurch wir alle eine brauchbare Version erhalten werden (hoffentlich).

Wie hast du es gebaut?

Tatsächlich indem ich docker verwendet habe. Es hat einige Versuche gebraucht bis ich eine Build Umgebung hatte, die in der Lage war Irgendetwas zu bauen und ich wollte meinen Arbeitsrechner nicht in Unordnung bringen.

Dieses Irgendetwas habe ich genommen und über den Inhalt des originalen Binärpakets gelegt, wobei mir docker diff eine Menge geholfen hat.
Das ist natürlich nicht der übliche Weg, um Softwarepakete zu bauen, aber nochmals: Für meine Zwecke ist das ausreichend und ich erwarte, dass es eh in einigen Monaten nicht mehr gebraucht wird.

OpenSMTP ist BSD Software und wurde nicht mit dem Ziel entwickelt, auf diversen Linuxdistributionen möglichst einfach gebaut und verwendet werden zu können.
Es war nicht meine Absicht einen Backport von Ubuntu 15.10 zu versuchen. Wenn du also einen solchen suchst, … solltest wo anders weitersuchen, oder vielleicht selbst einen machen.

Wirst du noch für andere Architekturen / Distributionen ein Paket bauen?

Solange ich dafür nicht einen angemessenen Betrag erhalte - ist die Antwort: Nein.

Nichtsdestotrotz hoffe ich, dass dieses Paket vielleicht noch für andere von Nutzen ist.