Mailserver
Ansprechpartner |
1. Konzept
Dovecot 2 wird als Speicherort für die diversen Mails benötigt. Wir wollen das alle Systemrelevanten-E-Mails hier zusammenlaufen und von aussen abgefragt werden können. Dovecot bietet uns nach aussen einen TLS 1.2 gesicherte Verbindung, und kommuniziert intern mit dem MTA (Postfix) über Unix-Sockets.
Die nachfolgende Konfiguration ist nur für System User die auch in der /etc/passwd eingetragen sind. Sie eignet sich nicht für virtuelle User !.
2. Pakete
siehe Debian-Pakete
3. postfix
Erst mal an der Config nichts machen, die läuft von Hause aus. Zunächst Dovecot aufsetzen
4. Dovecot aufsetzen
Nach der Installation erzeugen wir einen zusätzlichen User in dessen Home-Verzeichnis wir die E-Mail von Dovecot speichern.
4.1. User für die virtuelle Mailbox aufsetzen
groupadd -g 501 vmail useradd -g vmail -u 501 vmail -d /home/vmail -m
4.2. SSL/TLS aktivieren
In Debian 8.0 scheint für Dovecot SSL/TLS standardmäßig ausgeschaltet zu sein, dies ist uns beim Upgrade durch die Lappen gegangen. Um SSL/TLS wieder zwangsmäßig einzuschalten, muss man noch folgende Anpassung in der /etc/dovecot/conf.d/10-ssl.conf vornehmen:
ssl = required
4.3. Anmeldung per IMAP/POP3 konfigurieren
Die Konfigurationsdateien liegen unter /etc/dovecot/conf.d
Hier die Anpassungen für 10-auth.conf
disable_plaintext_auth = yes !include auth-passwdfile.conf.ext auth_mechanisms = plain login #!include auth-system.conf.ext
Man beachte in der auth-passwdfile.conf.ext sind die Details geregelt welche Passwortdatei er verwendet und unter welchem User er dafür verwendet.
hier wird u.A. der geänderte Eintrag für das Home-Verzeichnis eintegragen /etc/dovecot/conf.d/auth-passwdfile.conf.ext
...... userdb { ..... # Override fields from passwd-file override_fields = home=/home/vmail/%u mail_location=mdbox:~/mdbox }
Und hier die angepasste 10-master.conf
.......... service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix user = postfix mode = 0600 } } ........... service auth { ........ # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } ......... service auth-worker { .... #user = root user = $default_internal_user }
Die Passwort Datei liegt unter /etc/dovecot/users. Sie hat folgendes Format
admin@lug-in.wtf.ag:{SHA512-CRYPT}SH%!"csonvonvovenov
5. Postfix anpassen
Für die Kopplelung von postfix und Dovecot erzeugen wir einen mailbox_transport_maps mit der wir postfix anweisen den nicht lokal vorhandenen user admin auf den Dovecot IMAP-Server umzuleiten .
Hier der Inhalt:
admin lmtp:unix:private/dovecot-lmtp
Das Ganze hashen:
postmap mailbox_transport_maps
Anpassungen an die /etc/postfix/main.cf
# relay restrictions for authenticated smtp/submission smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination # dovecot sasl smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth # connection to dovecot mailbox_transport_maps = hash:/etc/postfix/mailbox_transport_maps local_recipient_maps = proxy:unix:passwd.byname, $alias_maps, $mailbox_transport_maps
Um von dem Imap-Konto admin@lug-in.wtf.ag e-mails verschicken zu können sind folgende Änderungen nötig:
Datei: /etc/postfix/master.cf
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no # -o milter_macro_daemon_name=ORIGINATING # -o content_filter=
5.1. /etc/aliases
Da wir im Postfix alle in der /etc/aliases stehenden Aliases als Empfänger (auch für Emails von draussen) erlauben, müssen wir hier noch ein wenig anpassen, damit auch alle vom System generierten Mails zum Dovecot an den admin@lug-in.wtf.ag Account gehen.
Auszug aus /etc/aliases/
# /etc/aliases mailer-daemon: postmaster postmaster: root ... (die ganzen Aliases nach root) root: admin@lug-in.wtf.ag noreply: /dev/null
- Alle Mails an die entsprechenden lokalen Accounts werden zu admin-Account umgeleitet.
Mails an noreply@lug-in.wtf.ag schmeißen wir direkt beim Empfang weg, den Alias brauchen wir für das ?Wiki.
6. Mailman
6.1. Installation
Die Installation erfolgt über das Debian Paket-Managment.
6.2. Konfiguration
6.2.1. /etc/mailman/mm_cfg.py
MAILMAN_SITE_LIST = 'mailman' DEFAULT_URL_PATTERN = 'http://%s/' IMAGE_LOGOS = '/images/mailman/' DEFAULT_EMAIL_HOST = 'lists.lug-in.de' DEFAULT_SERVER_LANGUAGE = 'en' MTA=None POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.lug-in.de'] DEB_LISTMASTER = 'admin@lug-in.de'
6.3. Anpassungen in Postfix
Anpassungen an die Konfiguration von Postfix. Man beachte der Postfix nimmt list.lug-in.de direkt an und muss es dann per Transport-Map weiterreichen !
6.3.1. /etc/postfix/main.cf
mydestination = lug-in.de, localhost.lug-in.de, localhost, lists.lug-in.de transport_maps = hash:/etc/postfix/transport mailman_destination_recipient_limit = 1 content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings
6.3.2. /etc/postfix/transport
lists.lug-in.de mailman:
6.3.3. /etc/postfix/master.cf
In der master.cf wird das Python-Programm postfix-to-mailman.py aufgerufen. Es liegt unter /etc/mailman/ und als symbolischer Link unter /usr/lib/mailman/bin/postfix-to-mailman.py
..... mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} ....
Kann angelegt werden mit:
ln -s /etc/mailman/postfix-to-mailman.py /usr/lib/mailman/bin/postfix-to-mailman.py
6.4. Anpassungen in Apache
Die Konfiguration der /etc/apache2/sites-available/lug-in-mailman.conf kann unter Apache nachgeschlagen hat.
6.5. Wartungsarbeiten
Das Hauptverzeichnis unter Debian ist /var/lib/mailman/ . Hier befinden sich
/bin -> die Komandozeilentools um am Webinterface vorbei Wartungsarbeiten zu erledigen
/data -> hier liegen die "zurückgehaltenen" Nachrichten
6.5.1. Massenhaftes Löschen von zurückgehaltenen Nachrichten
Das Programm discard löscht in Mailman zurückgaheltene Nachrichten.
Beispiel:
root@lug-in:/home# cd /var/lib/mailman/ root@lug-in:/home# bin/discard data/heldmsg-project-*