Доброго времени суток всем!
ВАЖНО: всё сделано абсолютно законно, сотрудники знают о мониторинге, расписывались в куче документов и т.п.
Необходимо реализовать следующую схему:
1) наш почтовый сервер (mail.domain.com) при отправке/получении писем, сверяет список отправителей/получателей со списком из файла (например, dlp_users);
2.а) если отправитель/получатель НЕ указаны в файле dlp_users, то письмо стандартно обрабатывается и отправляется в место назначения;
2.б) если если отправитель/получатель указаны в файле dlp_users, то письмо отправляется на сервер в локальной сети (например, сервер системы DLP - dlp.domain.com - IP 192.168.1.10);
3.б) сервер системы DLP возвращает письмо без изменений почтовому серверу mail.domain.com по SMTP;
4.б) почтовый сервер видит, что письмо пришло от сервера DLP, поэтому пропускает проверку отправителей/получателей, и стандартно обрабатывает и отправляет его (письмо) в место назначения.
Как планировалось реализовать:
1) с помощью параметров smtpd_recipient_restrictions и smtpd_sender_restrictions в main.cf исходящие и входящие письма проверяются по списку пользователей dlp_users. Если отправитель или получатель попадает в этот список, то письмо перенаправляется на сервер DLP с помощью указания фильтра в dlp_users:
test@domain.com FILTER smtp:192.168.1.10
2) письмо возвращается от сервера DLP и для избежания петель в соответствии с transport_maps = hash:/etc/postfix/transport сразу отправляется на локальный порт встроенного контентного фильтра - 127.0.0.1:10025.
Проблема в том, что устранить петли таким образом не удалось. При отправке/получении письма для абонента из списка dlp_users письмо начинает ходить между почтовым сервером и сервером DLP, пока не отбрасывается из-за превышения числа hop'ов.
Пробовали указывать для защиты от петель smtpd_client_restrictions = check_client_access hash:/etc/postfix/dlp_server в main.cf при этом в dlp_server указать: 192.168.1.10 FILTER smtp:127.0.0.1:10025 Но это тоже не помогло.
Выдержки из конфигов:
main.cf
transport_maps = hash:/etc/postfix/transport
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/dlp_users
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/dlp_users
dlp_users
test@domain.com FILTER smtp:192.168.1.10
transport
192.168.1.10 smtp:[127.0.0.1]:10025