Борьба со спамом средствами Postfix

/etc/postfix/main.cf
  1. Проверка приветствия (HELO)
    smtpd_helo_required = yes
    smtpd_helo_restrictions =
            permit_mynetworks,
            permit_sasl_authenticated,
            reject_unknown_reverse_client_hostname,
            reject_invalid_helo_hostname,
            reject_non_fqdn_helo_hostname,
            reject_unknown_helo_hostname
    
  2. Проверка отправителя
    smtpd_sender_restrictions =
            permit_sasl_authenticated,
            permit_mynetworks,
            check_sender_access hash:/etc/mail/access,
            reject_non_fqdn_sender,
            reject_unknown_sender_domain,
            reject_unverified_sender
    
  3. Проверка получателя
    smtpd_recipient_restrictions =
            permit_sasl_authenticated,
            check_recipient_access hash:/etc/mail/access,
            permit_mynetworks,
            reject_non_fqdn_recipient,
            reject_unauth_pipelining,
            reject_unauth_destination,
            check_policy_service unix:private/policy-spf,
            reject_unlisted_recipient,
            reject_unverified_recipient,
            check_policy_service inet:127.0.0.1:60000
    
  4. Проверка существования адреса отправителя
    address_verify_sender = $double_bounce_sender
    

ispmanager 4.4.9 bug

После обновления ISPManager до версии 4.4.9, если не был установлен procmail, пропадают почтовые ящики и домены , причем откат на более ранние версии ISPManager не помогает, почтовые ящики появляются, можно создавать новые, но письма до новых пользователей не доходят, в лог ispmanager падало следующее

ERROR Unable to detect LDA.

Багфикс обещают в ближайшем будущем. На данный момент можно вылечить установкой procmail

aptitude install procmail

и перезапуском ISPManager

killall ispmgr

Как настроить spf в debian

Как включить провеку SPF в Postfix
Оригинал статьи настройка spf postfix debian

  1. Устанавливаем необходимые пакеты
    aptitude install python-spf postfix-policyd-spf-python
  2. Добавляем в /etc/postfix/main.cf
    spf-policyd_time_limit = 3600s
  3. В проверку smtpd_recipient_restrictions после reject_unauth_destination(эта директива необходима, иначе ваш сервер будет open-relay) добавляем check_policy_service unix:private/policy-spf,
  4. В /etc/postfix/master.cf добавляем
    policy-spf  unix  -       n       n       -       -       spawn
         user=nobody argv=/usr/bin/policyd-spf

/etc/postfix-policyd-spf-python/policyd-spf.conf

debugLevel = 1
defaultSeedOnly = 1
HELO_reject = No_Check
Mail_From_reject = SPF_Not_Pass
PermError_reject = False
TempError_Defer = False
skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128

spf

 
SPF — Sender Policy Framewor. Расширение для протокола отправки электронной почты через SMTP. SPF позволяет владельцу домена указать в TXT записи соответствующего домена специальным образом сформированную строку, определяющую все сервера, которым разрешено слать почту с с обратным адресом в этом домене. Сайт проекта openspf.org.
Пример SPF данных в TXT записи:

v=spf1 +a +mx -all
  • v=spf1 — версия SPF
  • +a — разрешает прием писем от узла, IP-адрес которого совпадает с IP-адресом в A-записи для example.org
  • +mx —  разрешает прием писем, если отправляющий узел указан в одной из MX-записей для example.org
  • -all — сообщения, не прошедшие верификацию с использованием перечисленных механизмов, следует отвергать

Используемые префиксы:

  • — Разрешить
  • — — Запретить
  • ~ — Разрешить с дальнейшей проверкой
  • ? — Нейтралитет