Masqmail kompilieren

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Web und Mailserver ‹ Masqmail kompilieren


Neben der Installation distributionseigener Pakete, ist es auch möglich Masqmail aus dem Quellcode zu installieren.

Wollen Sie die Entwickler-Version kompilieren, ist es hilfreich das Changelog und die weitere Dokumentation des Entwickler im Tarball zu lesen.

Das System vorbereiten

Bauabhängigkeiten installieren

Für den Bau und Betrieb von Masqmail (unter Debian), werden folgende Pakete benötigt:

  • Debianpackage.png build-essential: Allgemeine Sachen wie C-Compiler, Make-Programm usw.
  • Debianpackage.png pkg-config: Verwaltung der Compiler- und Linker-Optionen für Bibliotheken.
  • Debianpackage.png libglib2.0-dev: Die glib-Bibliotheken, die einige wichtige Datenstrukturen in C bereitstellen.
  • Debianpackage.png libident-dev: Um Gegenstellen in TCP-Verbindungen identifizieren zu können.
  • Debianpackage.png liblockfile-dev: Debians einheitliches Filelocking.
  • Debianpackage.png libssl-dev: Stellt die Bibliotheken libssl und libcrypto bereit. Wird nicht benötigt, wenn man die Option --with-libcrypto beim kompilieren weglässt. Dann wird die interne md5/hmac-md5-Implementierung verwendet und nicht gegen libcrypto gelinkt. (Grund für diese Option sind Lizenzbedingungen)

Diese Bauabhängigkeiten des Masqmail-Quellpakets können auch mit apt-get(8) abgefragt und installiert werden. Allein das Paket build-essential muss separat installiert werden.

apt-get build-dep masqmail
apt-get install build-essential

Benutzer und Gruppe mail anlegen

Masqmail wird unter dem Benutzer und der Gruppe mail ausgeführt. Diese müssen ggf. angelegt werden.

Zunächst sollte geprüft werden, ob diese bereits existieren:

grep '^mail:' /etc/group /etc/passwd

Auf einem Debian-System sollten der Benutzer und die Gruppe mail vorhanden sein und nicht extra angelegt werden müssen.

Sind Benutzer und Gruppe nicht vorhanden, müssen diese mit folgendem Befehl angelegt werden:

adduser --system --disabled-login --group --home /var/mail --shell /bin/sh mail

alten MTA deinstallieren

Bevor man Masqmail installiert, ist es empfehlenswert einen bereits installierten MTA zu deinstallieren. Damit sichergestellt ist, das Masqmail der einzige MTA ist. (Anm: Nutzen Sie hierfür die Methode remove um die Konfiguration zu behalten.)

So wird der Port für das SMTP-Protokoll 25/TCP und auch das sendmail-commandline-interface frei. Andernfalls muss der alte MTA zunächst als Daemon beendet werden, damit später Masqmail an Port 25/TCP verbunden werden kann.

Soll Masqmail nicht am Standard-Port für SMTP-Server lauschen, um dort den alten MTA weiter zu betreiben. Ist dies natürlich auch möglich.

Um innerhalb der Debian Paketverwaltung die Abhängigkeit mail-transport-agent auflösen zu können, ohne einen konkreten MTA (wie Exim, Postfix, Sendmail etc.) installieren zu müssen. Installieren Sie diese am besten mittels einem sog. Pseudopaket, welches nur vorgibt ein MTA zu sein, aber keinen installiert. Siehe: Die Abhängigkeit mail-transport-agent mittels Pseudopaket auflösen.

Kompilieren und Installieren

Zuerst muss der Quellcode geholt und anschließend in das Projekt-Verzeichnis gewechselt werden:

apt-get source masqmail
cd masqmail-*

Den aktuellen upstream Quellcode bekommen Sie auf der Projektseite.

Nun muss das Programm configure ausgeführt werden, um den Bauprozesses an die eigenen Bedürfnisse und das eigene System anzupassen.

./configure \
 --with-user=mail --with-group=mail \
 --with-liblockfile \
 --enable-auth

Sämtliche Konfigurationseinstellungen zeigt ./configure -h. Wichtig sind:

  • --with-user, --with-group: Benutzer und Gruppe, unter der Masqmail ausgeführt wird.
  • --with-libcrypto: Würde libcrypto statt der Masqmail eigenen md5/hmac-md5-Implementierung verwenden. (OpenSSL und die GPL vertragen sich nicht gut. Wie das aber konkret mit den Lizenzen aussieht muss geprüft werden. Besser umgehen; Sprich diese Option weglassen.
  • --with-liblockfile:
  • --enable-auth: Dieser Parameter wird empfohlen, damit das SMTP-AUTH-Protokoll verwendet werden kann.

Treten hierbei Fehler auf, so fehlen höchstwahrscheinlich Programme und Bibliotheken die für den Bau notwendig sind. Prüfen Sie ob alles unter Bauabhängigkeiten installieren erwähnte eingerichtet ist. Ggf. wenden Sie sich mit ihren Problem an die Mailingliste.

Nachdem das configure-Skript ohne Fehlermeldungen ausgeführt wurde, wird die Kompilation gestartet:

make
make install

Standardmäßig wird make install, alles unterhalb von /usr/local/' installieren. Soll nach /usr installiert werden, muss das configure-Skript zusätzlich mit der Option --prefix=/usr aufgerufen werden.

Wollen Sie erneut kompilieren, räumen Sie zuerst mittels make clean auf!

Zur Installation unbedingt auch die Datei INSTALL im Projekt-Verzeichnis lesen.

Debian für die Nutzung von Masqmail einrichten

Diese Anleitung sollte auch auf Debian basierte Distributionen wie Ubuntu, Mint oder KNOPPIX anwendbar sein.

Die symbolische Dateiverknüpfung: /usr/sbin/sendmail

Viele Programme haben den Pfad /usr/sbin/sendmail fest einkompiliert (Stichwort: sendmail-commandline-interface), deshalb ist es wichtig, das dafür eine Verknüpfung auf das masqmail Programm eingerichtet wird.

rm /usr/sbin/sendmail
ln -s /usr/local/sbin/masqmail /usr/sbin/sendmail

Anm: Vergewissern Sie sich, dass es in Ordnung für Sie ist, /usr/sbin/sendmail zu löschen.

Historisch war /usr/lib/sendmail der Pfad. Es empfiehlt sich deshalb sicherzustellen, dass auch dieser ein Verweis auf masqmail ist. (Praktisch reicht es hier auf /usr/sbin/sendmail zu Verweisen.)

readlink /usr/lib/sendmail
../sbin/sendmail
readlink --canonicalize /usr/lib/sendmail
/usr/local/sbin/masqmail

Den Daemon starten

Damit über den Port 25/TCP E-Mais verschickt werden können, muss Masqmail im Daemon-Modus gestartet werden.

Um Masqmail starten zu können, muss dieser zuerst konfiguriert werden. Eine Beispiel Konfiguration findet sich im Masqmail Project-Verzeichnis unter ./example/masqmail.conf, diese kann als Grundlage dienen. Auf jeden Fall muss die Variable host_name gesetzt sein, damit Masqmail startet und Sie (lokal) E-Mails verschicken können. Siehe: Masqmail konfigurieren.

cp ./example/masqmail.conf /etc/masqmail

Entweder fügen Sie quick'n'dirty in /etc/rc.local folgendes hinzu, um Masqmail am Ende des Bootvorgang als Daemon zu starten:

/usr/local/sbin/masqmail -bd -q30m

Die bessere Methode Masqmail als Daemon zu starten, ist aber dafür ein Init-Script anzulegen. Dazu passt man sich das Init-Script skeleton (engl. für Skelet. Rudimentäres Grundgerüst für ein Init-Script) an und installiert es mittels des Programm insserv(8).

cp /etc/init.d/{skeleton,masqmail}
chmod +x /etc/init.d/masqmail
sed 's#^DESC=#DESC="Mail Transfer Agent (MTA)"#q'
sed 's#^DAEMON_ARGS=#DAEMON_ARGS="-bd -q10m"#q'
sed 's#^PIDFILE=#PIDFILE="/var/run/masqmail/masqmail.pid"#q'
insserv /etc/init.d/masqmail

Das Verzeichnis /var/run/masqmail müssen Sie anlegen.

Schauen Sie sich auch das Init-Skript aus dem Debianpaket an.