Из серии маленькие хитрости :)
Имеем следующие исходные данные. Есть почтовый сервер построенный на FreeBSD. На нем установлен postfix и база данных пользователей расположена в mysql. В postfix включена SASL аутентификация.
Нужно определенным пользователям запретить отправлять почту во вне, т.е. отправлять им почту можно будет только внутренним пользователям: от mydomain.ru к mydomain.ru.
Делается это следующим образом.
1) Редактируем файл main.cf и добавляем следующие строки:
smtpd_restriction_classes = local_recipients_only
local_recipients_only = check_recipient_access mysql:$base/local_recipient.conf, reject
2) Добавлем строку в политику smtpd_recipient_restrictions в таком порядке (порядок важен):
smtpd_recipient_restrictions =
//... Тут могут быть какие-то ваши политики
permit_mynetworks,
check_sender_access hash:$base/local_sender_access,
permit_sasl_authenticated
//... Тут могут быть какие-то ваши политики
3) Создаем файл local_sender_access, где прописываем пользователей для которых нужно закрыть доступ во вне
test@mydomain.ru local_recipients_only
user@mydomain.ru local_recipients_only
затем делаем из него hash файл.
4) Создаем файл local_recipient.conf, который нужен для определения локальных пользователей
user = postfix
password = mypassword
hosts = localhost
dbname = postfix
table = mailbox
select_field = 'permit_sasl_authenticated'
where_field = username
additional_conditions = and active = '1'
5) Перезагружаем postfix
Важно! При такой настройке любой внешний пользователь сможет отправить письмо вашим ограниченым в правах пользователям, а они нет.
вторник, 17 ноября 2009 г.
Postfix: как запретить локальным пользователя отправлять почту во вне
Ярлыки:
запрет отправки почты,
политика доступа,
почтовый сервер,
freebsd,
mysql,
postfix
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий