The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Ограничение на число оправляемых сообщений Exim"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта)
Изначальное сообщение [ Отслеживать ]

"Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от Андрей Мосиенко email on 20-Дек-13, 08:21 
В связи с участившимися случаями кражи почтовых паролей и последующими СПАМ рассылками с использованием этих данных, возникла необходимость лимитировать количество отправляемых пользователями писем в минуту, час, день и т.д. Никто не занимался таким в частности для Exim? Интересует ограничение для пользователей, использующих авторизацию для отправки почты.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Ограничение на число оправляемых сообщений Exim"  –1 +/
Сообщение от Аноним (??) on 20-Дек-13, 09:58 
> возникла необходимость лимитировать количество отправляемых
> пользователями писем в минуту, час, день и т.д.

Можно все проходящие письма заносить в таблицу статистики mysql, типа такой запрос (на новом экзиме не пробовал):
=====================================
warn
   set acl_xx =  ${lookup mysql{INSERT INTO stat SET XFrom='${sender_address}', \
       MsgId='$message_exim_id', \
       DateA=NOW(), \  
       XTo=REPLACE('${recipients}',', ','\n'),
       Size=${message_size}, \
       Subj='${quote_mysql:$h_subject:}', \
       FromIP='${sender_host_address}'}}
=====================================

Ну а потом для проверки лимита сообщений можно типа такой запрос сделать:
SELECT COUNT(*) FROM stat WHERE XFrom='${sender_address}' AND DateA=NOW()
Вместо NOW() подставите другую функцию, если вам нужно лимитировать меньше чем за сутки.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от Ano email on 20-Дек-13, 10:56 
А если вставить вот это:

Вариант 1-

acl_not_smtp = acl_not_smtp
begin acl
acl_not_smtp:
        deny message = Sender rate overlimit - $sender_rate / $sender_rate_period
        ratelimit = 50 / 1h / strict
        accept

Вариант 2-

deny authenticated = *
    ratelimit = 50 / 1h / strict / $authenticated_id
    log_message = Sender rate exhausted $sender_rate / $sender_rate_period / $authenticated_id


Тут разрешено отправлять 50 сообщений в час для Sender'a, если не ошибаюсь.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от DeadLoco (ok) on 20-Дек-13, 11:21 
> Можно все проходящие письма заносить в таблицу статистики mysql

Эпичное велосипедостроение. Я б даже сказал - мегаэпичное.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от Ano email on 20-Дек-13, 11:29 
>> Можно все проходящие письма заносить в таблицу статистики mysql
> Эпичное велосипедостроение. Я б даже сказал - мегаэпичное.

Уважаемый DeadLoco, очень интересно как Вы лимитируете отправку сообщений.
Заранее спасибо.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от DeadLoco (ok) on 20-Дек-13, 11:58 
>>> Можно все проходящие письма заносить в таблицу статистики mysql
>> Эпичное велосипедостроение. Я б даже сказал - мегаэпичное.
> Уважаемый DeadLoco, очень интересно как Вы лимитируете отправку сообщений.

Пользуясь штатными средствами экзима :)

Ваш второй способ - именно то, что надо, но размещать его нужно в acl_smtp_rcpt. Этот ацл выполняется при отправке каждого письма внутри сессии, тогда как acl_smtp_connect и acl_smtp_auth - только один раз, при установлении соединения. Кроме того, acl_smtp_rcpt выполняется до acl_smtp_data, т.е. отказ в приеме письма случится до того, как рассыльщик начнет передавать нам многие мегабайты своего письма.

Кроме того, я бы добавил в правило ацля проверку домена отправителя для авторизованых сессий. Например, если сессия авторизована для user@domain.tld, а при отправке указывается MAIL FROM: user@other.tld, то я бы такие сообщения ограничивал с особым цинизмом. Это не совсем нелегальный случай, потому что МUА может использоваться для нескольких учеток в разных доменах. Но и ботнет-клиенты ведут себя аналогично. И, поскольку левые домены лежат вне нашей зоны ответственности, мы можем легко ограничить отправку с них до 5 сообщений в час.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от Андрей Мосиенко email on 20-Дек-13, 14:32 
>[оверквотинг удален]
> письма случится до того, как рассыльщик начнет передавать нам многие мегабайты
> своего письма.
> Кроме того, я бы добавил в правило ацля проверку домена отправителя для
> авторизованых сессий. Например, если сессия авторизована для user@domain.tld, а при отправке
> указывается MAIL FROM: user@other.tld, то я бы такие сообщения ограничивал с
> особым цинизмом. Это не совсем нелегальный случай, потому что МUА может
> использоваться для нескольких учеток в разных доменах. Но и ботнет-клиенты ведут
> себя аналогично. И, поскольку левые домены лежат вне нашей зоны ответственности,
> мы можем легко ограничить отправку с них до 5 сообщений в
> час.

Большое спасибо за советы! Может приложите конфиг? Было бы всем очень полезно я думаю.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от DeadLoco (ok) on 20-Дек-13, 14:45 
> Может приложите конфиг? Было бы всем очень полезно я думаю.

Неправильно думаете. Почтмейстер должен знать свой МТА, а не набор готовых конфигов. Тогда он сможет решать любую задачу, а не только те немногочисленные, которые решил и опубликовал кто-то другой.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от Андрей Мосиенко email on 20-Дек-13, 14:55 
>> Может приложите конфиг? Было бы всем очень полезно я думаю.
> Неправильно думаете. Почтмейстер должен знать свой МТА, а не набор готовых конфигов.
> Тогда он сможет решать любую задачу, а не только те немногочисленные,
> которые решил и опубликовал кто-то другой.

Интересует собственно вот это:
Кроме того, я бы добавил в правило ацля проверку домена отправителя для авторизованых сессий. Например, если сессия авторизована для user@domain.tld, а при отправке указывается MAIL FROM: user@other.tld, то я бы такие сообщения ограничивал с особым цинизмом. Это не совсем нелегальный случай, потому что МUА может использоваться для нескольких учеток в разных доменах. Но и ботнет-клиенты ведут себя аналогично. И, поскольку левые домены лежат вне нашей зоны ответственности, мы можем легко ограничить отправку с них до 5 сообщений в час.

Довольно сложно по моему для реализации.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от DeadLoco (ok) on 20-Дек-13, 15:32 
> Довольно сложно по моему для реализации.

deny sender_domains = !+local_domains
     ratelimit = 5/1h/leaky/$authenticated_id
     message = Bite my shiny metal shaper!

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

6. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от Аноним (??) on 20-Дек-13, 12:49 
> Эпичное велосипедостроение.

Нет, статистика все равно нужна, и нужна именно в таблице мыскля, так как потом еще вэбморда к ней цепляется. Плюс используется несколько MTA c единой базой - как вы там воткнете ratelimit ?


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от DeadLoco (ok) on 20-Дек-13, 13:16 
> Плюс используется несколько MTA c единой базой - как вы там воткнете ratelimit ?

Это у вас так масштабирован МТА - по каждому чиху дергать базу? Однако.
Попробуйте перед стойлом экзимов поставить реверсный прокси, который будет балансить поток и, заодно, выполнять фильтрацию и шейпинги.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Ограничение на число оправляемых сообщений Exim"  +/
Сообщение от Аноним (??) on 20-Дек-13, 16:23 
> Это у вас так масштабирован МТА - по каждому чиху дергать базу?

База на то и база, что бы ее дергать, да и ничего ей не будет от пары тысяч запросов в секунду, да еще плюс репликация.

> Попробуйте перед стойлом экзимов поставить реверсный прокси, который будет балансить
> поток > и, заодно, выполнять фильтрацию и шейпинги.

Да не надо никакой мне фильтрации и шейпинга почты, зачем оно если экзимы и так прекрасно справляются ?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру