Re: [Exim-users] lookup dnsdb - SERVFAIL
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
Спасибо. Я пробовал с подобным "костылем", но почему-то не доделал :( > -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
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
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
> -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
> Это не ответ, но при пустом $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
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
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
> как правильно выдать 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