![Как заставить spamassasin отклонять почту на основе рейтинга?](https://rvso.com/image/515052/%D0%9A%D0%B0%D0%BA%20%D0%B7%D0%B0%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20spamassasin%20%D0%BE%D1%82%D0%BA%D0%BB%D0%BE%D0%BD%D1%8F%D1%82%D1%8C%20%D0%BF%D0%BE%D1%87%D1%82%D1%83%20%D0%BD%D0%B0%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5%20%D1%80%D0%B5%D0%B9%D1%82%D0%B8%D0%BD%D0%B3%D0%B0%3F.png)
Я использую 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 и более поздних версиях.