Настройка списков доступа (Access Control) в Policyd
После того как установили Policyd пришло время заняться его настройкой, в данной статье речь пойдет о запрете доступа на основании списков доступа (Access Control).
По умолчанию создаются 2 группы (Policies\Groups) в которые предлагается заносить внутренние домены (internal_domains) и внутренние ip-адреса (internal_ips).
Кроме групп, создаются политики, которые применяются в порядке очереди. Политики с меньшим приоритетом применяются раньше.
- Default - в данную политики попадают все;
- Default Outbound - исходящая почта, применяется к письмам, источник которых внутренний (%internal_ips, %internal_domains), а назначение внешнее (!%internal_domains);
- Default Inbound - входящая почта, источник не внутренний (!%internal_ips, !%internal_domains), назначение внутренние домены (%internal_domains);
- Default Internal - внутренняя почта, источник и назначение - внутренние домены.
Настройка модуля Access Control
Исходные данные: имеем почтовый сервер mail.example.com, обслуживающий зону example.com.
Требуется запретить прием писем от домена itzx.ru на все ящики домена example.com, кроме ящика vip@example.com, письма на его должны приходить без ограничений.
Создадим группы (Policies - Groups):
Группа bad_senders в которую будут входить те кто не может присылать к нам почту:
Группа users_without_restrictions, письма для членов этой группы будут приходить без ограничений, даже от bad_senders:
Создаем политики (Policies - Main):
Политики применяются в зависимости от приоритета, сначала выполнится политика с приоритетом 10, затем 20.
Политика Accept all mail for VIP для почты, которая предназначается членам группы users_without_restrictions (щелкните на политику и выберете Action - Members):
Политика Reject mail from bad_domains для почты исходящей из доменов в группе bad_senders:
Проверка результата
При таких настройках контроля доступа, письма на ящик vip@example.com будут приходить без ограничений Policyd. На все другие ящики письма с домена itzx.ru будут отклоняться. Пользователь отправитель получит:
<test@example.com>: host mail.example.com[62.220.58.71] said: 554 5.7.1
<info@itzx.ru>: Sender address rejected: Sorry, you are bad_senders (in
reply to RCPT TO command)
На сервере получателе в логах почты будет примерно следующие:
# cat /var/log/maillog | grep "Sorry"
Jan 23 14:38:02 ns4 postfix/smtpd[13266]: NOQUEUE: reject: RCPT from mail.itzx.ru[87.250.241.193]:
554 5.7.1 <info@itzx.ru>: Sender address rejected: Sorry, you are bad_senders; from=<info@itzx.ru>
to=<test@example.com> proto=ESMTP helo=<mail.itzx.ru>