Как заставить spamassasin отклонять почту на основе рейтинга?

Как заставить spamassasin отклонять почту на основе рейтинга?

Я использую Linux с Postfix, Dovecot, Postgrey и spamassasin/spamd.

Это мой main.cf

smtpd_recipient_restrictions = permit_sasl_authenticated,
                               permit_mynetworks,
                               reject_unauth_destination,
                               reject_invalid_hostname,
                               reject_unauth_pipelining,
                               reject_non_fqdn_sender,
                               reject_unknown_sender_domain,
                               reject_non_fqdn_recipient,
                               reject_unknown_recipient_domain,
                               check_policy_service inet:127.0.0.1:10030

Я заставил spamassasin добавлять спам-заголовки к другим письмам, которые Postfix не отслеживает, но как заставить его отклонять их?

решение1

Вы можете настроить postfix для использования Spamassasin/Amavis в качестве прокси-фильтра. Таким образом вы предотвратите возвраты: соединение с удаленной стороной SMTP останется открытым до тех пор, пока не будут выполнены проверки на спам, и postfix ответит сообщением OK или REJECTED. Таким образом, удаленная сторона будет отвечать за возвраты.

# master.cf

# mail inbound
smtp      inet  n       -       -       -       -       smtpd
    -o smtpd_proxy_filter=127.0.0.1:10024
    -o smtpd_client_connection_count_limit=10
    -o smtpd_proxy_options=speed_adjust

# spamassasin/amavis is listening to port 10024 and sending it's
# checked mail to port 10025
amavis    unix  -       -       n       -       2       smtp
   -o smtp_data_done_timeout=1200
   -o smtp_send_xforward_command=yes
   -o disable_dns_lookups=yes

# SMTP return (from amavis/spamassasin)
localhost:10025 inet  n -       n       -      -        smtpd
   -o content_filter=
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o smtpd_override_options=no_address_mappings
   -o mynetworks=127.0.0.0/8
   -o receive_override_options=no_unknown_recipient_checks
# main.cf

# for rejecting spam
header_checks = pcre:/etc/postfix/header_checks
# header_checks

/X-Spam-Level: \*{9,}/ REJECT Looks like spam to me.

Если вы используете Amavis для вызова spamassasin, вы можете позволить Amavis отклонять почту за вас — порог отклонения можно настроить с помощью $sa_kill_level_deflt. Добавьте ,no_header_body_checksк receive_override_optionsзаписи возврата SMTP при использовании Amavis.

решение2

В общем, вы не хотите ничего отклонять. Большинство спама имеет поддельные заголовки, поэтому люди могут получать обратные сообщения, которые им не принадлежат, и вы просто создаете головную боль для этих людей и их администраторов (или, по сути, сами создаете спам, заваливая почтовые ящики неправильными обратными сообщениями).

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

Помимо этого, настройте свой почтовый сервер для защиты первой линии... вы можете настроить его на использование SPF, убедиться, что он строго следует RFC и т. д.... если вы хотите пойти на шаг дальше, сделайте так, чтобы он проверял RBL, чтобы отклонять почту, которая находится в черных списках. Это жестко, но вам решать, хотите ли вы использовать эти списки, поскольку он может периодически блокировать серверы, которые были добавлены неправильно, но, с другой стороны, электронная почта не является надежным средством связи, как думают люди. Электронная почта может сделать это, а может и нет, и если что-то жизненно важно, свяжитесь с другим средством, чтобы проверить получение... спамеры портят все для всех.

решение3

Лучшая идея — просто отфильтровать его на основе оценки. Иногда может случиться так, что важное письмо попадет в SA, и вы не хотите навсегда потерять это письмо (плюс конечные пользователи будут думать, что оно просто никогда не будет доставлено).

На моем личном сервере все, что имеет оценку выше 3,5, попадает в папку «Спам» пользователя. Таким образом, оно всегда доставляется, и пользователь имеет к нему доступ. Затем есть cronjob, который удаляет все, что старше 3 недель в этой папке.

решение4

При использовании спам-фильтра через протокол milter вы можете включить дополнительные проверки заголовков после фильтров milter: http://www.postfix.org/header_checks.5.html

milter_header_checks(по умолчанию: пусто)

Они применяются к заголовкам, которые добавляются с помощью приложений Milter. Эта функция доступна в Postfix 2.7 и более поздних версиях.

Связанный контент