Правила представляют собой набор конструкций вида ЕСЛИ <условие> ТО <действие>. При этом в части <условие> перечисляются проверки вида «Переменная (не) имеет заданное значение» или «Значение переменной (не) входит в указанное множество», а <действие> содержит конечную резолюцию (пропустить или заблокировать трафик), или действие вида «Присвоить переменной значение» или «Добавить указанное значение к множеству значений переменной».
Часть <действие> правила выполняется, только если истинна часть <условие>. Если <условие> ложно, действие не выполняется, осуществляется переход к следующему правилу. Правила перебираются сверху вниз до тех пор, пока не сработает какая-либо конечная резолюция. После этого все следующие ниже правила игнорируются.
Формат правил
Правило имеет формат:
[<condition>[, <condition>[, ...]]] : <action>
|
Условная часть правила (перед ':') может отсутствовать, в этом случае часть <действие> выполняется безусловно. Если условная часть правила отсутствует, то разделитель ':' может быть опущен. Запятая между условиями в условной части играет роль конъюнкции (т. е. логического «И»), и условная часть считается истинной, только если истинны все перечисленные в ней условия. Ключевые слова, имена переменных и параметров из конфигурации в правилах не чувствительны к регистру.
Условия
В правилах могут встречаться следующие типы условий:
Условие
|
Смысл условия
|
<переменная> <значение>
|
Значение указанной переменной совпадает с заданным.
Может быть использовано только для переменных, которые не могут принимать множества значений.
|
<переменная> [not] in <множество значений>
|
Значение указанной переменной содержится в указанном множестве значений (для not — не совпадает ни с одним из значений указанного множества).
|
<переменная> [not] match <множество значений>
|
Значение указанной переменной соответствует любому регулярному выражению из указанного набора (для not — не соответствует ни одному из выражений в указанном наборе).
|
Регулярные выражения записываются с использованием синтаксиса POSIX (BRE, ERE) или Perl (PCRE, PCRE2).
|
|
<переменная> [not] gt <значение>
|
Значение указанной переменной (не) больше заданного.
Может быть использовано только для переменных, которые принимают единственное числовое значение.
|
<переменная> [not] lt <значение>
|
Значение указанной переменной (не) меньше заданного.
Может быть использовано только для переменных, которые принимают единственное числовое значение.
|
*) Необязательное ключевое слово not обозначает отрицание.
Часть <множество значений>, с которым сравнивается переменная, может быть указано следующим способами:
Запись
|
Смысл
|
(<значение 1>[, <значение 2>[, …]])
|
В скобках перечисляется непосредственно множество проверяемых значений (не менее одного). Для случая с одним значением и использованием условия in скобки можно опустить (получится случай <переменная> <значение>).
|
"<секция>.<параметр>"
|
Множество значений некоторого параметра конфигурации, где в кавычках указывается имя параметра из конфигурации (с указанием содержащей его секции), значение (или набор значений) которого проверяется.
Перечни параметров, которые можно использовать в условии, зависят от компонента, для которого заданы правила, и приведены ниже.
|
file("<имя файла>")
|
Перечень значений считывается из текстового файла <имя файла> (одна строка файла — один элемент списка, ведущие и завершающие пробелы в строках не учитываются). Путь к файлу должен быть абсолютным. Кавычки и апострофы, если они встречаются в <имя файла>, должны быть экранированы символом косой черты '\'.
|
Размер файла не должен быть больше 64 МБ.
Содержимое файла считывается и подставляется в правила один раз — при загрузке файла конфигурации. Если указанный файл отсутствует или его размер слишком велик, при загрузке настроек будет выдана ошибка x102.
В случае если содержимое файла изменено в процессе работы программного комплекса, для применения внесенных изменений необходимо после сохранения файла перезагрузить Dr.Web для Интернет-шлюзов UNIX.
Не для всех переменных можно получать множество значений из файла. Для каждой переменной ниже указывается, можно ли использовать для проверки ее значений множество значений, получаемые из файла.
|
|
Если переменная имеет множественное значение, то условие <переменная> in <множество значений> истинно, если пересечение множества текущих значений указанной переменной <переменная> с указанным множеством <множество значений> не пусто. Условие not in истинно в противоположном случае. Например, пусть X — переменная, текущее значение которой — множество, содержащее значения a, b, c. Тогда:
•X in (a, b) — истинно, так как значения а и b встречаются в обоих множествах; •X in (a, d, e) — истинно, так как значение а встречается в обоих множествах; •X in (d, e) — ложно, так как ни одно из значений переменной (a, b, c) не встречается в множестве (d, e). •X in () — ложно, так как множество значений переменной не пусто. •X not in () — истинно, множество значений переменной не пусто. •X not in (d, e) — истинно, так как ни одно из значений переменной (a, b, c) не встречается в множестве (d, e). •X not in (a, d, e) — ложно, так как значение а встречается в обоих множествах. В описании переменных ниже для каждой переменной указано, может ли она принимать множество значений.
Действия
Действия делятся на конечные резолюции, определяющие запрет или разрешение на пропуск объекта; модифицирующие резолюции, не прерывающие проверку, а фиксирующие действие, которое должно быть применено к соединению или проверяемому объекту по достижении резолюции, разрешающей пропуск трафика и действия, изменяющие значения некоторой переменной, что может быть использовано при дальнейшей проверке условий.
Конечные резолюции
Резолюция
|
Описание (смысл)
|
Общие резолюции
|
PASS
|
Пропустить трафик (разрешить создать соединение, передать объект получателю). Последующие правила (если имеются) не используются.
|
BLOCK as <reason>
|
Заблокировать трафик (отказать в создании соединения, передаче объекта получателю). Последующие правила (если имеются) не используются.
В журнале фиксируется, что блокировка случилась по причине <reason>. Эта же причина используется для определения, какую страницу с уведомлением показать пользователю в браузере. В качестве <reason> для блокировки может быть использовано две стандартные причины:
•BlackList — считается, что данные заблокированы по причине попадания в черный список пользователя. •_match — причиной блокировки является попадание веб-ресурса или файла с угрозой в категорию, из-за которой сработало правило (для условий *_category in (Ξ)). Переменная _match хранит список блокируемых категорий, для которых сработало соответствие. |
Специальные резолюции для правил обработки почты
|
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. •В правилах для Dr.Web ICAPD не имеет смысл указывать значение, отличное от HTTP: для него протокол может быть только HTTP. •Множество значений для проверки значения переменной можно получать из файла. Примеры:
protocol in (HTTP, SMTP)
protocol in (POP3)
protocol in file("/etc/file")
|
Да
|
Нет
|
sni_host
|
SNI (адрес) узла, с которым устанавливается соединение через SSL/TLS.
Особенности использования:
•Если SSL не используется, то значение переменной не определено, условие будет ложным. •Не имеет смысл использовать в правилах для Dr.Web ICAPD (он не обрабатывает SSL, поэтому условие всегда будет ложным). •Множество значений для проверки значения переменной можно получать из файла. •Может быть использована в паре с переменной proc (см. ниже). Примеры:
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 ICAPD (он не обрабатывает SSL, поэтому условие всегда будет ложным). •Для правил, используемых Dr.Web ICAPD, условие с 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
|
URL, запрошенный клиентом. Может быть сравнен с указанной строкой или регулярным выражением.
Особенности использования:
•Можно использовать только в правилах для Dr.Web ICAPD. •Для проверки значения переменной можно использовать Dr.Web LookupD. •Множество значений для проверки значения переменной можно получать из файла. •Может быть использована в паре с переменной proc (см. ниже). Примеры:
url match ("drweb.com", "example\..*", "aaa\.ru/")
url match "ICAPD.Adlist"
url not match LDAP@BadURLs
url match file("/etc/file")
|
Да
|
Нет
|
url_host
|
URL/узел, с которым устанавливается соединение.
Особенности использования:
•Значение переменной определено, только если не используется SSL/TLS или было разрешено вскрытие SSL. •Для проверки значения переменной можно использовать Dr.Web LookupD. •Множество значений для проверки значения переменной можно получать из файла. Примеры:
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_category
|
Список категорий, к которым (по базам категорий веб-ресурсов или по ответу из Dr.Web CloudD) относится URL/узел, с которым установлено соединение.
Переменная может принимать множество значений.
Особенности использования:
•Значение переменной определено, только если не используется SSL/TLS или было разрешено вскрытие SSL. •Для правил, используемых Dr.Web ICAPD, условие с 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 ICAPD, условие с not in будет истинным, даже если по результатам проверки URL/узел не принадлежит никакой из предопределенных категорий («безопасный» URL/узел). •Множество значений для проверки значения переменной можно получать из файла. Примеры:
threat_category in "LinuxFirewall.BlockThreat"
threat_category not in (Joke)
threat_category in file("/etc/file")
|
Да
|
Нет
|
user
|
Имя пользователя, с правами которого запущен процесс-отправитель (или получатель) трафика.
Особенности использования:
•В правилах для Dr.Web ICAPD имеет смысл имени пользователя, прошедшего аутентификацию на прокси-сервере (если прокси-сервер поддерживает аутентификацию). Если прокси-сервер не аутентифицирует пользователей, переменная имеет пустое значение. •Для проверки значения переменной можно использовать Dr.Web LookupD. •Если требуется проверить вхождение пользователя в некоторую группу пользователей, используйте источник данных LDAP или Active Directory, возвращающий перечень групп. Также запрос должен содержать условие сравнения имени группы, которой принадлежит пользователь, с требуемым (используйте формат <тип источника LookupD>@<источник групп>@<требуемая группа>). Запросы к Active Directory (AD@) возвращают только перечни групп, поэтому для них использование части @<требуемая группа> обязательно. •Множество значений для проверки значения переменной можно получать из файла. Примеры:
user in ('user1', 'user2')
user in AD@Winusergroups@Admins
user in LDAP@AllowedUsers
user not in file("/etc/file")
|
Да
|
Нет
|
src_ip
|
IP-адрес узла, со стороны которого следует соединение.
Особенности использования:
•Для проверки значения переменной можно использовать Dr.Web LookupD. •Множество значений для проверки значения переменной можно получать из файла. Примеры:
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")
|
Да
|
Нет
|
proc
|
Процесс, устанавливающий соединение (полный путь к исполняемому файлу).
Особенности использования:
•Не имеет смысл использовать в правилах для Dr.Web ICAPD (он не имеет информации о процессах, поэтому условие всегда будет ложным). •Множество значений для проверки значения переменной можно получать из файла. •Может быть использована в паре с переменными sni_host, url, dst_address (см. ниже). Примеры:
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")
|
Да
|
Нет
|
(proc, <переменная>)
|
Сетевая активность процесса, где proc – полный путь к исполняемому файлу процесса (см. выше), а <переменная> определяет тип сетевой активности, и может принимать одно из следующих значений:
•sni_host — SNI (адрес) хоста, с которым устанавливается соединение через SSL/TLS (см. выше). •url — URL, запрошенный клиентом (см. выше). •dst_address — сетевой адрес (<IP-адрес>:<порт>), с которым процесс устанавливает соединение. Особенности использования:
•Используется только с условием match ({<Proc_reg>, <Var_reg>}[, …]), где <Proc_reg> — регулярное выражение для proc, а <Var_reg> — регулярное выражение для <переменная>. •Не имеет смысл использовать в правилах для Dr.Web ICAPD (он не имеет информации о процессах, поэтому условие всегда будет ложным). Примеры:
(proc, url) match ({"/usr/bin/wget", "www\.ya\.*"})
(proc, dst_address) match ({"/usr/bin/.*", "192\.168\.1\.\d+:12345"})
|
Да
|
Нет
|
unwrap_ssl
|
Используется ли раскрытие защищенного трафика, передаваемого через SSL/TLS.
Возможные значения: true, false.
Особенности использования:
•Переменная не может не иметь значения, т. е. инструкция SET unwrap_ssl = () недопустима. •Переменная не может использоваться в условиях, а нужна только для управления вскрытием SSL (например, чтобы продемонстрировать пользователю веб-страницу с уведомлением о блокировке от нашего имени). •Не имеет смысл использовать в правилах для Dr.Web ICAPD (он не обрабатывает SSL, изменение значения переменной никак не влияет на обработку правил). Примеры:
SET unwrap_ssl = TRUE
set Unwrap_SSL = false
|
Нет
|
Да
|
http_templates_dir
|
Путь к каталогу, из которого брать шаблон страницы уведомления о блокировке HTTP-запроса/ответа.
Если путь начинается с / — это абсолютный путь, если с любого другого символа, — то это относительный путь. Корнем при этом считается путь из параметра TemplatesDir.
Особенности использования:
•Имеет смысл только для протокола HTTP(S). Примеры:
SET http_templates_dir = "/etc/mytemplates"
set http_templates_dir = "templates_for_my_site"
|
Нет
|
Да
|
Переменные, используемые в правилах обработки почты
Переменная
|
Описание
|
Может быть использована в
|
условной части
|
части действия (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
|
Веб-сайты, ссылки на которые указаны правообладателями некоторого произведения, защищенного авторскими правами (кинофильмы, музыкальные произведения и т. д.).
|
OnlineGames
|
Веб-сайты, на которых размещены игры, использующие постоянное соединение с сетью Интернет.
|
Anonymizers
|
Веб-сайты, позволяющие пользователю скрывать свою личную информацию и предоставляющие доступ к заблокированным веб-сайтам.
|
CryptocurrencyMiningPool
|
Веб-сайты, предоставляющие доступ к сервисам, объединяющим пользователей с целью добычи (майнинга) криптовалют.
|
Jobs
|
Веб-сайты, предназначенные для поиска работы.
|
В качестве значения переменных sni_category и url_category можно также использовать имена параметров, управляющих блокировкой (см. ниже).
2.Категории угроз (для переменной threat_category)
Обозначение
|
Категория угроз
|
KnownVirus
|
Известная угроза (вирус).
|
VirusModification
|
Модификация известной угрозы (вируса).
|
UnknownVirus
|
Неизвестная угроза, подозрительный объект.
|
Adware
|
Рекламная программа.
|
Dialer
|
Программа дозвона.
|
Joke
|
Программа-шутка.
|
Riskware
|
Потенциально опасная программа.
|
Hacktool
|
Программа взлома.
|
В качестве значения переменной threat_category можно также использовать имена параметров, управляющих блокировкой (см. ниже).
Параметры конфигурации, которые можно использовать в условиях правил
Параметры, используемые в правилах компонента Dr.Web ICAPD (указываются с префиксом ICAPD.):
Параметр
|
Описание и пример использования
|
Whitelist
|
Белый список. Хранит перечень доменов, доступ к которым разрешается, даже если эти домены находятся в базе категорий.
Примеры:
url_host not in "ICAPD.Whitelist" : Block as BlackList
|
Blacklist
|
Черный список. Хранит перечень доменов, доступ к которым запрещен самим пользователем (или администратором).
Примеры:
url_host in "ICAPD.Blacklist" : Block as BlackList
|
Adlist
|
Рекламный список. Хранит перечень регулярных выражений, которые описывают рекламные веб-сайты. Задается самим пользователем (или администратором).
Примеры:
url match "ICAPD.Adlist" : Block as BlackList
|
BlockCategory
|
«Метапараметр»: его значениями является список названий категорий (Chats, AdultContent и т. д.), для которых соответствующие параметры Block* в секции [ICAPD.] установлены в Yes.
Примеры:
url_category in "ICAPD.BlockCategory" : Block as _match
|
BlockThreat
|
«Метапараметр»: его значениями является список названий типов угроз (KnownVirus, Joke и т. д.), для которых соответствующие параметры Block* в секции [ICAPD.] установлены в Yes.
Примеры:
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
|