Показано с 1 по 7 из 7

Тема: Проблема с правилами Exim для исходящих писем

  1. #1
    Member
    Регистрация
    24.01.2016
    Сообщений
    55

    По умолчанию Проблема с правилами Exim для исходящих писем

    Всем доброго времени суток.
    Прочитал все свежие темы на этом форуме по данному вопросу (один, два, три ) + много других источников, но действенный вариант для блокировки спамеров с PHPmail так и не смог реализовать.

    С дефолтным конфигом exim'а 4.84 спамеры не блокировались:
    Код:
    acl_check_not_smtp:
                    warn    condition       = ${if match_local_part{$sender_ident}{lsearch;/etc/exim/ratelimits} {yes}{no}}
                                    set     acl_c9  = $sender_ident
                    warn    condition       = ${if match_local_part{$sender_address}{lsearch;/etc/exim/ratelimits} {yes}{no}}
                                    set acl_c9      = $sender_address
                   deny    condition       = ${if and{{!eq{$acl_c9}{}}{>{$acl_c8}{0}}}{yes}{no}}
                                   set acl_c8      = ${lookup{$acl_c9}lsearch*{/etc/exim/ratelimits}}
                                   ratelimit       = $acl_c8 / 1h / strict / $acl_c9
                                   message         = Sender rate overlimit - $sender_rate / $sender_rate_period / $acl_c9
    Подозреваю, что дело в файле ratelimits, т.к. он полностью пустой, но вот что писать туда - не знаю. Будет ли корректным прописать туда следующее:
    Код:
    root: 10000
    *:100
    Либо может кто подскажет,в чем еще проблема дефолтного конфига? Вобщем ответов не нашел, поэтому на время их поиска решил пойти другим проверенным путем и заменил конфигурацию на такую (изменения выделил):

    Код:
    acl_check_not_smtp:
                    warn    condition       = ${if match_local_part{$sender_ident}{lsearch;/etc/exim/ratelimits} {yes}{no}}
                                    set     acl_c9  = $sender_ident
                    warn    condition       = ${if match_local_part{$sender_address}{lsearch;/etc/exim/ratelimits} {yes}{no}}
                                    set acl_c9      = $sender_address
                    deny            message         = Sender rate overlimit - $sender_rate / $sender_rate_period
                                    ratelimit       = 50 / 1h / leaky
    С данной конфигурацией вроде как все стало работать за исключением того, что при появлении 1 спамера на сервере и его последующего бана с причиной "Sender rate overlimit" - остальные пользователи данного сервера так же не могут отправлять письма, т.к. попадают под "Sender rate overlimit", т.е. нет никакого разграничения.

    Вопрос - как же все-таки правильно сделать так, что бы из-за одного не страдали другие?
    Последний раз редактировалось fromspace; 24.01.2016 в 06:13.

  2. #2
    Senior Member
    Регистрация
    09.04.2013
    Адрес
    Москва
    Сообщений
    2,087

    По умолчанию

    Вы про функцию php mail(); ?
    Вполне логично тогда, что блокируются все, так как php шлёт письма "в одну трубу", а exim ограничивает по пользователям (по ящикам)
    Вариантов 2.
    1) выключить функцию mail();
    2) заменить sendmail скрипт своим обработчиком, в котором будут лимиты

  3. #3
    Senior Member Аватар для Alex Keda
    Регистрация
    20.01.2009
    Адрес
    USSR
    Сообщений
    2,929

    По умолчанию

    Код:
    DEFAULT_RATELIMIT = 10
    и исключения в ratelimits - для рута mail, mailnull .... ну и отдельных юзеров

    в прицнипе, достаточно.

    но, это не избавит вас, как администратора, от ежедневного присмотра за сервером.
    Убей их всех! Бог потом рассортирует...

  4. #4
    Member
    Регистрация
    24.01.2016
    Сообщений
    55

    По умолчанию

    Цитата Сообщение от Mobiaaa Посмотреть сообщение
    Вы про функцию php mail(); ?
    Вполне логично тогда, что блокируются все, так как php шлёт письма "в одну трубу", а exim ограничивает по пользователям (по ящикам)
    Спам шлется-то с конкретного пользователя(домена) и exim должен рубить отправку как раз от этого пользователя(домена), не прибегая к блокировке остальных пользователей. Мне кажется тот же $sender_ident и $sender_address как бы намекают на то, что это возможно )

    Цитата Сообщение от Alex Keda Посмотреть сообщение
    Код:
    DEFAULT_RATELIMIT = 10
    и исключения в ratelimits - для рута mail, mailnull .... ну и отдельных юзеров

    в прицнипе, достаточно.

    но, это не избавит вас, как администратора, от ежедневного присмотра за сервером.
    Спасибо большое за ответ. Подскажите, если задавать DEFAULT_RATELIMIT, то нужно ли писать *:10 в ratelimits ?

    А за ежедневный присмотр это да, просто как назло ломают ночью и какой-никакой спам все-таки уходит. Надеюсь данный способ поможет решить эту проблему.
    Последний раз редактировалось fromspace; 24.01.2016 в 23:23.

  5. #5
    Senior Member Аватар для Alex Keda
    Регистрация
    20.01.2009
    Адрес
    USSR
    Сообщений
    2,929

    По умолчанию

    Подскажите, если задавать DEFAULT_RATELIMIT, то нужно ли писать *:10 в ratelimits ?
    нет наверное... но надо смотреть ваш конфиг. он может отличаться от моего, я раз в несколько месяцев смотрю чё там подправили и синхронизирую со своими изменениями.
    Убей их всех! Бог потом рассортирует...

  6. #6
    Member
    Регистрация
    24.01.2016
    Сообщений
    55

    По умолчанию

    Еще вопрос, такая запись в ratelimits почему-то не работает:
    *@usermail.com:0

    С домена @usermail.com регулярно идет спам от разных отправителей, но с этим же доменным именем. Как можно побороть?

  7. #7
    Member
    Регистрация
    24.01.2016
    Сообщений
    55

    По умолчанию

    Пробовал и без * , не помогает

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •