Donnerstag, 17. Mai 2012
Home
Produkte
Geschäftskunden
Support
snafu.extra
Downloads
Kontakt
Stellenangebote
Auf einen Klick

SMTP Auth. für MTAs Drucken
SMTP Authentifizierung mit Sendmail und Exim

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

  1. 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.

  2. 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.

  3. 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.de
    user@snafu.de
    passwort_dieses_users
    mail.snafu.de

  4. 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

  5. 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):

  1. 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

  2. Je nachdem, ob exim bereits auf dem Rechner installiert war, ruft man
    anschließend eximconfig auf, und gibt als Smarthost mail.snafu.de an.

  3. 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


  4. 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 !