postfix
Требования
- Установлен Ansible:
sudo apt install python3
python3 -m ensurepip --upgrade
pip3 install ansible
- Установлена эта роль:
ansible-galaxy install pimvh.postfix
Обязательные переменные
Просмотрите переменные, указанные в настройках по умолчанию. Описание переменных находится в аргументах спецификации в файле meta/main.yaml. Переменные, передаваемые в эту роль, проверяются спецификацией аргументов во время выполнения.
Пример плейбука
Простой способ запустить эту роль на хосте:
- hosts:
- foo
vars:
postfix_ipv4: << Укажите IPv4-адрес почтового сервера Postfix здесь >>
postfix_ipv6: << Укажите IPv6-адрес почтового сервера Postfix здесь >>
postfix_myhostname: "<< Укажите доменное имя Postfix здесь >>"
postfix_mydomain: "<< Укажите домен Postfix здесь, по умолчанию совпадает с myhostname >>"
postfix_mynetworks:
- 127.0.0.0/8
- "::1/128" # Вам не нужно заключать IPv6-адреса в скобки, это обрабатывается фильтрами
# Добавьте дополнительные сети при необходимости
postfix_virtual_alias_domains: [] # Добавьте виртуальные домены-алиасы при необходимости (см. meta/main.yaml для структуры)
postfix_relay_domains: [] # Добавьте домены ретрансляции при необходимости (см. defaults/main.yaml для структуры)
postfix_aliases: # Добавьте алиасы пользователей при необходимости
- user: root
alias: postmaster
# также может быть списком пользователей
# - users:
# - fred
# - foo
# - bar
# alias: что-то
postfix_virtual_aliases: [] # Добавьте виртуальные алиасы при необходимости (см. meta/main.yaml для структуры)
# Вероятно, вы можете пропустить остальные переменные
# postfix_install: true
# postfix_dir: /etc/postfix
# postfix_dkim_enabled: true # DKIM по умолчанию включен
# postfix_dkim_keys:
# default:
# mail: "*"
# Размещение файлов DKIM в файловой системе
# postfix_dkim_keytable: /etc/opendkim/keytable
# postfix_dkim_signingtable: /etc/opendkim/signingtable
# postfix_dkim_trustedhosts: "/etc/opendkim/trustedhosts"
# Путь к сертификату основан на стандартном месте certbot (вы можете запустить роль pimvh.certbot для получения сертификатов)
# postfix_smtpd_tls_cert_file: "/etc/letsencrypt/live/{{ postfix_mydomain }}/fullchain.pem"
# postfix_smtpd_tls_key_file: "/etc/letsencrypt/live/{{ postfix_mydomain }}/privkey.pem"
roles:
- pimvh.postfix
Вы, вероятно, сэкономите время на рефакторинг, если не будете задавать переменные в строке, а сделаете это на основе хостов и/или групп. Однако это зависит от вашей конкретной ситуации. Ознакомьтесь с рекомендуемым набором плейбуков Ansible для этого.
Кратко - Что произойдет, если я запущу это
- проверить, все ли переменные в порядке
- установить Postfix
- установить и настроить Amavis
- установить и настроить OpenDKIM
- установить и настроить OpenDMARC
- установить и настроить Dovecot с системными пользователями и виртуальным почтовым каталогом
- настроить mailutils (установлен этой ролью, от которой это зависит)
Что эта роль не делает
Настройка межсетевого экрана
Эта роль не выполняет настройку межсетевого экрана, поскольку у вас, вероятно, есть специфические требования для этого. Вы, скорее всего, не хотите открывать порт IMAP для всего интернета, если это можно избежать. Так что будьте осторожны!
Настройка базы данных
Я ещё не настроил использование базы данных в качестве резервного варианта для Postfix. Если вас интересует, не стесняйтесь внести свой вклад.
Устранение неполадок
Эта роль проверяет переданные переменные. Если вы:
- видите проблемы с спецификацией аргумента, вероятно, вы допустили ошибку, передавая переменные в эту роль.
- сталкиваетесь с проблемами при запуске этого плейбука, не стесняйтесь подробно описать вашу проблему и создать задачу.
Будущие улучшения
Все еще есть множество вещей, которые можно улучшить в этой роли. Вот что я подумываю добавить:
- Добавить инструмент для парсинга DMARC
- Добавить лучшую базу данных для сервера Postfix, например, вместо простой файловой системы.
Если у вас есть другие предложения по улучшению, не стесняйтесь создать задачу.
Источники
role to configure postfix, with ClamAV, Amavis, DKIM, SPF and DMARC
ansible-galaxy install pimvh/postfix