Re: Re: CGPSpamCatcher - Segmentation fault etc.

От: Dmitriy Y. Repin <CGatePro_at_mx_ru>
Дата: Tue 20 Jul 2004 - 14:28:14 MSD

RP> Извините, но я тут ничего не понял. Почему локальные пользователи RP> не могут формировать Message-ID? Какой уязвимостью?

Может неточно выразился. Как раз именно только локальным пользователям оставить возможность формировать Message-Id. При соединении телнетом на 25 порт Message-Id генерируется как от локального клиента, но клиент не является локальным.

В sendmail блокировка выглядела следующим образом: LOCAL_CONFIG
Kstorage macro

LOCAL_RULESETS
# Check for valid Message ID
# Check message id for valid hostname (after @)
HMessage-Id: $>CheckMessageId

SCheckMessageId
# Record the presence of the header

R$* $: $(storage {MessageIdCheck} $@ OK $) $1
# check for local Message-Id: header for non-local headers
# Put client hostname in an initial lookup focus
# anything -> < lookup focus > anything

R$*                     $: < $&{client_name} > < $1 >

# test if client hostname in lookup focus ends with one of our
# domains, $=m, if so the message is locally generated and all
# Message-Id: header are OK
R< localhost > < $+ > $@ OK
# Check for myhostname.mydomain.com
#R<$+> <$+> $: <$1 . $m> <$2>
#R< $j > <$+> $@ OK
# reject all other locally generated Message-Id: headers because
# client hostname is not local

R< $+ > < $+ @ $j > $#error $: "553 Delivery blocked; HMessage-ID: indicates local generation but client is not local (may be forged)"
# strip trash lookup focus leaving the original header
R< $+ > < $+ > < $2 >

Scheck_eoh
# This could break some mail
# Check the macro

R$*                     $: < $&{MessageIdCheck} >

# Clear the macro for the next message
R$* $: $(storage {MessageIdCheck} $) $1
# Has a Message-Id: header
R< $+ > $@ OK
# Allow missing Message-Id: from local mail
R$* $: < $&{client_name} > R< > $@ OK R< $=w > $@ OK

# Otherwise, reject the mail
# We need an access map check here, in case we want to allow blank
# message IDs by IP/hostname
R< $+ >                 $: $(access $1 $: $1 $)

# Now check for brackets around an IP
R[ $+ ] $: $(access $1 $: $1 $) ROK$* $@ OK RREJECT$* $#error $: "553 Delivery blocked; HMessage-ID: missing or null, and client reverse DNS failed access database lookup." RDISCARD$* $#discard $: discard RERROR:$* $#error $: $1
# Block anything else
R$* $#error $: "553 Delivery blocked; HMessage-ID: missing or null but client is not local"
Получено Tue Jul 20 10:28:19 2004

Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:13:08 MSK