Приложение А. Правила проверки трафика

Правила представляют собой цепочку продукций вида ЕСЛИ <условие> ТО <действие>. При этом в части <условие> перечисляются проверки вида «Переменная (не) имеет заданное значение» или «Значение переменной (не) входит в указанное множество», а <действие> содержит конечную резолюцию (пропустить или заблокировать трафик), или действие вида «Присвоить переменной значение» или «Добавить указанное значение к множеству значений переменной».

Часть <действие> правила выполняется, только если истинна часть <условие>. Если <условие> ложно, действие не выполняется, осуществляется переход к следующему правилу. Правила перебираются сверху вниз до тех пор, пока не сработает какая-либо конечная резолюция. После этого все нижележащие правила игнорируются.

Формат правил

Формат продукции правила имеет вид:

[<условие>[, <условие>[, ...]]] : <действие>

Условная часть правила (перед ':') может отсутствовать, в этом случае часть <действие> выполняется безусловно. Если условная часть правила отсутствует, то разделитель ':' может быть опущен. Запятая между условиями в условной части играет роль конъюнкции (т. е. логического «И»), и условная часть считается истинной, только если истинны все перечисленные в ней условия. Ключевые слова, имена переменных и параметров из конфигурации в правилах не чувствительны к регистру.

Условия

В условной части правил могут встречаться следующие типы условий:

Условие

Смысл условия

<переменная> <значение>

Значение указанной переменной совпадает с заданным.

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

<переменная> [not] in <множество значений>

Значение указанной переменной содержится в указанном множестве значений (для not — не совпадает ни с одним из значений указанного множества).

<переменная> [not] match <множество значений>

Значение указанной переменной соответствует любому регулярному выражению из указанного набора (для not — не соответствует ни одному из выражений в указанном наборе).

info

Регулярные выражения записываются с использованием синтаксиса POSIX (BRE, ERE) или Perl (PCRE, PCRE2).

<переменная> [not] gt <значение>

Значение указанной переменной (не) больше заданного.

Может быть использовано только для переменных, которые принимают единственное числовое значение.

<переменная> [not] lt <значение>

Значение указанной переменной (не) меньше заданного.

Может быть использовано только для переменных, которые принимают единственное числовое значение.

*) Необязательное ключевое слово not обозначает отрицание.

Часть <множество значений>, с которым сравнивается переменная, может быть указано следующим способами:

Запись

Смысл

(<значение 1>[, <значение 2>[, ...]])

В скобках перечисляется непосредственно множество проверяемых значений (не менее одного). Для случая с одним значением и использованием условия in скобки можно опустить (получится случай <переменная> <значение>).

"<секция>.<параметр>"

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

Перечни параметров, которые можно использовать в условии, зависят от компонента, для которого заданы правила, и приведены ниже.

file("<имя файла>")

Перечень значений считывается из текстового файла <имя файла> (одна строка файла — один элемент списка, ведущие и завершающие пробелы в строках не учитываются). Путь к файлу должен быть абсолютным. Кавычки и апострофы, если они встречаются в <имя файла>, необходимо экранировать символом косой черты '\'.

info

Размер файла не должен быть больше 64 МБ.

Содержимое файла считывается и подставляется в правила один раз — при запуске Dr.Web для почтовых серверов UNIX. Если указанный файл отсутствует или его размер слишком велик, при загрузке настроек будет выдана ошибка x102.

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

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

<тип_LOOKUP_запроса>@<тег>[@<значение>]

Множество значений запрашивается через Dr.Web LookupD у внешнего источника данных (LDAP, ActiveDirectory), где <тип_LOOKUP_запроса> — это тип источника (LDAP или AD); <тег> — это имя секции, описывающей подключение для выборки проверяемого параметра, а необязательное <значение> — значение, которое должно находиться в множестве значений, извлеченных из источника данных.

info

Не для всех переменных можно получать значения через Dr.Web LookupD. Также не для всех переменных используется условие <проверка>. Для каждой переменной ниже указывается, можно ли использовать для проверки ее значений значения, получаемые через Dr.Web LookupD.

dnsxl(<DNSxL-сервер 1>[: [mask] <IP>][, ...])

В скобках перечисляется перечень DNSxL-серверов (DNSBL и т. п.), которые должны проверить вхождение IP-адреса, или FQDN (предварительно разрешенного до IP-адреса) в свои списки IP-адресов.

Если проверяемый IP-адрес зарегистрирован в списках некоторого из перечисленных в скобках DNSxL-серверов, то в ответе этого сервера присутствует одна или более DNS-записей типа A, причем возвращаемый сервером фиктивный IP-адрес может содержать в себе причину, по которой проверяемый IP-адрес был внесен в списки данного сервера (как правило, тип причины определяется значением последнего октета возвращенного фиктивного IP-адреса). Для каждого DNSxL-сервера в списке можно указать проверку на ожидаемое возвращенное значение фиктивного IP-адреса. Проверка указывается после двоеточия в форме:

<DNSxL-сервер>: <IP-адрес>

<DNSxL-сервер>: mask <IP-адрес>

В первом случае указывается требование, чтобы возвращенный сервером <DNSxL-сервер> фиктивный IP-адрес в точности совпадал бы с указанным адресом <IP-адрес>. Во втором случае указывается требование, чтобы возвращенный сервером <DNSxL-сервер> фиктивный IP-адрес в точности равнялся бы указанной маске в ее ненулевых октетах. Если параметры проверки не указаны, то условие сработает, если <DNSxL-сервер> вернет любой фиктивный IP-адрес в ответ на запрос.

Примеры:

<IP> in dnsxl("dnsxl.server.org") — для IP-адреса, содержащегося в переменной <IP>, сервер должен вернуть любой фиктивный IP-адрес;
<IP> in dnsxl("dnsxl.server.org": 127.0.0.2) — для IP-адреса, содержащегося в переменной <IP>, сервер должен вернуть фиктивный IP-адрес 127.0.0.2;
<IP> in dnsxl("dnsxl.server1.org": mask 0.0.0.8, "dnsxl.server2.org": 127.0.0.3, "dnsxl.server3.org") — для IP-адреса, содержащегося в переменной <IP>, либо первый сервер вернет фиктивный IP-адрес с младшим октетом 8, либо второй — фиктивный IP-адрес 127.0.0.3, либо третий — любой фиктивный IP-адрес.

info

Использование инструкции проверки <переменная> in dnsxl(<список серверов>) допустимо только в том случае, если <переменная> представляет собой IP-адрес или доменное имя, которое может быть разрешено службой DNS до IP-адреса (FQDN).

Таким образом, в качестве переменной для данного условия могут быть использованы только следующие переменные: src_ip, url_host (см. ниже).

Действия

Действия делятся на конечные резолюции, определяющие запрет или разрешение на пропуск трафика; модифицирующие резолюции, не прерывающие проверку, а фиксирующие действие, которое должно быть применено к соединению или проверяемому объекту по достижении резолюции, разрешающей пропуск трафика, и действия, изменяющие значения некоторой переменной, что может быть использовано при проверке нижележащих условий.

Конечные резолюции

Резолюция

Описание (смысл)

Общие резолюции

PASS

Пропустить трафик (разрешить создать соединение). Последующие правила (если имеются) не проверяются.

Для правил обработки почты имеет смысл команды пропуска письма к получателю, применив к нему все накопленные изменения (т. е. все сработавшие действия REPACK, ADD_HEADER, CHANGE_HEADER, см. ниже).

BLOCK as <reason>

Заблокировать трафик (отказать в создании соединения). Последующие правила (если имеются) не проверяются.

В журнале фиксируется, что блокировка случилась по причине <reason>. Эта же причина используется для определения, какую страницу с уведомлением показать пользователю в браузере. В качестве <reason> для BLOCK может быть использовано две стандартные причины:

BlackList — считается, что данные заблокированы по причине попадания в черный список пользователя.

_match — причиной блокировки является попадание веб-ресурса или файла с угрозой в категорию, из-за которой сработало правило (для условий *_category in (...)). Переменная _match хранит список блокируемых категорий, для которых сработало соответствие.

Для правил обработки почты данное действие является синонимом действия REJECT. Причина блокировки <reason> при этом игнорируется

Специальные резолюции для правил обработки почты

REJECT ["<description>"]

Отклонить письмо (не допустить его прием или отправку).

В случае работы с данными, передаваемыми по протоколу SMTP, сформировать код ответа SMTP 541 (класс постоянных ошибок). Необязательный параметр <description>, если указан, будет использован в качестве ответа. При проверке письма, поступившего от MTA через интерфейс Spamd/Rspamd, <description> будет использовано как значение заголовка 'Message', добавленного к письму после сообщения результатов проверки.

TEMPFAIL ["<description>"]

Ответить отправителю ошибкой типа «временная ошибка».

В случае работы с данными, передаваемыми по протоколу SMTP, сформировать код ответа SMTP 451 (класс временных ошибок). Необязательный параметр <description>, если указан, будет использован в качестве ответа. При проверке письма, поступившего от MTA через интерфейс Spamd/Rspamd, <description> будет использовано как значение заголовка 'Message', добавленного к письму после сообщения результатов проверки.

DISCARD

Отвергнуть письмо, т. е. принять его без возврата отправителю кода ошибки, но уничтожить его вместо передачи получателю.

Модифицирующие резолюции

Модифицирующие резолюции не прерывают проверку правил, а фиксируют действия, которые должны быть применены к проверяемым данным по достижении разрешающей резолюции PASS.

Резолюция

Описание (смысл)

REPACK [<reason>]

Перепаковать сообщение, т. е. создать (на основе одного из предопределенных шаблонов) новое сообщение, содержащее содержимое из старого сообщения и некоторый текст, информирующий получателя о наличии угроз. Вырезанное нежелательное содержимое помещается в архив, защищенный паролем. Данный архив будет добавлен к сообщению, отправленному получателю, как вложение. Продолжить проверку почтового сообщения до достижения резолюции PASS. Имеются следующие предопределенные шаблоны перепаковки:

1.Сообщение признано спамом;

2.Наличие в сообщении одной или более угроз;

3.Наличие в сообщении одного или более вредоносных/нежелательных URL;

4.Нарушение сообщением политик безопасности, указанных администратором.

В журнале фиксируется, что перепаковка случилась по причине <reason>. Эта же причина используется для определения, на основании какого из четырех шаблонов сформировать письмо-уведомление получателю. В качестве <reason> для REPACK могут быть использованы следующие причины:

as _match — причиной перепаковки является признание письма спамом, попадание веб-ресурса или файла с угрозой, содержащихся в письме, в категорию, из-за которой сработало правило (для условий *_category in (...)). Переменная _match хранит список нежелательных категорий, для которых сработало соответствие. Для перепаковки выбирается шаблон 1, 2 или 3 (см. выше), в зависимости от того, что было обнаружено в сообщении:

если сообщение признано спамом, то выбирается шаблон 1;

если найдена хотя бы одна угроза, то выбирается шаблон 2;

если найден хотя бы один вредоносный/нежелательный URL, то шаблон 3;

если угроз не обнаружено, то выбирается шаблон 4.

"текстовое сообщение" — письмо перепаковано в силу срабатывания настроек, заданных администратором, а сообщение указывает произвольное сообщение от администратора. Например: REPACK "Virus found!". Для перепаковки будет выбран шаблон 4.

ADD_HEADER("<Name>", "<Value>")

Добавить в письмо заголовок <Name> со значением <Value> и продолжить проверку письма до достижения резолюции PASS. Например: ADD_HEADER ("X-SPAM", "Virus found!").

Значение перекодируется в ASCII в соответствии с RFC 2047.

CHANGE_HEADER("<Name>", "<Value>" | _value [+ "<Value>" | _value [+ ...]])

Заменить значение первого найденного заголовка с именем <Name>. Новое значение — конкатенация значений после запятой, разделённых символом '+'. Каждое значение может быть либо строковым литералом в кавычках, либо специальной переменной _value, в которую подставляется исходное значение модифицируемого заголовка. Продолжить проверку письма до достижения резолюции PASS. Например: CHANGE_HEADER("Subject", "[SPAM] '" + _value + "' (do not read!)").

Особенности обработки резолюций:

BLOCK as BlackList всегда отрабатывает как «попал в черный список» (вне зависимости от того, что за условие указано в правиле с данной резолюцией).

BLOCK as _match, если в _match не пусто, отрабатывает как «попал в _match категорию(и)».

BLOCK as _match, если в _match пусто, отрабатывает как «попал в черный список» (вне зависимости от того, что за условие указано в правиле с данной резолюцией).

Если были просмотрены все правила, а ни одно правило с резолюцией не сработало (или резолюции отсутствуют в правилах), то это равносильно применению к соединению действия PASS.

Изменение значения переменной

Для изменения значения переменной используется инструкция

SET <переменная> = ([<значение 1>[, <значение 2>[, ...]]])

Если скобки пустые — это означает очистку списка значений переменной. Для случая с одним значением скобки необходимо опустить, т. е. использовать синтаксис

SET <переменная> = <значение>

Переменные, используемые в правилах

При указании переменных в правилах регистр символов не учитывается. Переменные, название которых состоит из нескольких слов, могут быть записаны с использованием подчеркивания для разделения слов, или записаны без подчёркивания. Таким образом, записи variable_name, VariableName и variablename представляют одну и ту же переменную. В данном разделе все переменные записаны с использованием подчеркивания (т. е. используется вариант написания variable_name).

Переменные общего назначения

Переменная

Описание

Может быть использована в

условной части

части действия (SET)

protocol

Тип сетевого протокола, используемого соединением.

Переменная может принимать множество значений.

Возможные значения: HTTP, SMTP, IMAP, POP3.

Особенности использования:

Значение переменной определено, только если не используется SSL/TLS или было разрешено вскрытие SSL.

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

Примеры:

protocol in (HTTP, SMTP)
protocol in (POP3)
protocol in file("/etc/file")

Да

Нет

sni_host

SNI (адрес) хоста, с которым устанавливается соединение через SSL/TLS.

Особенности использования:

Если SSL не используется, то значение переменной не определено, условие будет ложным.

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

Примеры:

sni_host not in ('vk.com', 'ya.ru')
sni_host in "LinuxFirewall.BlackList"
sni_host in file("/etc/file")

Да

Нет

sni_category

Список категорий, к которым в базах категорий веб-ресурсов относится хост (определенный по SNI), с которым устанавливается соединение через SSL/TLS (AdultContent, и т. п.).

Переменная может принимать множество значений.

Особенности использования:

Если SSL не используется, то значение переменной не определено, условие будет ложным.

Для правил, используемых Dr.Web MailD, условие с not in будет истинным, даже если по результатам проверки хост не принадлежит никакой из предопределенных категорий («безопасный» хост).

Если базы данных категорий веб-ресурсов не установлены, то переменную нельзя использовать в правилах (попытка проверить истинность условия в правиле будет приводить к ошибке x112).

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

Примеры:

sni_category not in (AdultContent, Chats)
sni_category in "LinuxFirewall.BlockCategory"
sni_category in (FreeEmail)
sni_category not in file("/etc/file")

Да

Нет

url_host

URL/хост, с которым устанавливается соединение.

Особенности использования:

Значение переменной определено, только если не используется SSL/TLS или было разрешено вскрытие SSL.

Для проверки значения переменной можно использовать Dr.Web LookupD.

Данная переменная может быть проверена на вхождение в черные списки DNSxL (DNSBL и т. п.).

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

Примеры:

url_host in ('vk.com', 'ya.ru')
url_host not in "ICAPD.Whitelist"
url_host in LDAP@hosts
url_host not in file("/etc/file")
url_host not in dnsxl("multi.surbl.org": 127.0.0.2, "multi2.surbl.org")

Да

Нет

url_category

Список категорий, к которым (по базам категорий веб-ресурсов или по ответу из <%CLOUD_SERVICE%>) относится URL/хост, с которым установлено соединение.

Переменная может принимать множество значений.

Особенности использования:

Значение переменной определено, только если не используется SSL/TLS или было разрешено вскрытие SSL.

Для правил, используемых компонентами Dr.Web MailD, условие с not in будет истинным, даже если по результатам проверки URL/хост не принадлежит никакой из предопределенных категорий («безопасный» URL/хост).

Если базы данных категорий веб-ресурсов не установлены, то переменную нельзя использовать в правилах (попытка проверить истинность условия в правиле будет приводить к ошибке x112).

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

Примеры:

url_category not in (AdultContent, Chats)
url_category in "LinuxFirewall.BlockCategory"
url_category in (FreeEmail)
url_category in file("/etc/file")

Да

Нет

threat_category

Список категорий, к которым по информации из вирусных баз относится угроза, обнаруженная в передаваемых данных.

Переменная может принимать множество значений.

Особенности использования:

Значение переменной определено, только если не используется SSL/TLS или было разрешено вскрытие SSL.

Для правил, используемых компонентами Dr.Web MailD, условие с not in будет истинным, даже если по результатам проверки объект не содержит угроз ни из одной из предопределенных категорий («безопасный» объект).

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

Примеры:

threat_category in "LinuxFirewall.BlockThreat"
threat_category not in (Joke)
threat_category in file("/etc/file")

Да

Нет

src_ip

IP-адрес хоста, со стороны которого следует соединение.

Особенности использования:

Для проверки значения переменной можно использовать Dr.Web LookupD.

Данная переменная не может быть использована в правилах для интерфейса Spamd: этот протокол не предоставляет информацию об отправителе письма.

Данная переменная может быть проверена на вхождение в черные списки DNSxL (DNSBL и т. п.).

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

Примеры:

src_ip not in (127.0.0.1, 10.20.30.41, 198.126.10.0/24)
src_ip in LDAP@AllowedAddresses
src_ip not in file("/etc/file")
src_ip in dnsxl("zen.spamhouse.org": mask 0.0.0.2, "zen2.spamhouse.org")

Да

Нет

proc

Процесс, устанавливающий соединение (полный путь к исполняемому файлу).

Особенности использования:

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

Примеры:

proc in ('/usr/bin/ls')
proc not in ('/home/user/myapp', '/bin/bin1')
proc in "LinuxFirewall.ExcludedProc"
proc in file("/etc/file")

Да

Нет

direction

Тип трафика, идущего по соединению.

Возможные значения: request (клиентский запрос), response (ответ сервера).

Переменная не может иметь множества значений, условия типа match и in неприменимы.

Примеры:

direction request
direction not response

Да

Нет

divert

Направление соединения.

Возможные значения: input (входящее — создано/инициировано извне локального хоста), output (исходящее — создано/инициировано на локальном хосте).

Переменная не может иметь множества значений, условия типа match и in неприменимы.

Примеры:

divert input
divert not output

Да

Нет

content_type

MIME-тип данных, передающихся по соединению.

Особенности использования:

Может быть определен, только если не используется SSL/TLS или было разрешено вскрытие SSL.

Выражению "*/*" соответствуют данные любого MIME-типа, а также HTTP-ответы без заголовка Content-Type.

Для проверки значения переменной можно использовать Dr.Web LookupD.

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

Примеры:

content_type in ("multipart/byteranges", "application/octet-stream")
content_type not in ("text/*", "image/*")
content_type not in ("audio/*")
content_type in ("*/*")
content_type in LDAP@BlockedContent
content_type not in file("/etc/file")

Да

Нет

unwrap_ssl

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

Возможные значения: true, false.

Особенности использования:

Переменная не может не иметь значения, т. е. инструкция SET unwrap_ssl = () недопустима.

Переменная не может использоваться в условиях, а нужна только для управления вскрытием SSL (например, чтобы продемонстрировать пользователю веб-страницу с уведомлением о блокировке от нашего имени).

Примеры:

SET unwrap_ssl = TRUE
set Unwrap_SSL = false

Нет

Да

Переменные, используемые в правилах обработки почты

Переменная

Описание

Может быть использована в

условной части

части действия (SET)

header

Содержимое области заголовков письма.

Особенности использования:

Используется для сравнения области заголовков со списком задаваемых шаблонов (используются регулярные выражения).

Может быть проверен любой из заголовков, представленных в письме.

Сравнение нечувствительно к регистру, допустимо использовать Unicode.

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

Примеры:

header match ("su..ect: sp.m", "From: sales.*@.*")
Header not match ("Subject: .*купи.*")
header match file("/etc/file")

Да

Нет

body

Текстовое содержимое тела письма.

Особенности использования:

Используется для сравнения тела письма со списком задаваемых шаблонов (используются регулярные выражения).

Может быть проверена любая текстовая часть тела письма.

Сравнение нечувствительно к регистру, допустимо использовать Unicode.

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

Примеры:

body match ("в.чност[ьи]")
body not match file("/etc/file")

Да

Нет

body_part_header

Заголовки частей тела письма (MIME part).

Особенности использования:

Используется для сравнения заголовков, имеющихся в разделах тела письма, со списком задаваемых шаблонов (используются регулярные выражения).

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

Сравнение нечувствительно к регистру, допустимо использовать Unicode.

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

Примеры:

body_part_header match ('Content-Disposition: attachment; .*filename="вирус.exe"')
BodyPartHeader not match ("Content-Disposition: attachment; .*")
body_part_header match file("/etc/file")

Да

Нет

attachment_name

Имена файлов, прикрепленных к письму.

Особенности использования:

Используется для сравнения имен файлов (Content-Disposition: attachment), прикрепленных к письму, со списком задаваемых шаблонов (используются регулярные выражения).

Сравнение нечувствительно к регистру, допустимо использовать Unicode.

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

Примеры:

attachment_name match ("\.ex.$", "\.js$", "^virus.*")
attachment_name not match ("\.txt$", "\.rtf$")
attachment_name not match file("/etc/file")

Да

Нет

total_spam_score

Нормализованная оценка письма, как спама (от 0 до 1), полученная от Dr.Web ASE.

Нормализация балльной оценки спама, полученной от Dr.Web ASE, производится по следующим правилам:

1.Число баллов 0 и меньше — 0.0;

2.Число баллов 100 — 0.8;

3.Число баллов 1000 и больше — 1.0.

В указанных интервалах нормализованная оценка возрастает.

Особенности использования:

Переменная числовая, всегда имеет одно значение может использоваться только с условиями типа lt и gt.

Если Dr.Web ASE не установлен, то проверка писем на спам не производится, и переменную total_spam_score нельзя использовать в правилах (попытка проверить истинность условия в правиле будет приводить к ошибке «Dr.Web ASE не доступен»).

Пример:

total_spam_score gt 0.32
total_spam_score gt 0.5, total_spam_score lt 0.95

Да

Нет

smtp_mail_from

Адрес отправителя письма, переданный в рамках SMTP-сессии командой MAIL FROM.

Особенности использования:

Используется для сравнения имени отправителя, указанного в рамках SMTP-сессии, со списком задаваемых шаблонов (используются регулярные выражения).

Сравнение нечувствительно к регистру.

Эта переменная не может быть использована в правилах интерфейса Spamd: данный протокол не предоставляет информацию об отправителе письма.

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

Примеры:

smtp_mail_from match ("^john@.*", ".*@domain.com$")
smtp_mail_from not match ("^user@domain.com$")
smtp_mail_from match file("/etc/file")

Да

Нет

smtp_rcpt_to

Перечень адресов получателей письма, переданный в рамках SMTP-сессии командой RCPT TO.

Особенности использования:

Используется для сравнения имен получателей, указанных в рамках SMTP-сессии, со списком задаваемых шаблонов (используются регулярные выражения).

Сравнение нечувствительно к регистру.

Эта переменная не может быть использована в правилах интерфейса Spamd: данный протокол не предоставляет информацию о получателе письма.

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

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

Примеры:

smtp_rcpt_to match ("^user1@domain.com$", ".*@domain2.com$")
smtp_rcpt_to all match ("^john@.*", ".*@domain.com$")
smtp_rcpt_to match file("/etc/file")

Да

Нет

maild_templates_dir

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

Если путь начинается с / — это абсолютный путь, если с любого другого символа — то это относительный путь. Корнем при этом считается путь из параметра TemplatesDir.

Особенности использования:

Имеет смысл только для почтовых протоколов (POP3, IMAP, SMTP) и для интерфейсов MTA (Milter, Spamd, Rspamd).

Примеры:

SET maild_templates_dir = "/etc/my_mail_templates"
set MaildTemplatesDir = "templates_for_my_MTA"

Нет

Да

Категории нежелательных веб-сайтов и угроз

1.Категории нежелательных веб-сайтов (для переменных sni_category, url_category)

Обозначение

Категория веб-сайтов

InfectionSource

Сайты, содержащие вредоносное ПО («источники распространения вирусов»).

NotRecommended

Сайты, используемые для мошенничества («социальной инженерии») и не рекомендованные к посещению.

AdultContent

Сайты, содержащие материалы для взрослых.

Violence

Сайты, содержащие сцены насилия.

Weapons

Сайты, посвященные оружию.

Gambling

Сайты, содержащие азартные игры и игры на деньги.

Drugs

Сайты, посвященные наркотикам.

ObsceneLanguage

Сайты, содержащие нецензурную лексику.

Chats

Сайты чатов.

Terrorism

Сайты, посвященные терроризму.

FreeEmail

Сайты бесплатных почтовых служб.

SocialNetworks

Сайты социальных сетей.

DueToCopyrightNotice

Сайты, ссылки на которые указаны правообладателями некоторого произведения, защищенного авторскими правами (кинофильмы, музыкальные произведения и т. д.).

В качестве значения переменных sni_category и url_category можно также использовать имена параметров, управляющих блокировкой (см. ниже).

2.Категории угроз (для переменной threat_category)

Обозначение

Категория угроз

KnownVirus

Известная угроза (вирус).

VirusModification

Модификация известной угрозы (вируса).

UnknownVirus

Неизвестная угроза, подозрительный объект.

Adware

Рекламная программа.

Dialer

Программа дозвона.

Joke

Программа-шутка.

Riskware

Потенциально опасная программа.

Hacktool

Программа взлома.

В качестве значения переменной threat_category можно также использовать имена параметров, управляющих блокировкой (см. ниже).