Источник, спасибо автору.
- Homepage: postfix-policyd-spf-python
- Устанавливаем необходимые пакеты:
# aptitude install postfix-policyd-spf-python
- Добавляем в /etc/postfix/main.cf
policy-spf_time_limit = 3600s
Далее ищем объявление smtpd_recipient_restrictions и добавляем в него (после reject_unauth_destination) строку check_policy_service unix:private/policy-spf.
... reject_unauth_destination check_recipient_access hash:/etc/postfix/roleaccount_exceptions reject_non_fqdn_hostname check_helo_access pcre:/etc/postfix/pcre_helo_checks.cf check_sender_mx_access cidr:/etc/postfix/cidr_mx_access check_policy_service unix:private/policy-spf permit
- Переходим к файлу /etc/postfix/master.cf: в него добавляем следующую строку:
policy-spf unix - n n - 0 spawn user=nobody argv=/usr/bin/policyd-spf /etc/postfix-policyd-spf-python/policyd-spf.conf
- Дополнительные настройки в файле /etc/postfix-policyd-spf-python/policyd-spf.conf и описания настроек в файле policyd-spf.conf.commented.
- policyd-spf.conf
# For a fully commented sample config file see policyd-spf.conf.commented debugLevel = 1 # Этот параметр определяет, отбрасывать ли действительно письма, # если они нарушают SPF, или просто писать об этом в логи и пропускать defaultSeedOnly = 1 HELO_reject = SPF_Not_Pass # SPF_Not_Pass = # Отбрасываем все сообщения, кроме: # 1. которые прошли SPF-валидацию # 2. В домене нет SPF записи # 3. Произошла временная ошибка (DNS упал?) Mail_From_reject = Fail PermError_reject = False # При наличии ошибок при проверке пропускаем почту TempError_Defer = False # перечисляйте IPs без пробелов skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1,10.26.95.0/24 # Domain_Whitelist: List of domains whose sending IPs (defined by passing # their SPF check should be whitelisted from SPF. # Example (default is no domain whitelist): Domain_Whitelist = example1.com,example2.com
man policyd-spf.conf
# service postfix restart