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.