[sendmail-conf] is_outgoing.m4 и access_db

Victor Ustugov victor на corvax.kiev.ua
Пт Окт 22 11:16:50 EEST 2004


Sergey Korolew wrote:
> Здравствуйте, Victor.
> 
> Вы писали 22 октября 2004 г., 10:35:01:
> 
> VU> так он шлет изнутри сетки? тогда OUTGOING в confCHECK_HELO_SKIP ему
> VU> поможет. если это письмо снаружи, то он будет рассматриваться как любое
> VU> другое кривое
> Да. Должно было помочь. Не помогло :-)
> 
> 
> VU> т. е. если я сейчас у себя уберу из confCHECK_HELO_SKIP значение
> VU> SPAMFRIEND, то у меня начнут фильтроваться кривые HELO из внутренней
> VU> сети? у меня helo в этом случае не фильтруется.

> Согласен, не должно было фильтроваться. Но у меня фильтровалось,
> потому что по какой-то причине не проходила проверка на outgoing.

а в предыдущем письме я читал, что проверка проходила. кто-то из нас 
что-то перепутал...

> VU> при этом delay_checks используется?
> Да.
> 
> VU> если да, то свежий ли используется precheck_envelope.m4?
> Да, от 28-Авг-2004.
> 
> VU> у меня такое впечатление, что precheck_envelope.m4 используется более
> VU> старый, а check_helo - более новый
> check_helo тоже последний.

тогда не обращая внимание на _все_ предыдущие формулировки проблемы, 
формулируем их заново и подробно

> VU> если CheckHelo вызывается из Local_check_mail, то проверка на SPAMFRIEND
> VU> работать не может

> Лог:

1. это не лог
2. с какого IP тестировался sendmail? локального? нелокального? это 
нужно для тестирования с помощью -bt (см. ниже)

> 220 bitty.balakovo.info ESMTP Sendmail; Fri, 22 Oct 2004 11:29:57 +0400 (MSD)
> helo bitty.balakovo.info
> 250 bitty.balakovo.info Hello rt.balakovo.ru [82.116.42.47], pleased to meet you
> mail from:ds на mail.ru
> 250 2.1.0 ds на mail.ru... Sender ok
> rcpt to:ds на bittu.org.ru
> 554 5.7.1 Misconfigured SMTP client detected
> rcpt to:postmaster на bittu.org.ru
> 250 2.1.5 postmaster на bittu.org.ru... Recipient ok
> quit
> 221 2.0.0 bitty.balakovo.info closing connection
> Connection closed by foreign host.
> 
> Конфиг:
> FEATURE(`delay_checks', `friend')dnl
> ...
> define(`confCHECK_HELO_SKIP', `OUTGOING AUTH ACCESS_DB')dnl
> define(`confCHECK_HELO', `OWN ACCESS_DB')dnl

если до этого был фрагмент sendmail.mc, а после этого - sendmail.cf, то 
лучше так и писать...

> R FAILED                        $#error $@ 5.7.1 $: "550 Forged header"
> R $-.$-.$-.$-                   $: <?> $1.$2.$3.$4
> 
> R <$*> $-.$-.$-.$- $| $*        $: $2.$3.$4.$5
> 
> 
> 
> 
> 
> SLocal_check_mail
> R $*                    $: $1 $| $>CheckHelo $&s $| $&{client_name} $| $&{client
> _addr}
> R $* $| $#$*            $#$2
> R $* $| $* $| $* $| $*  $: $1
> R $* $| $*              $: $1
> 
> 
> SCheckHelo
> 
> R . $| $* $| $*         $#error $@ 5.7.1 $: "554 HELO Error"
> 
> # делаем исключение из проверки, если PTR запись рилея

надо в sendmail.cf перед правилом CheckHelo вставить:

SCheckHeloTest
R $* <!> $* <!> $*		$: $>CheckHelo $1 $| $2 $| $3

после этого я хочу посмотреть на вывод
(echo ".Dsbitty.balakovo.info"; \
echo ".D\{client_name\}hotmail.com"; \
echo ".D\{client_addr\}64.4.32.7"; \
echo ".D\{IsOutgoing\}NO"; \
echo "CheckHeloTest sbitty.balakovo.info <!> hotmail.com <!> 64.4.32.7"
) | sendmail -bt -d21.12

можно приватом, т. к. там много будет

хотя... уже не надо... я тут еще раз посмотрел в sendmail.cf...
если используется delay_checks со SPAMFRIEND'ами, то исключение делается 
еще до меня.
1. первым в таком случае выполняется check_rcpt
2. из check_rcpt выполняется checkrcpt
3. из checkrcpt выполняется Local_check_rcpt, потом управление 
передается обратно в checkrcpt
4. из checkrcpt выполняется Basic_check_rcpt
5. из Basic_check_rcpt выполняется Rcpt_ok
6. из Rcpt_ok после выполенинея ParseRecipient проводится поверка адреса 
получателя по access_db и если получатель является SPAMFRIEND'ом, то 
управление сразу возвращается в Basic_check_rcpt
7. из Basic_check_rcpt управление передается обратно в checkrcpt
8. потом выполнение передается обратно из checkrcpt в check_rcpt
9. выполняется очередная проверка по access_db и в случае SPAMFRIEND'а 
управление передается правилу Delay_TLS_Clt2 без дальнейшего возврата в 
check_rcpt
10. и только для не SPAMFRIEND'ов далее проводятся последовательные 
вызовы правил checkmail (из которого вызывается Local_check_mail, а из 
него в свою очередь CheckHelo) и checkrelay

если кому-то интересна эта последовательность, то прошу заметить, что 
она верна для случая использования FEATURE(`delay_checks'). без этой 
фичи последовательность очень сильно отличается. она будет диаметрально 
противоположная

следовательно, если используется FEATURE(`delay_checks', `FRIEND'), но 
при этом нужно проверять HELO и для этих FRIEND'ов, то придется 
выполнять CheckHelo из Local_check_rcpt, а не из Local_check_mail

сейчас буду переделывать check_helo.m4

> VU> 1. обновить все хаки
> VU> 2. протестировать все интересующие ситуации с разными комбинациями
> VU> значений confCHECK_HELO_SKIP/confCHECK_HELO/delay_checks
> VU> 3. описать их (при наличии проблем), перечислив для каждой ситуации:
> VU> используемые значения для confCHECK_HELO_SKIP, confCHECK_HELO
> VU> использование delay_checks
> VU> вывод команды grep -A 10 -B 10 '$>CheckHelo' /etc/mail/sendmail.cf
> Хорошо, но только вечером...

да, только надо будет обновить check_helo.m4

>>>IsOutgoing       returns: < YES > 192 . 168 . 180 . 2
> 
> VU> вообще-то я посил совершенно не это
 >
> Логично. Я просто пошел чуть дальше..
> Подозреваю что сейчас где-то по дороге херится макрос IsOutgoing.
> 
> 
>>>Есть несколько нестандартных Received от tiscali.it и tiscali.fr.
>>>Надо ?
> 
> VU> да
> Received: from dyn-83-154-193-133.ppp.tiscali.fr (83.154.193.133) by mail.libertysurf.net
> (6.5.036)
>         id 416371C1001CB1A7; Wed, 6 Oct 2004 20:07:57 +0200
> 
> Received: from [82.84.6.50] (82.84.6.50) by mail-relay-3.tiscali.it (7.1.021.3)
>         id 415D98100045DA8F; Thu, 21 Oct 2004 13:24:57 +0200

а что это у них там за MTA такой?

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694      CRV2-RIPE, CRV-UANIC




Подробная информация о списке рассылки sendmail-conf