Интеграция с почтовыми системами

На главную  Назад 

Интеграция с MTA в качестве фильтра

Этот вариант интеграции предполагает подключение Dr.Web MailD к почтовому серверу напрямую, в качестве внешнего фильтра проверки писем. Можно подключиться к любому почтовому серверу (например, Exim, Sendmail, Postfix), использующему интерфейсы Milter, Spamd, Rspamd.

1) Настройка параметров Dr.Web MailD

Для интеграции Dr.Web MailD с почтовым сервером необходимо проверить и при необходимости изменить значения ряда параметров, находящихся в конфигурационном файле, в секции настроек Dr.Web MailD (секция [MailD]).

1.1) Общие параметры работы Dr.Web MailD при проверке писем

При помощи параметров TemplateContacts и ReportLanguages определите параметры генерации писем при перепаковке сообщений с угрозами и/или спамом. В значении параметра RepackPassword укажите способ генерации паролей для защищенных архивов с угрозами, которые будут добавляться в письма при перепаковке (значение None, заданное по умолчанию, позволяет отказаться от защиты архивов при помощи пароля, что допустимо, но не рекомендуется).

1.2) Параметры интеграции Dr.Web MailD с MTA

Для начала необходимо определить используемый интерфейс сопряжения (Milter, Spamd или Rspamd), и задать параметры подключения MTA и параметры проверки писем, получаемых на проверку через выбранный интерфейс. Все параметры Dr.Web MailD, регулирующие его сопряжение с MTA через некоторый интерфейс, имеют соответствующий префикс в своем имени:

Milter* – для интерфейса Milter.

Spamd* – для интерфейса Spamd.

Rspamd* – для интерфейса Rspamd.

Необходимо задать значения следующих параметров (где <interface> – префикс в имени параметра, соответствующий выбранному для сопряжения с MTA интерфейсу):

1.<interface>Socket – сокет, который будет использован Dr.Web MailD для получения проверяемых писем от MTA через соответствующий интерфейс. Допускается использование UNIX-сокета или сетевого сокета.

2.Параметры сканирования писем (<interface>ScanTimeout, <interface>HeuristicAnalysis, <interface>PackerMaxLevel, <interface>ArchiveMaxLevel, <interface>MailMaxLevel, <interface>ContainerMaxLevel, <interface>MaxCompressionRatio), ограничивающие длительность и ресурсоемкость проверки писем. При отсутствии необходимости в тонкой настройке рекомендуется оставить для данных параметров значения по умолчанию.

3.<interface>BlockUnchecked – реакция Dr.Web MailD на невозможность проверки поступившего письма (превышение при проверке заданных ограничений (см. предыдущий пункт), нарушение структуры сообщения, ошибка антивирусного ядра, наличие вложенных архивов, защищенных паролем и т.п.). Если данный параметр установлен в Yes, то в случае невозможности проверки письма и/или его вложений, к MTA будет отправлено предписание отвергнуть данное письмо.

4.Для более тонкой настройки правил фильтрации сообщений электронной почты (в зависимости от условий) отредактируйте правила <interface>RuleSet (описание правил доступно в Приложении Г Руководства администратора).

После внесения изменений в настройки следует перезапустить программный комплекс Dr.Web для UNIX (используйте команду drweb-ctl reload).

Если для взаимодействия Dr.Web MailD с MTA используется интерфейс Spamd/Rspamd, то единственное действие, которое гарантированно может совершить Dr.Web MailD в рамках этого взаимодействия – сообщить MTA, является ли почтовое сообщение чистым или оно классифицировано как спам. То есть при нарушении почтовым сообщением любого ограничения, установленного в правилах, или при наличии в сообщении любой угрозы или иного нежелательного содержимого, в MTA передается вердикт «Почтовое сообщение является спамом». Все действия по обработке такого сообщения (например – добавление или модификация заголовков, отклонение сообщения, передача его получателю и т.п.) должны быть определены в настройках на стороне MTA. Также в этом случае не гарантируется, что Dr.Web MailD сможет вернуть в MTA модифицированное почтовое сообщение, следовательно, возможность выполнения действия типа REPACK («перепаковать» сообщение, удалив вредоносные вложения и вставив в него уведомление о наличии нежелательного содержимого) также не гарантируется.

Для возврата в MTA причины отклонения почтового сообщения через интерфейс Spamd/Rspamd используйте действие REJECT <description>. Указанный параметр <description> будет использован как значение заголовка 'Message', добавленного MTA к почтовому сообщению после сообщения результатов проверки. Кроме того, <description> может быть использован в правилах MTA для распознавания причины отвергания сообщения и применения к нему соответствующего действия, в зависимости от причины. Пример использования действия REJECT <description>:

SpamdRuleSet0 = threat_category in (KnownVirus, VirusModification, UnknownVirus) : REJECT "The message contains a THREAT"
SpamdRuleSet1 = body match (".*купи.*") : REJECT "This is a SPAM message"

2) Настройка параметров MTA

Для обеспечения взаимодействия между MTA и Dr.Web MailD требуется отредактировать конфигурацию почтового сервера с целью подключения возможности использования Dr.Web для UNIX в качестве внешнего фильтра, проверяющего сообщения электронной почты, обрабатываемые MTA.

1.Указать интерфейс, используемый для взаимодействия MTA с Dr.Web MailD при проверке писем (Milter, Spamd, Rspamd).

2.Указать параметры подключения MTA к Dr.Web MailD через выбранный интерфейс (используемый сокет должен совпадать с тем, что указан в параметре <interface>Socket для соответствующего интерфейса в настройках Dr.Web MailD).

3.Настроить поведение MTA в ответ на получение через интерфейс взаимодействия результатов проверки писем.

После внесения изменений в настройки MTA следует перезапустить его.

3) Примеры настроек для некоторых MTA

Ниже приведены типовые примеры настроек для MTA Postfix, Sendmail и Exim для подключения Dr.Web MailD в качестве внешнего фильтра почтовых сообщений через интерфейсы Milter, Spamd и Rspamd.

В приведенных ниже примерах необходимо заменить значение <MailD socket> на сокет, прослушиваемый Dr.Web MailD (задан в настройках Dr.Web MailD, в параметре <interface>Socket, где <interface> – префикс в имени параметра, соответствующий выбранному для сопряжения с MTA интерфейсу). Например, если планируется интегрировать Dr.Web MailD с MTA через интерфейс Milter, при этом MTA и Dr.Web MailD работают оба на локальном узле, и Dr.Web MailD прослушивает порт 12345 для соединений через Milter, то качестве <MailD socket> следует использовать значение 127.0.0.1:12345, и это же значение необходимо указать в качестве значения параметра MilterSocket в секции [MailD] в файле конфигурации <%S_PRODUCT>.

1. Postfix

Milter:

Добавьте следующие строки в файл настроек MTA main.cf:

smtpd_milters = <MailD socket>
milter_content_timeout = 300s
milter_default_action = tempfail
milter_protocol = 6

Обратите внимание, что обязательной настройкой является только smtpd_milters, остальные могут быть опущены.

2. Sendmail

Milter:

Добавьте следующую строку в файл прототипа настроек MTA sendmail.mc:

INPUT_MAIL_FILTER(`drweb-milter', `S=<MailD socket>, F=T')

После изменения файла sendmail.mc не забудьте выполнить его преобразование в действующий файл конфигурации sendmail.cf, выполнив любую из команд:

make -C /etc/mail
sendmailconfig
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

Обратите внимание, что все вышеприведенные команды предполагают, что файлы конфигурации Sendmail располагаются в каталоге /etc/mail.

3. Exim

Spamd:

Добавьте следующие строки в файл настроек MTA exim.conf:

spamd_address = <MailD socket>
acl_smtp_data = acl_check_data
 
acl_check_data:
warn  spam    = nobody:true
   add_header = X-Spam_score: $spam_score\n\
       X-Spam_score_int: $spam_score_int\n\
       X-Spam_bar: $spam_bar\n\
       X-Spam_report: $spam_report\n\
  condition  = ${if match {$spam_report}{SPAM}}
deny  spam    = nobody:true
  condition  = ${if match {$spam_report}{THREAT}}
accept

Rspamd:

Добавьте следующие строки в файл настроек MTA exim.conf:

spamd_address = <MailD socket> variant=rspamd
acl_smtp_data = acl_check_data
 
acl_check_data:
warn  spam    = nobody:true
   add_header = X-Spam_score: $spam_score\n\
       X-Spam_score_int: $spam_score_int\n\
       X-Spam_bar: $spam_bar\n\
       X-Spam_report: $spam_report\n\
  condition  = ${if match {$spam_report}{SPAM}}
deny  spam    = nobody:true
  condition  = ${if match {$spam_report}{THREAT}}
accept

Указанные примеры настроек предполагают использование Exim версии 4.6 (или новее), собранного с опцией WITH_CONTENT_SCAN=yes. Кроме того, предполагается, что Dr.Web MailD вернет сообщение, содержащее слово SPAM или THREAT (т.е. должно быть применено действие REJECT <text>, и в строке <text> должно встретиться слово SPAM или слово THREAT соответственно), вследствие чего Exim применит к письму действие warn или deny (см. пример действия REJECT выше.)

Режим прозрачного прокси

Данная возможность доступна только в составе дистрибутивов продукта, предназначенных для ОС семейства GNU/Linux.

Если способ, рассмотренный выше, вам не подходит, то вы можете настроить режим, когда все сообщения указанных вами почтовых протоколов (SMTP, POP3, IMAP) будут прозрачно для MTA/MDA и MUA поступать на проверку в Dr.Web MailD. Для этого необходимо настроить компонент Dr.Web Firewall для Linux таким образом, чтобы данные, поступающие на почтовый сервер, проходили проверку в мониторе SpIDer Gate, который, установив использование одного из почтовых протоколов, передаст данные на проверку в Dr.Web MailD (режим «прозрачного» прокси).

1) Настройка параметров Dr.Web MailD

Для настройки Dr.Web для UNIX сначала необходимо проверить и при необходимости изменить значения ряда параметров, находящихся в конфигурационном файле, в секции настроек Dr.Web MailD (секция [MailD]).

При помощи параметров TemplateContacts и ReportLanguages определите параметры генерации писем при перепаковке сообщений с угрозами и/или спамом. В значении параметра RepackPassword укажите способ генерации паролей для защищенных архивов с угрозами, которые будут добавляться в письма при перепаковке (значение None, заданное по умолчанию, позволяет отказаться от защиты архивов при помощи пароля, что допустимо, но не рекомендуется).

2) Настройка параметров «прозрачного» прокси

Чтобы настроить режим «прозрачного» прокси, измените значение параметра InputDivert, находящегося в конфигурационном файле, в секции настроек Dr.Web Firewall для Linux (секция [LinuxFirewall]):

InputDivert = Auto(interface:<сетевой интерфейс> protected:<список портов>)

где:

<сетевой интерфейс> – имя сетевого интерфейса (eth0, wlan и т.п.), через которые поступают входящие соединения на почтовый сервер, подлежащие проверке.

<список портов> – список номеров портов, на которые должны следовать соединения, подлежащие проверке (25, 110, 143 и т.п.).

Для просмотра и изменения настроек Dr.Web Firewall для Linux и SpIDer Gate вы можете воспользоваться:

Утилитой управления из командной строки Dr.Web Ctl (используйте команды drweb-ctl cfshow и drweb-ctl cfset).

Веб-интерфейсом управления Dr.Web для UNIX (по умолчанию доступ через браузер по адресу https://127.0.0.1:4443/).

Например, команда:

# drweb-ctl cfset LinuxFirewall.InputDivert Auto(interface:eth0 protected:25,110,143)

Настроит Dr.Web Firewall для Linux таким образом, чтобы данные, следующие через интерфейс eth0 на порт 25 (обычно – протокол SMTP), 110 (обычно – протокол POP3) или 143 (обычно – протокол IMAP), проходили проверку в мониторе SpIDer Gate, который перенаправит их для проверки в компонент проверки почты Dr.Web MailD.

Чтобы обеспечить встраивание Dr.Web для UNIX в каналы передачи почты, использующие безопасное соединение SSL/TLS, дополнительно необходимо:

Включить проверку трафика, передаваемого через SSL/TLS, установив значение соответствующего параметра, выполнив команду:

# drweb-ctl cfset LinuxFirewall.UnwrapSsl Yes

Рекомендуется использовать команду cfset утилиты drweb-ctl или веб-интерфейс управления, т.к. в этом случае также будут автоматически изменены правила проверки, зависящие от данного параметра.

Экспортировать сертификат, который будет использован Dr.Web для UNIX для встраивания в защищенные каналы SSL/TLS, выполнив команду (необходимо указать имя файла, в который будет сохранен сертификат в формате PEM):

$ drweb-ctl certificate > <cert_name>.pem

Добавить полученный сертификат в системный перечень доверенных сертификатов, и, возможно, прописать его в качестве доверенного у почтовых клиентов и сервера. Подробнее см. в Приложении Д. Руководства администратора.

3) Настройка параметров проверки

Необходимо задать значения следующих параметров конфигурационном файле, в секции настроек Dr.Web Firewall для Linux (секция [LinuxFirewall]):

1.Параметры сканирования сообщений электронной почты и обнаруженных в них вложений (ScanTimeout, HeuristicAnalysis, PackerMaxLevel, ArchiveMaxLevel, MailMaxLevel, ContainerMaxLevel, MaxCompressionRatio), ограничивающие длительность и ресурсоемкость проверки писем. При отсутствии необходимости в тонкой настройке рекомендуется оставить для данных параметров значения по умолчанию.

2.Параметры проверки ссылок и файлов в письмах, задав значения соответствующих параметров Block*.

3.Задать значение параметра BlockUnchecked, определяющего реакцию Dr.Web MailD на невозможность проверки поступившего письма (превышение при проверке заданных ограничений (см. предыдущий пункт), нарушение структуры сообщения, ошибка антивирусного ядра, наличие вложенных архивов, защищенных паролем и т.п.). Если данный параметр установлен в Yes, то в случае невозможности проверки письма и/или его вложений, к MTA будет отправлено предписание отвергнуть данное письмо.

4.Для более тонкой настройки правил фильтрации сообщений электронной почты (в зависимости от условий) отредактируйте правила RuleSet (описание правил доступно в Приложении Г Руководства администратора).

После внесения изменений в настройки следует перезапустить программный комплекс Dr.Web для UNIX (используйте команду drweb-ctl reload).