postfix-dovecot
ansible-role-postfix-dovecot
Ansible-роль, которая автоматизирует установку и настройку Postfix и Dovecot с аутентификацией MySQL на Ubuntu. Схема MySQL взята из следующего урока Digital Ocean. Вы можете посмотреть схему MySQL в schema.sql.
Переменные роли
Обязательные переменные
- dovecot_ssl_cert - путь к SSL-сертификату, используемому Dovecot. Обратите внимание, что если вам нужно предоставить цепочку сертификатов, она должна быть объединена с сертификатом в одном файле.
- dovecot_ssl_key - путь к SSL-ключу, используемому Dovecot.
- postfix_ssl_cert - путь к SSL-сертификату, используемому Postfix. Если это применимо, также должна включаться промежуточная CA.
- postfix_ssl_key - путь к SSL-ключу, используемому Postfix.
- postfix_dovecot_mysql_password - пароль пользователя, который имеет разрешение на запрос к базе данных на сервере SQL, используемом для аутентификации.
Необязательные переменные
- postfix_dovecot_mysql_host - полное доменное имя (FQDN) или IP-адрес сервера MySQL для аутентификации. По умолчанию используется
127.0.0.1
. - postfix_dovecot_mysql_db_name - имя базы данных на сервере MySQL, используемое для аутентификации. По умолчанию используется
servermail
. - postfix_dovecot_mysql_user - пользователь, который имеет разрешение на запрос к базе данных на сервере MySQL, используемом для аутентификации. По умолчанию используется
usermail
. - postfix_dovecot_mysql_password_scheme - схема паролей, используемая для шифрования паролей в базе данных. По умолчанию используется
SHA512-CRYPT
. - postfix_default_domain - значение для установки домена по умолчанию, используемого Postfix, особенно когда Postfix определяет домен отправителя при отправке сообщений об ошибках. Устанавливает содержимое
/etc/mailname
. - postfix_inet_protocols - протокол, на котором должен слушать Postfix. Чтобы использовать только IPv4, установите это значение в
ipv4
. По умолчанию используетсяall
. - postfix_submission_smtpd_client_restrictions - список ограничений для клиентов на порту отправки почты (587). Для получения дополнительной информации посетите документацию Postfix. По умолчанию используется
permit_sasl_authenticated
иreject
. - postfix_smtpd_tls_auth_only - позволяет ли только аутентификацию SASL через SSL/TLS. По умолчанию используется
yes
. - postfix_smtpd_recipient_restrictions - список ограничений для получателей входящей почты. Для получения дополнительной информации посетите документацию Postfix. По умолчанию используется
permit_sasl_authenticated
,permit_mynetworks
иreject_unauth_destination
. - postfix_smtpd_relay_restrictions - список ограничений для реле. Для получения дополнительной информации посетите документацию Postfix. По умолчанию используется
permit_mynetworks
,permit_sasl_authenticated
иdefer_unauth_destination
. - postfix_mynetworks - список доверенных SMTP-клиентов. Для получения дополнительной информации посетите документацию Postfix. По умолчанию используется
127.0.0.0/8
,[::ffff:127.0.0.0]/104
,[::1]/128
. - postfix_mydestination - список для значения конфигурации Postfix
mydestination
. Для получения информации посмотрите документацию Postfix. По умолчанию используетсяlocalhost
. - postfix_mysql_alias_query - запрос, используемый для нахождения назначения алиаса при заданном источнике. По умолчанию используется
SELECT destination FROM virtual_aliases WHERE source='%s';
. - postfix_mysql_domains_query - запрос, используемый для определения действительности домена. По умолчанию используется
SELECT 1 FROM virtual_domains WHERE name='%s';
. - postfix_mysql_users_query - запрос, используемый для определения действительности адреса электронной почты. По умолчанию используется
SELECT 1 FROM virtual_users WHERE email='%s';
. - dovecot_mysql_password_query - запрос, используемый для аутентификации пользователя на сервере MySQL, используемом для аутентификации. По умолчанию используется
SELECT email as user, password FROM virtual_users WHERE email='%u';
. - postfix_relayhost - отправляет электронную почту через вышестоящий реле-хост. Для получения дополнительной информации посетите документацию Postfix.
- postfix_smtp_tls_security_level - уровень безопасности SMTP TLS для SMTP-сервера Postfix (отправка). По умолчанию для Debian и Red Hat >= 8 используется
dane
, для Red Hat 7 -may
. Для получения дополнительной информации посетите документацию Postfix. - dovecot_protocols - список протоколов, которые должны быть включены. По умолчанию используются
lmtp
иimap
. Чтобы включить POP3, добавьтеpop3
в эту переменную. (заметим: нужно выполнитьapt install dovecot-pop3d
на цели для использования pop3) - dovecot_mail_privileged_group - группа, владеющая папкой, определенной в
dovecot_mail_location
. Это дает процессу почты Dovecot возможность записывать в эту папку. По умолчанию используетсяmail
. - dovecot_disable_plaintext_auth - определяет, разрешена ли аутентификация без SSL. По умолчанию используется 'yes'.
- dovecot_auth_mechanisms - список механизмов аутентификации, разрешенных Dovecot. По умолчанию используются
plain
иlogin
. Для получения дополнительной информации ознакомьтесь с документацией Dovecot по механизмам аутентификации. - dovecot_force_imaps - определяет, нужно ли отключить IMAP и заставить использовать IMAPS. По умолчанию используется
true
. - dovecot_force_pop3s - определяет, нужно ли отключить POP3 и заставить использовать POP3S. По умолчанию используется
true
. Обратите внимание, что для включения POP3S, необходимо добавить pop3 в список переменнойdovecot_protocols
. - dovecot_ssl - определяет, будет ли SSL применяться ко всем протоколам. По умолчанию используется
required
. Для получения дополнительной информации ознакомьтесь с документацией Dovecot по настройкам SSL. - dovecot_listen - список IP-адресов или хостов, на которых Dovecot слушает соединения. По умолчанию используется
*
(все IPv4) и '::' (все IPv6). - dovecot_add_example_users - при установке в
true
добавляет примерные учетные записи в базу данных.
Требования
- Эта роль должна выполняться с использованием sudo/become или от имени root, иначе роль завершится с ошибкой.
- Сервер MySQL должен быть предварительно настроен, и у пользователя должны быть соответствующие разрешения к базе данных (см. [defaults/main.yml] для значений по умолчанию).
- На серверах Red Hat необходимо предварительно установить PyMSQL (python{2,3}-PyMySQL, что вам более подходит).
Пример плейбука
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
Расширенный пример плейбука для нового сервера
В этом примере мы используем некоторые роли geerlingguy для обработки базы данных и сертификатов certbot.
requirements.yml
roles:
- name: stackfocus.postfix-dovecot
- name: geerlingguy.mysql
- name: geerlingguy.certbot
Плейбук подготавливает для вас:
- базу данных и ее пользователей
- сертификат Let's Encrypt
- службу пересылки почты postfix
- службу почтового ящика dovecot
---
- name: Настройка почты
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}}'
О проекте
automates the installation and configuration of Postfix and Dovecot with SQL authentication
Установить
ansible-galaxy install StackFocus/ansible-role-postfix-dovecot
Лицензия
Unknown
Загрузки
30682
Владелец