ROCK5GmbH.mailserver

Rôle Ansible pour configurer un serveur mail

Ce rôle ansible installe un serveur mail, comme décrit dans cet article de blog par Thomas Leistner.

SSL

Les certificats et clés SSL sont attendus dans /etc/myssl/$FQDN.crt et /etc/myssl/$FQDN.crt sur l'hôte de mail (où $FQDN est le nom de domaine complet de l'hôte). Cela peut être modifié en définissant la variable {{ ssl_directory }}, {{ ssl_directory }} ou {{ ssl_directory }} à un autre chemin. Si ces fichiers n'existent pas, un certificat auto-signé sera créé pour une utilisation initiale, ce qui n'est pas recommandé pour une configuration de production. Si vous avez besoin d'un certificat signé par une CA de confiance, essayez Let's Encrypt.

Variables

Les variables suivantes doivent être définies par vous afin d'utiliser ce rôle :

Variable Explication
dbserver_root_pw mot de passe pour l'utilisateur root de la base de données
mailserver_sql_vmail_password mot de passe pour l'utilisateur vmail dans la base de données
milter_sql_spamass_password mot de passe pour l'utilisateur spamassassin dans la base de données
mailserver_hostname nom d'hôte du serveur mail (ex : mail)
mailserver_domain domaine du serveur mail (ex : example.com)

Beaucoup d'autres variables sont disponibles pour personnaliser l'installation du serveur mail, vous pouvez les trouver dans le fichier defaults/main.yml de ce rôle et de ses dépendances.

Mots de passe

Au lieu de sauvegarder les mots de passe en texte clair dans vars/vars.yml, envisagez d'utiliser le vault ansible.

Pour un démarrage rapide avec le vault, vous pouvez exécuter ansible-vault create vars/vault.yml et le remplir comme ceci :

mailserver_sql_vmail_password: foo
milter_sql_spamass_password: bar
dbserver_root_pw: baz

(Remplacez foo, bar et baz par des mots de passe sécurisés)

Maintenant, chaque fois que vous exécutez un playbook avec ce rôle, n'oubliez pas d'utiliser --ask-vault-pass avec ansible-playbook.

Déploiement

Avant le déploiement, vous devez définir les mots de passe pour les utilisateurs de la base de données (voir ci-dessus). De plus, ce playbook suppose une installation par défaut d'Ubuntu Server 16.04 et n'a pas été testé pour d'autres distributions.

Un exemple de playbook pourrait ressembler à ceci :

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

Pour obtenir ce rôle et toutes ses dépendances, vous pouvez utiliser ansible galaxy :

ansible-galaxy install ROCK5GmbH.mailserver

Pour déployer sur un seul hôte, il suffit d'exécuter

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

où $HOST est l'adresse IP ou l'URL du serveur.

Si vous souhaitez déployer sur plusieurs hôtes, il est recommandé de travailler avec inventaires, afin de pouvoir définir des variables par hôte tout en conservant des variables communes.

Après le déploiement, le serveur mail sera presque prêt à fonctionner. Il ne reste plus qu'à ajouter des domaines et des utilisateurs à votre base de données SQL. Commencez par utiliser doveadm pw -s SHA512-CRYPT pour générer un hachage pour le mot de passe de l'utilisateur. Pour ajouter l'utilisateur, connectez-vous à votre serveur puis connectez-vous à la base de données via

mysql -u root -p

et entrez le mot de passe root pour la base de données SQL. Ajoutez maintenant un domaine (ici : mysystems.tld) et un utilisateur (user1) :

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);

Personnalisation supplémentaire

Cette configuration permet également des politiques TLS dans la base de données SQL, vous permettant de définir des politiques TLS spécifiques pour des domaines spécifiques. Vous pouvez ajouter une politique via

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

Les différentes politiques possibles sont listées et expliquées ici. (Le match=.gmx.net assure que postfix vérifiera le certificat pour gmx.net, car ils n'en ont pas pour gmx.de)

Vous voudrez peut-être également ajouter votre nouveau serveur mail à votre DNS (enregistrements A(AAA) et MX), ainsi qu'ajouter une entrée pour SPF et DKIM.

À propos du projet

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

Installer
ansible-galaxy install ROCK5GmbH.mailserver
Licence
mit
Téléchargements
139
Propriétaire
Sophisticated Web Applications & Plattform Operations