|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Gleb Smirnoff 2:5020/400 26 Mar 2002 10:48:14 To : Andrew Khlebutin Subject : Re: Help with sendmail's ruleset - fido7.ru.unix.bsd -------------------------------------------------------------------------------- Andrew Khlebutin <andrey@hm.perm.ru> wrote: AK> HReceived: $+>>CheckReceived VN>> SCheckReceived VN>> R$*211.172.$+.$+ $#error [...] VN>> [...] VN>> R$*211.199.$+.$+ $#error [...] VN>> Это, конечно, очень примитивный вариант - для нормального надо выделять VN>> в received: куски нужного типа в соответствии с известными форматами. VN>> Hо направление именно такое. AK> ОК, а есть какой-нибудь способ держать адреса спамеров в отдельном AK> файле, чтобы не править каждый раз sendmail.cf? Записываешь кучу подсетей /12 в access.db вот так: Received:211.172 REJECT Received:211.173 REJECT и тд Теперь в CheckReceived нужно выдрать из Received IP адрес, и проверить его по A. Hо тк каждый MTA норовит по своему записать Received, то тут мы имеем геморр. Hужно сначала привести Received к нормальному виду, то есть "from helo (domain [IP])". Тогда CheckReceived выглядит примерно так: SCheckReceived # stupid qmail formats Rfrom $* ( HELO $+ ) ( $+ ) by $+ with $- ; $+ $: from $2 ( $1 [ $3 ] ) by $4 # handle CGPro format Rfrom [ $+ ] ($* HELO $+) by $+ ($+) with $- id $+ $: from $3 ( $2 [ $1 ] ) by $4 # MS Internet Mail Rfrom ( $+ ) [ $+ ] by $+ with $+ $: from $1 ( [ $2 ] ) by $3 # SMail format for local clients Rfrom (locally authorised $+) $+ [$+] with $- by $+ with $+ $: from $2 ([$3]) by $5 # handle SpiderMail format Rfrom $+ ( $+ [ $+ ] with $- ) by $+ for $+ $: from $1 ( $2 [ $3 ] ) by $5 # handle Domino MTA fmt R( from $* [ $+ ] ) $+ $: from $1 ( [ $2 ] ) $3 # now we have formatted Received to normal syntax # now have a token and test it against "Received:XXXXX" strings in access_db R$* $: $1 | $1 dup token for a further reference R$* | $- $* ( $* [$*]) $: <@> <$1> $| $>A <$5> <?> <!Received> <> R<@> <$*> $| <$*> $: <$2> <$1> R<?> <$*> $: @ $1 mark token as no match R<$={Accept}> <$*> $: @ $2 mark token as no match R<REJECT> $* $#error $@ 5.7.1 $: "554 Access denied" R<DISCARD> $* $#discard $: discard R<ERROR:$-.$-.$-:$+> $* $#error $@ $1.$2.$3 $: $4 R<ERROR:$+> $* $#error $: $1 R<$+> $* $#error $: $1 error from access db R@ $* $1 remove mark R$* $@ OK После этого остается только вносить в access подсети с тегом Received. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6577f611872b.html, оценка из 5, голосов 10
|