URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 72756
[ Назад ]

Исходное сообщение
"Почта только по локалке"

Отправлено man123 , 09-Мрт-07 15:10 
Подскажите пожалуйста, установлен sendmail, как сделать что бы определенный ящик не мок принимать и отправлять внешнюю почту  (только по локалке)
Спасибо.

Содержание

Сообщения в этом обсуждении
"Почта только по локалке"
Отправлено pal , 09-Мрт-07 17:01 
>Подскажите пожалуйста, установлен sendmail, как сделать что бы определенный ящик не мок
>принимать и отправлять внешнюю почту  (только по локалке)
>Спасибо.
Легко конечно это дело обмануть но все же...


################################ в конце /etc/mail/sendmail.mc добавь, потом собери:

LOCAL_RULESETS

Kdenyrelay hash -o /etc/mail/deny-relay.db

Smy_check_relay
R$*             $: $>3 $1                       канонизируем получателя
R$* < @ $=w .>  $@ <NORELAY>                    письмо идет нам ?
#                                                   да, нам - выйти (это не RELAY)
R$*             $: $1 $| <LOCAL>                если адрес получателя не содержит доменной части
R$* @ $* $| $*  $: $1 @ $2 $| <NOTLOCAL>        нет, все таки содержит и "не нам" => это RELAY
R$* $| <LOCAL>  $@ <NORELAY>
#                                                   не нам ===> значит это RELAY, смотрим дальше
R$*             $: $>3 $&f                      канонизируем отправителя :
#                                                   from<@senderhost.>
R$*             $: $1 $| <DENY>                 сделаем по умолчанию DENY
#                                                   (вдруг идет не от нас не нам)

#                                               письмо идет от нас ? Можно ему идти дальше ?
R$* < @ $=w . > $| $*   $: $1 < @ $2 . > $| < $(denyrelay $1 $) >
R$* $| <DENY>   $#error $@ 5.7.1 $: "550 Relaying denied"               НЕТ
R$* $| <OK>     $@ <OK>                                                 ДА
#                                       нашего отправителя нет в /etc/mail/deny-relay.db ?
#                                       тогда смотрим что делать по умолчанию...
R$* $| $*       $: $1 $| < $(denyrelay defaultrelay $) >

#                               если действие по умолчанию не определено, то ЗАПРЕТ
R$* $| <OK>     $@ <OK>                                                 МОЖНО
R$*             $#error $@ 5.7.1 $: "550 Relaying denied"       по умолчанию НЕЛЬЗЯ


Kdenyrcpt hash -o /etc/mail/deny-incoming.db

Smy_check_rcpt
R$*                     $: $>3 $1                       канонизируем получателя
R$*                     $: $1 $| $>3 $&f                а теперь и отправителя
R$* $| $* <@ $=w .>     $@ <OK>                         отправитель локальный ?
#                                                           отправитель наш => все OK, выходим
R$* < $* > $| $*        $: < $(denyrcpt $1 $) >         проверяем имя получателя
#                                                       в /etc/mail/deny-incoming.db
R<OK>   $@ <OK>                                                 МОЖНО
R<DENY> $#error $@ 5.1.1 $: "550 User unknown"                  НЕЛЬЗЯ
R$*     $: < $(denyrcpt defaultmail $) >        ни то, ни другое ==> смотрим по умолчанию
R<OK>   $@ <OK>                                 разрешено, значит МОЖНО
R$*     $#error $@ 5.1.1 $: "550 User unknown"  нет, значит НЕЛЬЗЯ

SLocal_check_rcpt
R$*                     $: $1 $| $>my_check_relay $1
R$* $| $# $*            $@ $# $2
R$* $| <OK>             $@ <OK>
R$* $| $*               $@ $>my_check_rcpt $1


#################################### END OF /etc/mail/sendmail.mc


############################### start /etc/mail/deny-incoming
defaultmail     OK
root            OK
adm             DENY
############################### end /etc/mail/deny-incoming

############################### start /etc/mail/deny-relay
defaultrelay    OK
root            OK
adm             DENY
############################### end /etc/mail/deny-relay