StackFocus.postfix-dovecot
ansible-role-postfix-dovecot
Un rôle Ansible qui automatise l'installation et la configuration de Postfix et Dovecot avec authentification MySQL sur Ubuntu. Le schéma MySQL est dérivé du tutoriel Digital Ocean. Vous pouvez consulter le schéma MySQL utilisé dans schema.sql.
Variables du Rôle
Variables Requises
- dovecot_ssl_cert - le chemin vers le certificat SSL utilisé par Dovecot. Notez que si vous devez fournir une chaîne de certificats, elle doit être concaténée après le certificat dans le même fichier.
- dovecot_ssl_key - le chemin vers la clé SSL utilisée par Dovecot.
- postfix_ssl_cert - le chemin vers le certificat SSL utilisé par Postfix. Cela doit inclure l'CA intermédiaire si applicable.
- postfix_ssl_key - le chemin vers la clé SSL utilisée par Postfix.
- postfix_dovecot_mysql_password - le mot de passe de l'utilisateur autorisé à interroger la base de données sur le serveur SQL utilisé pour l'authentification.
Variables Optionnelles
- postfix_dovecot_mysql_host - le FQDN ou l'adresse IP du serveur MySQL pour l'authentification. Cela par défaut
127.0.0.1
. - postfix_dovecot_mysql_db_name - le nom de la base de données sur le serveur MySQL utilisée pour l'authentification. Cela par défaut
servermail
. - postfix_dovecot_mysql_user - l'utilisateur autorisé à interroger la base de données sur le serveur MySQL utilisé pour l'authentification. Cela par défaut
usermail
. - postfix_dovecot_mysql_password_scheme - le schéma de mot de passe utilisé pour crypter les mots de passe dans la base de données. Cela par défaut
SHA512-CRYPT
. - postfix_default_domain - la valeur à définir comme domaine par défaut utilisé par Postfix, particulièrement lorsque Postfix détermine le domaine de l'expéditeur lors de l'envoi de messages de rebond. Cela définit le contenu de
/etc/mailname
. - postfix_inet_protocols - le protocole sur lequel Postfix doit écouter. Pour n'avoir que l'IPv4, définissez cette valeur sur
ipv4
. Cela par défautall
. - postfix_submission_smtpd_client_restrictions - une liste de restrictions sur le client du port de soumission des e-mails (587). Pour plus d'informations, visitez la documentation Postfix.
Cela par défaut
permit_sasl_authenticated
etreject
. - postfix_smtpd_tls_auth_only - permet de n'autoriser que l'authentification SASL sur SSL/TLS. Cela par défaut
yes
. - postfix_smtpd_recipient_restrictions - une liste de restrictions sur les destinataires des e-mails entrants. Pour plus d'informations, visitez la documentation Postfix.
Cela par défaut
permit_sasl_authenticated
,permit_mynetworks
, etreject_unauth_destination
. - postfix_smtpd_relay_restrictions - une liste de restrictions de relais. Pour plus d'informations, visitez la documentation Postfix.
Cela par défaut
permit_mynetworks
,permit_sasl_authenticated
, etdefer_unauth_destination
. - postfix_mynetworks - une liste de clients SMTP de confiance. Pour plus d'informations, visitez la documentation Postfix.
Cela par défaut
127.0.0.0/8
,[::ffff:127.0.0.0]/104
,[::1]/128
. - postfix_mydestination - une liste pour la valeur de configuration Postfix de
mydestination
. Pour plus d'informations, visitez la documentation Postfix. Cela par défautlocalhost
. - postfix_mysql_alias_query - la requête utilisée pour trouver la destination d'un alias lorsque la source est fournie. Cela par défaut
SELECT destination FROM virtual_aliases WHERE source='%s';
. - postfix_mysql_domains_query - la requête utilisée pour déterminer si un domaine est valide. Cela par défaut
SELECT 1 FROM virtual_domains WHERE name='%s';
. - postfix_mysql_users_query - la requête utilisée pour déterminer si une adresse e-mail est valide. Cela par défaut
SELECT 1 FROM virtual_users WHERE email='%s';
. - dovecot_mysql_password_query - la requête utilisée pour authentifier un utilisateur sur le serveur MySQL utilisé pour l'authentification. Cela par défaut
SELECT email as user, password FROM virtual_users WHERE email='%u';
. - postfix_relayhost - envoie des e-mails via un hôte de relais en amont. Pour plus d'informations, visitez la documentation Postfix.
- postfix_smtp_tls_security_level - le niveau de sécurité TLS SMTP pour le serveur SMTP Postfix (envoi). La valeur par défaut pour Debian et Red Hat >= 8 est
dane
, pour Red Hat 7 estmay
. Pour plus d'informations, visitez la documentation Postfix. - dovecot_protocols - une liste de protocoles à activer. Cela par défaut
lmtp
etimap
. Pour activer POP3, ajoutezpop3
à cette variable. (remarque :apt install dovecot-pop3d
sur la cible pour utiliser pop3) - dovecot_mail_privileged_group - le groupe qui possède le dossier défini dans
dovecot_mail_location
. Cela donne au processus de messagerie de Dovecot la capacité d'écrire dans le dossier. Cela par défautmail
. - dovecot_disable_plaintext_auth - détermine si l'authentification sans SSL est activée. Cela par défaut 'yes'.
- dovecot_auth_mechanisms - une liste de mécanismes d'authentification autorisés par Dovecot. Cela par défaut
plain
etlogin
. Pour plus d'informations, lisez la documentation sur les mécanismes d'authentification de Dovecot. - dovecot_force_imaps - détermine s'il faut désactiver IMAP et forcer IMAPS. Cela par défaut
true
. - dovecot_force_pop3s - détermine s'il faut désactiver POP3 et forcer POP3S. Cela par défaut
true
. Notez que pour également activer POP3S, vous devez ajouter pop3 à la liste variabledovecot_protocols
. - dovecot_ssl - détermine s'il faut imposer SSL sur tous les protocoles. Cela par défaut
required
. Pour plus d'informations, lisez la documentation sur la configuration SSL de Dovecot. - dovecot_listen - une liste d'adresses IP ou d'hôtes où Dovecot écoute les connexions. Cela par défaut
*
(tous les IPv4) et '::' (tous les IPv6). - dovecot_add_example_users - lorsqu'il est défini sur
true
, ajoute des utilisateurs d'exemple à la base de données.
Exigences
- Ce rôle doit être exécuté avec sudo/become ou en tant que root, sinon le rôle échouera.
- Le serveur MySQL doit être pré-configuré, et l'utilisateur doit déjà avoir les permissions appropriées sur la base de données (voir [defaults/main.yml] pour les valeurs par défaut).
- Sur les serveurs Red Hat, vous devez préinstaller PyMSQL (python{2,3}-PyMySQL, selon ce qui vous convient le mieux).
Exemple de Playbook
requirements.yml
roles:
- name: stackfocus.postfix-dovecot
site.yml
- hosts: all
become: yes
gather_facts: true
roles:
- stackfocus.postfix-dovecot
vars:
postfix_dovecot_mysql_db_name: mailserver
postfix_dovecot_mysql_user: mailuser
postfix_dovecot_mysql_password: mailpass
postfix_default_domain: example.com
dovecot_protocols:
- imap
- pop3
- lmtp
dovecot_mail_privileged_group: vmail
dovecot_ssl_cert: /etc/ssl/certs/dovecot.pem
dovecot_ssl_key: /etc/ssl/private/dovecot.pem
postfix_ssl_cert: /etc/ssl/certs/postfix.pem
postfix_ssl_key: /etc/ssl/private/postfix.pem
$ ansible-galaxy install -r requirements.yml
$ ansible-playbook -i inventory site.yml --ask-become-pass
Exemple Étendu de Playbook pour un Serveur Frais
Dans cet exemple, nous utilisons certains rôles de geerlingguy pour gérer la base de données et les certificats de certbot.
requirements.yml
roles:
- name: stackfocus.postfix-dovecot
- name: geerlingguy.mysql
- name: geerlingguy.certbot
Playbook préparé pour vous :
- base de données et ses utilisateurs
- certificat Let's Encrypt
- service de transport de courrier postfix
- service de boîte aux lettres dovecot
---
- name: Setup mail
hosts: mailserver.tld
become: true
vars:
mail_domain: mycooldomain.com
mail_database: maildb
mail_db_pass: 'ultrasafepassword'
roles:
- role: geerlingguy.mysql
mysql_databases:
- name: '{{ mail_database }}'
encoding: utf8mb4
collation: utf8mb4_czech_ci
mysql_users:
- name: '{{ mail_database }}'
host: "localhost"
password: '{{ mail_db_pass }}'
priv: "{{ mail_database }}.*:ALL"
- role: geerlingguy.certbot
certbot_certs:
- domains:
- '{{ mail_domain }}'
- 'mail.{{ mail_domain }}'
- role: stackfocus.postfix-dovecot
postfix_dovecot_mysql_db_name: '{{ mail_database }}'
postfix_dovecot_mysql_user: '{{ mail_database }}'
postfix_dovecot_mysql_password: '{{ mail_db_pass }}'
postfix_default_domain: '{{ mail_domain }}'
dovecot_protocols:
- imap
- pop3
- lmtp
dovecot_mail_privileged_group: vmail
dovecot_ssl_cert: /etc/letsencrypt/live/{{ mail_domain }}/fullchain.pem
dovecot_ssl_key: /etc/letsencrypt/live/{{ mail_domain }}/privkey.pem
postfix_ssl_cert: /etc/letsencrypt/live/{{ mail_domain }}/fullchain.pem
postfix_ssl_key: /etc/letsencrypt/live/{{ mail_domain }}/privkey.pem
postfix_smtp_tls_security_level: 'dane'
postfix_mydestination: '{{mail_domain}}'
postfix_myhostname: 'mail.{{mail_domain}}'
À propos du projet
automates the installation and configuration of Postfix and Dovecot with SQL authentication
Installer
ansible-galaxy install StackFocus.postfix-dovecot
Licence
Unknown
Téléchargements
30.7k
Propriétaire