Hier will ich mal eine kleine Anleitung zur Einrichtung eines eigenen Mailservers schreiben. Als IMAP Server verwende ich Dovecot, zum Versenden der Mails wird Postfix benutzt. Als kleinen Bonus beschreibe ich auch noch die Einrichtung von Roundcube, einer sehr praktischen Webmaillösung mit vielen Erweiterungsmöglichkeiten.
Es gibt nun prinzipiell zwei Möglichkeiten wie man seinen SMTP Mailserver realisiert:
Es gibt aber auch Nachteile denen man sich Bewusst sein sollte:
Ich werde hier nur die Variante ohne Smarthost genauer erläutern. Ich selbst habe das ganze unter Ubuntu Server 11.10 32bit getestet.
Im ersten Teil der Serie „Postfix, Dovecote & Roundcube“ wird die nur die Einrichtung von Postfix besprochen.
Damit ein Linux-Rechner direkt E-Mails verschicken kann, muss ein MTA (Mail Transfer Agent) installiert und konfiguriert sein. Der Klassiker unter den MTA ist sendmail, dieser ist jedoch sehr umständlich zu konfigurieren, deshalb hat sich Postfix zum Standard entwickelt. Im Prinzip könnte man den Postfix-Server aufsetzen und gleich E-Mails verschicken. Doch leider ist das im Zeitalter von Spam nicht mehr so einfach. Ein SMTP-Server ohne eine feste IP und ohne ordentliche Zertifikate wäre eine ideale Spam-Schleuder. Deshalb muss man den Server gegen nicht authentifizierten Mailversand schützen.
Folgende Pakete müssen installiert werden:
mail
Mails verschicken zu können)Danach wird man sofort mit einigen Fragen konfrontiert. Die erste Frage über den Typ des Mailserver muss man in unserem Fall mit „Internet Site“ beantworten (Für die Verwendung mit Smarthost wählt man „Internet mit Smarthost„). Als „system mail name“ wird die eigene Domain verwendet, in diesem Fall „sprinternet.at“.
Die grafische Installation enthielt allerding nur die Grundeinstellungen, man kann mit
dpkg-reconfigure postfix
eine etwas detailliertere Variante starten. Nachfolgend kommen die Werte die man Ausfüllten muss:
Nach der Grundkonfiguration kümmern wir uns um die TLS Verschlüsselung. Dazu muss erst einmal ein Zertifikat erzeugt werden (Man kann natürlich auch ein Zertifikat von einer vertraunswürdigen CA verwenden).
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
Nun muss man sich eine Passphrase für den Privatekey überlegen, ich habe hier „sprinternet“ eingegeben.
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
Hier gibt man nun die zuvor gewählte Passphrase ein. Den Rest beantwortet man den eigenen Umständen entsprechend (Common Name sollte der domainname sein, also z.B: „sprinternet.at“). Die extra-Atribute kann man einfach leer lassen.
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Nun kann man mit der Eigentlichen Postfix-Konfiguration beginnen. Man kann entweder direkt die Konfigurationsdatei von Postfix (/etc/postfix/main.cf) anpassen, oder das Konfigurationstool postconf verwenden.
postconf -e ’smtpd_sasl_local_domain =‘
postconf -e ’smtpd_sasl_auth_enable = yes‘
postconf -e ’smtpd_sasl_security_options = noanonymous‘
postconf -e ‚broken_sasl_auth_clients = yes‘
postconf -e ’smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination‘
postconf -e ‚inet_interfaces = all‘
echo ‚pwcheck_method: saslauthd‘ >> /etc/postfix/sasl/smtpd.conf
echo ‚mech_list: plain login‘ >> /etc/postfix/sasl/smtpd.conf
postconf -e ’smtpd_tls_auth_only = no‘
postconf -e ’smtp_use_tls = yes‘
postconf -e ’smtpd_use_tls = yes‘
postconf -e ’smtp_tls_note_starttls_offer = yes‘
postconf -e ’smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key‘
postconf -e ’smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt‘
postconf -e ’smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem‘
postconf -e ’smtpd_tls_loglevel = 1′
postconf -e ’smtpd_tls_received_header = yes‘
postconf -e ’smtpd_tls_session_cache_timeout = 3600s‘
postconf -e ‚tls_random_source = dev:/dev/urandom‘
postconf -e ‚myhostname = sprinternet.at‘
postconf -e ‚home_mailbox = Mail/‘
postconf -e ‚mailbox_command =‘
Die Konfiguration ist nun abgeschlossen. Damit die neuen Einstellungen übernommen werden muss man den SMTP-Server restarten:
/etc/init.d/postfix restart
Nun muss noch SASL eingerichtet werden. saslauthd übernimmt die Authentifizierung der User. Zur sicherheit sollte postfix in einem chroot laufen, was man sasl allerdings erst beibringen muss. In der Datei /etc/default/saslauthd muss folgendes angepasst werden:
Dann kann man die Einrichtung von saslauthd mit folgenden Befehlen abschließen:
mkdir -p /var/spool/postfix/var/run/saslauthd
dpkg-statoverride –add root sasl 710 /var/spool/postfix/var/run/saslauthd
adduser postfix sasl
/etc/init.d/saslauthd start
Damit ist die Kernkomponente des Servers fertig installiert und eingerichtet. =)
Nun kann noch schnell Überprüft werden ob die Konfiguration erfolgreich war:
telnet <serverip> 25
Nach Verbindungsaufbau muss man folgendes eingeben:
ehlo localhost
Als Antwort sollte der Server einige 250er Statuscodes zurückliefern. Die wichtigsten die unbedingt dabei sein müssen sind:
250-STARTTLS
250-AUTH PLAIN LOGIN
Durch eingabe von quit wird die Verbindung beendet.