Может, кто подскажет, как запретить определенному пользователю посылать
сообщения в другие домены? А работать только в своем?
Для начала надо определиться со схемой идентификации пользователя: по некоему имени пользователя, по IP. По адресу отправителя, наверное, тоже можно. И далее исходя из этого строить политику.
Поставь SASL, при неавторизованной отправке почта ходит только внутри домена. Не прописал пользователя в базе - relay denied
извините что влез в беседу, а где можно почитать про SASL?
>извините что влез в беседу, а где можно почитать про SASL?
http://asg.web.cmu.edu/sasl/
http://www.opennet.me/base/net/smtp_auth.txt.html
Попробовал решить проблемы с помошью c check_compat. Тестовый конфиг:divert(-1)
include(`/usr/share/sendmail-cf/m4/cf.m4')VERSIONID(`1001')
OSTYPE(linux)
DOMAIN(generic)FEATURE(`nouucp',`reject')
FEATURE(`nocanonify')
FEATURE(`always_add_domain')
FEATURE(`allmasquerade')
FEATURE(access_db,`hash -o -T<TMPF> /etc/mail/access')
FEATURE(`compat_check')
MASQUERADE_AS(`domain.ru')
MASQUERADE_DOMAIN(`domain.ru')
FEATURE(`masquerade_envelope')
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnlDmdomain.ru
define('confDOMAIN_NAME', '$w.$m')dnl
#define(`SMART_HOST', `smtp:not.my.smtp.ru')dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnldefine(`confTO_IDENT', `0')
define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
define(`confMAX_MIME_HEADER_LENGTH', `256/128')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
define(`confPRIVACY_FLAGS', `needmailhelo,authwarnings,noexpn,novrfy,noverb')
MAILER(smtp)dnl
MAILER(procmail)dnlLOCAL_RULESETS
F{allusers} /etc/mail/allusers
Scheck_compat
R$+ $| $+ $: $2 $| $>3 $1
R$+ $| $+ $: $2 $| $>3 $1
R$- $| $+ $@ok
R$+ $| $- $@ok
Radmin@$* $| R$={lgtallusers}@domain.ru $@ok
Radmin@$* $#error $@5.7.1 $: "550 admin - local only"
По идее пользователь admin должен посылать почту только в пределах domain.ru, однако на практике это не работает. Может кто-нить видит, в чем беда?