В этом разделе
•Параметры компонента
•Правила проверки трафика и блокировки доступа
Компонент использует параметры конфигурации, заданные в секции [ICAPD] объединенного конфигурационного файла Dr.Web для интернет-шлюзов UNIX.
Параметры компонента
В секции представлены следующие параметры:
Параметр
|
Описание
|
LogLevel
{уровень подробности}
|
Уровень подробности ведения журнала компонента.
Если значение параметра не указано, используется значение параметра DefaultLogLevel из секции [Root].
Значение по умолчанию: Notice
|
Log
{тип журнала}
|
Метод ведения журнала компонента.
Значение по умолчанию: Auto
|
ExePath
{путь к файлу}
|
Путь к исполняемому файлу компонента.
Значение по умолчанию: <opt_dir>/bin/drweb-icapd.
•Для GNU/Linux: /opt/drweb.com/bin/drweb-icapd.
•Для FreeBSD: /usr/local/libexec/drweb.com/bin/drweb-icapd |
RunAsUser
{UID | имя пользователя}
|
Пользователь. Можно указать как числовой UID пользователя, так и его имя (логин). Если имя пользователя состоит из цифр (т. е. похоже на числовой UID), то оно указывается с префиксом «name:», например: RunAsUser = name:123456.
Если имя пользователя не указано, работа компонента завершается ошибкой сразу после попытки запуска.
Значение по умолчанию: drweb
|
Start
{логический}
|
Компонент должен быть запущен демоном управления конфигурацией Dr.Web ConfigD.
Установка данного параметра в Yes предписывает демону управления конфигурацией немедленно попытаться запустить компонент, а установка его в значение No — немедленно завершить работу компонента.
Значение по умолчанию: No
|
DebugDumpIcap
{логический}
|
Сохранять в журнал содержимое сообщений, передаваемых по протоколу ICAP, если уровень подробности ведения журнала — отладочный (при LogLevel = DEBUG).
Значение по умолчанию: No
|
ListenAddress
{сетевой сокет}
|
Определяет сетевой сокет (IP-адрес и порт), прослушиваемый Dr.Web ICAPD в ожидании подключений от прокси-серверов HTTP.
Значение по умолчанию: 127.0.0.1:1344
|
UsePreview
{логический}
|
Включить или отключить режим ICAP preview для Dr.Web ICAPD.
Не изменяйте значение этого параметра без необходимости.
Значение по умолчанию: Yes
|
Use204
{логический}
|
Возвращать код ответа 204 не только в режиме ICAP preview.
Не изменяйте значение этого параметра без необходимости.
Значение по умолчанию: Yes
|
AllowEarlyResponse
{логический}
|
Определяет, может ли Dr.Web ICAPD использовать режим «раннего» ответа ICAP, т. е. начинать отправлять ответ клиенту, не прочитав до конца запрос от прокси-сервера HTTP.
Не изменяйте значение этого параметра без необходимости.
Значение по умолчанию: Yes
|
TemplatesDir
{путь к каталогу}
|
Путь к каталогу c файлами шаблонов HTML-страниц уведомлений о блокировке веб-ресурсов.
Значение по умолчанию: <var_dir>/templates/icapd.
•Для GNU/Linux: /var/opt/drweb.com/templates/icapd.
•Для FreeBSD: /var/drweb.com/templates/icapd |
Whitelist
{список доменов}
|
Белый список доменов. Все домены, включенные в список, будут доступны пользователям, даже если они отнесены к нежелательным категориям веб-ресурсов. Доступ ко всем поддоменам этих доменов также будет открыт.
Значения в списке указываются через запятую (каждое значение в кавычках). Допускается повторение параметра в секции (в этом случае все значения объединяются в единый список).
Пример: Добавить в список домены example.com и example.net.
1.Добавление значений в файл конфигурации.
•Два значения в одной строке:
[ICAPD]
Whitelist = "example.com", "example.net"
|
•Две строки (по одному значению в строке):
[ICAPD]
Whitelist = example.com
Whitelist = example.net
|
2.Добавление значений через команду drweb-ctl cfset:
# drweb-ctl cfset ICAPD.Whitelist -a example.com
# drweb-ctl cfset ICAPD.Whitelist -a example.net
|
|
Реальное использование списка доменов, указанного в данном параметре, зависит от того, как он используется в правилах управления доступом к веб-ресурсам, заданных для Dr.Web ICAPD.
В перечне правил, заданных по умолчанию (см. ниже), гарантируется, что доступ к доменам (и их поддоменам) из данного списка будет обеспечен, даже если там будут находиться домены из блокируемых категорий веб-ресурсов. Кроме этого набор правил по умолчанию гарантирует, что данные, загружаемые с доменов из белого списка, будут проверяться на наличие угроз.
|
Значение по умолчанию: (не задано)
|
Blacklist
{список доменов}
|
Черный список доменов. Все домены, включенные в этот список, не будут доступны пользователям, даже если они не отнесены к категориям нежелательных веб-ресурсов. Доступ ко всем поддоменам этих доменов также будет заблокирован.
Значения в списке указываются через запятую (каждое значение в кавычках). Допускается повторение параметра в секции (в этом случае все значения объединяются в единый список).
Пример: Добавить в список домены example.com и example.net.
1.Добавление значений в файл конфигурации.
•Два значения в одной строке:
[ICAPD]
Blacklist = "example.com", "example.net"
|
•Две строки (по одному значению в строке):
[ICAPD]
Blacklist = example.com
Blacklist = example.net
|
2.Добавление значений через команду drweb-ctl cfset:
# drweb-ctl cfset ICAPD.Blacklist -a example.com
# drweb-ctl cfset ICAPD.Blacklist -a example.net
|
|
Реальное использование списка доменов, указанного в данном параметре, зависит от того, как он используется в правилах управления доступом к веб-ресурсам, заданных для Dr.Web ICAPD.
В перечне правил, заданных по умолчанию (см. ниже), гарантируется, что доступ к доменам (и их поддоменам) из данного списка будет запрещен всегда. Если домен добавлен одновременно в список Whitelist и список Blacklist, то правила, заданные по умолчанию, гарантируют, что доступ пользователей к нему будет заблокирован.
|
Значение по умолчанию: (не задано)
|
Adlist
{список строк}
|
Список регулярных выражений для описания веб-сайтов: URL, соответствующий любому из указанных здесь регулярных выражений, считается рекламным.
Значения в списке указываются через запятую (каждое значение в кавычках). Допускается повторение параметра в секции (в этом случае все значения объединяются в единый список).
Пример: Добавить в список выражения '.*ads.+' и '.*/ad/.*\.gif$'.
1.Добавление значений в файл конфигурации.
•Два значения в одной строке:
[ICAPD]
Adlist = ".*ads.+", ".*/ad/.*\.gif$"
|
•Две строки (по одному значению в строке):
[ICAPD]
Adlist = .*ads.+
Adlist = .*/ad/.*\.gif$
|
2.Добавление значений через команду drweb-ctl cfset:
# drweb-ctl cfset ICAPD.Adlist -a '.*ads.+'
# drweb-ctl cfset ICAPD.Adlist -a '.*/ad/.*\.gif$'
|
Регулярные выражения записываются с использованием синтаксиса POSIX (BRE, ERE) или Perl (PCRE, PCRE2).
|
Реальное использование списка выражений, указанного в данном параметре, зависит от того, как он используется в правилах управления доступом к веб-ресурсам, заданных для Dr.Web ICAPD.
В перечне правил, заданных по умолчанию (см. ниже), гарантируется, что доступ к URL из данного списка будет запрещен только в том случае, если домены, на которые ведут эти URL, не находятся в списке Whitelist.
|
Значение по умолчанию: (не задано)
|
BlockInfectionSource
{логический}
|
Блокировать попытки подключения к веб-сайтам, содержащим вредоносное ПО (входящим в категорию InfectionSource).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockNotRecommended
{логический}
|
Блокировать попытки подключения к нерекомендуемым веб-сайтам (входящим в категорию NotRecommended).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockAdultContent
{логический}
|
Блокировать попытки подключения к веб-сайтам, содержащим материалы для взрослых (входящим в категорию AdultContent).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockViolence
{логический}
|
Блокировать попытки подключения к веб-сайтам, содержащим сцены насилия (входящим в категорию Violence).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockWeapons
{логический}
|
Блокировать попытки подключения к веб-сайтам, посвященным оружию (входящим в категорию Weapons).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockGambling
{логический}
|
Блокировать попытки подключения к веб-сайтам, посвященным азартным играм и играм на деньги (входящим в категорию Gambling).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockDrugs
{логический}
|
Блокировать попытки подключения к веб-сайтам, посвященным наркотикам (входящим в категорию Drugs).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockObsceneLanguage
{логический}
|
Блокировать попытки подключения к веб-сайтам, содержащим нецензурную лексику (входящим в категорию ObsceneLanguage).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockChats
{логический}
|
Блокировать попытки подключения к веб-сайтам чатов (входящим в категорию Chats).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockTerrorism
{логический}
|
Блокировать попытки подключения к веб-сайтам, посвященным терроризму (входящим в категорию Terrorism).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockFreeEmail
{логический}
|
Блокировать попытки подключения к веб-сайтам бесплатных почтовых служб (входящим в категорию FreeEmail).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockSocialNetworks
{логический}
|
Блокировать попытки подключения к веб-сайтам социальных сетей (входящим в категорию SocialNetworks).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockDueToCopyrightNotice
{логический}
|
Блокировать попытки подключения к веб-сайтам, ссылки на которые были добавлены по обращению правообладателей (входящим в категорию DueToCopyrightNotice).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockOnlineGames
{логический}
|
Блокировать попытки подключения к веб-сайтам онлайн-игр (входящим в категорию OnlineGames).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockAnonymizers
{логический}
|
Блокировать попытки подключения к веб-сайтам анонимайзеров (входящим в категорию Anonymizers).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockCryptocurrencyMiningPools
{логический}
|
Блокировать попытки подключения к веб-сайтам, объединяющим пользователей с целью добычи (майнинга) криптовалют (входящим в категорию CryptocurrencyMiningPool).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockJobs
{логический}
|
Блокировать попытки подключения к веб-сайтам для поиска работы.
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
url_category in "ICAPD.BlockCategory" : BLOCK as _match
|
Значение по умолчанию: No
|
ScanTimeout
{интервал времени}
|
Тайм-аут на проверку одного файла по запросу Dr.Web ICAPD.
Допустимые значения: от 1 секунды (1s) до 1 часа (1h) включительно.
Значение по умолчанию: 30s
|
HeuristicAnalysis
{On | Off}
|
Использовать или не использовать эвристический анализ для поиска неизвестных угроз. Эвристический анализ повышает надежность проверки, но увеличивает ее длительность.
Реакция на срабатывание эвристического анализа задается в параметре BlockSuspicious.
Допустимые значения:
•On — использовать эвристический анализ при проверке;
•Off — не использовать эвристический анализ.
Значение по умолчанию: On
|
PackerMaxLevel
{целое число}
|
Максимальный уровень вложенности для запакованных объектов. Под запакованным объектом понимается исполняемый код, сжатый при помощи специализированных инструментов (UPX, PELock, PECompact, Petite, ASPack, Morphine и других). Такие объекты могут включать другие запакованные объекты, в состав которых тоже могут входить другие запакованные объекты, и т. п. Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого объекты внутри объектов не будут проверяться.
Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.
Значение по умолчанию: 8
|
ArchiveMaxLevel
{целое число}
|
Максимальный уровень вложенности для проверке архивов (.zip, .rar и т. п.), в которые вложены другие архивы, в которые, в свою очередь, могут быть вложены еще архивы, и т. п. Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого архивы внутри архивов не будут проверяться.
Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.
Значение по умолчанию: 0
|
MailMaxLevel
{целое число}
|
Максимальный уровень вложенности для файлов почтовых программ (.pst, .tbb и т. п.), в которые могут быть вложены объекты, в которые также могут вложены объекты, и т. п. Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого объекты внутри объектов не будут проверяться.
Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.
Значение по умолчанию: 0
|
ContainerMaxLevel
{целое число}
|
Максимальный уровень вложенности для других типов объектов c вложениями (например, страницы HTML, файлы .jar и т. п.). Значение этого параметра устанавливает предельный уровень иерархии вложенности, после которого объекты внутри объектов не будут проверяться.
Ограничений уровня вложенности нет. Значение 0 указывает, что вложенные объекты не проверяются.
Значение по умолчанию: 8
|
MaxCompressionRatio
{целое число}
|
Максимальная допустимую степень сжатия запакованных объектов (отношение сжатого объема к несжатому). Если степень сжатия объекта превысит указанную величину, он будет пропущен при проверке данных, инициированной по запросу Dr.Web ICAPD.
Величина степени сжатия должна быть не менее 2.
Значение по умолчанию: 500
|
BlockKnownVirus
{логический}
|
Блокировать получение и передачу данных, если они содержат известную угрозу.
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockSuspicious
{логический}
|
Блокировать получение и передачу данных, если они содержат неизвестную угрозу (обнаруженную эвристическим анализатором).
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockAdware
{логический}
|
Блокировать получение и передачу данных, если они содержат рекламную программу.
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockDialers
{логический}
|
Блокировать получение и передачу данных, если они содержат программу дозвона.
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
Значение по умолчанию: Yes
|
BlockJokes
{логический}
|
Блокировать получение и передачу данных, если они содержат программу-шутку.
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockRiskware
{логический}
|
Блокировать получение и передачу данных, если они содержат потенциально опасную программу.
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockHacktools
{логический}
|
Блокировать получение и передачу данных, если они содержат программу взлома.
Для реальной блокировки необходимо, чтобы в настройках присутствовало правило вида (см. ниже):
threat_category in "ICAPD.BlockThreat" : BLOCK as _match
|
Значение по умолчанию: No
|
BlockUnchecked
{логический}
|
Блокировать получение и передачу данных, если они не могут быть проверены.
Значение по умолчанию: No
|
MessageHook
{путь к файлу | функция Lua}
|
Скрипт обработки HTTP-сообщений на языке либо путь к файлу скрипта (см. раздел Обработка HTTP-сообщений на Lua).
Если функция Lua или путь к файлу не указаны, то сообщения будут обрабатываться в соответствии с правилами. Если указанный файл недоступен, то при загрузке компонента будет выдана ошибка.
Значение по умолчанию: Генерируется автоматически. Для настроек по умолчанию скрип выглядит так:
local dw = require "drweb"
local cfg = require "drweb.config"
local dwl = require "drweb.lookup"
local rx = require "drweb.regex"
function message_hook(ctx)
if ctx.direction == "request" then
local url = ctx.request.url
if url.in_list(cfg.blacklist) then
return "block"
end
if not url.in_list(cfg.whitelist) then
if rx.search(cfg.adlist, url) or rx.search(cfg.adlist, url.raw) then
return "block"
end
if url.in_categories(cfg.block_url_categories) then
return "block"
end
end
end
if ctx.body.has_threat{category = cfg.block_threats} then
return "block"
end
if cfg.block_unchecked and ctx.body.scan_error then
return "block"
end
return "pass"
end
|
Правила проверки трафика и блокировки доступа
В дополнение к параметрам, перечисленным выше, в секции присутствует семь наборов правил RuleSet* (RuleSet0, …, RuleSet6), непосредственно управляющих проверкой трафика и блокировкой доступа пользователей к веб-ресурсам, а также загрузкой контента из интернета. Для некоторых значений в условиях (например, диапазоны IP-адресов, перечни категорий веб-сайтов, черные и белые списки веб-сайтов и т. п.) предусмотрена подстановка значений, загружаемых из текстовых файлов, а также извлеченных из внешних источников данных через LDAP (используется компонент Dr.Web LookupD). При обработке соединений все правила проверяются в порядке сверху вниз, единым списком, до момента нахождения сработавшего правила, содержащего финальную резолюцию. Пропуски в списке правил, если встречаются, игнорируются.
Подробно правила рассмотрены в разделе Правила проверки трафика Приложения Г.
Просмотр и редактирование правил
Для удобства редактирования списка правил, по умолчанию в списке оставлены «пустоты», т. е. наборы RuleSet<i>, не содержащие правил (где <i> — номер набора RuleSet). Обратите внимание, что вы не можете добавлять элементы списка, отличные от уже имеющихся RuleSet<i>, но имеете возможность добавить и удалить любое правило в любом элементе RuleSet<i>. Просмотр и редактирование правил могут осуществляться любым из нижеуказанных способов:
•путем просмотра и изменения (в любом текстовом редакторе) файла конфигурации (помните, что в этом файле сохраняются только те параметры, значение которых отличается от значений по умолчанию);
•через веб-интерфейс управления (если установлен);
•через интерфейс командной строки Dr.Web Ctl (команды drweb-ctl cfshow и drweb-ctl cfset).
|
Если вы редактировали правила, внося изменения в файл конфигурации, для применения внесенных изменений перезапустите Dr.Web для интернет-шлюзов UNIX. Для этого воспользуйтесь командой drweb-ctl reload.
|
Использование команды drweb-ctl cfshow для просмотра правил.
Для просмотра содержимого набора правил ICAPD.RuleSet1 используйте команду:
# drweb-ctl cfshow ICAPD.RuleSet1
|
Использование команды drweb-ctl cfset для редактирования правил (здесь и далее <правило> — текст правила).
•Замена всех правил в наборе правил ICAPD.RuleSet1 на новое правило:
# drweb-ctl cfset ICAPD.RuleSet1 '<правило>'
|
•Добавление еще одного правила в набор правил ICAPD.RuleSet1:
# drweb-ctl cfset -a ICAPD.RuleSet1 '<правило>'
|
•Удаление конкретного правила из набора правил ICAPD.RuleSet1:
# drweb-ctl cfset -e ICAPD.RuleSet1 '<правило>'
|
•Возврат набора правил ICAPD.RuleSet1 к состоянию по умолчанию:
# drweb-ctl cfset -r ICAPD.RuleSet1
|
При использовании утилиты drweb-ctl для редактирования правил заключайте строку добавляемого правила <правило> в одинарные или двойные кавычки, а внутренние кавычки, если они встречаются в правиле, экранируйте символом обратной косой черты \.
Важно помнить, следующие особенности хранения правил в переменных конфигурации RuleSet<i>:
•При добавлении безусловных правил условная часть и двоеточие могут быть опущены, однако такие правила всегда сохраняются в списке правил в виде строки ' : <действие>';
•При добавлении правил, содержащих несколько действий (правила вида '<условие> : <действие 1>, <действие 2>'), такие правила будут преобразованы в цепочку элементарных правил '<условие> : <действие 1>' и '<условие> : <действие 2>'.
•Так как в записи правил не предусмотрено дизъюнкции (логическое «ИЛИ») условий в условной части, для реализации логического «ИЛИ» запишите цепочку правил, в условии каждого из которых будет указано условие-дизъюнкт.
Чтобы добавить в набор правил ICAPD.RuleSet1 правило безусловного пропуска (действие Pass), достаточно выполнить команду:
# drweb-ctl cfset -a ICAPD.RuleSet1 'Pass'
|
Однако, чтобы удалить это правило из указанного набора правил, необходимо выполнить команду:
# drweb-ctl cfset -e ICAPD.RuleSet1 ' : Pass'
|
Чтобы добавить в набор правил ICAPD.RuleSet1 правило, изменяющее для соединений, следующих с неразрешенных адресов, путь к стандартным шаблонам и выполняющее блокировку, достаточно выполнить команду:
# drweb-ctl cfset -a ICAPD.RuleSet1 'src_ip not in file("/etc/trusted_ip") : set http_template_dir = "mytemplates", Block'
|
Однако, эта команда добавит два правила в указанный набор правил, поэтому, чтобы удалить их, необходимо выполнить две команды:
# drweb-ctl cfset -e ICAPD.RuleSet1 'src_ip not in file("/etc/trusted_ip") : set http_template_dir = "mytemplates"'
# drweb-ctl cfset -e ICAPD.RuleSet1 'src_ip not in file("/etc/trusted_ip") : Block'
|
Чтобы добавить в набор правил ICAPD.RuleSet1 правило вида «Осуществить блокировку, если обнаружен вредоносный объект типа KnownVirus или URL из категории Terrorism», необходимо добавить в этот набор сразу два правила:
# drweb-ctl cfset -a ICAPD.RuleSet1 'threat_category in (KnownVirus) : Block as _match'
# drweb-ctl cfset -a ICAPD.RuleSet1 'url_category in (Terrorism) : Block as _match'
|
Для их удаления их также потребуется две команды, как в примере выше.
Набор правил по умолчанию
По умолчанию задан следующий набор правил, управляющих блокировкой:
RuleSet0 =
RuleSet1 = direction request, url_host in "ICAPD.Blacklist" : BLOCK as BlackList
RuleSet1 = direction request, url_host not in "ICAPD.Whitelist", url match "ICAPD.Adlist" : BLOCK as BlackList
RuleSet2 =
RuleSet3 = direction request, url_host not in "ICAPD.Whitelist", url_category in "ICAPD.BlockCategory" : BLOCK as _match
RuleSet4 =
RuleSet5 = threat_category in "ICAPD.BlockThreat" : BLOCK as _match
RuleSet6 =
|
Первые два правила регламентируют обработку исходящих HTTP-соединений: если узел (или URL), с которым производится попытка установить соединение, включен в черный список, соединение блокируется по причине попадания в черный список, дальнейшие проверки не производятся. Если же узел (URL) не находится в белом списке и относится к любой из категорий веб-сайтов, отмеченной как нежелательные для посещения, или соответствует списку регулярных выражений, описывающих рекламные веб-сайты, то соединение блокируется по причине попадания URL в запрещенную к посещению категорию.
Правило, указанное в RuleSet5, проверяет, не содержатся ли в теле проверяемого HTTP-запроса или HTTP-ответа угрозы, относящиеся к категориям, которые следует блокировать, и если да, то соединение блокируется по причине обнаружения угрозы. Обратите внимание, что из-за отсутствия условия direction по умолчанию проверяются как запросы клиентов (request), так и ответы серверов (response).
Примеры правил проверки трафика и блокировки доступа
1.Разрешить для пользователей с диапазона IP-адресов 10.10.0.0–10.10.0.254 доступ к веб-сайтам любых категорий, кроме категории Chats:
src_ip in (10.10.0.0/24), url_category not in (Chats) : PASS
|
Обратите внимание, что если правило:
url_host in "ICAPD.Blacklist" : BLOCK as BlackList
|
разместить в списке правил выше (т. е. раньше) указанного правила, то доступ к доменам из черного списка, т. е. доменам, перечисленным в параметре ICAPD.Blacklist, будет блокироваться и для пользователей с диапазона IP-адресов 10.10.0.0–10.10.0.254. А если это правило разместить ниже (т. е. позже), то пользователям с диапазона IP-адресов 10.10.0.0–10.10.0.254 будут доступны также и веб-сайты из черного списка.
Так как резолюция PASS является конечной, более никакие правила не проверяются, следовательно, проверка загружаемых данных на вирусы производиться также не будет. Чтобы разрешить пользователям с диапазона IP-адресов 10.10.0.0–10.10.0.254 доступ к веб-сайтам любых категорий, кроме категории Chats, если они не находятся в черном списке, но при этом не разрешать загрузку угроз, используйте следующее правило:
url_category not in (Chats), url_host not in "ICAPD.Blacklist", threat_category not in "ICAPD.BlockCategory" : PASS
|
2.Не выполнять проверку содержимого видео-файлов (т. е. данных с типом MIME 'video/*', где * соответствует любому типу MIME-класса video):
content_type in ("video/*") : PASS
|
|