Друзья!
Существует такая (не новая) проблема: на машинах время от времени появляются вируса отсылающие кучу спама. Естественно после пары тысяч писем провайдер блокирует СМТП. Отловить вируса не проблема, но офис в итоге сутки без почты сидит. Хочу поставить ограничения на количество одновременно отправляемых писем с одного хоста в определённый промежуток времени (например 4 письма в минуту). Нашёл пару интересных фичей (http://www.anrb.ru/linux/sendmail.html): FEATURE(ratecontrol) и FEATURE(conncontrol), но!!! они не работают для хостов с OK или RELAY в access.
Подскажите, как их прикрутить, или обойти access, или, если есть варианты как это реализовать по другому.
Жду ваших ответов, советов. комментариев.
у вас много записей с OK?
>у вас много записей с OK?Десяток
ДЛЯ ОБХОДА DNSBL их используете?
уберите эти фишки (RATE&CONN)и добавьте правила которые им соответсвуют в
Local_check_relayон исполняется первым и вы сможете контролировать тех у кого OK
А можно немного подробнее про Local_check_relay?
>ДЛЯ ОБХОДА DNSBL их используете?DNSBL вообще не используем
ПОКАЖИТЕ ТОГДА ВАШИ СТРОКИ С ok
>ПОКАЖИТЕ ТОГДА ВАШИ СТРОКИ С okTo:sterch.net OK
To:gercon.kiev.ua OK
To:vetasan.com.ua OK
To:icccw.kiev.ua OK
To:icwc-nasu.kiev.ua OK
To:budivnyk.kiev.ua OK
To:visagiste.kiev.ua OK
To:visagiste.com.ua OK
To:ipex.com.ua OK
To:zaprawka.com OK
там у меня на странице неточность:
фичи ratecontrol и conncontrol (в отличие от greet_pause) не работают для хостов с OK или RELAY в accessследует читать как
фичи ratecontrol и conncontrol (в отличие от greet_pause) не работают для хостов в access, прописанных с тэгом CONNECT: и значениями OK или RELAY
То есть это не про вас и не про Local_check_relay
>
>фичи ratecontrol и conncontrol (в отличие от greet_pause) не работают для хостов
>в access, прописанных с тэгом CONNECT: и значениями OK
>или RELAY
>
>То есть это не про вас и не про Local_check_relayтак так так.... т.е. они должны у меня работать? Щас буду пробовать ещё... ничего не понимаю. Может для точности выложить какую-нить часть конфига?
Хм... теперь получилось. Ограничил число одновременных коннекшенов. Но за ночь назрел ещё один вопрос: вирус не обязательно будет производить рассылку в
несколько потоков одновременно. Он может открыть одно соединение к
почтовому серверу и вливать через него десятками тысяч - что лучше в такой ситуации?
>Хм... теперь получилось. Ограничил число одновременных коннекшенов. Но за ночь назрел ещё
>один вопрос: вирус не обязательно будет производить рассылку в
>несколько потоков одновременно. Он может открыть одно соединение к
>почтовому серверу и вливать через него десятками тысяч - что лучше в
>такой ситуации?Редкие вирусы шлют spam через smtp провайдера. Большая часть шлет напрямую, напрягая при этом DNS-сервер лишним резолвингом(хороший косвенный признак). Поэтому средствами firewall блочьте весь smtp не через ваш smtp-сервер.
>Хм... теперь получилось. Ограничил число одновременных коннекшенов. Но за ночь назрел ещё
>один вопрос: вирус не обязательно будет производить рассылку в
>несколько потоков одновременно. Он может открыть одно соединение к
>почтовому серверу и вливать через него десятками тысяч - что лучше в
>такой ситуации?Хороший вопрос.
Сначала была идея поставить счетчик писем за одну сессию, но ,оказывается,
они тогда обрабатываются по отдельности и счетчик не растетно вот что обнаружилось из RELEASE_NOTES
If MaxDaemonChildren is set and a command is repeated too often
during a SMTP session then terminate it just like it is
done for too many bad SMTP commands.я думала что тут сыграет confMAX_NOOP_COMMAND который по умолчанию равен 20
но оказалось что в sendmail уже зашит MAXBADCOMMANDS (25?)
http://groups.google.com/group/comp.mail.sendmail/browse_thr...
>
>Хороший вопрос.
>Сначала была идея поставить счетчик писем за одну сессию, но ,оказывается,
>они тогда обрабатываются по отдельности и счетчик не растет
>Т.е. получается что сендмейл сам блокирует такие соеднения?
Нее, похоже, что это не то, что надо
op.me говорит более конкретно и называет определенные комманды в отличие от RELAESE_NOTES
с его абстрактным просто "a command"Sendmail has some built-in measures against simple denial of service (DoS) attacks. The SMTP server by default slows down if too many bad commands are issued or if some commands are repeated too often within a session. Details can be found in the source file sendmail/srvrsmtp.c by looking for the macro definitions of MAXBADCOMMANDS, MAXNOOPCOMMANDS, MAXHELOCOMMANDS, MAXVRFYCOMMANDS, and MAXETRNCOMMANDS. If an SMTP command is issued more often than the corresponding MAXcmdCOMMANDS value, then the response is delayed exponentially, starting with a sleep time of one second, up to a maximum of four minutes (as defined by MAXTIMEOUT). If the option MaxDaemonChildren is set to a value greater than zero, then this could make a DoS attack even worse since it keeps a connection open longer than necessary. Therefore a connection is terminated with a 421 SMTP reply code if the number of commands exceeds the limit by a factor of two and MAXBADCOMMANDS is set to a value greater than zero (the default is 25).
да, вопрос интересный, будет время - задам на sendmail-конфе
ну или вы его можете "отцам sendmail'a" задать сами :)
>Нее, похоже, что это не то, что надо
>op.me говорит более конкретно и называет определенные комманды в отличие от RELAESE_NOTES
>
>с его абстрактным просто "a command"
>
>да, вопрос интересный, будет время - задам на sendmail-конфе
>ну или вы его можете "отцам sendmail'a" задать сами :)В таком случае тему не закрываем, если будет инфа - пишите. Я дополнительно включил проверку исходящей почты спам-ассасином и в фаерволе ограничил число коннектов на 25й порт. Посмотрим как оно будет.
Есть ещё мысль настроить SMTP-аутентификацию, но возникает вопрос: а не сможет ли вирус подтянуть учётные данные из аутлука?
нашла, кажется, оно самое?README:
SMTP_MAILER_MAXMSGS [undefined] If defined, the maximum number of
messages to deliver in a single connection for the
smtp, smtp8, esmtp, or dsmtp mailers.>Есть ещё мысль настроить SMTP-аутентификацию, но возникает вопрос: а не сможет ли
>вирус подтянуть учётные данные из аутлука?тут не знаю, умеют ли вирусы такое ...
если только он будет слушать сеть и перехватывать plaintext-пароли
>[оверквотинг удален]
>README:
>SMTP_MAILER_MAXMSGS [undefined] If defined, the maximum number of
>
>
>
> messages to deliver in a single connection for the
>
>
> smtp, smtp8, esmtp, or dsmtp mailers.
>Очень похоже!
А как можно прикрутить?
define(`SMTP_MAILER_MAXMSGS',`10')
>define(`SMTP_MAILER_MAXMSGS',`10')Спасибо!
Попробую, расскажу что получится!
Я решил такую проблему очень просто: по совету здешних гуру 25-й порт открыт ток для сервера на внешнем интерфейсе, а в настройках учётных записей почтовиков указан в качестве POP и SMTP серверов указан внутренний IP сервера. С тех пор больше в спам-листах не появлялся