BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Sendmail mit SASL-Authentifizierung und SSL-Verschlüsselung

Möchte man einen Mailserver einrichten, über den Mails versenden werden können, man sich dazu aber authentifizieren muss und die Verbindung mit SSL geschützt ist, so muss zuerst der cyrus-sasl2-saslauthd Port installiert werden:

# cd /usr/ports/security/cyrus-sasl2-saslauthd/ && make install clean

Danach werden die benötigten Einträge in der rc.conf gemacht:

# echo 'saslauthd_enable="YES"' >> /etc/rc.conf
# echo 'sendmail_enable="YES"' >> /etc/rc.conf

Nun kann der saslauthd gestartet werden:

# /usr/local/etc/rc.d/saslauthd start

Damit der sendmail-Daemon nun mit der SASL2 Unterstützung gebaut werden kann, müssen folgende Einträge in der /etc/make.conf gemacht werden:

# with SASLv2:
SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2

Danach kann sendmail neu gebaut werden:

# cd /usr/src/lib/libsmutil
# make cleandir && make obj && make
# cd /usr/src/lib/libsm
# make cleandir && make obj && make
# cd /usr/src/usr.sbin/sendmail
# make cleandir && make obj && make && make install

Nun können die Konfigurationsdateien für den sendmail-Daemon erstellt werden:

cd /etc/mail && make

Dabei wurden zwei neue Konfigurationsdateien erstellt, welche den Hostnamen im Dateinamen haben: <hostname>.mc und <hostname>.submit.mc. In die <hostname>.mc werden nun folgende Zeilen eingefügt:

dnl SASL auth
define(`confAUTH_MECHANISMS',`PLAIN LOGIN')dnl
TRUST_AUTH_MECH(`PLAIN LOGIN')dnl

dnl SSMTP
define(`CERT_DIR', `/etc/mail/certs')dnl
define(`confCACERT_PATH', `CERT_DIR')dnl
define(`confCACERT', `CERT_DIR/mycert.pem')dnl
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')dnl
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')dnl
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')dnl
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')dnl
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

Nun müssen noch, falls nicht schon vorhanden, die entsprechenden Zertifikate für den sendmail-Daemon erstellt werden:

# mkdir /etc/mail/certs
# cd /etc/mail/certs
# openssl dsaparam 1024 -out dsa1024.pem
# openssl req -x509 -nodes -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem
# chmod 600 /etc/mail/certs/*

Als Letztes muss die neue Konfiguration aktiviert und sendmail neu gestartet werden:

# cd /etc/mail
# make all install restart

Danach lässt sich auf TCP -Port 465 eine SSL-verschlüsselte Verbindung aufbauen, wobei der Benutzer gegen die auf dem Server vorhanden Benutzerkonten authentifiziert wird. Zum Testen des Mailservers kann swaks aus dem FreeBSD Portbaum verwendet werden. Mehr Informationen zur SMTP Authentifikation findet man im FreeBSD Handbuch: http://www.freebsd.org/doc/en/books/handbook/smtp-auth.html.

 Permalink

Comments

No new comments allowed (anymore) on this post.