Exim - блокировать входящую почту только из черного списка IPS
Я хотел бы проверить черные списки только для входящей электронной почты. У меня есть пользователи, которые обычно получают динамические IP-адреса, которые заносятся в черный список, поэтому они не могут отправлять электронную почту, если я включаю опцию черного списка. Как я мог этого добиться? Также есть ли способы настроить автоматическое удаление писем, помеченных как СПАМ?
Вот мой exim cofnfiguration. http://paste.servergur.us/wilumojabi.coffee
2 ответа
Вы должны внести в белый список законных отправителей, в то время как все остальные проходят через черный список. Но гораздо более эффективным способом является использование SMTPS с аутентификацией.
exim
намеревался спросить spamd
о баллах от ACL, и если оценка достаточно высока - просто отклоните или оставьте сообщение черным. Доставка + удаление - это бесполезная трата ресурсов.
Подумайте об этом с противоположной стороны: вы хотите ограничить проверки RBL только теми входящими электронными письмами, которые не приходят от аутентифицированных пользователей:
deny message = rejected because $sender_host_address is in a black list \
at $dnslist_domain\\n$dnslist_text
!authenticated = *
dnslists = ${readfile {/etc/exim/dnsbl.conf}{:}}
Ваш второй вопрос может быть решен двумя способами. Один из вариантов заключается в том, что вы можете доставлять спам непосредственно в папку "Спам" пользователя, а не в его папку "Входящие".
# Add X-Spam-Flag if spam is over system-wide threshold for non-authed users
warn condition = ${if >{$message_size}{500K}{no}{yes}}
!authenticated = *
spam = exim
add_header = X-Spam-Flag: Yes
set acl_m_filter_to_spam = 1
# In transport which actually delivers the email, if $acl_m_filter_to_spam
# is set, I append ".Spam/" to the maildir delivery path
Другой вариант - вы отклоняете сообщение, а не принимаете его.
# Reject spams with score over limit for non-authed users
deny condition = ${if >{$message_size}{500K}{no}{yes}}
!authenticated = *
message = This message scored $spam_score points. Rejected.
spam = exim:true
condition = ${if >{${eval10:$spam_score_int/10}}{INBOUND_SPAM_LIMIT}}
В моем случае, я фактически делаю оба из них. Я отмечаю письмо как спам, если оно набрало 5,0 или выше. Я фильтрую его в папку "Спам", если он набрал от 5,0 до 5,9. Я полностью отклоняю письмо, если оно набрало 6.0 или выше.
Обратите внимание, что приведенные выше примеры спама для обычной входящей электронной почты. У меня весь этот раздел продублирован для проверки пользователей, прошедших аутентификацию SMTP, которые также отправляют почту, у меня просто включены / отключены разные оценки и установлены разные пороги нежелательной почты и спама.