URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88047
[ Назад ]

Исходное сообщение
"Приоретет проверки на спам"

Отправлено sudden , 03-Фев-10 10:55 
Добрый день
Установлен эксим. Проверка на спам идет через блэклистднс. Вопрос вот в чем: если я прописываю в вайтлист е-мэил, то блокировка все равно происходит по IP. В логах сообщение, что мол IP такой то в базе такой то, поэтому до свидания. Можно ли сделать так, что бы сначала проверялся обратный адрес отправителя и если с ним все ок (он в вайтлисте), то не важно, с какого IP он идет ?

Содержание

Сообщения в этом обсуждении
"Приоретет проверки на спам"
Отправлено tux2002 , 03-Фев-10 12:13 
>Добрый день
>Установлен эксим. Проверка на спам идет через блэклистднс. Вопрос вот в чем:
>если я прописываю в вайтлист е-мэил, то блокировка все равно происходит
>по IP. В логах сообщение, что мол IP такой то в
>базе такой то, поэтому до свидания. Можно ли сделать так, что
>бы сначала проверялся обратный адрес отправителя и если с ним все
>ок (он в вайтлисте), то не важно, с какого IP он
>идет ?

В начале конфига host_lookup = *

В acl
    deny        message  = Host is listed in $dnslist_domain
                log_message = Host is listed in $dnslist_domain (Sender: $sender_address)
                !senders = /etc/mail/exim.whitelist.senders # Это whitelist по e-mail
                !hosts = /etc/mail/exim.whitelist.hosts # Это whitelist по ip,fqdn
                dnslists  = sbl.spamhaus.org : \ # Это сами листы
                            proxies.blackholes.easynet.nl
                            .................

                condition = ${if !eq {$sender_host_name}{}} #Это проверка что хост иммет RDNS
PS но по моему это неэффективно, у меня 90% спама режет простейшее
acl_check_helo:
    deny        message = Invalid name in HELO EHLO command
                log_message = Invalid name $sender_helo_name in HELO EHLO command
                !hosts = +external_relays
                !hosts = /etc/mail/exim.whitelist.hosts
                !verify = helo

    accept


"Приоретет проверки на спам"
Отправлено DeadLoco , 04-Фев-10 03:20 
>>Можно ли сделать так, чтобы сначала проверялся обратный адрес отправителя и если с ним все
>>ок (он в вайтлисте), то не важно, с какого IP он идет ?

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

>PS но по моему это неэффективно, у меня 90% спама режет простейшее
>acl_check_helo:
>    deny        
>message = Invalid name in HELO EHLO command
>    log_message = Invalid name $sender_helo_name in HELO EHLO command
>    !hosts = +external_relays
>    !hosts = /etc/mail/exim.whitelist.hosts
>    !verify = helo
>    accept

Вот, рекомендую подобную конструкцию. На вопросы отвечу.

--------------------------8<-----------------------------------
acl_on_rcpt:

accept  hosts           =  : +relay_from_hosts
        control         = submission
        control         = no_enforce_sync
accept  local_parts     = postmaster
        domains         = +local_domains

warn    set acl_m0      = 0
warn    local_parts     = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
        set acl_m0      = ${eval:$acl_m0+20}
warn    condition       = ${if eq{$sender_helo_name}{}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+20}
warn    condition       = ${if match{$sender_helo_name}{\N^\d+$\N}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+20}
warn    condition       = ${if !eq{$sender_helo_name}{$sender_host_name}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+30}
warn    condition       = ${if eq{$host_lookup_failed}{1}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+45}
warn    condition       = ${if eq{$sender_address}{}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+10}
warn    condition       = ${if >{${strlen:$sender_address}}{30}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+20}
warn    condition       = ${lookup{$sender_host_name}wildlsearch{/usr/local/etc/exim/dyn.lst}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+60}
warn    condition       = ${if eq{$sender_host_name}{\N(?>\w+[.-]){7,}\N}{yes}{no}}
        set acl_m0      = ${eval:$acl_m0+30}
warn    set acl_m1      = ${eval:$acl_m0}s
        delay           = $acl_m1
deny    condition       = ${if ge{$acl_m0}{60}{yes}{no}}

require domains         = +relay_to_domains : +local_domains
require verify          = recipient
        verify          = sender

accept
--------------------------8<-----------------------------------