Добрый день
Установлен эксим. Проверка на спам идет через блэклистднс. Вопрос вот в чем: если я прописываю в вайтлист е-мэил, то блокировка все равно происходит по IP. В логах сообщение, что мол IP такой то в базе такой то, поэтому до свидания. Можно ли сделать так, что бы сначала проверялся обратный адрес отправителя и если с ним все ок (он в вайтлисте), то не важно, с какого IP он идет ?
>Добрый день
>Установлен эксим. Проверка на спам идет через блэклистднс. Вопрос вот в чем:
>если я прописываю в вайтлист е-мэил, то блокировка все равно происходит
>по 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 = heloaccept
>>Можно ли сделать так, чтобы сначала проверялся обратный адрес отправителя и если с ним все
>>ок (он в вайтлисте), то не важно, с какого 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_domainswarn 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 = senderaccept
--------------------------8<-----------------------------------