divert(-1) # # Copyright (c) 2003, 2004 Victor Ustugov # This hack is under BSD License # Redistributions of source code must retain the above copyright notice # # hacks disscussion's maillist - http://www.mta.org.ua/mailman/listinfo/sendmail-conf # # # Check relay forged # dnl # dnl # принудительная проверка PTR записи рилея в access_db dnl # необходима при отсутствии записи рилея в реверсной зоне DNS или dnl # при несовпадении записей в прямой и реверсной зонах DNS dnl # в этом случае sendmail добавляет в Received фразу "may be forged", dnl # а ${client_name} содержит вместо PTR записи хоста рилея A запись, взятую в квадратные скобки dnl # dnl # hack работает только в случае неиспользования FEATURE(`use_client_ptr') dnl # при использовании FEATURE(`use_client_ptr') в access_db идет поиск записей dnl # по имени хоста $&{client_ptr} и обрабатываются все резульаты поиска dnl # dnl # в данном же hack'е положительные результаты поиска (OK и RELAY) не обрабатываются, dnl # чтобы исключить возможность включения рилеинга или исключения из фильтров путем dnl # подделки PTR записи рилея в реверсной зоне dnl # divert(0) VERSIONID(`$Id: check_relay_forged.m4,v 8.13-0.05 2004/07/23 15:01:35 corvax Exp $')dnl divert(-1) dnl ifdef(`_ACCESS_TABLE_',`', `errprint(`*** FEATURE(`access_db') must appear before HACK(`check_relay_forged') ')') dnl HACK(`cfhead')dnl dnl dnl LOCAL_RULESETS dnl dnl SLocal_check_relay dnl ifdef(`_USE_CLIENT_PTR_', `', ` R [$-.$-.$-.$-] $| $* $: [$1.$2.$3.$4] $| $5 $| $&{client_ptr} R [$-.$-.$-.$-] $| $* $| $* . $: [$1.$2.$3.$4] $| $5 $| $6 R [$-.$-.$-.$-] $| $* $| $: [$1.$2.$3.$4] $| $5 R [$-.$-.$-.$-] $| $* $| $+ $: [$1.$2.$3.$4] $| $5 $| $>D <$6> <+Connect> <> R [$+] $| $* $| <$*> $: [$1] $| $2 found nothing R [$+] $| $* $| <$={Accept}> <$*> $: [$1] $| $2 R [$+] $| $* $| <$*> $#error $@ 5.7.1 $: "550 Access denied" R [$+] $| $* $| <$*> $#error $: $3 R [$+] $| $* $| <$*> $#error $: $3 R [$+] $| $* $| <$*> $#discard $: discard R [$+] $| $* $| <$*> $#error $@ quarantine $: $3 R [$+] $| $* $| <$*> $#error $@ $3.$4.$5 $: $6 R [$+] $| $* $| <$*> $#error $: $3 R [$+] $| $* $| <$+> <$*> $#error $: $3 ')