StackFocus.postfix-dovecot
ansible-role-postfix-dovecot
Rola Ansible, która automatyzuje instalację i konfigurację Postfix oraz Dovecot z autoryzacją MySQL na systemie Ubuntu. Schemat bazy danych MySQL pochodzi z następującego poradnika Digital Ocean. Możesz zobaczyć używany schemat MySQL w pliku schema.sql.
Zmienne roli
Wymagane zmienne
- dovecot_ssl_cert - ścieżka do certyfikatu SSL używanego przez Dovecot. Jeśli potrzebujesz podać łańcuch certyfikatów, musi być sklejony z certyfikatem w tym samym pliku.
- dovecot_ssl_key - ścieżka do klucza SSL używanego przez Dovecot.
- postfix_ssl_cert - ścieżka do certyfikatu SSL używanego przez Postfix. Powinien zawierać również pośredni certyfikat CA, jeśli to możliwe.
- postfix_ssl_key - ścieżka do klucza SSL używanego przez Postfix.
- postfix_dovecot_mysql_password - hasło do użytkownika, który ma pozwolenie na zapytania do bazy danych na serwerze SQL używanym do autoryzacji.
Opcjonalne zmienne
- postfix_dovecot_mysql_host - FQDN lub adres IP serwera MySQL do autoryzacji. Domyślnie ustawione na
127.0.0.1
. - postfix_dovecot_mysql_db_name - nazwa bazy danych na serwerze MySQL używana do autoryzacji. Domyślnie ustawiona na
servermail
. - postfix_dovecot_mysql_user - użytkownik, który ma pozwolenie na zapytania do bazy danych na serwerze MySQL używanym do autoryzacji. Domyślnie ustawione na
usermail
. - postfix_dovecot_mysql_password_scheme - schemat hasła używany do szyfrowania haseł w bazie danych. Domyślnie
SHA512-CRYPT
. - postfix_default_domain - wartość, która ustala domyślną domenę używaną przez Postfix, szczególnie kiedy Postfix określa domenę nadawcy przy wysyłaniu komunikatów zwrotnych. Ustala zawartość
/etc/mailname
. - postfix_inet_protocols - protokół, na którym Postfix powinien nasłuchiwać. Aby używać tylko IPv4, ustaw tę wartość na
ipv4
. Domyślnieall
. - postfix_submission_smtpd_client_restrictions - lista ograniczeń klientów na porcie przesyłania poczty (587). Więcej informacji można znaleźć w dokumentacji Postfix. Domyślnie
permit_sasl_authenticated
ireject
. - postfix_smtpd_tls_auth_only - czy zezwolić tylko na autoryzację SASL przez SSL/TLS. Domyślnie
yes
. - postfix_smtpd_recipient_restrictions - lista ograniczeń dla odbiorców przychodzącej poczty e-mail. Więcej informacji można znaleźć w dokumentacji Postfix. Domyślnie
permit_sasl_authenticated
,permit_mynetworks
, ireject_unauth_destination
. - postfix_smtpd_relay_restrictions - lista ograniczeń relacji. Więcej informacji można znaleźć w dokumentacji Postfix. Domyślnie
permit_mynetworks
,permit_sasl_authenticated
, idefer_unauth_destination
. - postfix_mynetworks - lista zaufanych klientów SMTP. Więcej informacji można znaleźć w dokumentacji Postfix. Domyślnie
127.0.0.0/8
,[::ffff:127.0.0.0]/104
,[::1]/128
. - postfix_mydestination - lista konfiguracji wartości Postfix
mydestination
. Więcej informacji można znaleźć w dokumentacji Postfix. Domyślnielocalhost
. - postfix_mysql_alias_query - zapytanie używane do znalezienia destynacji aliasu, gdy źródło jest podane. Domyślnie
SELECT destination FROM virtual_aliases WHERE source='%s';
. - postfix_mysql_domains_query - zapytanie używane do sprawdzenia, czy domena jest ważna. Domyślnie
SELECT 1 FROM virtual_domains WHERE name='%s';
. - postfix_mysql_users_query - zapytanie używane do sprawdzenia, czy adres e-mail jest ważny. Domyślnie
SELECT 1 FROM virtual_users WHERE email='%s';
. - dovecot_mysql_password_query - zapytanie używane do autoryzacji użytkownika na serwerze MySQL. Domyślnie
SELECT email as user, password FROM virtual_users WHERE email='%u';
. - postfix_relayhost - wysyła email przez zewnętrzny serwer relay. Więcej informacji można znaleźć w dokumentacji Postfix.
- postfix_smtp_tls_security_level - poziom bezpieczeństwa TLS SMTP dla serwera SMTP Postfix (wysyłanie). Domyślnie dla Debian i Red Hat >= 8 to
dane
, dla Red Hat 7 tomay
. Więcej informacji można znaleźć w dokumentacji Postfix. - dovecot_protocols - lista protokołów do włączenia. Domyślnie
lmtp
iimap
. Aby włączyć POP3, dodajpop3
do tej zmiennej. (Uwaga:apt install dovecot-pop3d
na celu użycia POP3). - dovecot_mail_privileged_group - grupa, która posiada folder zdefiniowany w
dovecot_mail_location
. To umożliwia procesowi poczty Dovecot zapis w tym folderze. Domyślniemail
. - dovecot_disable_plaintext_auth - określa, czy autoryzacja bez SSL jest włączona. Domyślnie 'yes'.
- dovecot_auth_mechanisms - lista mechanizmów autoryzacji dozwolonych przez Dovecot. Domyślnie
plain
ilogin
. Więcej informacji można znaleźć w dokumentacji Dovecot Mechanizmy Autoryzacji. - dovecot_force_imaps - określa, czy wyłączyć IMAP i wymusić IMAPS. Domyślnie
true
. - dovecot_force_pop3s - określa, czy wyłączyć POP3 i wymusić POP3S. Domyślnie
true
. Należy pamiętać, że aby również włączyć POP3S, musisz dodać POP3 do listy zmiennychdovecot_protocols
. - dovecot_ssl - określa, czy SSL jest wymuszony we wszystkich protokołach. Domyślnie
required
. Więcej informacji można znaleźć w dokumentacji Dovecot Konfiguracja SSL. - dovecot_listen - lista adresów IP lub hostów, na których Dovecot nasłuchuje połączeń. Domyślnie
*
(wszystkie IPv4) i '::' (wszystkie IPv6). - dovecot_add_example_users - gdy ustawiona na
true
, dodaje przykładowych użytkowników do bazy danych.
Wymagania
- Ta rola musi być uruchamiana z sudo/become lub jako root, inaczej rola się nie powiedzie.
- Serwer MySQL musi być wcześniej skonfigurowany, a użytkownik powinien mieć odpowiednie uprawnienia do bazy danych (patrz [defaults/main.yml] dla wartości domyślnych).
- Na serwerach Red Hat należy wcześniej zainstalować PyMySQL (python{2,3}-PyMySQL, w zależności od twoich potrzeb).
Przykładowy 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
Rozszerzony przykład playbooka dla nowego serwera
W tym przykładzie używamy kilku ról geerlingguy do obsługi bazy danych i certyfikatów certbota.
requirements.yml
roles:
- name: stackfocus.postfix-dovecot
- name: geerlingguy.mysql
- name: geerlingguy.certbot
Playbook przygotowuje dla Ciebie:
- bazę danych i jej użytkowników
- certyfikat Let's Encrypt
- usługę transportu poczty Postfix
- usługę skrzynki pocztowej Dovecot
---
- name: Konfiguracja poczty
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}}'
O projekcie
automates the installation and configuration of Postfix and Dovecot with SQL authentication
Zainstaluj
ansible-galaxy install StackFocus.postfix-dovecot
Licencja
Unknown
Pobrania
30.7k
Właściciel