Зравствуйте!Как отучить sendmail принимать почту с
MAIL FROM: <>
т.е. с пустым адресом отправителя?
версия sendmail 8.11.0
конфиг делается:include('/usr/lib/sendmail-cf/m4/cf.m4')
OSTYPE('linux')
define('confDEF_USER_ID',''8:12'')dnl
undefine('UUCP_RELAY')dnl
undefine('BITNET_RELAY')dnl
define('confTO_CONNECT', '1m')dnl
define('confDONT_PROBE_INTERFACES',true)dnl
define('PROCMAIL_MAILER_PATH','/usr/bin/procmail')dnl
define('ALIAS_FILE','/etc/aliases')dnl
define('STATUS_FILE', '/var/log/sendmail.st')dnl
define('UUCP_MAILER_MAX', '2000000')dnl
FEATURE('smrsh','/usr/sbin/smrsh')dnl
FEATURE('mailertable','hash -o /etc/mail/mailertable')dnl
FEATURE('virtusertable','hash -o /etc/mail/virtusertable')dnl
FEATURE(use_cw_file)dnl
FEATURE(local_procmail)dnl
FEATURE('access_db')dnl
FEATURE('blacklist_recipients')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
По RFC-821 MTA обязаны пропускать почту с From: <>Например c From <> приходят отлупы от MAILER-DAEMON.
В Postfix вырезание пустого From делается примерно так:
в hader_checker:
/^(To|From):\s*$/ REJECTВ sendmail:
LOCAL_RULESETS
Kstorage macro
# There must be no spaces between the LHS and the RHS, replace them with
tabs.
# \/\/ LHS \/\/ \/\/ RHS \/\/
HFrom: $>+Check_From
SCheck_From
R$* $: $(storage {FromHeaderCheck} $@ $1 $)
$1Scheck_eoh
# Check the From macro
R$* $: < $&{FromHeaderCheck} >
# Clear the macro for the next message
R$* $: $(storage {FromHeaderCheck} $) $1
# If it has a From: header, accept it in this ruleset
R< $+ > $@ OK
# Allow missing From: in mail from
R$* $: < $&{client_name} >
# If you want mail from some boxen with no From: header, add those
host(s)
# R< hostname.yourdomain.com > $@ OK
# Accept mail from my own box
R< > $@ OK
# Otherwise, reject the mail
R$* $#error $: "553 Invalid Header"
>По RFC-821 MTA обязаны пропускать почту с From: <>
>
>Например c From <> приходят отлупы от MAILER-DAEMON.
>
>В Postfix вырезание пустого From делается
>примерно так:
>в hader_checker:
> /^(To|From):\s*$/
>
> REJECT
>
>В sendmail:
>
>LOCAL_RULESETS
>
> Kstorage macro
>
> # There must be no
>spaces between the LHS and
>the RHS, replace them with
>
> tabs.
> # \/\/ LHS \/\/
>
>
>
>\/\/ RHS \/\/
> HFrom: $>+Check_From
> SCheck_From
> R$*
>
>
>
>
> $:
>$(storage {FromHeaderCheck} $@ $1 $)
>
> $1
>
>Scheck_eoh
> # Check the From macro
>
> R$* $: < $&{FromHeaderCheck} >
> # Clear the macro for
>the next message
> R$*
>
>
>
>
> $:
>$(storage {FromHeaderCheck} $) $1
> # If it has a
>From: header, accept it in
>this ruleset
> R< $+ > $@ OK
> # Allow missing From: in
>mail from
> R$* $: < $&{client_name} >
> # If you want mail
>from some boxen with no
>From: header, add those
> host(s)
> # R< hostname.yourdomain.com > $@ OK
> # Accept mail from my
>own box
> R< > $@ OK
> # Otherwise, reject the mail
>
> R$*
>
>
>
>
> $#error
>$: "553 Invalid Header"не good это, лучше уж в procmail'е вырезать ВСЕ
что нужно, а он - procmail, тама есть, правда
соединения все равно будут проходить.
>>По RFC-821 MTA обязаны пропускать почту с From:>не good это, лучше уж в
>procmail'е вырезать ВСЕ
>что нужно, а он - procmail,
>тама есть, правда
>соединения все равно будут проходить.а чем плохо не принимать почту с MAIL FROM:<> в smtp протоколе (не поле From: заголовка)? я не специалист в sendmail, просто интересно чем это грозит...
дело в том, что такие письма приходят почему-то только от спамеров, во всяком случае чего-то другого с пустым mail from в логах я не находил. Еще бывает вирус внутри.
Не спорю, может плохо смотрел, но впечатление именно такое.
Не принимать почту с пустым полем FROM плохо потому, что такие письма могут прийти от другого почтовика, когда он сообщает, что,например, юзера у него такого нет или о другой к-л системной ошибке. Так что, отказывая в приеме таких писем, ты не очень корректно поступаешь с другими почтовыми системами, хотя хозяин-барин.
Мне тоже доводилось запрещать такие письма, правда делалось это посто изменением строки в sendmail.cf
в разделе check_mail -- check "MAIL FROM:" command argument
- - - - - - -
R<> $@<OK>
на
R<> $#ERROR $@ 5.7.1 $: "550 Access for empty FROM denied"
- - - - - - -
Поскольку я тоже в числе начинающих, то за правильность данного преобразования не отвечаю :), но это работало, и в maillog'e была куча отлупов на пустые From.
Очень скоро довелось заметить, что таких писем масса, и что большинство из них - это именно сообщения от других почтовиков, а не вирусяки.
После прикручивания антивируса необходимость в таком отлупе отпала.
Так что решай сам :)
>Очень скоро довелось заметить, что таких
>писем масса, и что большинство
>из них - это именно
>сообщения от других почтовиков, а
>не вирусяки.Тогда уж просто хоронить без ответа, если реджектить письма с пустым From, можно нарваться на себе подобного и устроить чемпионат сети по игре в пинг-понг :-)
>>>По RFC-821 MTA обязаны пропускать почту с From:
>
>>не good это, лучше уж в
>>procmail'е вырезать ВСЕ
>>что нужно, а он - procmail,
>>тама есть, правда
>>соединения все равно будут проходить.
>
>а чем плохо не принимать почту с MAIL FROM:<> в smtp протоколе (не поле From: заголовка)? я не специалист в sendmail, просто интересно чем это грозит...
>дело в том, что такие письма
>приходят почему-то только от спамеров,http://www.morning.ru/~poige/admin/mail/onewaymsg.html
>во всяком случае чего-то другого
>с пустым mail from в
>логах я не находил. Еще
>бывает вирус внутри.
>Не спорю, может плохо смотрел, но
>впечатление именно такое.
>не good это, лучше уж в
>procmail'е вырезать ВСЕНе факт, иногда важнее транзитный трафик на релее отфильтровать.
А в файлике hosts.allow своии разрешить, а несвоим не разрешить пробовали? Вообще от много чего помогает.