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

Исходное сообщение
"Отнять право на отправку сообщения во внешний мир"

Отправлено AlexVolga , 10-Дек-03 13:18 
Уважаемый All
Прошу ответить как (SendMail,FreeBSD) запретить пользователю отправлять сообщения во внешний мир, но оставить ему право работать с локальными адресами ?
Спасибо.

Содержание

Сообщения в этом обсуждении
"Отнять право на отправку сообщения во внешний мир"
Отправлено A Clockwork Orange , 10-Дек-03 13:38 
www# cat /etc/mail/access
# $FreeBSD: src/etc/mail/access.sample,v 1.1.2.2 2000/11/03 07:23:50 dirk Exp $
#
# Mail relay access control list.  Default is to reject mail unless the
# destination is local, or listed in /etc/mail/local-host-names
#
#cyberspammer.com               550 We don't accept mail from spammers
#FREE.STEALTH.MAILER@           550 We don't accept mail from spammers
#another.source.of.spam         REJECT
#okay.cyberspammer.com          OK
#128.32                         RELAY
192.168.21                      RELAY
~~~~~~~~~~~всей сети 192.168.21.0/24 разрешен релей~~~~~~~~~~~~~~~
www#
и
makemap hash access.db < access

Если исключить адрес отправителя из списка хостов которым разрешен релей то релей и будет запрещен, будет приниматься только почта, направляемая в локальные ящики.
Но тогда все машины для которых релей разрешен придется перечислить.
Если пользователь прыгает такой способ не поможет.


"Отнять право на отправку сообщения во внешний мир"
Отправлено lev , 10-Дек-03 13:52 
sendmail.cf
--start--
....
# users for local only
F{Internal}/etc/mail/intern.only
....
######################################################################
###  check_rcpt -- check SMTP `RCPT TO:' command argument
######################################################################

SLocal_check_rcpt
R$*                $: $1 $| $>3 $&f
R$* $| <>            $@ OK        <> is always ok
R$* $| $={Internal} <@$=w.>    $: $1        luser@local.host?
R$* $| $={Internal}        $: $1        luser?
R$* $| $*            $@ OK        someone else
R$*                $: $>3 $1    check recipient
R$+<@$=w.>            $@ OK        local? ok
R$+<@$+>            $#error $@ 5.1.8 $: "551 sorry luser your boss does not like you"

Scheck_rcpt
R$*            $: $1 $| $>"Local_check_rcpt" $1
R$* $| $#$*        $#$2
R$* $| $*        $@ $>"Basic_check_rcpt" $1

SBasic_check_rcpt
# check for deferred delivery mode
R$*            $: < ${deliveryMode} > $1
R< d > $*        $@ deferred
R< $* > $*        $: $2
....
--end--

и в /etc/mail/intern.only
просто перечисляешь акаунты пользователей которым нельзя
отправлять сообщения во внешний мир. Во внутреннем домене все продолжает ходить.
Правила скорей всего придется немного поправить (я правил только порядок следования команд)


"Отнять право на отправку сообщения во внешний мир"
Отправлено A Clockwork Orange , 10-Дек-03 14:07 
А если пользователь поменяет в клиенте себе обратный адрес?

"Отнять право на отправку сообщения во внешний мир"
Отправлено lev , 10-Дек-03 14:55 
>А если пользователь поменяет в клиенте себе обратный адрес?
поставь аудентификацию smtp

"Отнять право на отправку сообщения во внешний мир"
Отправлено A Clockwork Orange , 10-Дек-03 15:36 
Аутентификация не разделяет куда письмо наружу или внутри, она просто разрешает отправлять.

"Отнять право на отправку сообщения во внешний мир"
Отправлено lev , 10-Дек-03 15:53 
>Аутентификация не разделяет куда письмо наружу или внутри, она просто разрешает отправлять.
>
Вот именно, запрети отправку как я показал и защитись от смены почтового адреса аудентификацией smtp.