ROCK5GmbH.mailserver

Ansible-Rolle zur Einrichtung eines Mailservers

Diese Ansible Rolle installiert einen Mailserver, wie in diesen Blogbeitrag von Thomas Leistner beschrieben.

SSL

SSL-Zertifikate und Schlüssel werden im Verzeichnis /etc/myssl/$FQDN.crt und /etc/myssl/$FQDN.key auf dem Mail-Host erwartet (wobei $FQDN der FQDN des Hosts ist). Dies kann geändert werden, indem die Variable {{ ssl_directory }} auf einen anderen Pfad gesetzt wird. Wenn diese Dateien nicht existieren, wird ein selbstsigniertes Zertifikat für die erste Benutzung erstellt, was jedoch für eine Produktionsumgebung nicht empfohlen wird. Wenn Sie ein von einer vertrauenswürdigen CA signiertes Zertifikat benötigen, versuchen Sie es mit Let's Encrypt.

Variablen

Die folgenden Variablen müssen von Ihnen festgelegt werden, um diese Rolle nutzen zu können:

Variable Erklärung
dbserver_root_pw Passwort für den Root-Benutzer der Datenbank
mailserver_sql_vmail_password Passwort für den vmail-Benutzer in der Datenbank
milter_sql_spamass_password Passwort für den Spamassassin-Benutzer in der Datenbank
mailserver_hostname Hostname des Mailservers (z.B. mail)
mailserver_domain Domain des Mailservers (z.B. example.com)

Es stehen viele weitere Variablen zur Verfügung, um die Installation des Mailservers anzupassen. Diese finden Sie in der defaults/main.yml dieser Rolle und ihrer Abhängigkeiten.

Passwörter

Anstatt Passwörter im Klartext in vars/vars.yml zu speichern, sollten Sie das Ansible Vault verwenden.

Um schnell mit dem Vault zu starten, können Sie ansible-vault create vars/vault.yml ausführen und es wie folgt ausfüllen:

mailserver_sql_vmail_password: foo
milter_sql_spamass_password: bar
dbserver_root_pw: baz

(Ersetzen Sie foo, bar und baz durch sichere Passwörter)

Denken Sie daran, beim Ausführen eines Playbooks mit dieser Rolle --ask-vault-pass mit ansible-playbook zu verwenden.

Bereitstellung

Vor der Bereitstellung müssen Sie unbedingt Passwörter für die Datenbankbenutzer festlegen (siehe oben). Dieses Playbook geht außerdem von einer Standardinstallation von Ubuntu Server 16.04 aus und wurde nicht mit anderen Distributionen getestet.

Ein Beispiel-Playbook könnte wie folgt aussehen:

---
- hosts: all
  become: yes
  roles:
    - ROCK5GmbH.mailserver
  vars:
    - vault.yml

Um diese Rolle und alle ihre Abhängigkeiten zu bekommen, können Sie Ansible Galaxy verwenden:

ansible-galaxy install ROCK5GmbH.mailserver

Um auf einem einzelnen Host zu deployen, reicht es aus,

ansible-playbook --ask-vault-pass -i $HOST, playbook.yml

auszuführen, wobei $HOST die IP-Adresse oder URL des Servers ist.

Wenn Sie auf mehreren Hosts bereitstellen möchten, wird empfohlen, mit inventories zu arbeiten, damit Sie Variablen pro Host festlegen können, während Sie gemeinsame Variablen beibehalten.

Nach der Bereitstellung wird der Mailserver fast bereit sein. Es bleibt nur noch, echte Domains und Benutzer zu Ihrer SQL-Datenbank hinzuzufügen. Zuerst verwenden Sie doveadm pw -s SHA512-CRYPT, um einen Hash für das Passwort des Benutzers zu generieren. Um den Benutzer hinzuzufügen, melden Sie sich bei Ihrem Server an und verbinden Sie sich dann mit der Datenbank über

mysql -u root -p

und geben Sie das Root-Passwort für die SQL-Datenbank ein. Fügen Sie jetzt eine Domain (hier: mysystems.tld) und einen Benutzer (user1) hinzu:

use vmail;
insert into domains (domain) values ('mysystems.tld');
insert into accounts (username, domain, password, quota, enabled, sendonly) values ('user1', 'mysystems.tld', '{SHA512-CRYPT}$kgid87hdenss', 2048, true, false);

Weitere Anpassungen

Dieses Setup ermöglicht auch TLS-Richtlinien in der SQL-Datenbank, mit denen Sie spezifische TLS-Richtlinien für bestimmte Domains festlegen können. Sie können eine Richtlinie hinzufügen mit

insert into tlspolicies (domain, policy, params) values ('gmx.de', 'secure', 'match=.gmx.net');

Die verschiedenen möglichen Richtlinien sind hier aufgeführt und erklärt. (Das match=.gmx.net stellt sicher, dass Postfix das Zertifikat für gmx.net überprüft, da sie keines für gmx.de haben)

Sie sollten auch in Betracht ziehen, Ihren neuen Mailserver in Ihrem DNS (A(AAA) und MX-Eintrag) hinzuzufügen, sowie einen Eintrag für SPF und DKIM.

Über das Projekt

This role installs a mailserver with Postfix, Dovecot, Spamassassin, Amavis, ClamAV and a database backend.

Installieren
ansible-galaxy install ROCK5GmbH.mailserver
GitHub Repository
Lizenz
mit
Downloads
139
Besitzer
Sophisticated Web Applications & Plattform Operations