postfix
Ansible роль postfix
Установите и настройте Postfix на вашей системе.
GitHub | Версия | Проблемы | Запросы на изменение | Скачивания |
---|---|---|---|---|
Пример Playbook
Этот пример взят из molecule/default/converge.yml
и тестируется при каждом пуше, запросе на изменение и выпуске.
---
- name: Свести воедино
hosts: all
become: true
gather_facts: true
roles:
- role: buluma.postfix
# postfix_relayhost: "[relay.example.com]"
postfix_myhostname: "smtp.example.com"
postfix_mydomain: "example.com"
postfix_myorigin: "example.com"
postfix_mynetworks:
- 127.0.0.0/8
- 192.168.0.0/16
postfix_aliases:
- name: root
destination: [email protected]
# Настройки Ziggo: ("email-address" и "email-password" - это временные данные)
postfix_relayhost: "[smtp.ziggo.nl]:587"
postfix_smtp_sasl_auth_enable: true
postfix_smtp_sasl_password_map: "/etc/postfix/relay_pass"
postfix_smtp_sasl_security_options: ""
postfix_smtp_tls_wrappermode: false
postfix_smtp_tls_security_level: may
postfix_smtp_sasl_password_map_content: |
[smtp.ziggo.nl]:587 email-address:email-password
Машина должна быть подготовлена. В CI это делается с использованием molecule/default/prepare.yml
:
---
- name: Подготовить
hosts: all
become: true
gather_facts: false
roles:
- role: buluma.bootstrap
- role: buluma.core_dependencies
Смотрите также полное объяснение и пример о том, как использовать эти роли.
Переменные роли
Значения по умолчанию для переменных установлены в defaults/main.yml
:
---
# файл по умолчанию для postfix
# Эти настройки обязательны в Postfix.
postfix_myhostname: "{{ ansible_fqdn }}"
postfix_mydomain: "{{ ansible_domain | default('localdomain', true) }}"
postfix_myorigin: "{{ ansible_domain | default('localdomain', true) }}"
# Чтобы "прослушивать" на публичных интерфейсах, установите inet_interfaces на что-то вроде "all" или название интерфейса, например "eth0".
postfix_inet_interfaces: "loopback-only"
# Включите IPv4 и IPv6 при поддержке - если только IPV4, установите в ipv4
postfix_inet_protocols: all
# Установите баннер
postfix_banner: "$myhostname ESMTP $mail_name"
# Назначение говорит Postfix, для каких писем он должен принимать.
postfix_mydestination: $mydomain, $myhostname, localhost.$mydomain, localhost
# Чтобы принимать электронную почту от других машин, установите mynetworks на что-то вроде "- 192.168.0.0/24".
postfix_mynetworks:
- 127.0.0.0/8
# Эти настройки меняют роль сервера Postfix на релейный хост.
# postfix_relay_domains: "$mydestination"
# Если хотите пересылать письма на другой центральный релейный сервер, установите relayhost.
# используйте скобки, чтобы отправить на A-запись relayhost.
# postfix_relayhost: "[relay.example.com]"
# Установите ограничения на получение писем.
postfix_smtpd_recipient_restrictions:
- permit_mynetworks
- permit_sasl_authenticated
- reject_unauth_destination
- reject_invalid_hostname
- reject_non_fqdn_hostname
- reject_non_fqdn_sender
- reject_non_fqdn_recipient
- reject_unknown_sender_domain
- reject_unknown_recipient_domain
- reject_rbl_client sbl.spamhaus.org
- reject_rbl_client cbl.abuseat.org
- reject_rbl_client dul.dnsbl.sorbs.net
- permit
postfix_smtpd_sender_restrictions:
- reject_unknown_sender_domain
# Уровень безопасноти SMTP TLS по умолчанию для клиента Postfix
# Допустимые значения: dane, encrypt, fingerprint, may, none, secure, verify
postfix_smtp_tls_security_level: none
# Чтобы включить spamassassin, убедитесь, что spamassassin установлен,
# (подсказка: роль: buluma.spamassassin) и установите эти две переменные:
# postfix_spamassassin: enabled
# postfix_spamassassin_user: spamd
# Чтобы включить clamav, убедитесь, что clamav установлен,
# (подсказка: роль: buluma.clamav) и установите эту переменную:
# postfix_clamav: enabled
# Вы можете настроить псевдонимы здесь. Обычно перенаправление `root` - это хорошая идея.
# postfix_aliases:
# - name: root
# destination: [email protected]
# Вы можете настроить управление доступом отправителя здесь.
# postfix_sender_access:
# - domain: gooddomain.com
# action: OK
# - domain: baddomain.com
# action: REJECT
# Вы можете настроить управление доступом получателя здесь.
# postfix_recipient_access:
# - domain: gooddomain.com
# action: OK
# - domain: baddomain.com
# action: REJECT
# Вы можете отключить версии SSL/TLS здесь.
# postfix_tls_protocols: '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1'
# Вы можете предоставить шаблон transport_maps Jinja2 здесь
# postfix_transport_maps_template: /path/to/transport.j2
# Вы можете предоставить шаблон header_checks Jinja2 здесь
# postfix_header_checks_template: /path/to/header_checks.j2
# Нужно ли использовать локальную службу biff.
# postfix_biff: true
# С локально отправленной почтой добавьте строку ".$mydomain" к адресам, которые не имеют информации о ".domain"
# postfix_append_dot_mydomain: false
# Базы данных псевдонимов, которые используются для локальной доставки(8)
# postfix_alias_maps: "hash:/etc/aliases"
# Префикс, который агент доставки virtual(8) добавляет ко всем результатам поиска имени из таблицы $virtual_mailbox_maps.
# postfix_virtual_mailbox_base: /var/mail
# Необязательные таблицы поиска со всеми действительными адресами в доменах, которые соответствуют $virtual_mailbox_domains.
# postfix_virtual_mailbox_maps: mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
# Postfix является конечным пунктом для указанного списка доменов; почта доставляется через транспорт доставки $virtual_transport
# postfix_virtual_mailbox_domains: "$virtual_mailbox_maps"
# Postfix является конечным пунктом для указанного списка виртуальных доменных алиасов, то есть для доменов, адреса которых переадресованы на адреса в других локальных или удаленных доменах.
# postfix_virtual_alias_domains: "$virtual_alias_maps"
# Необязательные таблицы поиска, которые алиасируют конкретные адреса электронной почты или домены на другие локальные или удаленные адреса.
# postix_virtual_alias_maps: "$virtual_maps"
# Таблицы поиска с идентификатором пользователя для каждого получателя, которые агент доставки virtual(8) использует при записи в почтовый ящик получателя.
# postfix_virtual_uid_maps: "static:2000"
# Таблицы поиска с идентификатором группы для каждого получателя для доставки в почтовый ящик virtual(8).
# postfix_virtual_gid_maps: "static:2000"
# Включите аутентификацию SASL на SMTP-сервере Postfix.
# postfix_smtpd_sasl_auth_enable: true
# Имя локальной области аутентификации SASL SMTP-сервера Postfix.
# postfix_smtpd_sasl_local_domain: $myhostname
# Опции безопасности SASL для SMTP-сервера Postfix; начиная с Postfix 2.3, список доступных функций зависит от реализации сервера SASL, выбранного с smtpd_sasl_type.
# postfix_smtpd_sasl_security_options: noanonymous
# Сообщите имя пользователя, аутентифицированного с помощью SASL, в заголовке сообщения smtpd(8) Received.
# postfix_smtpd_sasl_authenticated_header: true
# Включите взаимодействие с удаленными SMTP-клиентами, которые реализуют устаревшую версию команды AUTH (RFC 4954).
# postfix_broken_sasl_auth_clients: false
# Файл, содержащий (в формате PEM) сертификаты CA, доверенные для подписи либо сертификатов удаленных SMTP-клиентов, либо промежуточных сертификатов CA.
# postfix_smtpd_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Файл с сертификатом RSA SMTP-сервера Postfix в формате PEM.
# postfix_smtpd_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Локальный файл с сертификатом RSA SMTP-сервера Postfix в формате PEM, который будет скопирован на целевой хост.
# postfix_smtpd_tls_cert_file_source: ./certs/cert.pem
# Файл с закрытым ключом RSA SMTP-сервера Postfix в формате PEM.
# postfix_smtpd_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem
# Локальный файл с закрытым ключом RSA SMTP-сервера Postfix в формате PEM, который будет скопирован на целевой хост.
# postfix_smtpd_tls_key_file_source: ./certs/privkey.pem
# Запросите, чтобы SMTP-сервер Postfix создавал заголовки сообщения Received:, которые содержат информацию о протоколе и шифре, а также о удаленном клиенте SMTP CommonName и издателе сертификата клиента CommonName.
# postfix_smtpd_tls_received_header: true
# Уровень безопасности SMTP TLS по умолчанию для клиента SMTP Postfix; когда указано ненулевое значение, это переопределяет устаревшие параметры smtp_use_tls, smtp_enforce_tls и smtp_tls_enforce_peername.
# postfix_smtpd_tls_security_level: may
# Запросите удаленного клиента SMTP о сертификате клиента.
# postfix_smtpd_tls_ask_ccert: true
# Включите дополнительное журналирование активности TLS на SMTP-сервере Postfix.
# postfix_smtpd_tls_loglevel: 1
# Имя файла, содержащего необязательную кэш-сессию TLS SMTP-сервера Postfix.
# postfix_smtpd_tls_session_cache_database: btree:/var/lib/postfix/smtpd_tls_session_cache
# Файл, содержащий сертификаты CA, доверенные для подписи либо удаленных сертификатов SMTP-сервера, либо промежуточных сертификатов CA.
# postfix_smtp_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem
# Файл с RSA сертификатом клиента SMTP Postfix в формате PEM.
# postfix_smtp_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem
# Файл с закрытым ключом RSA клиента SMTP Postfix в формате PEM.
# postfix_smtp_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem
# Имя файла, содержащего необязательную кэш-сессию TLS клиента SMTP Postfix.
# postfix_smtp_tls_session_cache_database: btree:/var/lib/postfix/smtp_tls_session_cache
# Внешний источник энтропии для псевдослучайного генератора чисел (PRNG) tlsmgr(8).
# postfix_tls_random_source: dev:/dev/urandom
# Протоколы TLS, принимаемые SMTP-сервером Postfix с обязательным шифрованием TLS.
# postfix_smtpd_tls_mandatory_protocols: TLSv1
# Протоколы TLS, которые клиент SMTP Postfix будет использовать с обязательным шифрованием TLS.
# postfix_smtp_tls_mandatory_protocols: TLSv1
# Транспорт доставки почты по умолчанию и следующее направление для окончательной доставки к доменам, перечисленным с $virtual_mailbox_domains.
# postfix_virtual_transport: maildrop1
# Необязательный путь к файлу почтового ящика относительно домашнего каталога локального(8) пользователя.
# postfix_home_mailbox: Maildir/
# Максимальный размер сообщения в байтах, включая информацию об конверте.
# postfix_message_size_limit: 10240000
# Требуется ли, чтобы удаленный клиент SMTP представился с помощью команды HELO или EHLO перед отправкой команды MAIL или других команд, требующих подтверждения EHLO.
# postfix_smtpd_helo_required: false
# Временная единица, в которой рассчитываются коэффициенты соединения клиентов и другие коэффициенты.
# postfix_anvil_rate_time_unit: 60s
# Максимальное количество попыток подключения клиента к этой службе за единицу времени.
# postfix_smtpd_client_connection_rate_limit: 10
# Сколько одновременных подключений любому клиенту разрешено делать к этой службе.
# postfix_smtpd_client_connection_count_limit: 10
# Рассматривать сообщение о возврате как недоставленное, когда доставка завершается с временной ошибкой, а время в очереди достигло лимита bounce_queue_lifetime.
# postfix_bounce_queue_lifetime: 5d
# Местоположение файлов README Postfix, которые описывают, как создать, настроить или использовать определенную подсистему или функцию Postfix.
# postfix_readme_directory: /usr/share/doc/postfix
# Местоположение файлов HTML Postfix, которые описывают, как создать, настроить или использовать определенную подсистему или функцию Postfix.
# postfix_html_directory: /usr/share/doc/postfix
# Вы можете изменить порт, на котором Postfix прослушивает.
# Postfix использует `/etc/services` для сопоставления имен служб с номерами портов, такими как `2525`.
# Поэтому укажите номер порта или имя службы, например, `smtp`.
postfix_smtp_listen_port: smtp
postfix_smtp_sasl_auth_enable: false
postfix_smtp_sasl_password_map: ""
postfix_smtp_sasl_security_options: ""
postfix_smtp_tls_wrappermode: false
postfix_smtp_sasl_password_map_content: ""
Требования
- Пакеты pip, указанные в requirements.txt.
Состояние используемых ролей
Для подготовки системы используются следующие роли. Вы можете подготовить свою систему другим способом.
Требование | GitHub | Версия |
---|---|---|
buluma.bootstrap | ||
buluma.core_dependencies |
Контекст
Эта роль является частью множества совместимых ролей. Посмотрите документацию этих ролей для получения дополнительной информации.
Вот обзор связанных ролей:
Совместимость
Эта роль тестировалась на следующих образах контейнеров:
контейнер | теги |
---|---|
Amazon | Кандидат |
EL | 9, 8 |
Debian | все |
Fedora | все |
Ubuntu | все |
Kali | все |
Минимальная версия Ansible, требуемая для работы, - 2.12, тестирование проводилось на:
- предыдущей версии.
- текущей версии.
- версии разработки.
Если вы нашли проблемы, пожалуйста, зарегистрируйте их на GitHub
Журнал изменений
Лицензия
Информация об авторе
Install and configure postfix on your system.
ansible-galaxy install buluma/ansible-role-postfix