В заметке "High traffic on the email server (http://www.g-loaded.eu/2007/06/23/high-traffic-on-the-email-.../)" наглядно продемонстрирован простой и эффективный способ блокирования спам-ботов, которые в определенные моменты приводят к превышению лимита на допустимое число соединений к почтовому серверу (эффект подобен DDoS атаке, сколько не увеличивай лимит - все равно соединения занимаются ботами с тысяч машин зараженных троянским ПО).
George Notaras, заметил, что большое число спам-ботов занимаются перебором адресов или отправляют почту уже несуществующим ящикам и провел простой эксперимент - выделил из лога postfix все подобные "reject" сообщения (за неделю выявлено более 260000 блокировок для 10000 уникальных IP) и заблокировал выявленные адреса. В результате, нагрузка на почтовый сервер снизилась в 40 раз.URL: http://www.g-loaded.eu/2007/06/23/high-traffic-on-the-email-.../
Новость: http://www.opennet.me/opennews/art.shtml?num=11186
То есть пользователи с этих ипов не смогут работать с данным сервером?
Нет конечно, 120 комьпютеров из бразилии, 240 из США вполне имеют законное право рассылать через вас почту...
Смогут, через нормальные почтовые сервера.
А еще более эффективный способ - вообще закрыть 25 порт. Эффект просто поразительный. А если серьезно - существуют более серьезные способы блокировки таких хостов (например так называемые ловушки или хотя бы временная блокировка выявленных ботов). Очень хороший эффект дает обратное разрешение имени хоста отправителя и блокировки по маске имени хоста. Ну и куча других. О бо всем можно почитать в том числе и здесь.
> обратное разрешение имени хоста отправителя и блокировки по маске имени хоста.
А зачем? Процы греть? Чтобы найти еду нужно идти в продуктовую лавку. А не прочесывать перед походом лавку все окрестные помойки. Доступная аналогия? :)
есть способ лучше :). большинство спам-ботов сидят на динамических IP-адресах. их и блокируем. ну кому придет в голову (и главное зачем) ставить SMTP сервер на динамическом IP? А? А поставит - его проблемы :). В нашем маленьком хозяйстве такой подход (вместе с некоторыми другими) оказался весьма эффективен (тьфу*3).
Угу, только каким макаром определять динамичность этих адресов? У меня был в практике опыт когда наши адреса оказались ранее занесенными в одну BL базу как динамические на основании низкого TTL реверсной зоны DNS. Я забодался пинаться с провайдером на эту тему, но вконце концов победил...
базы тут непричем. 90% или более обратных DNS динамических адресов содержит в себе последнюю цифру IP адреса в том или ином виде. А также чтото типа dsl или pppoe или modem. Владельцы SMTP серверов напротив, заботятся о нормальном ответе на обраный DNS запрос. Без обратного DNS часто на почтовые сервера вообще не пускают(и правильно делают).
Угу, а потом приходит к тебе директор и говорит, что ему люди письмо прислать не могут, и ваапще трах-тибидох!
А при разборе полетов оказывается, что люди живут не внутри МКАД, а в деревне Гадюкино Урюпинского уезда, и что Сеть у них только 2 часа в сутки, и диалап через соседнюю область :(Вы с таким, сударь, не сталкивались? Вам везет, а мы уже несколько раз на эти грабли наступали, пришлось от этого отказываться.
# Это грей-лист не пустил
mx log # grep '450 <.*>: Recipient address rejected: Service is unavailable; from=' maillog | wc -l
24360# Это сколько доставлено
mx log # grep 'delivered to mailbox' maillog | wc -l
3359# Это по теме статьи. Количество писем на не существующих пользователей
mx log # grep 'User unknown in local recipient table' maillog | wc -l
627# Это количество уникальных IP адресов.
mx log # grep 'User unknown in local recipient table' maillog | sed -e 's/.*\(\[.*\]\): 550 .*/\1/' | sort | uniq | wc -l
439примерно 1,5 письма на 1 IP, так что либо порог срабатывания должен быть очень низким (а если сендер просто опечатался?..), либо это работать не будет.
И вообще грейлист рулит!
Да в общем-то статья не о том, как отделить спам-ботов от легальных, а о том, что пока ботам выдавали отлуп с объяснением причины -- они это игнорировали и долбились дальше, занимая ресурсы сервера. А когда им просто сказали "Reject" (не в курсе особенностей postfix non-access-denied rejections vs ) по IP -- их это проняло, и больше они не приходили. Так что это скорее конструктивный просчет программирования ботов.
У меня в exim стоит вот такое правило
deny message = Max 3 failed recipients allowed
condition = ${if >{$rcpt_fail_count}{2} {1}}
delay = ${eval: ($rcpt_fail_count) * 30}s
log_message = $rcpt_fail_count failed recipient attampts - dict attack
После определенного количества rcpt_fail_count срабатывает tcp connect timeout и все идут лесом
Exim рулез.
Надеюсь, он теперь будет еженедельно пополнять этот "чёрный" список? :) Помнится был такой bl, в который заносили завирусованные компы. Чем он ему не понравился? Сам я такой bl не использую, но если человеку хочется, то флаг в руки...
По блокировкам: нет какого-то волшебного способа способного сразу решить проблему. Только комплекс правил. И только если правила отлажены в тестовом режиме.
Собираю троянов и ботов 2-я ловушками в свой РБЛ.
Эффективность сего - примерно еще +50 отлупов на 10000 попыток чего-либо послать (после всех остальных проверок)п/с/ но убирать эту ерунду все одно не собираюсь.