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 dies all.
  • 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 und reject.
  • 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 und reject_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 und defer_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 dies localhost.
  • 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 es may. Für weitere Informationen besuchen Sie die Postfix-Dokumentation.
  • dovecot_protocols - eine Liste von aktivierten Protokollen. Standardmäßig sind dies lmtp und imap. Um POP3 zu aktivieren, fügen Sie pop3 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 dies mail.
  • 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 und login. 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 der dovecot_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