mailserver

Ansible роль для настройки почтового сервера

Эта ansible роль устанавливает почтовый сервер, как описано в этом блоге Томаса Лейстнера.

SSL

SSL сертификаты и ключи ожидаются по пути /etc/myssl/$FQDN.crt и /etc/myssl/$FQDN.key на почтовом хосте (где $FQDN - это полное доменное имя хоста). Это можно изменить, установив переменную {{ ssl_directory }} на другой путь. Если этих файлов не существует, будет создан самоподписанный сертификат для первоначального использования, но их не рекомендуется использовать в производственной среде. Если вам нужен сертификат, подписанный доверенным центром сертификации, попробуйте Let's Encrypt.

Переменные

Следующие переменные необходимо установить для использования этой роли:

Переменная Описание
dbserver_root_pw пароль для пользователя root базы данных
mailserver_sql_vmail_password пароль для пользователя vmail в базе данных
milter_sql_spamass_password пароль для пользователя spamassassin в базе данных
mailserver_hostname имя хоста почтового сервера (например, mail)
mailserver_domain домен почтового сервера (например, example.com)

Существует много других переменных для настройки установки почтового сервера, вы можете найти их в файле defaults/main.yml этой роли и её зависимостей.

Пароли

Вместо того чтобы сохранять пароли в текстовом виде в vars/vars.yml, рассмотрите возможность использования ansible vault.

Для быстрого начала работы с хранилищем, выполните ansible-vault create vars/vault.yml и заполните его так:

mailserver_sql_vmail_password: foo
milter_sql_spamass_password: bar
dbserver_root_pw: baz

(Замените foo, bar и baz на безопасные пароли)

Теперь, когда вы запускаете плейбук с этой ролью, не забудьте использовать --ask-vault-pass с ansible-playbook.

Развертывание

Перед развертыванием вы должны установить пароли для пользователей базы данных (см. выше). Кроме того, этот плейбук предполагает стандартную установку Ubuntu Server 16.04 и не тестировался на других дистрибутивах.

Пример плейбука может выглядеть следующим образом:

---
- hosts: all
  become: yes
  roles:
    - ROCK5GmbH.mailserver
  vars:
    - vault.yml

Чтобы получить эту роль и все её зависимости, вы можете использовать ansible galaxy:

ansible-galaxy install ROCK5GmbH.mailserver

Для развертывания на одном хосте достаточно выполнить

ansible-playbook --ask-vault-pass -i $HOST, playbook.yml

где $HOST - это IP-адрес или URL сервера.

Если вы хотите развернуть на нескольких хостах, рекомендуется использовать инвентари, чтобы вы могли устанавливать переменные для каждого хоста, сохраняя при этом общие переменные.

После развертывания почтовый сервер будет почти готов к работе. Всё, что осталось сделать - это добавить реальные домены и пользователей в вашу SQL базу данных. Сначала используйте doveadm pw -s SHA512-CRYPT для генерации хеша пароля для пользователя. Чтобы добавить пользователя, войдите на свой сервер и подключитесь к базе данных через

mysql -u root -p

и введите пароль root для SQL базы данных. Теперь добавьте домен (например: mysystems.tld) и пользователя (user1):

use vmail;
insert into domains (domain) values ('mysystems.tld');
insert into accounts (username, domain, password, quota, enabled, sendonly) values ('user1', 'mysystems.tld', '{SHA512-CRYPT}$kgid87hdenss', 2048, true, false);

Дальнейшая настройка

Эта настройка также позволяет использовать политики TLS в SQL базе данных, позволяя вам устанавливать специфические политики TLS для определённых доменов. Вы можете добавить политику через

insert into tlspolicies (domain, policy, params) values ('gmx.de', 'secure', 'match=.gmx.net');

Различные возможные политики перечислены и объяснены здесь. (match=.gmx.net гарантирует, что postfix будет проверять сертификат для gmx.net, так как у них нет сертификата для gmx.de)

Вам также может быть нужно добавить ваш новый почтовый сервер в вашу DNS (записи A(AAA) и MX), а также добавить запись для SPF и DKIM.

О проекте

This role installs a mailserver with Postfix, Dovecot, Spamassassin, Amavis, ClamAV and a database backend.

Установить
ansible-galaxy install ROCK5GmbH/ansible-mailserver
Лицензия
mit
Загрузки
128
Владелец
Sophisticated Web Applications & Plattform Operations