StackFocus.postfix-dovecot
ansible-role-postfix-dovecot
Eine Ansible-Rolle, die die Installation und Konfiguration von Postfix und Dovecot mit MySQL-Authentifizierung unter Ubuntu automatisiert. Das MySQL-Schema stammt aus folgendem Digital Ocean Tutorial. Das verwendete MySQL-Schema können Sie in schema.sql einsehen.
Rollenvariablen
Erforderliche Variablen
- dovecot_ssl_cert - der Pfad zum SSL-Zertifikat, das von Dovecot verwendet wird. Wenn Sie eine Zertifikatskette bereitstellen müssen, muss diese im selben Datei nach dem Zertifikat angefügt werden.
- dovecot_ssl_key - der Pfad zum SSL-Schlüssel, der von Dovecot verwendet wird.
- postfix_ssl_cert - der Pfad zum SSL-Zertifikat, das von Postfix verwendet wird. Dies sollte auch die Zwischen-CA enthalten, falls zutreffend.
- postfix_ssl_key - der Pfad zum SSL-Schlüssel, der von Postfix verwendet wird.
- postfix_dovecot_mysql_password - das Passwort für den Benutzer, der Berechtigungen hat, die Datenbank auf dem SQL-Datenbankserver für die Authentifizierung abzufragen.
Optionale Variablen
- postfix_dovecot_mysql_host - der FQDN oder die IP-Adresse des MySQL-Servers zur Authentifizierung. Standardmäßig ist dies
127.0.0.1
. - postfix_dovecot_mysql_db_name - der Datenbankname auf dem MySQL-Server, der für die Authentifizierung verwendet wird. Standardmäßig ist dies
servermail
. - postfix_dovecot_mysql_user - der Benutzer, der Berechtigungen hat, die Datenbank auf dem MySQL-Server für die Authentifizierung abzufragen. Standardmäßig ist dies
usermail
. - postfix_dovecot_mysql_password_scheme - das Passwortschema zur Verschlüsselung von Passwörtern in der Datenbank. Standardmäßig ist dies
SHA512-CRYPT
. - postfix_default_domain - der Wert für die Standarddomäne, die von Postfix verwendet wird, insbesondere wenn Postfix die Domäne des Absenders beim Senden von Bounce-Nachrichten bestimmt. Dies legt den Inhalt von
/etc/mailname
fest. - postfix_inet_protocols - das Protokoll, auf dem Postfix hören soll. Um nur IPv4 zuzusehen, setzen Sie diesen Wert auf
ipv4
. Standardmäßig ist diesall
. - postfix_submission_smtpd_client_restrictions - eine Liste von Client-Beschränkungen für den Mail-Übermittlungsport (587). Für weitere Informationen besuchen Sie die Postfix-Dokumentation.
Standardmäßig ist dies
permit_sasl_authenticated
undreject
. - postfix_smtpd_tls_auth_only - ob nur SASL-Authentifizierung über SSL/TLS erlaubt ist. Standardmäßig ist dies
ja
. - postfix_smtpd_recipient_restrictions - eine Liste von Beschränkungen für Empfänger eingehender E-Mails. Für weitere Informationen besuchen Sie die Postfix-Dokumentation.
Standardmäßig ist dies
permit_sasl_authenticated
,permit_mynetworks
undreject_unauth_destination
. - postfix_smtpd_relay_restrictions - eine Liste von Relay-Beschränkungen. Für weitere Informationen besuchen Sie die Postfix-Dokumentation.
Standardmäßig ist dies
permit_mynetworks
,permit_sasl_authenticated
unddefer_unauth_destination
. - postfix_mynetworks - eine Liste vertrauenswürdiger SMTP-Clients. Für weitere Informationen besuchen Sie die Postfix-Dokumentation.
Standardmäßig ist dies
127.0.0.0/8
,[::ffff:127.0.0.0]/104
,[::1]/128
. - postfix_mydestination - eine Liste für den Konfigurationswert von
mydestination
in Postfix. Für Informationen besuchen Sie die Postfix-Dokumentation. Standardmäßig ist dieslocalhost
. - postfix_mysql_alias_query - die Abfrage, die verwendet wird, um das Ziel eines Alias zu finden, wenn die Quelle bereitgestellt wird. Standardmäßig ist dies
SELECT destination FROM virtual_aliases WHERE source='%s';
. - postfix_mysql_domains_query - die Abfrage, die verwendet wird, um zu bestimmen, ob eine Domain gültig ist. Standardmäßig ist dies
SELECT 1 FROM virtual_domains WHERE name='%s';
. - postfix_mysql_users_query - die Abfrage, die verwendet wird, um zu bestimmen, ob eine E-Mail-Adresse gültig ist. Standardmäßig ist dies
SELECT 1 FROM virtual_users WHERE email='%s';
. - dovecot_mysql_password_query - die Abfrage, die verwendet wird, um einen Benutzer am MySQL-Server zu authentifizieren, der für die Authentifizierung verwendet wird. Standardmäßig ist dies
SELECT email as user, password FROM virtual_users WHERE email='%u';
. - postfix_relayhost - sendet E-Mails über einen Upstream-Relay-Host. Für weitere Informationen besuchen Sie die Postfix-Dokumentation.
- postfix_smtp_tls_security_level - das SMTP-TLS-Sicherheitsniveau für den Postfix-SMTP-Server (Versand). Der Standard für Debian und Red Hat >= 8 ist
dane
, für Red Hat 7 ist esmay
. Für weitere Informationen besuchen Sie die Postfix-Dokumentation. - dovecot_protocols - eine Liste von aktivierten Protokollen. Standardmäßig sind dies
lmtp
undimap
. Um POP3 zu aktivieren, fügen Siepop3
zu dieser Variable hinzu. (Hinweis:apt install dovecot-pop3d
auf dem Zielsystem, um pop3 zu verwenden). - dovecot_mail_privileged_group - die Gruppe, die den Ordner besitzt, der in
dovecot_mail_location
definiert ist. Dies ermöglicht dem Mailprozess von Dovecot, in diesem Ordner zu schreiben. Standardmäßig ist diesmail
. - dovecot_disable_plaintext_auth - bestimmt, ob die Authentifizierung ohne SSL aktiviert ist. Standardmäßig ist dies 'ja'.
- dovecot_auth_mechanisms - eine Liste von Authentifizierungsmechanismen, die von Dovecot zugelassen sind. Standardmäßig sind dies
plain
undlogin
. Für weitere Informationen lesen Sie die Dokumentation zu Dovecot. - dovecot_force_imaps - bestimmt, ob IMAP deaktiviert und IMAPS erzwungen wird. Standardmäßig ist dies
true
. - dovecot_force_pop3s - bestimmt, ob POP3 deaktiviert und POP3S erzwungen wird. Standardmäßig ist dies
true
. Bitte beachten Sie, dass Sie auch POP3S aktivieren müssen, indem Sie pop3 zur Liste derdovecot_protocols
-Variablen hinzufügen. - dovecot_ssl - bestimmt, ob SSL über alle Protokolle hinweg durchgesetzt wird. Standardmäßig ist dies
required
. Für weitere Informationen lesen Sie die SSL-Konfiguration von Dovecot. - dovecot_listen - eine Liste von IP- oder Hostadressen, auf denen Dovecot auf Verbindungen hört. Standardmäßig ist dies
*
(alle IPv4) und '::' (alle IPv6). - dovecot_add_example_users - wenn auf
true
gesetzt, werden Beispielbenutzer zur Datenbank hinzugefügt.
Anforderungen
- Diese Rolle muss mit sudo/become oder als root ausgeführt werden, andernfalls schlägt die Rolle fehl.
- Der MySQL-Server muss im Voraus konfiguriert sein, und der Benutzer sollte bereits die entsprechenden Berechtigungen für die Datenbank haben (siehe [defaults/main.yml] für Standardwerte).
- Auf Red Hat-Servern müssen Sie PyMSQL (python{2,3}-PyMySQL, je nachdem, was für Sie geeigneter ist) im Voraus installieren.
Beispiel-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
Erweitertes Beispiel-Playbook für einen frischen Server
In diesem Beispiel verwenden wir einige Rollen von geerlingguy, um die Datenbank und die Zertifikate von Certbot zu verwalten.
requirements.yml
roles:
- name: stackfocus.postfix-dovecot
- name: geerlingguy.mysql
- name: geerlingguy.certbot
Das Playbook bereitet Folgendes für Sie vor:
- Datenbank und ihre Benutzer
- Let's Encrypt-Zertifikat
- Mail-Transportdienst Postfix
- Mailbox-Dienst 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}}'
Über das Projekt
automates the installation and configuration of Postfix and Dovecot with SQL authentication
Installieren
ansible-galaxy install StackFocus.postfix-dovecot
Lizenz
Unknown
Downloads
30.7k
Besitzer