Назад | Перейти на главную страницу

Внесение в белый список домена Postfix в сочетании с аутентификацией отправителя

Я хотел бы внести несколько доменов в белый список в моей конфигурации Postfix таким образом, чтобы все электронные письма из этих доменов принимались, если они правильно аутентифицированы с помощью SPF и / или DKIM, если он будет использоваться этим доменом. Это означает, что электронные письма, приходящие с этих доменов, должны не подвергаться обычному процессу DNSBL и серых списков, только проверке SPF и DKIM.

Прямо сейчас мне удалось сохранить электронные письма, приходящие с этих доменов из milter серых списков, настроив sender_access файл и используя postmap утилита для преобразования его в подходящую хеш-базу данных.

main.cf:

...
parent_domain_matches_subdomains = yes
smtpd_recipient_restrictions =
  permit_mynetworks
  permit_sasl_authenticated
  reject_rbl_client zen.spamhaus.org
  reject_unauth_destination
  check_sender_access hash:/etc/postfix/sender_access
  check_policy_service unix:private/tumgreyspf
...

sender_access:

domain1.com OK
domain2.net OK

Я узнал о постэкран а также нашел аккуратный маленький пример, но похоже, что это мера только для DNSBL и лишь немного полезна в моем случае.

Если ваше ограничение не может применяться глобально ко всем случаям, вы можете использовать Классы ограничений Postfix. Идея состоит в том, чтобы исключить некоторые домены для разделения ограничений.

Я переупорядочиваю вашу текущую конфигурацию по следующим принципам: «легкие проверки должны выполняться перед тяжелыми». Итак, я предлагаю конфигурацию стать

smtpd_recipient_restrictions =
  permit_mynetworks
  permit_sasl_authenticated
  reject_unauth_destination
  check_sender_access hash:/etc/postfix/sender_access
  reject_rbl_client zen.spamhaus.org    
  check_policy_service unix:private/tumgreyspf

Сейчас, классы ограничения постфикса следует применять через эту строку check_sender_access hash:/etc/postfix/sender_access. Перед этим определите smtpd_restriction_classes параметр в main.cf.

smtpd_restriction_classes = whitelistdomain
whitelistdomain = 
  check_policy_service unix:private/tumgreyspf

Поэтому содержание /etc/postfix/sender_access стал

example.com  whitelistdomain
example.org  whitelistdomain

Логика такова, что postfix будет применять ограничения по умолчанию (allow_mynetwork, permission_sasl_authenticated, reject_unauth_destination) на весь домен. Тогда, поскольку example.com и example.org в whitelistdomain класс, postfix выполняет только check_policy_service unix: частный / tumgreyspf. Другие домены должны пройти ограничения по умолчанию.


Теперь проблема в том, как настроить tumgreyspf чтобы исключить эти домены из серых списков.

На основе эта страница, здесь шаг для исключения серый список. Обратите внимание, что этот путь применяется к Debian. В другой системе может быть другой путь.

Сначала создайте папку для каждого домена

mkdir -p /var/lib/tumgreyspf/config/envelope_sender/example.com/
mkdir -p /var/lib/tumgreyspf/config/envelope_sender/example.org/

Создать конфигурацию файла в /etc/tumgreyspf/disablegreylist.conf

SPFSEEDONLY = 0
GREYLISTTIME = 600
CHECKERS = spf
OTHERCONFIGS =

Теперь создайте символическую ссылку на каждый каталог домена

ln -s /etc/tumgreyspf/disablegreylist.conf /var/lib/tumgreyspf/config/envelope_sender/example.org/__default__
ln -s /etc/tumgreyspf/disablegreylist.conf  /var/lib/tumgreyspf/config/envelope_sender/example.com/__default__

Больше информации, страница github из tumgreyspf

Просто отсортируйте свой smtpd_recipient_restrictions соответственно. Этот список обрабатывается спереди назад. Некоторые фильтры могут возвращать отклонение или ничего (черные списки, spf; либо злонамеренный отправитель, либо мы не знаем) или разрешение (SASL, сети, если они не совпадают, продолжить)

В вашем случае это будет:

smtpd_recipient_restrictions =
  permit_mynetworks
  permit_sasl_authenticated
  check_policy_service unix:private/tumgreyspf
  check_sender_access hash:/etc/postfix/sender_access
  reject_rbl_client zen.spamhaus.org
  reject_unauth_destination

Всегда разрешены локальные и аутентифицированные отправители. Для всех остальных мы проверяем наши sender_access файл. Если совпадений нет, переходите к черным спискам, SPF и серым спискам.