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:
- build-essential: Allgemeine Sachen wie C-Compiler, Make-Programm usw.
- pkg-config: Verwaltung der Compiler- und Linker-Optionen für Bibliotheken.
- libglib2.0-dev: Die glib-Bibliotheken, die einige wichtige Datenstrukturen in C bereitstellen.
- libident-dev: Um Gegenstellen in TCP-Verbindungen identifizieren zu können.
- liblockfile-dev: Debians einheitliches Filelocking.
- 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.