Интеграция с антивирусными и антиспамовыми системами¶
Choose a language: RU | EN | ZH
- Содержание
- Интеграция с антивирусными и антиспамовыми системами
- Установка Dr.Web Mail Security Suite (для UNIX)
- Настройка почтового сервера
- Программирование собственных сценариев обработки почтовых сообщений
- Интеграция с KSMG
- Установка антивирусного и антиспамового ПО в качестве почтового релея перед почтовым сервером TEGU. Это вариант тривиальный и в документации не описывается.
- Более предпочтительный вариант - использование протокола Milter.
Milter – это протокол, название которого образуется из двух слов Mail и Filter. Это протокол, которому MTA передает сообщение до того, как передаст его на доставку или отправку.
Какими могут быть сервера для Milter-обработки? Чаще всего агенты Milter решают следующие задачи:
- Проверка сообщений электронной почты на спам;
- Проверка сообщение на вирусы;
- Фильтрация нежелательных вложений;
- Интеграция с DLP-системами;
- Архивирование корреспонденции;
- Сбор и сохранение статистики;
- Добавление дисклеймеров;
- Изменение маршрутизации;
- Абсолютно любая ваша функция, которая выходит за рамки штатных возможностей.
На рисунке представлена схема встраивания протокола Milter в SMTP-сессию MTA почтового сервера Tegu:

Работа по установке и настройке Milter-сервера Dr.Web Mail Security Suite состоит из двух этапов:
- Установка и настройка Dr.Web Mail Security Suite;
- Настройка Tegu.
Установка Dr.Web Mail Security Suite (для UNIX)¶
- Установите Dr.Web Mail Security Suite для UNIX согласно инструкции производителя;
- Включите Компонент Maild;
- Настройте параметры транспортного соединения между MTA и Dr.Web;
- Оптимизируйте Dr.Web, изучив алгоритм его работы в синхронном и асинхронном режимах (для высоконагруженных систем).
Установка drweb mail suite через репозиторий в среде Debian и интеграция с tegu по протоколу milter .¶
(Антиспам в стандартную лицензию не входит, он приобретается отдельно)
Получите ключ drweb.gpg
wget https://repo.drweb.com/drweb/drweb.gpg
Подключите репозиторий.
echo "deb https://repo.drweb.com/drweb/debian 11.1 non-free" > /etc/apt/sources.list.d/drweb.list
Для установки Dr.Web Mail Security Suite из репозитория выполните команды:
apt-get update && install drweb-mail-servers -y
Для входа на web страницу drweb mail suite, добавьте его ip адрес в секцию HTTPD в конфиг /etc/opt/drweb.com/drweb.ini
пример:
[HTTPD] AdminListen = 10.199.199.137:4443
Для включения компонента maild по протоколу Milter добавьте его milter socket в секцию MailD в конфиг /etc/opt/drweb.com/drweb.in
пример:
[MailD] ReportLanguages = en ReportLanguages = ru MilterSocket = 10.199.199.137:3001 MilterHook = "local dw = require ""drweb""
После внесения изменений в настройки чтобы перезагрузить конфигурацию Dr.Web Mail Security Suite, нужно выполнить команду:
drweb-ctl reload
Чтобы перезапустить Dr.Web Mail Security Suite, нужно перезапустить демон управления конфигурацией Dr.Web ConfigD с помощью команды:
service drweb-configd restart
логин и пароль в web интерфейс, это данные от этого хоста.
пример:
Вход в web интерфейс:
login: root pass: 88fkjherc
Настройка Антиспам модуля на принятие всех писем с пометкой SPAM.¶
По умолчанию письма, которые распознаны как спам, отклоняются - действием reject
Чтоб сохранить все письма необходимо заменить часть кода написанного языке LUA в модуле spamd в web интерфейсе.
Пример кода по умолчанию:
-- Reject the message if it is likely spam
if ctx.message.spam.score >= 100 then
dw.notice("Spam score: " .. ctx.message.spam.score)
return {action = "reject"}
else
-- Assign X-Drweb-Spam headers in accordance with spam report
ctx.modifier.add_header_field("X-DrWeb-SpamScore", ctx.message.spam.score)
ctx.modifier.add_header_field("X-DrWeb-SpamState", ctx.message.spam.type)
ctx.modifier.add_header_field("X-DrWeb-SpamDetail", ctx.message.spam.reason)
ctx.modifier.add_header_field("X-DrWeb-SpamVersion", ctx.message.spam.version)
end
Пример кода для сохранения всех писем и пометка заголовков SPAM
local dw = require "drweb"
function milter_hook(ctx)
dw.notice("Spam score: " .. ctx.message.spam.score)
if ctx.message.spam.score >= 100 then
local old_value = ctx.message.header.value("Subject") or ""
local new_value = "[SPAM] " .. old_value
ctx.modifier.change_header_field("Subject", new_value)
end
-- Assign X-Drweb-Spam headers in accordance with spam report
ctx.modifier.add_header_field("X-DrWeb-SpamScore", ctx.message.spam.score)
ctx.modifier.add_header_field("X-DrWeb-SpamState", ctx.message.spam.type)
ctx.modifier.add_header_field("X-DrWeb-SpamDetail", ctx.message.spam.reason)
ctx.modifier.add_header_field("X-DrWeb-SpamVersion", ctx.message.spam.version)
-- Check if the message contains viruses, repack if so
for threat, path in ctx.message.threats { category = { "known_virus", "virus_modification", "unknown_virus", "adware", "dialer" } } do
ctx.modifier.repack()
dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
end
-- Repack if unwanted URL has been found
for url in ctx.message.urls { category = { "infection_source", "not_recommended", "owners_notice" } } do
ctx.modifier.repack()
dw.notice("URL found: " .. url .. "(" .. url.categories[1] .. ")")
end
-- Assign X-AntiVirus header
local x_antivirus = ctx.gen.x_antivirus_header_field()
if x_antivirus then
ctx.modifier.add_header_field(x_antivirus.name, x_antivirus.value)
end
-- Accept the message with all scheduled transformations applied
return { action = 'accept', modifications = ctx.modifier.modifications() }
end
Настройка почтового сервера¶
Откройте настройки сервера Tegu:
1. Установить чекбокс "Enable antivirus and/or antispam scan" (Использовать Антивирус) в меню "Настройка" административной панели сервера Tegu;
2. Заполните поля host и port (3001);
3. Задайте название поля заголовка электронной почты для оценки спама. (в правилах обработки входящих писем этот заголовок будет использован в условии по рейтингу спама);

4. Для настройки обработки рейтинга спама, необходимо перейти в меню "Глобальные правила обработки входящих писем" и добавить правила обработки спама.

Программирование собственных сценариев обработки почтовых сообщений¶
В сервере Tegu есть несколько уровней настройки обработок почтовых сообщений на уровне администратора и пользователей. Однако, вы можете легко написать собственный сервер для обработки сообщений по протоколу Milter. Для этого существует свободные библиотеки на C, Python и др. Если вы используете Dr.Web Mail Security Suite для UNIX, то вам "из коробки" для программирования сценариев доступен язык LUA. Подробнее см. здесь.
Интеграция с KSMG¶
Для выполнения настроек milter в KSMG, необходимо получить доступ в Technical Mode посредством консоли ksmg по ssh. Для включения такового, необходимо, в Web-консоли в разделе «Параметры – Доступ к программе – Доступ SSH». Нажать «Добавить ключ» и загрузить, предварительно созданный, открытый ключ ssh. После этого, зайти, пользователем root, с использованием данного ключа в Technical Mode-консоль, посредством любого ssh-клиента и выполнить настройку, согласно приведённым далее, файлам конфигурации:
- В файле /var/opt/kaspersky/ksmg/installer.dat добавить START_MILTER=1
START_SMTP_PROXY=1 installation_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx EULA_AGREED=yes PRIVACY_POLICY_AGREED=yes INSTALL_DATE=1677815353 ip=<_IP-АДРЕС-KSMG_> port=9045 START_MILTER=1
- В файле /etc/opt/kaspersky/ksmg/filters.conf добавить/исправить секцию
[milter] # socket to listen on (milter syntax) socket=inet:10025@<_IP-АДРЕС-KSMG_>
После чего выполнить рестарт ВМ ksmg
В Веб-консоли KSMG, необходимо отключить проверку DNS/SPF/DKIM для внешних сервисов!
"Параметры - Внешние службы - KSN/KSPN - включить "Использовать KSN"
а в: "Параметры - Общие - Защита - Внешние службы - отключить "Разрешить подключение в DNS-серверу".
Для получения более подробной информации обращайтесь к документации или в поддержку KSMG.