Mailserver

Ansprechpartner

jackhammer
k3t
sabine

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

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

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-*


CategoryDocumentation

Dokumentation/Mailserver (last edited 2017-02-27 07:04:09 by jackhammer)