.. _wcfgl: Служба wcf ========== Общие сведения -------------- Служба wcf – это HTTP(S) прокси-сервер, позволяющий фильтровать содержимое веб-ресурсов на основе списков-ограничений для различных групп пользователей сети. Настройка данной службы осуществляется на следующем уровне конфигурации: :: [edit service wcf] На данном уровне конфигурации осуществляются настройки групп пользователей, политик, журнала службы, MITM и сетевые настройки. Глобальный MITM и фильтр mitm ----------------------------- По умолчанию MITM в службе wcf отключён. Настройка MITM осуществляется двумя способами: - через глобальный MITM; - через фильтр mitm, применяемый к группе. Настройки глобального MITM ~~~~~~~~~~~~~~~~~~~~~~~~~~ Настройки глобального MITM позволяют включить MITM, выбрать политику проверки сертификатов сайтов на ПАК “Фортикс”, указать сертификаты и ключи, используемые для MITM, указать сайты-исключения, для которых MITM не применяется. Настройка глобального MITM осуществляется на следующем уровне конфигурации: :: [edit service wcf mitm] На данном уровне конфигурации доступны следующие настройки: - ``enable`` – включить глобальный MITM; - ``root-path `` – задать путь к файлу, содержащему корневой сертификат, устанавливаемый как корневой в цепочке доверия MITM-сертификата, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``root-key-path `` – задать путь к файлу, содержащему закрытый ключ корневого сертификата, указанного в настройке ``root-path``, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``cert-keypair `` – задать путь к файлу, содержащему ключевую пару, используемую в сертификатах сайтов при включённом MITM, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``no-mitm `` – задать путь к файлу(ам) со списком(ами) сайтов/IP-адресов, для которых MITM не применяется, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``, формат определения списков приведён в пункте :numref:`{number} {name} `; - ``process-site-cert check on|off`` – включить/отключить проверку сертификатов сайта; - ``process-site-cert check-exception `` – задать путь к файлу с IP-адресами/сайтами, для которых проверка сертификатов сайта не осуществляется, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``. Если для настройки ``process-site-cert check`` указан параметр ``off``, настройка ``process-site-cert check-exception`` игнорируется. Настройки фильтра mitm ~~~~~~~~~~~~~~~~~~~~~~ Настройки фильтра mitm позволяют включить MITM для определённых групп (см. ниже) и указать сайты, для которых применяется MITM. Настройка фильтра mitm осуществляется на следующем уровне конфигурации: :: [edit service wcf filter mitm ] |noindent| где ```` – строка длиной от 1 до 128 символов. На данном уровне конфигурации доступны следующие настройки: - ``enable`` – включить фильтр mitm; - ``grey-ssl-list
|`` – указать сайт/IP-адрес, для которого применяется MITM, где ``
`` – IPv4-адрес в формате ``A.B.C.D[/mask]`` или IPv6-адрес в формате ``A:B:...:H[/mask]``, ```` – доменное имя сайта, возможно определение нескольких настроек данного уровня конфигурации. При определении настройки ``grey-ssl-list`` и ассоциации фильтра с политикой (при условии, что глобальный MITM и фильтр mitm включены), MITM применяется **исключительно** к сайтам/IP-адресам, содержащимся в наборе пользователей группы политики. Служба wcf как ICAP-клиент -------------------------- В ПАК “Фортикс” возможно использование службы wcf как ICAP-клиента посредством режима icap. Настройка данного режима осуществляется на следующем уровне конфигурации: :: [edit service wcf icap] На данном уровне конфигурации доступны следующие настройки: - ``enable`` – включить режим icap; - ``url `` – задать URL-адрес ICAP-сервера RESPMODE, где ```` – строка в формате ``icap://:``; - ``max-content-scan-size `` – задать максимальный размер файлов/страниц, которые могут быть обработаны с помощью ICAP, где ```` – число килобайт от 0 до 4294967295, по умолчанию – 2048. Пример конфигурации службы wcf в режиме icap: :: # edit service wcf # edit icap # set enable # set url "icap://192.168.56.1:1344/respmod" # diff service { wcf { + icap { + enable + url icap://192.168.56.1:1344/respmod + } } } Если размер загружаемого на ICAP-сервер файла/страницы превышает значение аргумента настройки ``max-content-scan-size``, он обрезается с конца до размера, указанного в настройке. Параметр настройки ``max-content-scan-size`` влияет на быстродействие, так как содержимое файла/страницы заданного размера хранится в RAM ПАК “Фортикс”. ICAP-сервер получает оригинальный IP-адрес клиента (заголовок X-Client-IP) и имя группы, к которой принадлежит клиент (заголовок X-Client-Username). При блокировке URL-адреса или файла ICAP-сервер отправляет причину блокировки со следующими заголовками: - X-Infection-Found – время, когда файл был заражен; - X-Response-Info – время, когда файл/URL-адрес был заблокирован из-за локальных правил ICAP-сервера. Если данные HTTP-заголовки не отправлены ICAP-сервером, в качестве причины блокировки указывается “Unknown”. Фильтры ------- В службе wcf фильтром (filter) является набор списков для фильтрации или изменения содержимого HTTP-запросов. Каждый фильтр имеет имя, по которому он может быть ассоциирован с политикой (policy, см. подраздел :numref:`{number} {name} `). С одной политикой возможно ассоциировать несколько фильтров (исключение: фильтр mitm). В этом случае содержимое фильтров объединяется и обрабатывается в том порядке, в котором они были ассоциированы с политикой в конфигурации. Подробная механика работы фильтров описана в подразделе :numref:`{number} {name} `. .. _rulelist: Правила составления списков ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Предусмотрены следующие типы списков: 1) список IP-адресов/сайтов/URL-адресов; 2) список фраз; 3) список регулярных выражений. .. _iplist: Списки IP-адресов/сайтов/URL-адресов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Списки IP-адресов/сайтов/URL-адресов формируются в файлах, где каждый из IP-адресов/сайтов/URL-адресов записывается с новой строки без указания протокола (HTTP(S)). Для группировки IP-адресов/сайтов/URL-адресов в категорию перед группируемым набором применяется конструкция: :: #listcategory: "Category" Пример группировки IP-адресов/сайтов/URL-адресов в категории: :: #listcategory: "Category 1" website1.com website2.ru we.b.ru/s/i/te 22.11.22.11 #listcategory: "Category 2" website3.ru website4.ru web.com/site .. warning:: При формировании и объединении списков необходимо учитывать механизм их объединения (см. пункт :numref:`{number} {name} `). Списки фраз ^^^^^^^^^^^ Списки фраз формируются в файлах, где каждая фраза записывается с новой строки и ограничивается ``<>``. Категории формируются аналогично категориям в подпункте :numref:`{number} {name} `. Поиск совпадений осуществляется без учёта регистра, все знаки препинания заменяются на пробелы (или игнорируются во избежание двойных пробелов). При указании нескольких фраз в одной строке через запятую проверяется наличие всех фраз из набора на странице/в запросе. Для применения фильтров относительно количества вхождений искомых фраз на странице/в запросе используются накопленный и предельный веса фразы: при обнаружении фразы на странице/в запросе её накопленный вес увеличивается (отрицательное значение веса уменьшает накопленный вес); если накопленный вес превышает предельный вес фразы, страница/запрос с данной фразой блокируется. Вес указывается в ``<>`` после фразы. В случае указания нескольких фраз через запятую вес применяется ко всему набору фраз, при этом учитывается вхождение всего набора (см. пункты :numref:`{number} {name} ` и :numref:`{number} {name} `). Пример составления списков фраз без весов: :: #listcategory: "Category 1" , #listcategory: "Category 2" < Phrase with white space in the begin> Пример составления списков фраз с весами: :: #listcategory: "Category 1" <80> <100> <-100> ,,<200> #listcategory: "Category 2" <40> < Phrase with white space in the begin><100> <-80> .. warning:: При формировании и объединении списков необходимо учитывать механизм их объединения (см. пункт :numref:`{number} {name} `). Списки регулярных выражений ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Списки регулярных выражений формируются в файлах, где каждое регулярное выражение начинается с новой строки и указывается в "". Категории формируются аналогично категориям в подпункте :numref:`{number} {name} `. При работе с регулярными выражениями применяется синтаксис PCRE-библиотеки (и синтаксис yang, в случае указания регулярного выражения непосредственно в конфигурации: например, для экранирования PCRE с помощью символа \\ необходимо данный символ дополнительно экранировать для yang (тоже с помощью \\)). При этом символ / экранировать необязательно. Например: :: "google.com/search\\\?client=firefox" Для применения регулярных выражений с заменой применяется конструкция: :: -> |noindent| где - ```` – заменяемое регулярное выражение; - ```` – регулярное выражение-замена. Пример применения регулярного выражения для отключения safe-поиска в поиске по картинкам google: :: "(^http://[0-9a-z]+\\.google\\.[a-z]+[-/%.0-9a-z]*/images\\\?)(.*)(&?)(safe=[^&]*)->\\1\\2\\3" Фильтр url ~~~~~~~~~~ Фильтр url позволяет осуществлять различные действия над запросами в зависимости от хоста запроса. Настройка данного фильтра осуществляется на следующем уровне конфигурации: :: [edit service wcf filter url ] |noindent| где ```` – строка длиной от 1 до 128 символов. На данном уровне конфигурации доступны следующие настройки: - ``banned-list `` – указать файл со списком IP-адресов/URL-адресов/сайтов, которые блокируются без последующих проверок, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``exception-list `` – указать файл со списком IP-адресов/URL-адресов/сайтов, которые пропускаются без последующих проверок, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``grey-list `` – указать файл со списком IP-адресов/URL-адресов/сайтов, содержимое при запросе к которым проверяется, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``semi-exception-list `` – указать файл со списком IP-адресов/сайтов, которые пропускаются без последующих проверок, если они не содержатся в списке настройки ``banned-list``, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``. Пример конфигурации фильтра url: :: # edit service wcf # edit filter url test # set banned-list ban1 # set banned-list /system/wcf/ban2 # set exception-list good_sites # diff service { wcf { filter { + url test { + exception-list good_sites + banned-list /system/wcf/ban2 + banned-list ban1 + } } } } Фильтр ban ~~~~~~~~~~ Фильтр ban позволяет блокировать HTTP-запросы на основе регулярных выражений. Настройка данного фильтра осуществляется на следующем уровне конфигурации: :: [edit service wcf filter ban ] |noindent| где ```` – строка длиной от 1 до 128 символов. Для применения фильтра ban применяется команда: :: # set regex |noindent| где - ```` – один из методов HTTP-запроса: ``delete``, ``get``, ``head``, ``options``, ``patch``, ``post``, ``put``, ``trace``; - ```` – строка длиной от 1 до 128 символов; - ```` – строка в кавычках, допустимо указание одного слова без кавычек. Пример настройки фильтра ban: :: [edit] # set service wcf filter ban test get 1 regex "google.com/search\\\?client=firefox" Метод ``connect`` в фильтре не предусмотрен. Для фильтрации с помощью данного метода применима настройка ``banned-list`` фильтра url. .. warning:: Регулярные выражения в данном фильтре указываются без протокола HTTP(S). Фильтр file-type ~~~~~~~~~~~~~~~~ Фильтр file-type позволяет блокировать скачивание файлов с определённым расширением или MIME-типом. Настройка данного фильтра осуществляется на следующем уровне конфигурации: :: [edit service wcf filter file-type ] |noindent| где ```` – строка длиной от 1 до 128 символов. На данном уровне конфигурации доступны следующие настройки: - ``banned-extensions `` – указать расширение, файлы с которым блокируются, где ```` – строка с точкой в начале, возможно определение нескольких настроек данного уровня конфигурации; - ``banned-mime `` – указать MIME-тип, файлы с которым блокируются, где ```` – MIME-тип, указанный полностью (регулярные выражения, например ``text/*``, не поддерживаются); - ``trusted-download-sites `` – указать URL-адрес/сайт/IP-адрес, для которого блокировка согласно параметрам настроек ``banned-mime``/``banned-extensions`` не применяется, где ```` – URL-адрес/сайт/IP-адрес, возможно определение нескольких настроек данного уровня конфигурации. Пример конфигурации фильтра file-type: :: # edit service wcf # edit filter file-type test # set banned-extensions .rar # set banned-extensions .zip # set banned-mime image/webp # set trusted-download-sites web.com # diff service { wcf { filter { + file-type test { + banned-extensions .rar + banned-extensions .zip + banned-mime image/webp + trusted-download-sites web.com + } } } } .. _filterphrase: Фильтр phrase ~~~~~~~~~~~~~ Фильтр phrase позволяет блокировать страницы по их содержимому. Настройка фильтра осуществляется на следующем уровне конфигурации: :: [edit service wcf filter phrase ] |noindent| где ```` – строка длиной от 1 до 128 символов. На данном уровне конфигурации доступны следующие настройки: - ``banned-list `` – указать файл со списком фраз (без веса), наличие которых приведёт к блокировке страницы, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``exception-list `` – указать файл со списком фраз-исключений (без веса) для списка из параметра настройки ``banned-list`` (т.е. если страница блокируется по настройке ``banned-list``, но в ней содержится фраза из списка данной настройки, блокировка к странице не применяется), где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``weighted-list `` – указать файл со списком фраз (c весами), где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``. При ассоциации с одной политикой фильтров, содержащих списки фраз с весами и без, или при указании в фильтре списков, содержащих фразы с весами и без, необходимо учитывать, что фразы из списка настройки ``banned-list`` имеют положительный “бесконечный” вес, а фразы из списка настройки ``exception-list`` – отрицательный “бесконечный” вес (но больший, чем вес фраз из списка в ``banned-list``). Таким образом, при единовременном использовании списков с весами и без, списки с весами приоритетнее. .. _filtersearch: Фильтр search ~~~~~~~~~~~~~ Фильтр search позволяет блокировать поисковый запрос по содержимому (словам). Настройка фильтра осуществляется на следующем уровне конфигурации: :: [edit service wcf filter search ] |noindent| где ```` – строка длиной от 1 до 128 символов. На данном уровне конфигурации доступны следующие настройки: - ``banned-list `` – указать файл со списком фраз (без веса), наличие которых приведёт к блокировке поискового запроса, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``exception-list `` – указать файл со списком фраз-исключений (без веса) для списка из параметра настройки ``banned-list`` (т.е. если запрос блокируется по настройке ``banned-list``, но в нём содержится фраза из списка данной настройки, блокировка к запросу не применяется), где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``weighted-list `` – указать файл со списком фраз (c весами), где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``engine-regex regex `` – указать регулярное выражение для определения части запроса в указанной поисковой системе, к которой применяется фильтр, где ```` – по умолчанию в ПАК “Фортикс” поддерживаются системы yandex, google, mail, rambler, duckduckgo, youtube, yahoo, bing, kiddle, ```` – регулярное выражение, протокол в котором, в случае его указания, должен быть HTTP. При ассоциации с одной политикой фильтров, содержащих списки фраз с весами и без, или при указании в фильтре списков, содержащих фразы с весами и без, необходимо учитывать, что фразы из списка в ``banned-list`` имеют положительный “бесконечный” вес, а фразы из списка в ``exception-list`` – отрицательный “бесконечный” вес (но больший, чем вес фраз из списка в ``banned-list``). Таким образом, при единовременном использовании списков с весами и без, списки с весами приоритетнее. Пример конфигурации фильтра search: :: #edit service wcf #edit filter search test #set banned-list bad_search_words_1 #set banned-list catchy_search #set exception-list legal_search #set weighted-list w_search #set engine-regex mail regex "^http://mail\\.ru/(.*?)\\&text=([^&]*)->\\2" #diff service { wcf { filter { search test { + banned-list bad_search_words_1 + banned-list catchy_search + exception-list legal_search + weighted-list w_search + engine-regex mail { + regex ^http://mail\\.ru/(.*?)\\&text=([^&]*)->\\2 + } } } } } Фильтр modify ~~~~~~~~~~~~~ Фильтр modify позволяет изменять запрос клиента в режиме реального времени. Настройка данного фильтра осуществляется на следующем уровне конфигурации: :: [edit service wcf filter modify ] |noindent| где ```` – строка длиной от 1 до 128 символов. На данном уровне конфигурации доступны следующие настройки: - ``redirect regex `` – перенаправить клиента на другой URL-адрес согласно регулярному выражению, где ```` – строка длиной от 1 до 128 символов, ```` – регулярное выражение, в котором после “->” указан URL-адрес; - ``regex-replace regex `` – изменить HTTP-запрос с помощью регулярного выражения, где ```` – строка длиной от 1 до 128 символов, ```` – регулярное выражение. Пример конфигурации фильтра modify: :: # edit service wcf # edit filter modify test # set redirect sport regex "championat.com->sports.ru" # set regex-replace 1 "(^http://[0-9a-z]+\\.google\\.[a-z]+[-/%.0-9a-z]*/images\\?)(.*)(&?)(safe=[^&]*)->\\1\\2\\3" .. _mergedlists: Объединение списков ~~~~~~~~~~~~~~~~~~~ Объединение списков осуществляется в порядке их определения в конфигурации. Пример 1 конфигурации объединения двух списков: :: service { wcf { filter { url test { banned-list ban2 banned-list ban1 } Содержимое списков примера 1: :: ban1: #listcategory: "Category 1" web1.com web2.com ban2: site1.com site2.ru Содержимое объединения данных списков в том порядке, в котором они объявлены в конфигурации: :: ban2 + ban1: site1.com site2.ru #listcategory: "Category 1" web1.com web2.com При данном порядке объединения списков сайты site1.com и site2.ru категории не имеют. Пример 2 конфигурации объединения списков: :: service { wcf { filter { url test { banned-list ban1 banned-list ban2 } Содержимое объединения списков примера 2 в том порядке, в котором они объявлены в конфигурации: :: ban1 + ban2: #listcategory: "Category 1" web1.com web2.com site1.com site2.ru При данном порядке объединения списков сайты site1.com и site2.ru имеют категорию “Category 1”. Данные примеры демонстрируют особенности механизма объединения списков. Фильтр main-filter ------------------ Настройка фильтра main-filter осуществляется на следующем уровне конфигурации: :: [edit service wcf main-filter] Настройки данного уровня конфигурации повторяют настройки уровня конфигурации фильтра url со следующими дополнениями: - ``banned-regex-list `` – указать файл со списком регулярных выражений для сайтов/URL-адресов/IP-адресов, которые блокируются без последующих проверок, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``; - ``exception-regex-list `` – указать файл со списком регулярных выражений для сайтов/URL-адресов/IP-адресов, которые пропускаются без последующих проверок, где ```` – полное имя файла или имя файла относительно директории ``/system/wcf``. Назначение данного фильтра см. в подразделе :numref:`{number} {name} `. .. _policy: Политики -------- Политики позволяют создавать группы пользователей и назначать им фильтры. При этом одной политике соответствует одна группа пользователей. Настройки группы ~~~~~~~~~~~~~~~~ Настройка группы осуществляется на следующем уровне конфигурации: :: [edit service wcf policy group ] |noindent| где ```` – строка длиной от 1 до 128 символов. По умолчанию предусмотрена группа “default”, особенности настройки и назначение которой описаны в пункте :numref:`{number} {name} `. На данном уровне конфигурации доступны следующие настройки: - ``ban `` – указать имя(ена) фильтра(ов) ban, который(ые) должен(ы) применятся к пользователям группы, где ```` – имя существующего фильтра ban; - ``modify `` – указать имя(ена) фильтра(ов) modify, который(ые) должен(ы) применятся к пользователям группы, где ```` – имя существующего фильтра modify; - ``file-type `` – указать имя(ена) фильтра(ов) file-type, который(ые) должен(ы) применятся к пользователям группы, где ```` – имя существующего фильтра file-type; - ``search `` – указать имя(ена) фильтра(ов) search, который(ые) должен(ы) применятся к пользователям группы, где ```` – имя существующего фильтра search; - ``phrase `` – указать имя(ена) фильтра(ов) phrase, который(ые) должен(ы) применятся к пользователям группы, где ```` – имя существующего фильтра phrase; - ``url `` – указать имя(ена) фильтра(ов) url, который(ые) должен(ы) применятся к пользователям группы, где ```` – имя существующего фильтра url; - ``mitm `` – указать имя фильтра mitm, который должен применятся к пользователям группы, где ```` – имя существующего фильтра mitm; - ``search-weight-limit `` – указать предельный вес поискового запроса, при достижении которого запрос блокируется, где ```` – число от 0 до 65535, по умолчанию – 50; - ``phrase-weight-limit `` – указать предельный вес содержимого страницы, при достижении которого страница блокируется, где ```` – число от 0 до 65535, по умолчанию – 150; - ``user ip `` – указать IP-адрес, подсеть или диапазон IP-адресов, который принадлежит группе, где ```` – IPv4-адрес в формате ``A.B.C.D/[mask]`` или диапазон IP-адресов в формате ``A.B.C.D-A.B.C.D``, возможно определение нескольких настроек данного уровня конфигурации. В аргументе настройки ``user ip`` указываются уникальные адреса/подсети/диапазоны адресов для каждой группы. Аутентификация пользователей ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Аутентификация пользователей осуществляется по их IP-адресам при присоединении к службе (как автоматически с помощью прозрачного режима, так и напрямую): пользователь ассоциируется с группой, которая содержит его IP-адрес, или с группой default, если ни одна группа не содержит его IP-адрес. .. _groupdefault: Группа default ~~~~~~~~~~~~~~ По умолчанию с группой default ассоциируется только фильтр main-filter. Для ассоциации других фильтров с данной группой применяются настройки следующего уровня конфигурации: :: [edit service wcf policy group default] Настройки данного уровня конфигурации повторяют настройки уровня конфигурации группы, при этом настройка ``user ip`` неприменима. .. _algorithmhttp: Алгоритм анализа http(s) трафика службой ---------------------------------------- Схема работы службы wcf с входящим трафиком (от пользователя) представлена на рис. :numref:`%s `. Схема работы службы wcf с входящим трафиком (от сайта) представлена на рис. :numref:`%s `. Далее по тексту в данном подразделе HTTP-трафик и HTTPS-трафик (с включённым MITM для сайта, на который посылается запрос, у данного пользователя) называются открытым трафиком, остальные – закрытым; все фильтры url данного пользователя обозначаются одним фильтром local. |newpage| .. figure:: images/WCF-PICK.drawio.png :alt: Схема работы службы wcf с входящим трафиком от пользователя :name: fig-wcf-user-traffic Схема работы службы wcf с входящим трафиком от пользователя |newpage| .. _fig-wcf-site-traffic: .. figure:: images/WCF-PICK2.drawio.png :alt: Схема работы службы wcf с входящим трафиком от сайта Схема работы службы wcf с входящим трафиком от сайта |newpage| Алгоритм прохождения трафика с вышеуказанными обозначениями: 1) Если хост запроса содержится в списке semi-exception фильтра local, этапы 2, 3 пропускаются. 2) Если хост запроса содержится в списке exception фильтра local, запрос проходит без последующей проверки. 3) Если хост запроса содержится в списке grey фильтра local, страница запроса загружается и проверяется её содержимое (этапы 5 и 11). 4) Если хост запроса содержится в списке banned фильтра local, запрос блокируется без последующей проверки. 5) Запрос проверяется по фильтру(ам) ban, ассоциированным(и) с данным пользователем. 6) Если хост запроса содержится в списке semi-exception фильтра main-filter, этапы 7, 8, 9 пропускаются. 7) Если хост запроса содержится в списке exception фильтра main-filter, запрос проходит без последующей проверки. 8) Если хост запроса содержится в списке exception-regex фильтра main-filter, страница запроса проходит без последующей проверки. 9) Если хост запроса содержится в списке grey фильтра main-filter, страница запроса загружается и проверяется её содержимое (этап 12). 10) Если хост запроса содержится в списке banned фильтра main-filter, запрос блокируется без последующей проверки. 11) Если хост запроса содержится в списке banned-regex фильтра main-filter, страница запроса блокируется без последующей проверки. 12) Страница запроса загружается, и проверяется её содержимое фильтрами phrase, file-type, search, modify. Этап, фильтр или содержимое фильтра которого не задан, пропускается. URL-адреса из списков фильтров local и main-filter в случае закрытого трафика службе не видны. Фильтры ban, file-type, search, modify, phrase применяются исключительно для открытого трафика. Настройки журнала службы ------------------------ Настройка журнала службы осуществляется на следующем уровне конфигурации: :: [edit service wcf log] На данном уровне конфигурации доступны следующие настройки: - ``format `` – задать формат журнала, где ```` – число от 1 до 8, по умолчанию – 7; - ``verbosity `` – указать, какие сообщения от службы записываются в журнал, где ```` – число от 0 до 3, по умолчанию – 1; - ``level info|warning`` – указать уровень события, по умолчанию – info. Для передачи информации об инцидентах на удалённый сервер указываются значение ``warning`` аргумента настройки ``level`` и значение ``1`` аргумента настройки ``verbosity`` в комбинации с настройками service journal. Настройка портов и адресов службы --------------------------------- По умолчанию служба ожидает трафик на всех IP-адресах и на порте 8080 на данных адресах. Настройка портов и адресов службы осуществляется на следующем уровне конфигурации: :: [edit service wcf listen] На данном уровне конфигурации доступны следующие настройки: - ``http-port `` – указать порт(ы) для приёма HTTP(S)-трафика, где ```` – число от 1 до 65535; - ``thttps-port `` – указать порт(ы) для приёма HTTP(S)-трафика при работе в прозрачном режиме, где ```` – число от 1 до 65535; - ``ipv4 address
`` – указать IP-адрес(а), на которых служба ожидает трафик, где ``
`` – IPv4-адрес в формате ``A.B.C.D``. Все IP-адреса и порты, указанные в аргументах данных настроек, должны быть доступны. Пример конфигурации портов и адресов службы: :: # edit service wcf # edit listen # set http-port 8082 # set thttps-port 8143 # set ipv4 address 192.168.56.101 # diff service { wcf { + listen { + ipv4 { + address 192.168.56.101 + } + http-port 8082 + thttps-port 8143 + } } } Служба wcf работает как в прозрачном, так и в непрозрачном режиме. Для настройки прозрачного режима HTTP(S)-порты перенаправляются на порты, на которых принимает трафик служба wcf. Для HTTP-трафика (80 порт) возможно перенаправление трафика на порт, указанный в настройке ``http-port ``, для HTTPS-трафика рекомендуется перенаправление на порт, указанный в настройке ``thttps-port ``. Настройка страницы блокировки ----------------------------- Для изменения страницы, демонстрируемой пользователям при их попытке получения доступа к нежелательной информации, в директорию ``/system/wcf/ban-page/`` помещается файл ``template.html``, содержащий необходимую для демонстрации пользователям страницу (размер файла не может превышать 1 МБ). На данной странице возможно указание некоторых переменных окружения, полученных из причины блокировки: - URL – полный URL-адрес, который пользователь пытался получить; - REASONGIVEN – краткая причина блокировки; - REASONLOGGED – причина блокировки с детализацией; - FILTERGROUP – имя группы пользователя; - IP – IP-адрес пользователя; - CATEGORIES – категория заблокированного ресурса (#listcategory).