Exim как включить DROP для спама и bounce

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-10 14:44:31

на сервак приходит дофига спама, сервер его режекет, а т.к. спам идет с несуществующих адресов то приходит тысяци писем bounce. Нужно чтобы сервер спам не режектил а дропил
Как это сделать в exim?

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение hizel » 2010-12-10 15:08:50

поиск по форуму, ок
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-10 15:17:06

нашел я тут решение вроде:

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

    * Пожаловаться на это сообщение
    * Ответить с цитатой

Re: Полезные скрипты/настройки для exim.

Сообщение gmn » 2007-09-28 10:03:13
Защита от атак bounce-сообщений.
В acl smtp_rcpt

Код: Выделить всё • Развернуть

    # ratelimit for bounce messages for recipient
    # Блокируем в predata
      warn hosts      = !+relay_from_hosts
           senders    = :
           ratelimit  = 2 / 30m / per_rcpt / $local_part@$domain
           set acl_m3 = $local_part@$domain


В acl predata блокируем.

Код: Выделить всё • Развернуть

    # Если определена acl_m3 - блокируем bounce-сообщение.
    drop message    = Bounce messages rate exceeds per $sender_rate_period for $acl_m3
        log_message = Bounce ratelimit: rate $sender_rate, period $sender_rate_period for $acl_m3
         condition  = ${if def:acl_m3 {1}}

прописал у себя:

#!!#######################################################!!#
#!!# This new section of the configuration contains ACLs #!!#
#!!# (Access Control Lists) derived from the Exim 3 #!!#
#!!# policy control options. #!!#
#!!#######################################################!!#

#!!# These ACLs are crudely constructed from Exim 3 options.
#!!# They are almost certainly not optimal. You should study
#!!# them and rewrite as necessary.

begin acl

acl_check_rcpt:
# ratelimit for bounce messages for recipient
# Блокируем в predata
warn hosts = !+relay_from_hosts
senders = :
ratelimit = 2 / 30m / per_rcpt / $local_part@$domain
set acl_m3 = $local_part@$domain

acl_pre_data:
drop message = Bounce messages rate exceeds per $sender_rate_period for $acl_m3
log_message = Bounce ratelimit: rate $sender_rate, period $sender_rate_period for $acl_m3
condition = ${if def:acl_m3 {1}}



правильно? но нифига не срабатывает, всеравно сыпятся bounce


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

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение blade_007 » 2010-12-11 10:35:38

На форуме или на сайте была статейка про fail2ban.
Если есть у всех этих атак что-то сходное, например, одно и тоже ehlo - можно делать drop на этапе check_smtp_helo

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение mediamag » 2010-12-11 11:51:59

а ты определил acl_check_predata в основном конфиге?

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-13 15:49:45

я редактировал файл exim.conf, в нем я не нашел acl_check_predata и acl_check_rcpt просто сам вставил

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение mediamag » 2010-12-13 18:20:57

если просто сделал копи паст, то ничего работать не будет...сначала изучите документацию к экзиму (acl и как их подключать)

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-14 13:25:35

а просто можно тыкнуть пальцем конкретно и что куда прописывать, т.к. у меня не стоит задача изучать exim мне нужно только быстро от bounce избавится

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-23 22:39:14

mediamag писал(а):а ты определил acl_check_predata в основном конфиге?

прописал так:
acl_smtp_predata = acl_check_predata
но тогда почта не уходит, как правильно определить?

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

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение blade_007 » 2010-12-23 22:58:54

acl_check_predata определен в конфиге?
Потому как у вас такой acl_pre_data: (правильно написали??)

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-23 23:54:51

вот сделал исправления, exim запустился, но bounce также сыпятся :(((

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

acl_smtp_rcpt = check_recipient
acl_smtp_data = check_message

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

#!!# ACL that is used after the DATA command
check_message:
#  Enabling this will make the server non-rfc compliant
#  require verify = header_sender
 # Если определена acl_m3 - блокируем bounce-сообщение.
    drop message    = Bounce messages rate exceeds per $sender_rate_period for $acl_m3
        log_message = Bounce ratelimit: rate $sender_rate, period $sender_rate_period for $acl_m3
         condition  = ${if def:acl_m3 {1}}



accept  hosts = 127.0.0.1 : +relay_hosts

  accept  hosts = *
          authenticated = *

    accept
        hosts = +trustedmailhosts

    accept
        condition = ${if match_ip{$sender_host_address}{iplsearch;/etc/trustedmailhosts}{1}{0}}


  warn
    condition = ${if eq {${acl_m0}}{1}{1}{0}}
    spam =  ${acl_m1}/defer_ok
    log_message = "SpamAssassin as ${acl_m1} detected message as spam ($spam_score)"
    add_header = X-Spam-Subject: ***SPAM*** $h_subject
    add_header = X-Spam-Status: Yes, score=$spam_score
    add_header = X-Spam-Score: $spam_score_int
    add_header = X-Spam-Bar: $spam_bar
    add_header = X-Spam-Report: $spam_report
    add_header = X-Spam-Flag: YES
    set acl_m2 = 1

  warn
      condition =  ${if eq {$spam_score_int}{}{0}{${if <= {${spam_score_int}}{8000}{${if >= {${spam_score_int}}{50}{${perl{store_spam}{$sender_host_address}{$spam_score}}}{0}}}{0}}}}

  warn
  condition = ${if eq {${acl_m0}}{1}{${if eq {${acl_m2}}{1}{0}{1}}}{0}}
  add_header = X-Spam-Status: No, score=$spam_score
  add_header = X-Spam-Score: $spam_score_int
  add_header = X-Spam-Bar: $spam_bar
  add_header = X-Spam-Report: $spam_report
  add_header = X-Spam-Flag: NO
  log_message = "SpamAssassin as ${acl_m1} detected message as NOT spam ($spam_score)"

#BEGIN ACL_RATELIMIT_SPAM_BLOCK

warn
    condition = ${if eq {${acl_m0}}{1}{${if >{$spam_score_int}{200}{1}{0}}}{0}}
    ratelimit = 0 / 1h / strict / per_conn
    log_message = "Increment Connection Ratelimit - $sender_fullhost because mail server detected a message with a spam score integer greater or equal to 200"



#END ACL_RATELIMIT_SPAM_BLOCK

и вот

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

#!!# ACL that is used after the RCPT command
check_recipient:
  # Exim 3 had no checking on -bs messages, so for compatibility
  # we accept if the source is local SMTP (i.e. not over TCP/IP).
  # We do this by testing for an empty sending host field.
# stop bounce from us, lets do it by sender's server
accept domains = +local_domains
endpass
message = unknown user
verify = recipient

# ratelimit for bounce messages for recipient
# Блокируем в predata
      warn hosts      = !+relay_from_hosts
           senders    = :
           ratelimit  = 2 / 30m / per_rcpt / $local_part@$domain
           set acl_m3 = $local_part@$domain



#BEGIN ACL_RATELIMIT_BLOCK
# Log all senders' rates
    warn ratelimit = 0 / 1h / strict
    log_message = Sender rate $sender_rate / $sender_rate_period

#END ACL_RATELIMIT_BLOCK

  accept  hosts = :

  accept hosts = +skipsmtpcheck_hosts


  # Accept bounces to lists even if callbacks or other checks would fail
  warn     message      = X-WhitelistedRCPT-nohdrfromcallback: Yes
           condition    = \
           ${if and {{match{$local_part}{(.*)-bounces\+.*}} \
                     {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \
                {yes}{no}}

  accept   condition    = \
           ${if and {{match{$local_part}{(.*)-bounces\+.*}} \
                     {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \
                {yes}{no}}


  # Accept bounces to lists even if callbacks or other checks would fail
  warn     message      = X-WhitelistedRCPT-nohdrfromcallback: Yes
           condition    = \
           ${if and {{match{$local_part}{(.*)-bounces\+.*}} \
                     {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \
                {yes}{no}}

  accept   condition    = \
           ${if and {{match{$local_part}{(.*)-bounces\+.*}} \
                     {exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \
                {yes}{no}}

  #if it gets here it isn't mailman
# deny must be on the same line as hosts so it will get removed by buildeximconf if turned off
   deny  hosts = ! +senderverifybypass_hosts
        ! verify = sender

  accept  hosts = *
          authenticated = *


  # if they used "pop before smtp" then we just accept
  accept  condition = ${if match_ip{$sender_host_address}{iplsearch;/etc/relayhosts}{1}{${if eq{$sender_host_address}{127.0.0.1}{1}{0}}}}
          add_header = ${if exists{/etc/eximpopbeforesmtpwarning}{${perl{popbeforesmtpwarn}{$sender_host_address}}{}}
  
  accept  hosts = +relay_hosts
          add_header = ${if exists{/etc/eximpopbeforesmtpwarning}{${perl{popbeforesmtpwarn}{$sender_host_address}}{}}

   #recipient verifications are now done after smtp auth and pop before smtp so the users get back bounces instead of 
   # a clogged outbox in outlook



    #recipient verifications are required for all messages that are not sent to the local machine    #this was done at multiple users requests
    require verify = recipient

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

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение blade_007 » 2010-12-24 0:03:32

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

acl_smtp_rcpt = check_rcpt 
acl_smtp_data = check_data 
acl_smtp_predata = check_predata

check_rcpt:
  accept  hosts = :
  accept hosts = +skipsmtpcheck_hosts
......
      warn 
           !hosts      = +relay_from_hosts
           senders    = :
           ratelimit  = 2 / 30m / per_rcpt / $local_part@$domain
           set acl_m3 = $local_part@$domain


check_predata:
    drop message    = Bounce messages rate exceeds per $sender_rate_period for $acl_m3
         log_message = Bounce ratelimit: rate $sender_rate, period $sender_rate_period for $acl_m3
         condition  = ${if def:acl_m3 {1}}
    accept

check_data:

  deny    message        = Serious MIME defect detected ($demime_reason) 
          demime         = * 
          condition      = ${if >{$demime_errorlevel}{2}{1}{0}}
......

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-24 0:22:03

сбросил конфиг на дефолтный и сделал заново, а то уже запутался.
bouce всего один приходит, но вот при отсылке писем приходит сообщение:
421 Unexpected failure, please try later

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

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение blade_007 » 2010-12-24 0:23:27

ну так логи в студию про эту ошибку 421 Unexpected failure, please try later.
Остановить exim.
/path/exim -bd -d+all

и запустить тестовую сессию от <>. Естественно ваш ип НЕ должен быть в списке relay_from или что-то подобного.

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-24 0:32:39

2010-12-24 00:09:44 H=p210.mp1.a555net.ru (puh) [80.81.50.113.] temporarily rejected DATA: unknown ACL verb "check_predata" in "check_predata"

нашел в /var/log/exim_rejectlog

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

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение blade_007 » 2010-12-24 0:36:31

acl_smtp_rcpt = check_rcpt
acl_smtp_data = check_data
acl_smtp_predata = check_predata
Вот эти строчки рядом идут?

Затем в тексте конфига проверьте что встречаются
check_rcpt
check_data
check_predata

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-24 0:43:12

пропустил в конфиге check_predata:
прописал, перезапустил exim Ошибка таже, в логах чето ничего не вижу

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-24 0:45:26

как это сделать "и запустить тестовую сессию от <>" ??

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

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение blade_007 » 2010-12-24 0:47:34

telnet YOUR_SMTP_SERVER 25
ehlo YOUR_DOMAIN
mail from: <>
rcpt to: USER@YOUR_DOMAIN
quit

Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-24 0:53:54

root@dl [~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220-d1.2ru.net ESMTP Exim 4.69 #1 Fri, 24 Dec 2010 00:51:14 +0300
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
ehlo 2ru.net
250-d1.2ru.net Hello localhost [127.0.0.1]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
mail from: <>
250 OK
rcpt to: sup@2ru.net
421 Unexpected failure, please try later
quit
221 d1.2ru.net closing connection
Connection closed by foreign host.


Sanyh
сержант
Сообщения: 152
Зарегистрирован: 2008-02-13 8:42:54

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение Sanyh » 2010-12-24 1:02:56

в логах exim_rejectlog exim_mainlog ничего не нахожу, ни своего IP ни ящика...exim не останавливал если оставливаю то telnet на 25 порт не ципляется.

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

Re: Exim как включить DROP для спама и bounce

Непрочитанное сообщение blade_007 » 2010-12-24 1:08:05

так .. еще раз.
exim остановить. что за система у вас?
затем запустить как демон с отладкой exim -bd -d+all
на другой консоли запустить тестовую сессию