Не срабатывает ratelimit в exim

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
bas_kam
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-10-02 5:01:56

Не срабатывает ratelimit в exim

Непрочитанное сообщение bas_kam » 2011-02-09 6:11:39

Доброго времени суток! Есть 2 почтовых сервера с Exim. Очень часто стало происходить так, что пользователи сети хватают вирус и от них идёт рассылка спама через почтовые сервера. Постоянно вылавливать таких людей через логи и добавление в blacklist мало приятное занятие. Почитав документацию нашёл опцию ratelimit. Добавил следующее в exim.conf:

Код: Выделить всё

acl_check_rcpt:
    warn                                                                                                                                                     
        ratelimit = 30 / 30m / leaky / $sender_host_address                                                                                                  
        log_message = Sender rate $sender_rate / $sender_rate_period / $sender_address / $sender_host_address                                                
    deny                                                                                                                                                     
        message = Sender rate overlimit - $sender_rate / $sender_rate_period / $sender_address / $sender_host_address                                        
        ratelimit = 30 / 30m / leaky / $sender_host_address                                                                                                        
    accept


acl_check_not_smtp:                                                                                                                                          
    warn                                                                                                                                                     
        ratelimit = 30 / 30m / leaky / $sender_host_address                                                                                                  
        log_message = Sender rate $sender_rate / $sender_rate_period / $sender_address / $sender_host_address                                                
    deny                                                                                                                                                     
        message = Sender rate overlimit - $sender_rate / $sender_rate_period / $sender_address / $sender_host_address                                        
        ratelimit = 30 / 30m / leaky / $sender_host_address                                                                                                          
    accept
Перезапустил Exim и начал ждать заветных надписей в rejectlog, но там ничего не появляется. Если же я добавляю спамящего сейчас абонента в blacklist, то в логах вижу строки:

Код: Выделить всё

2011-02-09 13:56:45 [9054] H=p11-22-333-444.domain.ru (comp5) [11.22.333.444]:3232 I=[11.22.333.1]:25 F=<cambricaZ2@flickr.com> rejected RCPT <emijack@earthlink.net>: sender IP address 11.22.333.444 is locally blacklisted here. If you think this is wrong, get in touch with postmaster (support at mail.domain.ru)
Т.е. спамерская активность на лицо, а вот антиспамерская активность директивы ratelimit "на лицо" не попадает :(

Хорошо, думаю я, проверим, работает ли вообще ЭТО. Меняю значение в разделе warn у ratelimit на 0 / 30m, перезапускаю Exim и в mainlog вижу:

Код: Выделить всё

2011-02-09 14:04:35 H=mail31.odnoklassniki.ru [195.239.106.45]:43057 I=[11.22.333.1]:25 Warning: Sender rate 0.0 / 30m / bezotveta@odnoklassniki.ru / 195.239.106.45
..., т.е. правила работают, но спамера не блокируют.

Подскажите люди добрые, куда рыть, что ещё проверить?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

bas_kam
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-10-02 5:01:56

Re: Не срабатывает ratelimit в exim

Непрочитанное сообщение bas_kam » 2011-02-09 8:24:36

Обнаружил, что в exim.conf в самом начале отсутствовала строка acl_not_smtp = acl_check_not_smtp. Добавил, перезапустил, всё тоже самое...

bas_kam
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-10-02 5:01:56

Re: Не срабатывает ratelimit в exim

Непрочитанное сообщение bas_kam » 2011-02-09 10:15:39

Код: Выделить всё

2011-02-09 18:08:00 [363] 1Pn49f-00005r-Sa F=<> rejected by non-SMTP ACL: Sender rate overlimit - 30.2 / 30m /  /
сам сервер блочится, так как баунсеров много в очереди, а вот спамера моего на котором я тестирую не блочит :(

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Не срабатывает ratelimit в exim

Непрочитанное сообщение blade_007 » 2011-02-09 10:21:44

1. Авторизация пользователям + блок проброса 25 порта
2. Срабатывание правил еще зависит от того, в какой части конфига они расположены.
3. Попробуйте так

Код: Выделить всё

acl_smtp_rcpt:
.............
    warn 
        !hosts      = +relay_from_hosts
        !senders    = :
        ratelimit  = 30 / 30m / leaky / $sender_host_address
        set acl_m18 = $sender_host_address
.............
acl_smtp_predata:
..............................
    drop message    = Bounce messages rate exceeds per $sender_rate_period for $acl_m18
         log_message = Bounce ratelimit: rate $sender_rate, period $sender_rate_period for $acl_m18
         condition  = ${if def:acl_m18 {1}}

    accept
..............................

bas_kam
проходил мимо
Сообщения: 6
Зарегистрирован: 2010-10-02 5:01:56

Re: Не срабатывает ratelimit в exim

Непрочитанное сообщение bas_kam » 2011-02-11 6:16:42

1. Авторизация и блокировка 25 порта не представляется возможным.
2. Вот это мне помогло. Поместил правило на ratelimit повыше и всё начало работать как надо.
3. Спасибо за конфиг, правда баунсерами чуть позже займусь...:)

В целом вопрос решён, правильным ответом было поменять порядок правил фильтрации в конфиге, в моём случае поднять повыше.