Courier-MTA – Howto
Dieses Howto beschreibt, wie man einen Mailserver mit Coruier einrichtet. Als Betriebssystem wurde Debian Sarge verwendet. Dieses Howto lässt sich aber leicht auf fast jede andere Distribution übertragen.
Im folgenden wird die Installation und Konfiguration eines Mailservers beschrieben. Die vorgestellte Konfiguration ist gedacht für einen relativ kleinen Mailserver mit ca. 20-50 Mailkonten. Benutzer sollen über SMTP E-Mails versenden können und über IMAP auf sie zugreifen können. Sowohl SMTP als auch IMAP soll SSL verschlüsselt werden. Ein Spamfilter ist ebensowenig Teil dieses Howtos wie ein Virenschutz, da sie für recht kleine Mailserver wohl nicht von großer Bedeutung sind.
1. Installation
Damit unser Mailserver funktioniert sollten folgende Pakete installiert werden: courier-mta, courier-mta-ssl, courier-imap-ssl, courier-base
Unter Debian erledigt man dies über apt-get install courier-mta courier-mta-ssl courier-imap-ssl courier-base
Damit ist die Installtion beendet. Es geht weiter mit der Konfiguration des Systems.
2. Konfiguration
Damit Courier richtig funktioniert muss man nun den Konfigurationsdateien zu Leibe rücken. Alle Konfigurationsdateien findet man unter /etc/courier/ .
2.1 Virtuelle Benutzer anlegen
Damit man nicht für jeden Mailaccount einen eigenen Benutzer im System anlegen muss benutzt man hierzu am Besten virtuelle Benutzer. Courier kann diese virtuellen Benutzer in verschiedenen Datenbanken ablegen. Wir wählen die einfachste Datenbank: BerklyDB. Damit Courier von dieser Entscheidung erfährt, müssen wir in /etc/courier/authdaemonrc unter “authmodulelist=…” folgendes eintragen:
authmodulelist="authuserdb"
Als Nächstes wird ein Benutzer angelegt, über den alle Mailkonten verwaltet werden.
# als root
useradd vmail
Der Name des Benutzers kann frei gewählt werden. Man sollte sich aber Userid und Gruppenid des Benutzers merken.
Nun können wir einen Mailaccount erstellen. Dazu müssen wir erstmal einen Ordner anlegen, in dem wir später unsere Konfigurationsdatei mit dem Mailaccount abspeichern. Courier benutzt dazu Ordner und liest alle Dateien, die in diesem Ordner sind ein. Das bedeutet, man kann z.B. für verschiedene Domains auch verschiedene Konfigurationsdateien anlegen. Dadurch wird das Ganze übersichtlicher. Also:
# als root
mkdir /etc/courier/userdb
Als nächstes legen wir ein Maildir an, in dem alle eingehenden (bei IMAP auch ausgehenden) E-Mails gespeichert werden. Dieses Maildir legt man am Besten in das home-Verzeichnis von vmail.
su vmail
mkdir /home/vmail/domain/user
maildirmake /home/vmail/domain/user/Maildir
Jetzt müssen wir Courier noch sagen, welche E-Mails er in diesem Maildir speichern soll:
# als root
userdb -f /etc/courier/userdb/domain user@domain set home=/home/vmail/domain/user uid=7200 gid=7200
Wichtig: Als User-Id (uid) und Group-Id (gid) müssen die entsprechenden Nummern des Users vmail angegeben werden.
Jetzt sollte man dem E-Mail-Account noch ein Passwort zuweisen:
# als root
userdbpw -md5 | userdb -f /etc/courier/userdb/domain user@domain set systempw
Damit Courier die Änderungen aufnimmt müssen wir noch folgenden Befehl ausführen:
makeuserdb
2.2 Allgemeine Einstellungen
Als Nächstes muss eingestellt werden welche Domains Courier verwalten soll. Unter defaultdomain sollte man eine Domain als Standart angeben. Alle anderen Domains müssen in der Datei hosteddomains eingegeben werden. Für jede Domain/Subdomain muss eine neue Zeile begonnen werden. Damit die Änderungen aktiv werden muss man noch folgenden Befehl ausführen:
makehosteddomains
Damit wir kein offenes Relay im Internet betreiben, dass Spammern alle Türen offen hält muss die Datei esmtpd angepasst werden.
...
##NAME: AUTH_REQUIRED:0
#
# Set AUTH_REQUIRED to 1 in order to force the client to use ESMTP
# authentication. You can override AUTH_REQUIRED on a per-IP address basis
# using smtpaccess.
AUTH_REQUIRED=0
...
##NAME: ESMTPAUTH:4
#
# To enable authenticated SMTP relaying, uncomment the ESMTPAUTH setting,
# below, and set it to ESMTP authentication mechanisms we support. Currently
# LOGIN and CRAM-MD5 are available:
#
# ESMTPAUTH="LOGIN CRAM-MD5"
#
# You can also try PLAIN and CRAM-SHA1. See INSTALL for more information.
#
ESMTPAUTH="PLAIN"
Danach wieder makesmtpaccess ausführen.
Im Ordner esmtpacceptmailfor.dir müssen Dateien mit den Domainnamen angelegt werden, deren E-Mails man empfangen will. Es sollten also alle Domains hier aufgelistet werden, die entweder in defaultdomain, hosteddomains oder locals stehen.
2.3 Aliase anlegen
Einem Mailkonto können mehrere E-Mail-Adressen zugeordnet werden. Dies kann man über Dateien im Ordner aliases tun. Dort kann man Dateien mit frei wählbarem Namen anlegen deren Inhalt so aussehen sollte:
mail1@domain1: mail2@domain1
Nach Änderungen muss makealiases ausgeführt werden.
2.4 SSL-Zertifikate
Die Einstellungen für die SSL-Zertifikate kann man in folgenden Dateien vornehemen: esmtpd.cnf (für SMTP) und imapd.cnf (für IMAP). Nachdem man dort die gewünschten Optionen angegeben hat muss man mkimapdcert und mkesmtpdcert ausführen, damit die neuen SSL-Zertifikate erstellt werden.
weitere Informationen:
http://wiki.archlinux.org/index.php/Courier_MTA
http://www.courier-mta.org/
Bild: jarts – PHOTOCASE