10. Интеграция Dr.Web Mail Security Suite с почтовым севером Tegu по протоколу Milter¶
Преамбула¶
Почтовый сервер состоит из двух частей. MTA (Mail Transfer Agent – Агент Передачи) и MDA (Mail Delivery Agent – Агент Доставки). Задача MTA – пересылать (транспортировать) почту между серверами – ориентируясь на доменную часть он сначала находит в DNS список почтовых серверов, упорядочивает их согласно приоритету, и предпринимает попытки отправить сообщение. Иногда ему не удается сделать это с первого раза, в таком случае MTA повторяет попытки по определенному алгоритму. MTA также выполняет ряд процедур по проверке валидности серверов, с которыми он общается. Работа MTA считается выполненной когда удаленный сервер подтвердил прием сообщения, обоснованно отказался принять, либо по тайм-ауту (обычно это несколько дней).
MDA – ничего не пересылает, его задача получить письмо от MTA и положить в ящик пользователя, он также выдает почту пользовательским почтовым программам (MUA, Mail User Agent) по протоколам IMAP/POP. Это его задача организовать систему хранения, идексирования, поиска и выдачи, а также многое другое.
Итак, MTA – это почтовое отделение, а MDA – это почтальон. теперь нам понятно, что работа у каждого из них разная. Поэтому часто бывает, что и сами эти программы тоже разные и написаны разными людьми. К примеру в открытой архитектуре распространены такие MTA, как Postfix и Exim, а в качестве доставщика распространен Dovecot. А все вместе мы называем почтовым сервером.
Tegu – это современный почтовый сервер, который объединяет в себе и MTA, и MDA. Tegu запускает необходимое количество нужных в данный момент асинхронных процессов и контролирует из исполнение. При этом и на стороне MTA, и на стороне MDA могут работать различные правила и фильтры, которые мы предусмотрели.
Но что делать если пользователь хочет реализовать какой то собственный алгоритм обработки, фильтрации или сортировки почты, который не предусмотрен почтовым сервером. Не программировать же сервер под каждый конкретный случай. Вот для этого и необходим механизм Milter.
Milter – это протокол название которого образуется из двух слов Mail и Filter. Это протокол, которому MTA передает сообщение до того, как передаст его на доставку или отправку.
Какими могут быть сервера для Milter-обработки? Чаще всего агенты Milter решают следующие задачи:
- Проверка сообщений электронной почты на спам;
- Проверка сообщение на вирусы;
- Фильтрация нежелательных вложений;
- Интеграция с DLP-системами;
- Архивирование корреспонденции;
- Сбор и сохранение статистики;
- Добавление дисклеймеров;
- Изменение маршрутизации;
- Абсолютно любая ваша функция, которая выходит за рамки штатных возможностей.
На рисунке представлена схема встраивание протокола Milter в SMTP-сессию MTA почтового сервера Tegu
Работа по установке и настройке Milter-сервера Dr.Web Mail Security Suite состоит из двух этапов:
- Установка и настройка Dr.Web Mail Security Suite
- Настройка Tegu
10.1. Установка Dr.Web Mail Security Suite (для UNIX)¶
- Установите Dr.Web Mail Security Suite для UNIX согласно инструкции производителя;
- Включите Компонент Maild
- Настройте параметры транспортного соединения между MTA и Dr.Web
- Оптимизируйте Dr.Web, изучив алгоритм его работы в синхронном и асинхронном режимах (для высоконагруженных систем)
10.2. Настройка почтового сервера¶
Откройте настройки сервера Tegu:
1. Установить чекбокс "Enable antivirus and/or antispam scan" (Использовать Антивирус) в меню "Настройка" административной панели сервера Tegu;
2. Заполните поля host и port (3001)
3. Задайте название поля заголовка электронной почты для оценки спама. (в правилах обработки входящих писем этот заголовок будет использован в условии по рейтингу спама)
4. Для настройки обработки рейтинга спама, необходимо перейти в меню "Глобальные правила обработки входящих писем" и добавить правила обработки спама.
10.3. Программирование собственных сценариев обработки почтовых сообщений¶
В сервере Tegu есть несколько уровней настройки обработок почтовых сообщений на уровне администратора и пользователей. Однако, вы можете легко написать собственный сервер для обработки сообщений по протоколу Milter. Для этого существует свободные библиотеки на C, Python и др. Если вы используете Dr.Web Mail Security Suite для UNIX, то вам "из коробки" для программирования сценариев доступен язык LUA. Подробнее см. здесь