Wie konfiguriere ich meinen MTA unter Linux als SMTP AUTH Client?
Die folgende Anleitung zur Einrichtung von sendmail und exim zur SMTP Authentifizierung wurde uns dankenswerterweise von unserem User Christoph Terhechte (ct@flausenfreihaus.de) zur Verfügung gestellt - herzlichen Dank!
sendmail
-
SASL installieren (z.B. cyrus-sasl-1.5.24.tar.gz). Beim
Selbstkompilieren auf "configure --prefix=/usr" achten, da die Plugins
immer in /usr/lib/sasl/ gesucht werden. Neuere SuSE-Versionen
enthalten das Paket bereits.
-
Falls das installierte sendmail nicht mit der Option -DSASL
kompiliert wurde (also der Unterstützung für die SASL Libraries), muß
das Programm neu kompiliert werden. Hierzu in den Quellen in
devtools/Site die Datei site.config.m4 anpassen:
define(`confMAPDEF', `... -DSASL')dnl
appdef(`conf_sendmail_LIB_POST', `... -lsasl')
(Die Pünktchen stehen für die bereits vorhandenen Werte, die natürlich
stehen bleiben müssen)
Falls SASL (wider meinen obenstehenden Rat) in /usr/local installiert
wurde, auch:
appdef(`confLIBDIRS', `-L/usr/local/lib')dnl
appdef(`confINCDIRS', `-I/usr/local/include')dnl
Bei Distributionen, die das rpm-Paketformat mitbringen, ist zu
empfehlen, daß man das sendmail-source-rpm installiert, patcht und mit den entsprechenden rpm-build-Befehlen kompiliert. Leider weichen trotz rpm-Standard die Formate der Patchfiles unterschiedlicher Distributionen voneinander ab. Bei SuSE 7.0 reicht es, die Datei /usr/src/packages/SOURCES/sendmail-8.11.0.dif anzupassen:
Wenn SASL in /usr installiert wurde und nicht in /usr/local, dann ist
es ausreichend, die beiden Zeilen
define(`confMAPDEF', `...')dnl
appdef(`conf_sendmail_LIB_POST', `...')
mit Verweisen auf SASL zu versehen wie oben beschrieben. Sonst sind am Ende des Abschnittes von sendmail-8.11.0.dif, der sich auf
site.config.m4 bezieht, die folgenden Zeilen einzufügen:
appdef(`confLIBDIRS', `-L/usr/local/lib')dnl
appdef(`confINCDIRS', `-I/usr/local/include')dnl
dnl
In diesem Fall muß unbedingt die Länge der Datei site.config.m4 im Patchfile sendmail-8.11.0.dif richtig angegeben werden. Bei der verwendeten Version war sie von 108 Zeilen auf 111 anzupassen, die entsprechende Zeile lautet dann:
@@ -0,0 +1,111 @@
Redhat-Benutzer sollten sich das Source-rpm sendmail-8.11.2-14.src.rpm
besorgen (gehört zu Redhat 7.1) und kompilieren; hier ist die
Unterstützung für SASL schon konfiguriert.
-
in /etc/mail (schreibbar nur durch root oder den Trusted User) die
Datei "default-auth-info" anlegen (les- und schreibbar nur durch root
oder den Trusted User):
user@snafu.deuser@snafu.depasswort_dieses_users
mail.snafu.de
-
m4 /etc/mail/mypersonal.mc > /etc/sendmail.cf
/etc/mail/mypersonal.mc muß die folgenden Zeilen enthalten:
define(`SMART_HOST', `mail.snafu.de')dnl
define(`confDEF_AUTH_INFO', `/etc/mail/default-auth-info')dnl
-
Mails versenden :-)
exim
Einige Linux-Distributionen verwenden als MTA nicht das betagte
sendmail, sondern exim, welches leicht zu konfigurieren ist und nicht
den Ruf des Sicherheitsrisikos trägt, den sendmail mit sich herum
schleppt. Die prominenteste Distribution, die auf exim setzt, ist
Debian.
Auch exim unterstützt die Authentifizierung als SMTP-client erst in
jüngsten Versionen. Die Konfiguration ist dafür denkbar
einfach. Sowohl Debian-Woody als auch das ältere Debian-Potato können es allerdings notwendig machen, exim neu zu kompilieren, was in Debian,
das Vorhandensein aktueller Versionen zahlreicher libraries wie
cyrus-sasl, openldap und anderer vorausgesetzt (zumindest Woody kommt
mit allen nötigen Libraries daher, bei Potato ist Selbstkompilieren
angesagt):
-
Man kopiert exim_3.22-4.dsc, exim_3.22-4.diff.gz und
exim_3.22.orig.tar.gz auf seinen Rechner und führt nacheinander die
folgenden Kommandos aus:
dpkg-source -x exim_3.22-4.dsc
cd exim-3.22
debian/rules build
debian/rules binary
cd ..
dpkg -i exim_3.22-4_i386.deb eximon_3.22-4_i386.deb
-
Je nachdem, ob exim bereits auf dem Rechner installiert war, ruft man
anschließend eximconfig auf, und gibt als Smarthost mail.snafu.de an.
-
Nun ist noch /etc/exim/exim.conf anzupassen. Die folgenden Zeilen
sollten vorhanden sein:
remote_smtp:
driver = smtp
authenticate_hosts = mail.snafu.de
end
...und später im Text:
cram_md5:
driver = cram_md5
public_name = CRAM-MD5
client_name = user@snafu.de client_secret = passwort_dieses_users -
Damit sollte exim sich korrekt gegenüber mail.snafu.de
authentifizieren. Allerdings ist die Datei /etc/mail/exim.conf world-readable, und somit das POP3 Passwort für alle User auf der Linux Box einsehbar - dieses Datei sollte man also auf -rw------- setzen !