Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Victor Ustugov
Golub Mikhail wrote:
> Спасибо.
> Я пробовал с подобным "костылем", но почему-то не доделал :(

он более-менее универсальный.

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

поэтому его можно использовать не только с dnsdb.

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

в случае с dnsdb это не актуально.

в случае других лукапов можно немного переделать костыль:


acl_check_connect:
warnacl = acl_check_rdns

acl_check_rcpt:
denycondition   = ${if eq{$acl_c_rdns}{fail}{yes}{no}}
log_message = DENY
warncondition   = ${if eq{$acl_c_rdns}{defer}{yes}{no}}
log_message = GREYLISTING

acl_check_rdns:
warnset acl_c_rdns  = defer
set acl_c_rdns  = \
${lookup dnsdb{ptr=$sender_host_address}{$value}{fail}}
accept


нужно лишь выбирать предопределенное значение для случаев, когда лукап
ничего не вернул (fail в данном случае) таким, которое не может быть
возвращено самим лукапом.


>> -Original Message-
>> From: Exim-users [mailto:exim-users-boun...@mailground.net] On Behalf
>> Of Victor Ustugov
>> Sent: Monday, April 06, 2015 1:30 PM
>> To: Golub Mikhail
>> Subject: Re: [Exim-users] lookup dnsdb - SERVFAIL
>>
>> Golub Mikhail wrote:
>>> host_lookup_failed - немного не то (defer тоже не то для той цели, что я
>>> хочу использовать).
>>> Здесь "истина" будет, если запись в прямой и обратной зоне ДНС не
>> совпадают.
>>>
>>> Я же хочу проверять наличие _любой_ записи в обратной зоне для
>> хоста
>>> отправителя.
>>> Есть - хорошо.
>>> Нет - плохо.
>>> Но под "нет" попадают и ошибки резолвинга.
>>>
>>> warn set acl_c_rdns = ${lookup
>>> dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}
>>
>> тогда можно использовать дополнительный acl в качестве костыля:
>>
>> acl_check_rcpt:
>>
>> warnacl = acl_check_rdns
>> denycondition   = ${if eq{$acl_c_rdns}{}{yes}{no}}
>> log_message = DENY
>> warncondition   = ${if eq{$acl_c_rdns}{defer}{yes}{no}}
>> log_message = GREYLISTING
>>
>>
>> acl_check_rdns:
>> warnset acl_c_rdns  = defer
>> set acl_c_rdns  = \
>>  ${lookup dnsdb{ptr=$sender_host_address}{$value}{}}
>> accept
>>
> ___
> Exim-users mailing list
> Exim-users@mailground.net
> http://mailground.net/mailman/listinfo/exim-users
> 


-- 
Best wishes Victor Ustugov  mailto:vic...@corvax.kiev.ua
public GnuPG/PGP key:   http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614  JID: corvax_at...@jabber.corvax.kiev.ua
nic-handle: CRV-UANIC

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Golub Mikhail
Спасибо.
Я пробовал с подобным "костылем", но почему-то не доделал :(




> -Original Message-
> From: Exim-users [mailto:exim-users-boun...@mailground.net] On Behalf
> Of Victor Ustugov
> Sent: Monday, April 06, 2015 1:30 PM
> To: Golub Mikhail
> Subject: Re: [Exim-users] lookup dnsdb - SERVFAIL
> 
> Golub Mikhail wrote:
> > host_lookup_failed - немного не то (defer тоже не то для той цели, что я
> > хочу использовать).
> > Здесь "истина" будет, если запись в прямой и обратной зоне ДНС не
> совпадают.
> >
> > Я же хочу проверять наличие _любой_ записи в обратной зоне для
> хоста
> > отправителя.
> > Есть - хорошо.
> > Нет - плохо.
> > Но под "нет" попадают и ошибки резолвинга.
> >
> > warn set acl_c_rdns = ${lookup
> > dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}
> 
> тогда можно использовать дополнительный acl в качестве костыля:
> 
> acl_check_rcpt:
> 
> warnacl = acl_check_rdns
> denycondition   = ${if eq{$acl_c_rdns}{}{yes}{no}}
> log_message = DENY
> warncondition   = ${if eq{$acl_c_rdns}{defer}{yes}{no}}
> log_message = GREYLISTING
> 
> 
> acl_check_rdns:
> warnset acl_c_rdns  = defer
> set acl_c_rdns  = \
>   ${lookup dnsdb{ptr=$sender_host_address}{$value}{}}
> accept
> 
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Victor Ustugov
Golub Mikhail wrote:
> host_lookup_failed - немного не то (defer тоже не то для той цели, что я
> хочу использовать).
> Здесь "истина" будет, если запись в прямой и обратной зоне ДНС не совпадают.
> 
> Я же хочу проверять наличие _любой_ записи в обратной зоне для хоста
> отправителя.
> Есть - хорошо.
> Нет - плохо.
> Но под "нет" попадают и ошибки резолвинга.
> 
> warn set acl_c_rdns = ${lookup
> dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}

тогда можно использовать дополнительный acl в качестве костыля:

acl_check_rcpt:

warnacl = acl_check_rdns
denycondition   = ${if eq{$acl_c_rdns}{}{yes}{no}}
log_message = DENY
warncondition   = ${if eq{$acl_c_rdns}{defer}{yes}{no}}
log_message = GREYLISTING


acl_check_rdns:
warnset acl_c_rdns  = defer
set acl_c_rdns  = \
${lookup dnsdb{ptr=$sender_host_address}{$value}{}}
accept


>> -Original Message-
>> From: Exim-users [mailto:exim-users-boun...@mailground.net] On Behalf
>> Of Victor Ustugov
>> Sent: Monday, April 06, 2015 1:43 PM
>> To: Golub Mikhail
>> Subject: Re: [Exim-users] lookup dnsdb - SERVFAIL
>>
>> Golub Mikhail wrote:
>>> Доброго времени суток.
>>
>> приветствую
>>
>>> Подскажите, пожалуйста, как правильно выдать defer, если
>> библиотека
>>> резолвера тоже возвращает SERVFAIL?
>>>
>>> warn set acl_c_rdns = ${lookup
>>> dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}
>>>
>>> Под " condition = ${if eq{$acl_c_rdns} {}}" - попадают и SERVFAIL и
>>> NXDOMAIN.
>>>
>>> Как отделить временную ошибку резолвинга от явного отсутствия
>> записи в
>>> обратной зоне?
>>
>> exim сам резолвит PTR запись и пытается резолвить соответствующую A
>> запись в прямой зоне.
>>
>> можно использовать $host_lookup_failed и $host_lookup_deferred,
>> значения
>> которых зависят от наличия проблем при резолвинге.
>>
>>
>> --
>> Best wishes Victor Ustugov  mailto:vic...@corvax.kiev.ua
>> public GnuPG/PGP key:   http://victor.corvax.kiev.ua/corvax.asc
>> ICQ UIN: 371808614  JID: corvax_at...@jabber.corvax.kiev.ua
>> nic-handle: CRV-UANIC
>>
>> ___
>> Exim-users mailing list
>> Exim-users@mailground.net
>> http://mailground.net/mailman/listinfo/exim-users
> 
> ___
> Exim-users mailing list
> Exim-users@mailground.net
> http://mailground.net/mailman/listinfo/exim-users
> 


-- 
Best wishes Victor Ustugov  mailto:vic...@corvax.kiev.ua
public GnuPG/PGP key:   http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614  JID: corvax_at...@jabber.corvax.kiev.ua
nic-handle: CRV-UANIC

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Golub Mikhail
host_lookup_failed - немного не то (defer тоже не то для той цели, что я
хочу использовать).
Здесь "истина" будет, если запись в прямой и обратной зоне ДНС не совпадают.

Я же хочу проверять наличие _любой_ записи в обратной зоне для хоста
отправителя.
Есть - хорошо.
Нет - плохо.
Но под "нет" попадают и ошибки резолвинга.

warn set acl_c_rdns = ${lookup
dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}



> -Original Message-
> From: Exim-users [mailto:exim-users-boun...@mailground.net] On Behalf
> Of Victor Ustugov
> Sent: Monday, April 06, 2015 1:43 PM
> To: Golub Mikhail
> Subject: Re: [Exim-users] lookup dnsdb - SERVFAIL
> 
> Golub Mikhail wrote:
> > Доброго времени суток.
> 
> приветствую
> 
> > Подскажите, пожалуйста, как правильно выдать defer, если
> библиотека
> > резолвера тоже возвращает SERVFAIL?
> >
> > warn set acl_c_rdns = ${lookup
> > dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}
> >
> > Под " condition = ${if eq{$acl_c_rdns} {}}" - попадают и SERVFAIL и
> > NXDOMAIN.
> >
> > Как отделить временную ошибку резолвинга от явного отсутствия
> записи в
> > обратной зоне?
> 
> exim сам резолвит PTR запись и пытается резолвить соответствующую A
> запись в прямой зоне.
> 
> можно использовать $host_lookup_failed и $host_lookup_deferred,
> значения
> которых зависят от наличия проблем при резолвинге.
> 
> 
> --
> Best wishes Victor Ustugov  mailto:vic...@corvax.kiev.ua
> public GnuPG/PGP key:   http://victor.corvax.kiev.ua/corvax.asc
> ICQ UIN: 371808614  JID: corvax_at...@jabber.corvax.kiev.ua
> nic-handle: CRV-UANIC
> 
> ___
> Exim-users mailing list
> Exim-users@mailground.net
> http://mailground.net/mailman/listinfo/exim-users

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Golub Mikhail
> -Original Message-
> From: Exim-users [mailto:exim-users-boun...@mailground.net] On Behalf
> Of George L. Yermulnik
> Sent: Monday, April 06, 2015 12:43 PM
> To: exim-users@mailground.net
> Subject: Re: [Exim-users] lookup dnsdb - SERVFAIL
> 
> 
> Перестать использовать defer_never и перейти на defer_strict или
defer_lax? =)

defer_lax - по умолчанию. Не подходит
failed to expand ACL string "${lookup
dnsdb{defer_lax,ptr=$sender_host_address}{$value}fail}": lookup of
"defer_lax,ptr=1.55.99.119" gave DEFER:

С defer_never - то же самое.

http://www.exim.org/exim-html-current/doc/html/spec_html/ch-file_and_databas
e_lookups.html#SECTdnsdb
"With "strict" behaviour, any temporary DNS error causes the whole lookup to
defer."

Получу тоже defer.

А задумка, чтобы при явном отсутствии записи а обратной зоне выдать deny.
Если временная ошибка резолвинга - отправить на greylisting.

> 
> --
> George L. Yermulnik
> [YZ-RIPE]
> 
> ___
> Exim-users mailing list
> Exim-users@mailground.net
> http://mailground.net/mailman/listinfo/exim-users



___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Golub Mikhail
> Это не ответ, но при пустом $sender_host_name я отправляю на
> селективный greylisting. Поэтому ошибки резолвинга не фатальны.

Спасибо.
Да, можно отправлять на greylisting. И, скорее всего, на таком варианте и
остановлюсь.

Но средствами Exim обрабатывать отдельно SERVFAIL и другие явно
отрицательные ответы не получится?
Например, если записи в обратной  зоне явно нет ...


> Селективный greylisting полностью в конфиге Exim,
> без дополнительного софта:
> https://github.com/Exim/exim/wiki/DbLessGreyListingRun
> https://github.com/Exim/exim/wiki/LenasConfig
> 
> 
> ___
> Exim-users mailing list
> Exim-users@mailground.net
> http://mailground.net/mailman/listinfo/exim-users

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Victor Ustugov
Golub Mikhail wrote:
> Доброго времени суток.

приветствую

> Подскажите, пожалуйста, как правильно выдать defer, если библиотека
> резолвера тоже возвращает SERVFAIL?
> 
> warn set acl_c_rdns = ${lookup
> dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}
> 
> Под " condition = ${if eq{$acl_c_rdns} {}}" - попадают и SERVFAIL и
> NXDOMAIN.
> 
> Как отделить временную ошибку резолвинга от явного отсутствия записи в
> обратной зоне?

exim сам резолвит PTR запись и пытается резолвить соответствующую A
запись в прямой зоне.

можно использовать $host_lookup_failed и $host_lookup_deferred, значения
которых зависят от наличия проблем при резолвинге.


-- 
Best wishes Victor Ustugov  mailto:vic...@corvax.kiev.ua
public GnuPG/PGP key:   http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614  JID: corvax_at...@jabber.corvax.kiev.ua
nic-handle: CRV-UANIC

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность George L. Yermulnik
Hello!

On Mon, 06 Apr 2015 at 11:33:52 (+0300), Golub Mikhail wrote:

> Доброго времени суток.

> Подскажите, пожалуйста, как правильно выдать defer, если библиотека
> резолвера тоже возвращает SERVFAIL?

> warn set acl_c_rdns = ${lookup
> dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}

> Под " condition = ${if eq{$acl_c_rdns} {}}" - попадают и SERVFAIL и
> NXDOMAIN.

> Как отделить временную ошибку резолвинга от явного отсутствия записи в
> обратной зоне?

Перестать использовать defer_never и перейти на defer_strict или defer_lax? =)

-- 
George L. Yermulnik
[YZ-RIPE]

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users



Re: [Exim-users] lookup dnsdb - SERVFAIL

2015-04-06 Пенетрантность Lena
> как правильно выдать defer, если библиотека
> резолвера тоже возвращает SERVFAIL?
>
> warn set acl_c_rdns = ${lookup
> dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}
>
> Под " condition = ${if eq{$acl_c_rdns} {}}" - попадают и SERVFAIL и
> NXDOMAIN.
>
> Как отделить временную ошибку резолвинга от явного отсутствия записи в
> обратной зоне?

Это не ответ, но при пустом $sender_host_name я отправляю на
селективный greylisting. Поэтому ошибки резолвинга не фатальны.

Селективный greylisting полностью в конфиге Exim,
без дополнительного софта:
https://github.com/Exim/exim/wiki/DbLessGreyListingRun
https://github.com/Exim/exim/wiki/LenasConfig


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users