среда, октября 28, 2015

Группы (классы) пользователей и их ограничения в postfix

Еще немношк извращений, в этом месяце, подкинуло руководство. Сделать три группы пользователей почты: первая группа (по умолчанию) должна уметь отправлять письма токмо на свой домен, т.е. внутри организации; вторая группа должна уметь отправлять письма внутри и немношк наружу (на несколько адресов); ну и третья - элита, обладающая возможностью писать кому угодно. Exchange ессесно никто не купит, поэтому создаем классы в smtpd_restriction_classes постфикса (спасибо за помошь Etch)



В /usr/local/etc/postfix/main.cf
smtpd_restriction_classes = local_only, not_local

#список локальных адресов
local_only = check_recipient_access hash:/usr/local/etc/postfix/local_recipients

#список разрешенных адресов
not_local = check_recipient_access hash:/usr/local/etc/postfix/not_local_recipients

smtpd_recipient_restrictions =
    check_sender_access hash:/usr/local/etc/postfix/check_senders,
    reject_unauth_pipelining,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination, permit

Файл /usr/local/etc/postfix/local_recipients
my-domain.ru OK #домен, который будет использоваться в качестве локального.

Файл /usr/local/etc/postfix/not_local_recipients


dude@gmail.com OK #разрешенный адрес для второй группы
chika@yandex.ru OK #разрешенный адрес для второй группы

Файл /usr/local/etc/postfix/check_senders


#Список пользователей из второй группы - можно отправлять письма внутри и на некоторые адреса
user@my-domain.ru      local_only,not_local,reject
luser@my-domain.ru     local_only,not_local,reject

#привилегированный класс буржуа - может отправлять письма куда угодно
boss@my-domain.ru DUNNO
zalupa@my-domain.ru DUNNO

#низшая каста холопов – может отправлять письма только внутри
utpsp.ru local_only,reject

Выполнить команды:


postmap local_recipients
postmap not_local_recipients
postmap check_senders
postfix reload