freebsd_mailserver
freebsd_mailserver
Роль Ansible. FreeBSD. Установка и настройка Postfix и Dovecot2.
Не стесняйтесь делиться своим мнением и сообщать о проблемах.
Требования и зависимости
Роли
Роли не указаны в мета-файле. Установите их вручную.
- vbotka.ansible_lib Библиотека задач Ansible.
Коллекции
Ниже перечисленные коллекции должны входить в стандартную установку Ansible. При необходимости установите их вручную.
- community.crypto
- community.general
Рекомендуется
- vbotka.freebsd_mailserver_spamassassin
- vbotka.freebsd-mailserver_sieve
- vbotka.freebsd_mailserver_roundcube
Переменные
Смотрите значения по умолчанию и примеры в vars.
Рабочий процесс
- Измените оболочку на /bin/sh, если это необходимо
shell> ansible mailserver -e 'ansible_shell_type=csh ansible_shell_executable=/bin/csh' -a 'sudo pw usermod freebsd -s /bin/sh'
- Установите роли
shell> ansible-galaxy role install vbotka.freebsd_mailserver
shell> ansible-galaxy role install vbotka.ansible_lib
По желанию, установите роли
shell> ansible-galaxy role install vbotka.freebsd_mailserver_sieve
shell> ansible-galaxy role install vbotka.freebsd_mailserver_spamassassin
- При необходимости установите коллекции
shell> ansible-galaxy collection install community.crypto
shell> ansible-galaxy collection install community.general
Подгоните переменные под свои нужды.
Сгенерируйте параметры Diffie-Hellman для OpenSSL
По умолчанию файл dovecot_ssl_dh создается модулем Ansible openssl_dhparam
dovecot_ssl_dh_generate: true
dovecot_ssl_dh_cmd_generate: false
Можно использовать команду dovecot_ssl_dh_cmd для создания dovecot_ssl_dh
dovecot_ssl_dh_generate: false
dovecot_ssl_dh_cmd_generate: true
dovecot_ssl_dh_cmd: "openssl dhparam -out {{ dovecot_ssl_dh }} {{dovecot_ssl_dh_bits }}"
Опции dovecot_ssl_dh_generate (по умолчанию: true) и dovecot_ssl_dh_cmd_generate (по умолчанию: false) являются взаимоисключающими. Если обе опции равны false, используется файл dovecot_ssl_dh_path (по умолчанию: files/dh.pem). Этот файл предоставляется ролью только для тестирования. Никогда не используйте его в продуктивной среде.
Генерация файла с параметрами Диффи-Хеллмана может занять много времени. Например, параметры 4096 бит занимают около 40 минут на Intel(R) Core(TM) i5-8200Y CPU @ 1.30GHz. Хорошей идеей будет генерировать файл отдельно, чтобы ускорить настройку.
dovecot_ssl_dh_generate: false
dovecot_ssl_dh_cmd_generate: false
dovecot_ssl_dh_path: <путь-к-сгенерированному-файлу-Diffie-Hellman>
- Создайте плейбук и инвентарь
shell> cat freebsd-mailserver.yml
- hosts: mailserver
roles:
- vbotka.freebsd_mailserver
shell> cat hosts
[mailserver]
<mailserver-ip-or-fqdn>
[mailserver:vars]
ansible_connection=ssh
ansible_user=freebsd
ansible_become=true
ansible_become_method=sudo
ansible_python_interpreter=/usr/local/bin/python3.9
ansible_perl_interpreter=/usr/local/bin/perl
- Проверьте синтаксис
shell> ansible-playbook freebsd-mailserver.yml --syntax-check
- Установите пакеты
- Установите пакеты из роли vbotka.freebsd_mailserver
shell> ansible-playbook freebsd-mailserver.yml -t fm-packages -e fm_install=true
- Если включен sieve
freebsd_mailserver_dovecot_protocols: imap pop3 lmtp sieve
установите пакеты из роли vbotka.freebsd_mailserver_sieve
shell> ansible-playbook freebsd-mailserver-sieve.yml -t fm_ds_packages -e fm_ds_install=true
- Если включен spamassassin
postfix_master_cf_service_def: "inet n - - - - smtpd -o content_filter=spamfilter"
установите пакеты из роли vbotka.freebsd_mailserver_spamassassin
shell> ansible-playbook freebsd-mailserver-spamassassin.yml -t fm_sa_packages -e fm_sa_install=true
- Создайте конфигурацию по умолчанию для Dovecot
shell> ansible-playbook freebsd-mailserver.yml -t dovecot_example_conf
- Проведите пробный запуск и покажите изменения
shell> ansible-playbook freebsd-mailserver.yml --check --diff
- Установите и настройте почтовый сервер
shell> ansible-playbook freebsd-mailserver.yml
- Рассмотрите возможность тестирования почтового сервера на http://mxtoolbox.com/
Режим проверки
Создайте конфигурационные файлы по умолчанию для Dovecot, чтобы избежать ошибок о недостающих файлах
shell> ansible-playbook freebsd-mailserver.yml -t dovecot_example_conf
Затем выполните режим проверки
shell> ansible-playbook freebsd-mailserver.yml --check
Ansible lint
Используйте конфигурационный файл .ansible-lint.local при выполнении ansible-lint. Некоторые правила могут быть отключены, а некоторые предупреждения могут быть проигнорированы. Смотрите заметки в конфигурационном файле.
shell> ansible-lint -c .ansible-lint.local
Ссылки
- Руководство FreeBSD: 31.5. Изменение почтового агента передачи
- Руководство FreeBSD: 31.7.4. SMTP Аутентификация
- SMTP почтовый сервер с Postfix
- FreeBSD-Postfix-MySQL-SpamAssassin-Maia-Virtual Установка
- Настройка почтового сервера с OpenSMTPD, Dovecot и Rspamd
- Документация Postfix
- SMTP реле и управление доступом Postfix
- SASL Howto для Postfix
- Аутентификация SASL в клиенте Postfix SMTP/LMTP
- postfix-logwatch - Парсер логов Postfix и утилита анализа
- Руководство Dovecot
- OpenDKIM + SPF Форум FreeBSD
- OpenDKIM Вики Debian
- OpenDKIM Вики ArchLinux
Лицензия
Информация об авторе
ansible-galaxy install vbotka/ansible-freebsd-mailserver