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