Параметры конфигурации

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

В секции представлены следующие параметры:

Параметр

Описание

LogLevel

{уровень подробности}

Уровень подробности ведения журнала компонента.

Если значение параметра не указано, используется значение параметра DefaultLogLevel из секции [Root].

Значение по умолчанию: Notice

Log

{тип журнала}

Метод ведения журнала компонента.

Значение по умолчанию: Auto

ExePath

{путь к файлу}

Путь к исполняемому файлу компонента.

Значение по умолчанию: <opt_dir>/bin/drweb-maild.

Для GNU/Linux: /opt/drweb.com/bin/drweb-maild.

Для FreeBSD: /usr/local/libexec/drweb.com/bin/drweb-maild.

RunAsUser

{UID | имя пользователя}

Пользователь, от имени которого запускается компонент. Можно указать как числовой UID пользователя, так и его имя (логин). Если имя пользователя состоит из цифр (т. е. похоже на числовой UID), то оно указывается с префиксом «name:», например: RunAsUser = name:123456.

Если имя пользователя не указано, работа компонента завершается ошибкой сразу после попытки запуска.

Значение по умолчанию: drweb

FixedSocketPath

{путь к файлу}

Путь к файлу UNIX-сокета фиксированной копии компонента.

При задании этого параметра демон управления конфигурацией Dr.Web ConfigD следит за тем, чтобы всегда имелась запущенная копия компонента, доступная клиентам через этот сокет.

Значение по умолчанию: (не задано)

IdleTimeLimit

{интервал времени}

Максимальное время простоя компонента, при превышении которого он завершает свою работу.

Значение параметра IdleTimeLimit игнорируется (компонент не завершает свою работу по истечении максимального времени простоя), если задано значение какого-либо из параметров: FixedSocketPath, MilterSocket, SpamdSocket, RspamdHttpSocket, RspamdSocket, SmtpSocket, BccSocket.

Допустимые значения: от 10 секунд (10s) до 30 дней (30d) включительно.
Если установлено значение None, компонент будет работать постоянно; в случае отсутствия активности ему не будет отправлен сигнал SIGTERM.

Значение по умолчанию: 30s

DnsResolverConfPath

{путь к файлу}

Путь к файлу настроек DNS (DNS resolver).

Значение по умолчанию: /etc/resolv.conf

TemplatesDir

{путь к каталогу}

Путь к каталогу, в котором хранятся файлы шаблонов почтовых сообщений, возвращаемых пользователю при блокировке.

Значение по умолчанию: <var_dir>/templates/maild.

Для GNU/Linux: /var/opt/drweb.com/templates/maild.

Для FreeBSD: /var/drweb.com/templates/maild.

TemplateContacts

{строка}

Контактные данные администратора Dr.Web для почтовых серверов UNIX для вставки в сообщения об угрозах (используется в шаблонах сообщений).

Контактная информация будет добавлена в перепакованное сообщение только в том случае, если к нему будет прикреплен защищенный паролем архив с угрозами или иными нежелательными объектами, вырезанными из исходного сообщения. Если, согласно текущему значению параметра RepackPassword (см. ниже), прикрепляемые архивы не защищаются паролем, то контактная информация не добавляется в измененное сообщение.

Значение по умолчанию: (не задано)

ReportLanguages

{строка}

Языки, используемые для генерации служебных сообщений (например, сообщений, возвращаемых пользователю при блокировании сообщений электронной почты). Каждый язык идентифицируется двухбуквенным обозначением (en, ru и т. п.).

Можно указать несколько значений в виде списка. Значения в списке указываются через запятую (каждое значение в кавычках). Допускается повторение параметра в секции (в этом случае все значения объединяются в единый список).

Пример: Добавить в список языки ru и de.

1.Добавление значений в файл конфигурации.

Два значения в одной строке:

[MailD]
ReportLanguages = "ru", "de"

Две строки (по одному значению в строке):

[MailD]
ReportLanguages = ru
ReportLanguages = de

2.Добавление значений через команду drweb-ctl cfset:

# drweb-ctl cfset MailD.ReportLanguages -a ru
# drweb-ctl cfset MailD.ReportLanguages -a de

Значение по умолчанию: en

RepackPassword

{None | Plain(<password>) | HMAC(<secret>)}

Способ формирования пароля для архивов с вредоносными объектами, помещаемых в сообщения, доставляемые получателям:

None — архивы не будут защищены паролем (не рекомендуется);

Plain(<password>) — все архивы будут защищены одним и тем же паролем <password>;

HMAC(<secret>) — для каждого архива будет сгенерирован уникальный пароль на основании пары (<secret>, <идентификатор сообщения>).

Для восстановления пароля, которым защищен архив, по идентификатору сообщения и известному секрету можно воспользоваться командой drweb-ctl idpass.

По умолчанию для данного параметра задано значение None, которое рекомендуется изменить в процессе настройки Dr.Web для почтовых серверов UNIX.

Значение по умолчанию: None

ScanTimeout

{интервал времени}

Тайм-аут на проверку одного сообщения.

Допустимые значения: от 1 секунды (1s) до 1 часа (1h).

Значение по умолчанию: 3m

HeuristicAnalysis

{On | Off}

Использовать/не использовать эвристический анализ для поиска возможных неизвестных угроз при проверке сообщения, инициированной по запросу Dr.Web MailD.

Эвристический анализ повышает надежность проверки, но увеличивает ее длительность.

Возможные значения:

On — использовать эвристический анализ при проверке;

Off — не использовать эвристический анализ.

Значение по умолчанию: On

PackerMaxLevel

{целое число}

Максимальный уровень вложенности для запакованных объектов. Под запакованным объектом понимается исполняемый код, сжатый при помощи специализированных инструментов (UPX, PELock, PECompact, Petite, ASPack, Morphine и других). Такие объекты могут включать другие запакованные объекты, в состав которых тоже могут входить другие запакованные объекты, и т. п. Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого объекты внутри объектов не будут проверяться.

Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.

Значение по умолчанию: 8

ArchiveMaxLevel

{целое число}

Максимальный уровень вложенности для архивов (zip, rar и т. п.), в которые вложены другие архивы, в которые, в свою очередь, могут быть вложены еще архивы, и т. п. Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого архивы внутри архивов не будут проверяться.

Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.

Значение по умолчанию: 8

MailMaxLevel

{целое число}

Максимальный уровень вложенности для файлов почтовых программ (pst, tbb и т. п.), в которые могут быть вложены объекты, в которые также могут быть вложены объекты, и т. п. Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого объекты внутри объектов не будут проверяться.

Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.

Значение по умолчанию: 8

ContainerMaxLevel

{целое число}

Максимальный уровень вложенности при проверке других типов объектов с вложениями (например, HTML-страницы, jar-файлы и т. п.). Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого объекты внутри объектов не будут проверяться.

Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.

Значение по умолчанию: 8

MaxSizeToExtract

{размер}

Устанавливает ограничение на размер файлов в архиве. Файлы, размер которых превышает значение этого параметра, будут пропущены при проверке. По умолчанию никаких ограничений на размер файлов в архивах нет.

Значение этого параметра указывается как число с суффиксом (b, kb, mb, gb). Если никакого суффикса не указывается, число интерпретируется как размер в байтах.

Если установлено значение 0, файлы в архивах не будут проходить проверку вообще.

Значение по умолчанию: None

MaxCompressionRatio

{целое число}

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

Величина степени сжатия должна быть не менее 2.

Значение по умолчанию: 500

MilterSocket

{путь к файлу | IP-адрес:port}

Сокет для подключения к MTA как Milter-фильтр сообщений электронной почты (на этот сокет MTA будет выполнять подключение при использовании Dr.Web MailD как соответствующий фильтр). Допускается использование UNIX-сокета или сетевого сокета.

Правила обработки сообщений, поступающих на проверку через Milter, задаются в параметре MilterHook (см. ниже).

Значение по умолчанию: (не задано)

MilterDebugIpc

{логический}

Сохранять/не сохранять в журнал на отладочном уровне (LogLevel = Debug) сообщения протокола Milter.

Значение по умолчанию: No

MilterTraceContent

{логический}

Выводить в журнал на отладочном уровне (LogLevel = Debug) тела сообщений электронной почты, полученных на проверку через интерфейс Milter.

Значение по умолчанию: No

MilterHook

{путь к файлу | функция Lua}

Код скрипта на языке Lua для обработки почтовых сообщений, полученных через интерфейс Milter, либо путь к файлу этого скрипта (см. раздел Обработка сообщений на Lua).

Если указан недоступный файл, то при загрузке компонента будет выдана ошибка.

Значение по умолчанию:

local dw = require "drweb"
local dwcfg = require "drweb.config"

function milter_hook(ctx)

 -- Отклонить сообщение, если оно похоже на спам
 if ctx.message.spam.score >= 100 then
   dw.notice("Spam score: " .. ctx.message.spam.score)
   return {action = "reject"}
 else
   -- Добавить заголовки X-Drweb-Spam с отчетом о спаме
   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

  -- Проверить письмо на наличие вирусов и, если они имеются, перепаковать его
  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

  -- Перепаковать, если найден нежелательный URL
  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

 -- Добавить заголовок X-AntiVirus
 ctx.modifier.add_header_field("X-AntiVirus", "Checked by Dr.Web [MailD version: " .. dwcfg.maild.version .. "]")

 -- Принять письмо со всеми запланированными преобразованиями
  return {action = 'accept'}
end

SpamdSocket

{путь к файлу | IP-адрес:port}

Сокет для подключения к MTA как Spamd-фильтр сообщений электронной почты (на этот сокет MTA будет выполнять подключение при использовании Dr.Web MailD как соответствующий фильтр). Допускается использование UNIX-сокета или сетевого сокета.

Правила обработки сообщений, поступающих на проверку через Spamd, задаются в параметре SpamdReportHook (см. ниже).

Значение по умолчанию: (не задано)

SpamdDebugIpc

{логический}

Выводить в журнал на отладочном уровне (LogLevel = Debug) сообщения протокола Spamd.

Значение по умолчанию: No

SpamdReportHook

{путь к файлу | функция Lua}

Код скрипта обработки на языке Lua сообщений электронной почты, полученных через интерфейс Spamd, либо путь к файлу, содержащему этот скрипт (см. раздел Обработка сообщений на Lua).

Если указан недоступный файл, то при загрузке компонента будет выдана ошибка.

Значение по умолчанию:

local dw = require "drweb"

function spamd_report_hook(ctx)
  local score = 0
  local report = ""

  -- Прибавить 1000 баллов за каждую угрозу в сообщении
  for threat, path in ctx.message.threats{category = {"known_virus", "virus_modification", "unknown_virus", "adware", "dialer"}} do
      score = score + 1000
      report = report .. "Threat found: " .. threat.name .. "\n"
      dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
  end

  -- Прибавить 100 баллов за каждый нежелательный URL в сообщении
  for url in ctx.message.urls{category = {"infection_source", "not_recommended", "owners_notice"}} do
      score = score + 100
      report = report .. "Url found: " .. url .. "\n"
      dw.notice("URL found: " .. url .. "(" .. url.categories[1] .. ")")
  end

  -- Добавить спам-рейтинг
  score = score + ctx.message.spam.score
  report = report .. "Spam score: " .. ctx.message.spam.score .. "\n"
  if ctx.message.spam.score >= 100 then
      dw.notice("Spam score: " .. ctx.message.spam.score)
  end

  -- Вернуть результат проверки
  return {
     score = score,
     threshold = 100,
     report = report
     }
end

SpoolDir

{путь к каталогу}

Каталог для временного хранения проверяемых писем.

Значение по умолчанию: /tmp/com.drweb.maild

RspamdHttpSocket

{путь к файлу | IP-адрес:port}

Сокет для подключения к MTA как Rspamd-фильтр сообщений электронной почты (на этот сокет MTA будет выполнять подключение при использовании Dr.Web MailD как соответствующий фильтр, с использованием HTTP-варианта протокола Rspamd). Допускается использование UNIX-сокета или сетевого сокета.

Правила обработки сообщений, поступающих через Rspamd, задаются в параметре RspamdHook (см. ниже).

Значение по умолчанию: (не задано)

RspamdSocket

{путь к файлу | IP-адрес:port}

Сокет для подключения к MTA как Rspamd-фильтр сообщений электронной почты (на этот сокет MTA будет выполнять подключение при использовании Dr.Web MailD как соответствующий фильтр, с использованием legacy-варианта протокола Rspamd). Допускается использование UNIX-сокета или сетевого сокета.

Значение по умолчанию: (не задано)

RspamdDebugIpc

{логический}

Выводить в журнал на отладочном уровне (LogLevel = Debug) сообщения протокола Rspamd.

Значение по умолчанию: No

RspamdHook

{путь к файлу | функция Lua}

Код скрипта обработки на языке Lua сообщений электронной почты, полученных через интерфейс Rspamd, либо путь к файлу, содержащему этот скрипт (см. раздел Обработка сообщений на Lua).

Если указан недоступный файл, то при загрузке компонента будет выдана ошибка.

Значение по умолчанию:

local dw = require "drweb"

function rspamd_hook(ctx)
  local score = 0
  local symbols = {}

  -- Прибавить 1000 баллов за каждую угрозу в сообщении
  for threat, path in ctx.message.threats{category = {"known_virus", "virus_modification", "unknown_virus", "adware", "dialer"}} do
      score = score + 1000
      table.insert(symbols, {name = threat.name, score = 1000})
      dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
  end

 -- Прибавить 100 баллов за каждый нежелательный URL в сообщении
  for url in ctx.message.urls{category = {"infection_source", "not_recommended", "owners_notice"}} do
      score = score + 100
      table.insert(symbols, {name = "URL " .. url, score = 100})
      dw.notice("URL found: " .. url .. "(" .. url.categories[1] .. ")")
  end

  -- Добавить спам-рейтинг
  score = score + ctx.message.spam.score
  table.insert(symbols, {name = "Spam score", score = ctx.message.spam.score})
  if ctx.message.spam.score >= 100 then
      dw.notice("Spam score: " .. ctx.message.spam.score)
  end

  -- Вернуть результат проверки
  return {
     score = score,
     threshold = 100,
     symbols = symbols
  }
end

SpfCheckTimeout

{интервал времени}

Максимальное общее время, отведенное для проверки SPF.

Значение по умолчанию: 20s

SpfVoidLimit

{целое число}

Максимальное допустимое число пустых ответов во время проверки SPF.

Значение по умолчанию: 2

SmtpSocket

{путь к файлу | IP-адрес:port}

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

Значение по умолчанию: (не задано)

SmtpSenderRelay

{путь к файлу | IP-адрес:port}

Сокет для подключения Dr.Web MailD к MTA для отправки прошедших проверку сообщений в режиме SMTP (Dr.Web MailD будет подключаться к MTA через этот сокет при использовании Dr.Web MailD в качестве внешнего фильтра). Допускается использование UNIX-сокета или сетевого сокета.

Значение по умолчанию: (не задано)

BccSocket

{путь к файлу | IP-адрес:port}

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

Значение по умолчанию: (не задано)

BccReporterAddress

{строка}

Адрес электронной почты, с которого будут отправляться отчеты Dr.Web MailD по итогам проверки вложений почтовых сообщений в режиме BCC.

Значение по умолчанию: (не задано)

BccReporterPassword

{None | Plain(<пароль>)}

Пароль от почтового ящика, с которого будут отправляться отчеты Dr.Web MailD по итогам проверки вложений почтовых сообщений в режиме BCC.

Возможные значения:

None — ящик не защищен паролем;

Plain(<пароль>) — ящик защищен указанным паролем.

Значение по умолчанию: None

BccReportRecipientAddress

{строка}

Адрес электронной почты, на который будут отправляться отчеты Dr.Web MailD по итогам проверки вложений почтовых сообщений в режиме BCC.

Значение по умолчанию: (не задано)

BccSmtpServer

{строка}

Адрес MTA для отправки почтовых сообщений в режимах SMTP и BCC. Допускается использование домена, IP-адреса или UNIX-сокета.

Значение по умолчанию: (не задано)

VxcubePlatforms

{платформа, … | All}

Список платформ ОС для выполнения файлов почтовых вложений при использовании Dr.Web vxCube в качестве инструмента проверки почтовых сообщений в режиме внешнего фильтра (SMTP или BCC).

Значения в списке указываются через запятую (каждое значение в кавычках). Допускается повторение параметра в секции (в этом случае все значения объединяются в единый список).

Допустимые значения:

<платформа> — значение поля os_code (название ОС с указанием разрядности) из API-вызова platforms в Dr.Web vxCube (подробнее см. Руководство пользователя Dr.Web vxCube, раздел Platform);

All — все доступные платформы.

Значение по умолчанию: All

VxcubeFileFormats

{формат, … | All}

Список форматов файлов почтовых вложений, которые будут отправляться на анализ при использовании Dr.Web vxCube в качестве инструмента проверки почтовых сообщений в режиме внешнего фильтра (SMTP или BCC).

Значения в списке указываются через запятую (каждое значение в кавычках). Допускается повторение параметра в секции (в этом случае все значения объединяются в единый список).

Допустимые значения:

<формат> — значение поля name (буквенное обозначение формата) из API-вызова formats в Dr.Web vxCube (подробнее см. Руководство пользователя Dr.Web vxCube, раздел Format);

All — все доступные форматы.

Значение по умолчанию: All

VxcubeSampleRunTime

{интервал времени}

Время выполнения файла почтового вложения, отправленного на анализ в Dr.Web vxCube при использовании его в качестве инструмента проверки почтовых сообщений в режиме внешнего фильтра (SMTP или BCC).

Значение по умолчанию: (не задано)

SmtpHook

{путь к файлу | функция Lua}

Код скрипта обработки на языке Lua сообщений электронной почты, полученных на проверку в режиме SMTP, либо путь к файлу, содержащему этот скрипт (см. раздел Обработка сообщений на Lua).

Если в секции [Root] конфигурационного файла установлено значение параметра UseVxcube=Yes, в Lua-скрипт по умолчанию добавляется операция проверки файлов почтовых вложений с помощью Dr.Web vxCube.

Значение по умолчанию:

local dw = require "drweb"

function smtp_hook(ctx)
  -- Отклонить сообщение, если оно похоже на спам
  if ctx.message.spam.score >= 100 then
      dw.notice("Spam score: " .. ctx.message.spam.score)
      return {action = "discard"}
  else
      -- Добавить заголовки X-Drweb-Spam с отчетом о спаме
      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

  -- Проверить письмо на наличие вирусов и, если они имеются, перепаковать его
  threat_categories = {"known_virus", "virus_modification", "unknown_virus", "adware", "dialer"}
  if ctx.message.has_threat({category = threat_categories}) then
      for threat, path in ctx.message.threats({category = threat_categories}) do
        dw.notice(threat.name .. " found in " .. (ctx.message.part_at(path).name or path))
      end
      ctx.modifier.repack()
      return {action = "accept"}
  end

  -- Перепаковать, если найден нежелательный URL
  url_categories = {"infection_source", "not_recommended", "owners_notice"}
  if ctx.message.has_url({category = url_categories}) then
      for url in ctx.message.urls({category = url_categories}) do
        dw.notice("URL found: " .. url .. " (" .. url.categories[1] .. ")")
      end
      ctx.modifier.repack()
      return {action = "accept"}
  end

  -- Принять письмо со всеми запланированными преобразованиями
  return {action = 'accept'}
end

SmtpRetryInterval

{интервал времени}

Тайм-аут на повторную попытку проверки или отправки сообщения в случае ошибки при работе в режиме SMTP.

Значение по умолчанию: 5m

SmtpRequireTls

{Always | IfSupported | Never}

Определяет политику работы с расширением STARTTLS протокола SMTP в режиме SMTP.

Допустимые значения:

Always — всегда использовать защищенное соединение; прерывать соединение, если сервер не поддерживает его защиту;

IfSupported — если сервер поддерживает защищенное соединение, то предпочитать его; в ином случае отправлять сообщения по незащищенным каналам;

Never — не использовать защищенное соединение.

Значение по умолчанию: Always

SmtpDebugIpc

{логический}

Сохранять/не сохранять в журнале на отладочном уровне (при LogLevel = DEBUG) SMTP-команды в режиме SMTP.

Значение по умолчанию: No

SmtpTraceContent

{логический}

Сохранять/не сохранять в журнале на отладочном уровне (при LogLevel = DEBUG) содержимое почтовых сообщений в режиме SMTP.

Значение по умолчанию: No

CaPath

{путь к файлу или каталогу}

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

Значение по умолчанию: путь к системному перечню доверенных сертификатов. Зависит от дистрибутива GNU/Linux.

Для Astra Linux, Debian, Linux Mint, SUSE Linux и Ubuntu обычно используется путь /etc/ssl/certs/.

Для CentOS и Fedora — путь /etc/pki/tls/certs/ca-bundle.crt.

Для других дистрибутивов путь может быть определен через результат вызова команды openssl version -d.

Если команда недоступна или дистрибутив ОС опознать не удалось, используется значение /etc/ssl/certs/

Hostname

{строка}

Имя узла (FQDN) отправителя. Будет фигурировать в строке приветствия HELO/EHLO, полученной от SMTP-клиента, и как значение по умолчанию для srvname в заголовке Authentication-Results.

Значение по умолчанию: текущее имя хоста