UPL (UserGate Policy Language) — язык описания политик UserGate. Термин «политика» употребляется здесь в контексте конфигурации правил, применяемых для принятия решений по требованиям аутентификации, правам доступа или преобразования контента.
Правила настраиваются с использованием действий, условий и свойств.
Для каждого правила настраивается одно из действий. Действия — настройки, которые управляют обработкой транзакции (OK, WARNING, PASS, DENY, FORCE_PASS, FORCE_DENY). При настройке правил, в которых не предусмотрено указание действия (например, правила DNS, NAT и маршрутизации, пропускной способности и т.п.), необходимо указать действия PASS или OK.
Условия задаются знаками равно (=) или не равно (!=), например, зоны, адреса, GeoIP источников и назначения, сервисы, приложения и т.д.; все условия в правиле проверяются по логическому И, т.е. правило сработает, если будут выполнены все условия.
Свойства правил задаются в круглых скобках и используются для указания дополнительной информации, например, название правил, их описание, функция журналирования и т.д.
UPL используется для помощью UPL в интерфейсе CLI создаются правила политик сети и безопасности для следующих разделов:
Настройки DNS-прокси (уровень: network dns dns-proxy dns-rules).
Сaptive-портал (уровень: users captive-portal).
Межсетевой экрана (уровень: network-policy firewall).
NAT и маршрутизация (уровень: network-policy nat-routing).
Пропускная способность (уровень: network-policy traffic-shaping).
Фильтрация контента (уровень: security-policy content-filtering).
Веб-безопасность (уровень: security-policy safe-browsing).
Инспектирование туннелей (уровень: security-policy tunnel-inspection).
Инспектирование SSL (уровень: security-policy ssl-inspection).
Инспектирование SSH (уровень: security-policy ssh-inspection).
СОВ (уровень: security-policy intrusion-prevention).
Защита почтового трафика (уровень: security-policy mail-security).
ICAP-правила (уровень: security-policy icap-rules).
Правила защиты DoS (уровень: security-policy dos-rules).
Веб-портал (уровень: global-portal web-portal).
Правила reverse-прокси (уровень: global-portal reverse-proxy-rules).
Серверные правила VPN (уровень: vpn server-rules).
Клиентские правила VPN (уровень: vpn client-rules).
Структура команды для создания правила:
Admin@nodename# create <level> <position> upl-rule <str-upl-syntax>
где <level> — уровень, на котором необходимо создать правило.
<position> — позиция, на которую будет помещено правило.
<str-upl-syntax> строка, в которой описано правило в UPL синтаксисе.
Структура команды для обновления существующего правила:
Admin@nodename# set <level> <position> upl-rule <str-upl-syntax>
где <level> — уровень, на котором необходимо обновить правило.
<position> — номер правила, которое необходимо обновить.
<str-upl-syntax> строка, в которой описано правило в UPL синтаксисе.
Структура команды для удаления правила:
Admin@nodename# delete <level> <position | all>
где <level> — уровень, на котором необходимо удалить правило.
<position> — номер правила, которое необходимо удалить.
<all> — удалить все правила.
Структура команды для отображения правила:
Admin@nodename# show <level> <position | all>
где <level> — раздел, правила которого нужно отобразить.
<position> — номер правила, которое необходимо отобразить.
<all> — отобразить все правила.
Пример создания правила межсетевого экрана с использованием UPL (использован многострочный ввод):
Admin@nodename# create network-policy firewall 1 upl-rule \
...DENY \
...src.zone = Trusted \
...dst.zone = Untrusted \
...user = known \
...service = HTTPS \
...time = lib.time("Working hours") \
...rule_log(session)\
...name("Example of firewall rule created in CLI") \
...enabled(true)
После создания правило отобразиться в начале списка правил межсетевого экрана (на позиции 1). Данное правило запрещает HTTPS-трафик из зоны "Trusted" в зону "Untrusted" пользователям, идентифицированным системой. Правило работает в соответствии с расписанием "Working hours". При срабатывании правила в журнал будет записана информация о начале сессии.
Любая строка, начинающаяся с символа "%", является комментарием.
Символ процента "%" после пробела или табуляции вводит комментарий, который продолжается до конца строки (кроме случаев, когда символ процента отображается внутри кавычек (""), как часть выражения).
Пример:
% Это комментарий
DENY("Too many Host headers") request.header.Host.count = 2.. % и это тоже
Комментарии могут быть в любом месте файла с описанием политик.
Правило политики (rule) состоит из условий и некоторого количества действий, записанных в любом порядке. Есть также свойства (properties), которые синтаксически выглядят как действие, но при этом активных действий не производят. Например, свойство name просто добавляет атрибут "имя" в правило.
Правила обычно пишутся в одной строке, но могут быть разбиты на строки с помощью специального символа — обратного слеша "\".
Когда правило выполняется, условие проверяется для текущей конкретной транзакции. Если условие оценивается как True (истина), выполняются все перечисленные действия и текущий слой заканчивается при наличии префиксов PASS / FORCE_PASS / DENY / FORCE_DENY / WARNING / OK. Ecли сработавшее правило не имеет префиксов PASS / FORCE_PASS / DENY / FORCE_DENY / WARNING / OK, то выполняются действия и дальше обрабатывается уже следующее правило. Если условие оценивается как False для этой транзакции, то дальше обрабатывается уже следующее правило.
Все условия в правиле проверяются по логическому "И". Другими словами, правило сработает, когда будут выполнены все условия.
В свою очередь, условие является логической комбинацией триггеров. Триггеры — это отдельные тесты, которые можно выполнить с компонентами запроса, ответа, связанными пользователями или состоянием системы.
Действия — это настройки, которые управляют обработкой транзакции. Например, запретить (deny) или обработать объект (изменить заголовок — rewrite).
Синтаксис:
Rule ::= (PASS | FORCE_PASS | DENY| ( DENY '(' string ')') | FORCE_DENY | FORCE_DENY'(' string ') '| WARNING | OK)? Conditions '\'? Actions
Conditions ::= condition '\'? Conditions
Actions ::= action '\'? Actions
Пример:
Запрос будет запрещен, когда сработают оба триггера:
домен будет example.com
время будет между 9 и 17 часами
DENY url.domain = "example.com" time=09:00..17:00
Слой (layer)— это конструкция UPL, используемая для группировки правил и принятия одного решения. Раздельные принятия решения помогают контролировать сложность политики. Это делается путем написания каждого решения в отдельном слое.
У любого правила в слое может быть префикс PASS / FORCE_PASS / DENY / FORCE_DENY / OK / WARNING, когда срабатывает правило с таким префиксом, все остальные правила в слое пропускаются.
В случае если сработало правило с префиксом FORCE_PASS или FORCE_DENY, то это является окончательным результатом обработки, в противном случае обработка переходит на следующий слой. После обработки всех слоев запрос будет заблокирован или пропущен в зависимости от того, что было последним — PASS / FORCE_PASS или DENY / FORCE_DENY. Если процессинг остановится на WARNING, будет добавлено предупреждение в тело ответа.
Префикс OK подразумевает остановку обработки правил в текущем слое при выполнении условий и действий (если таковые указаны). Если префикс отсутствует при выполнении условий и действий, то остановка не подразумевается.
Действия FORCE_PASS и FORCE_DENY похожи на PASS и DENY, за исключением того, что они могут быть переопределены на последующих слоях. FORCE_DENY и FORCE_PASS немедленно прекращают поверку правил как на текущем, так и на последующих слоях, и этот результат является окончательным.
Синтаксис:
Layer ::= '[' layer_type layer_name ']'
layer_type ::= ssl | ssh| captive| content | shaper | firewall | safebrowsing | dns | icap | mailsecurity | dos | webportal | reverseproxy | nat_routing | byod | vpn_server | vpn_client|idps | tunnel | scenarios | ipvs_server | icap_balancing | reverseproxy_balancing
layer_name ::= string
atom ::= [a-z][0-9a-zA-Z_]+
string ::= '"' произвольная строка '"'
Пример 1:
[content "L1"]
DENY enabled(true) % по умолчанию все запрещено
[content "Devs"]
DENY group != Developers enabled(true)
%... дальше идут правила, которые будут применяться только для группы Developers
Пример 2:
[content "Admin"]
FORCE_PASS group = Admins enabled(true)
[content "L2"]
DENY enabled(true) % по умолчанию все запрещено
Значения "адрес запроса" (url, url.host, url.path), "IP-адрес источника/назначения" (src.ip, dst.ip), "имя пользователя" (user), "значения заголовков" (request и response) и "параметры запроса" (qparam) могут сравниваться между собой, а также использоваться в качестве аргумента в действиях (actions), где это предусмотрено.
Условие (condition) в языке UPL является логической комбинацией триггеров. Триггеры — это отдельные тесты, которые можно выполнить с компонентами запроса, ответа, связанными пользователями или состоянием системы. Все триггеры условия сравниваются со значениями с помощью операторов "=" и "!=". В роли значения могут выступать константные значения, такие как строки, целочисленные значения, диапазоны значений, динамические значения.
Синтаксис:
condition ::= condition_name ('=' | '!=') condition_value
condition_value ::= pattern | list
list ::= '(' ((pattern ',')* pattern)? ')'
pattern ::= word | string | integer | float | boolean| range | condition_name
string ::= '"' произвольная строка '"'
word ::= [a-zA-Z][0-9a-zA-Z_\-]*
boolean ::= yes|no|true|false
range ::= integer .. [integer] | [integer] .. integer | float .. [float] | [float] .. float
numeric :: = integer | range
Проверка наличия HTTP CONNECT.
Синтаксис:
http.connect = yes | no | true | false
Проверка используемого HTTP-метода. Метод можно указывать как в кавычках, так и без.
Синтаксис:
http.method = GET | CONNECT | DELETE | HEAD | POST | PUT | TRACE | OPTIONS | TUNNEL | LINK | UNLINK | PATCH | PROPFIND | PROPPATCH | MKCOL | COPY | MOVE | LOCK | UNLOCK | MKDIR | INDEX | RMDIR | COPY | MOVE
Проверка версии HTTP-запроса.
Синтаксис:
http.request.version = 0.9 | 1.0 | 1.1
Проверка версии HTTP-ответа.
Синтаксис:
http.response.version = 0.9 | 1.0 | 1.1
Проверка HTTP-кода ответа. Валидные значения: 100 - 999.
Синтаксис:
http.response.code = NNN %(где NNN число от 100 до 999)
Проверка тела запроса/ответа HTTP на содержание определенной сигнатуры.
Пример:
DENY http.response.body.nocase = "<title>index of" http.response.body = ">"
Проверка домена на принадлежность к определенной категории сайтов (смотрите в Приложении список категорий )
Категорию можно указать как по имени, так и по ее идентификатору. Если имя категории содержит пробелы или спецсимволы, ее необходимо указывать в кавычках.
Синтаксис:
category = word | string | integer | list | lib
lib ::= lib.category '(' list_libs ')'
list_libs :: = lib_name ','' list_libs
lib_name ::= word | string
Пример:
Запретить категории Job Search и Gambling:
DENY category = ("Job Search", Gambling)
Запретить все категории из библиотеки Restricted cats:
DENY category = lib.category("Restricted cats")
Проверка тела ответа морфологическими словарями.
Синтаксис:
morphology = word | string | list | lib
lib ::= lib.morphology '(' list_libs ')'
list_libs :: = lib_name ','' list_libs
lib_name ::= word | string
Пример:
Запретить контент, если сработает категория морфологии из словаря BadWords:
DENY morphology = BadWords
Запретить морфологические категории из библиотек Special Words, BadWords
DENY morphology = ("Special Words", BadWords)
DENY morphology = lib.morphology("Special Words", BadWords) % аналогично предыдущему правилу
Проверка HTTP-заголовка запроса/ответа. h_name может принимать одно из поддерживаемых значений (смотрите список поддерживаемых HTTP-заголовков в Приложении).
Синтаксис:
request.header.<h_name>[.base64][.nocase] = string
Пример:
DENY url="http://usergate.com" request.header.Pragma="no-cache"
PASS request.header.User-Agent = lib.useragent("Browsers")
PASS request.header.Content-Type = lib.mime("Applications")
DENY request.header.Connection.substring = "Upgrade"
Проверка HTTP-заголовка запроса/ответа на вхождение подстроки. h_name может принимать одно из поддерживаемых значений (смотрите список поддерживаемых HTTP-заголовков в Приложении).
Синтаксис:
request.header.<h_name>[.base64]substring[.nocase] = string
Пример:
DENY request.header.User-Agent.substring = "curl/"
Проверка HTTP-заголовка запроса/ответа на регулярное выражение PCRE. h_name может принимать одно из поддерживаемых значений (смотрите список поддерживаемых HTTP-заголовков в Приложении).
Синтаксис:
request.header.<h_name>[.base64].regex = string
Пример:
DENY("Accept only digits in content length") request.header.Content-Length.regex != "[0-9]*"
Проверка HTTP-заголовка запроса/ответа на регулярное выражение RE2. h_name может принимать одно из поддерживаемых значений (смотрите список поддерживаемых HTTP-заголовков в Приложении).
Синтаксис:
request.header.<h_name>[.base64].re2 = string
Пример:
DENY("Accept only digits in content length") request.header.Content-Length.re3 != "[0-9]*"
Проверка количества заголовков <h_name> в HTTP-запросе/ответе. h_name может принимать одно из поддерживаемых значений (смотрите список поддерживаемых HTTP-заголовков в Приложении).
Синтаксис:
request.header.<h_name>.count = integer | range
Пример:
DENY("Too many Host headers") request.header.Host.count = 2..
Проверка длины значений всех заголовков <h_name> в HTTP-запросе/ответе. h_name может принимать одно из поддерживаемых значений (смотрите список поддерживаемых HTTP-заголовков в Приложении).
Синтаксис:
request.header.<h_name>.length = integer | range
Пример:
DENY("Too much Cookie data") request.header.Cookie.length = 2048..
Проверка имени/значения всех HTTP-заголовков запроса/ответа на значение.
Синтаксис:
request.header_values[.base64].regex = string
request.header_values[.base64].re2 = string
request.header_values[.base64].substring[.nocase] = string
request.header_values.count = integer | range
request.header_values.length = integer | range
Проверка HTTP-заголовка запроса/ответа на значение. xh_name — произвольный HTTP-заголовок.
Синтаксис:
request.x_header.<xh_name>[.base64][.nocase] = string
request.x_header.<xh_name>[.base64].regex = string
request.x_header.<xh_name>[.base64].re2 = string
request.x_header.<xh_name>[.base64].substring[.nocase] = string
request.x_header.<xh_name>.count = integer | range
request.x_header.<xh_name>.length = integer | range
Пример:
DENY url="http://usergate.com" request.x_header.Test="test1"
Возможны также суффиксы length, count, regex, re2 как и в случае с <h_name>.
DENY("Too much X-Test data") request.x_header.X-Test.length = 2048..
DENY("Too much X-Test2 headers data") request.x_header.X-Test2.count = 2..
PASS request.x_header.Test.regex = "[0-9]*"
Проверка заголовка запроса Cookie на значение.
Синтаксис:
request.header.Cookie.<cookie_name>[.base64][.(nocase | substring | substring.nocase | regex | re2)] = string
Пример:
DENY http.method = POST request.header.Cookie.csrf_token != qparam.CSRF_TOKEN enabled(true) name("Check CSRF")
Проверка соответствия текущего времени заданному условию. Если не указан суффикс utc, время берется локальное, иначе — по Гринвичу.
Синтаксис:
day[.utc] = monday | tuesday | wednesday | thursday | friday | saturday | sunday | DD | list
time[.utc] = HH:MM | range | lib.time(<name>)
hour[.utc] = HH | range
minute[.utc] = MM | range
HH ::= 00 - 23
MM ::= 00 - 59
DD ::= 1 - 31
Пример:
PASS time = 12:00..13:00 % разрешить каждый день с 12 до 13 часов
PASS time = lib.time("Праздники") % использовать библиотеку "Праздники"
DENY day = (sunday, saturday) % запретить на выходных
DENY day = (monday, 15) hour = 9..18 % запретить каждый понедельник и каждое 15 число месяца с 9 до 18 часов
Открытые интервалы учитываются по границе суток/часа.
PASS hour = 18.. % означает, что разрешено с 18 часов до полуночи
minute = ..10 % первые 10 минут каждого часа
Проверка url или его части на значение. Проверка использует нормализованный URI c декодированными *%*.
Синтаксис:
url[.(prefix | substring | suffix | regex | re2)] = string
url.host[.(prefix | substring | suffix | regex | re2)] = string
url.domain[.(prefix | substring | suffix | regex | re2)] = string
url.address = ip_address | subnet | subnet_label
url.port = [low_port]..[high_port] | port
url.path[.base64][.(prefix | substring | suffix | regex | re2)] = string
url.is_absolute = yes | no % полный или нет URL
prefix ::= string % начало строки
substring ::= string % подстрока
suffix ::= string % окончание строки
regex ::= string % регулярное выражение PCRE
re2 ::= string % регулярное выражение RE2
url.address — это, по сути, синоним dst.ip.
Пример:
DENY url.path.base64.re2 = "(?i)\bondisconnecting\W*=" enabled(true) name("ondisconnecting (URI)")
Проверка значения параметров запроса. Проверка использует имена и значения параметров c декодированными *%*.
Синтаксис:
qparam.length = numeric % проверить общую длину query-параметров
qparam.count = numeric % проверить количество query-параметров qparam.<name>[.(length | count)] = numeric
qparam.<name>[.base64][.(nocase | substring | substring.nocase | regex | re2)] = string
qparam.values[.base64].substring[.nocase] = string % проверить все значения на вхождение подстроки
qparam.names[.base64].substring[.nocase] = string % проверить все имена на вхождение подстроки
qparam.values[.base64].regex = string % проверить все значения на регулярное выражение
qparam.names[.base64].regex = string % проверить все имена на регулярные выражения
qparam.values[.base64].re2 = string % проверить все значения на регулярное выражение
qparam.names[.base64].re2 = string % проверить все имена на регулярные выражения numeric ::= integer | range % число либо диапазон
regex ::= string % регулярное выражение PCRE
re2 ::= string % регулярное выражение RE2
Пример:
DENY("limit arguments total length") qparam.length = 1024.. % total
DENY("Limit argument value length") qparam.values.length = 1024.. % for each
DENY("Limit argument name length") qparam.names.length = 1024.. % for each
DENY("Maximum number of arguments in request limited") qparam.count = 12.. % total
DENY(""PHP injection attempt") qparam.values.base64.substring.nocase = "${@print"
Проверка текущего пользователя или его группы.
Синтаксис:
user = word | string | known | unknown
group = word | string
user.guid = string
group.guid = string
known — используется для указания авторизованного (известного) пользователя;
unknown — используется для указания неавторизованного (неизвестного) пользователя.
Пример:
PASS user = known % разрешить известных пользователей
DENY group = "Отдел продаж" category = "Pornography/Sexually Explicit" % запретить категорию порно для группы "Отдел продаж"
Проверка условия на IP-адрес, зону или GeoIP источника/назначения.
Синтаксис:
src.ip = ip_address | subnet | subnet_label | list | lib
dst.ip = ip_address | subnet | subnet_label | list | lib
src.zone = integer | zone_name
dst.zone = integer | zone_name
src.geoip = iso3166 | list
dst.geoip = iso3166 | list
src.mac = mac_address | list
dst.mac = mac_address | list
lib ::= lib.(network | url) '(' list_libs ')'
list_libs :: = lib_name ','' list_libs
lib_name ::= word | string
iso3166 ::= [A-Z][A-Z]
url.address — это, по сути, синоним dst.ip.
Проверка активности определенного сценария.
Синтаксис:
scenario = string | word | list
Пример:
DENY scenario = Torrents desc("Запретить, если активен сценарий Torrents")
Проверка тела ответа на вирусы.
Синтаксис:
virus_heuristic = yes | no | true | false % (по умолчанию false)
virus_usergate = yes | no | true | false % (по умолчанию false)
heuristic — эвристический анализатор (медленный);
usergate — проверка по хэшам (быстрый).
Фильтрация трафика по VLAN-тегам для интерфейса в режиме моста (bridge).
Синтаксис:
bridge_vlan_filter '='|'!=' list | number | number..number
Пример:
DENY bridge_vlan_filter = (10, 100..200) desc("Запретить трафик по VLAN-тегам")
Детектирование трафика определенного сервиса для межсетевого экрана.
Синтаксис:
service = string | word | list
Пример:
DENY service = POP3 desc("Запретить сервис POP3")
Детектирование трафика определенного приложения на уровне L7 для межсетевого экрана.
Синтаксис:
application = string | word | list
Пример:
DENY application = Tor desc("Запретить Tor")
Проверка email-адреса отправителя/адресата сообщения.
Синтаксис:
envelope_from '='|'!=' string | list
envelope_to '='|'!=' string | list
Пример:
PASS envelope_from = "Email froup from" envelope_to = "Email froup to" service = SMTP mark_hdr(Subject) enabled(true) name("Mail Pass Rule")
Проверка времени ответа в миллисекундах.
Синтаксис:
response_time = integer
HIP-профили для проверки соответствия конечного устройства требованиям безопасности. Действительно только для правил межсетевого экрана.
Синтаксис:
hip_profile = string | word | list
Библиотеки (lib) — это элементы языка UPL, которые служат для доступа к встроенным и пользовательским библиотекам. Как правило, это достаточно большие списки, которые неудобно описывать через определения def. Обращение к библиотекам происходит по их именам.
Синтаксис:
library ::= lib.<url | morphology | category | useragent | mime | network | time | applicationgroup | servicegroup>(list_names)
list_names ::= name list_names
name ::= word | string
url — список URL;
morphology — список морфологических словарей;
category — группа категорий;
useragent — список юзерагентов;
mime — список типов контента;
network — список сетей/IP-адресов;
time — библиотека с промежутками времени.
Пример:
DENY src.ip = lib.network("Bad ips", "Test ips")
DENY dst.ip = lib.network("Bad ips")
DENY dst.ip = lib.url("Bad urls") % в данном случае домены будут резолвиться в ip-адреса
DENY morphology = lib.morphology("Porno words", "Bad words")
DENY category = lib.category("Restricted categories") category = lib.category(Productivity)
PASS request.header.User-Agent = lib.useragent("Browsers")
PASS request.header.Content-Type = lib.mime(Applications)
DENY time = lib.time(Weekends)
В файлах политик определения (def) служат для объединения наборов условий или действий. Каждое определение должно иметь уникальное пользовательское имя, по которому к нему можно обратиться из правил.
Наборы условий. Все условия в одной строке проверяются по логическому И. Перевод строки означает логическое ИЛИ. Символ экранирования — обратный слэш ("\") в конце строки позволяет перенести условие по И на следующую строку.
Синтаксис:
def condition label_name
conditions
end
conditions ::= condition '\'? [conditions]
condition ::= name '=' value
label_name ::= atom
atom ::= [a-z][0-9a-zA-Z_]+
Список условий сценария. Каждое условие сценария обычно пишется в одной строке, но при необходимости условие может быть разбито на строки с помощью специального символа — обратного слеша ("\").
Синтаксис:
def scenario_cond label_name
scenario_conditions
end
scenario_conditions ::= Conditions '\'? Properties
Conditions ::= condition '\'? Conditions
Properties ::= property '\'? Properties
scenario_cond ::= name '=' value
label_name ::= atom
atom ::= [a-z][0-9a-zA-Z_]+
Определение переменных. Служит для подсчета некоторых событий за определенный интервал времени. Для изменения значения предназначены действия inc и dec.
Синтаксис:
def var label_name
init ::= integer
window ::= time
key ::= condition_name | condition_list
end
label_name ::= atom
atom ::= [a-z][0-9a-zA-Z_]+
condition_list ::= '(' condition_name , condition_list ')'
init — это начальное значение переменной, к которому она вернется по истечении времени window;
key — поле или список полей, по которым группируются значения переменной (необязательный параметр).
Свойства (properties) — это некие атрибуты правила, например, name или enabled. Они используются для предоставления дополнительной информации в процессе обработки правил. Синтаксис свойств точно такой же, как у действий.
Синтаксис:
property = prop_name | prop_name '(' list_params ')'
prop_name ::= name | desc | id | rule_log | enabled | scenario
list_params ::= value ',' list_params
Атрибуты имя и описание для правила.
Синтаксис:
Name ::= name '(' string|word ')'
Description ::= desc '(' string ')'
Пример:
DENY hour = 9..18 category = News name("Запретить News") desc("Запретить категорию News в рабочее время")
Атрибут, который включает или выключает работу правила.
Синтаксис:
Enable ::= enabled '(' boolean ')'
boolean ::= yes | no | true | false % (по умолчанию false)
Устанавливает атрибут журналирования правила. Значение session действительно только для правил межсетевого экрана, защиты от dos-атак и пропускной способности.
Синтаксис:
Logging ::= rule_log '(' boolean | session ')'
LoggingFwRule ::= rule_log '(' boolean , interval, burst')'
boolean ::= yes | no | true | false % (по умолчанию no)
interval ::= "integer/[s,m,h,d]"
burst ::= integer
interval — среднее число пакетов, попадающих под условие limit в единицу времени (1/s, 1/m, 1/h, 1/d) , default = 3/h;
burst — максимальное число пакетов, попадающих в под условие limit за один раз (default = 5).
Устанавливает профиль правила.
Синтаксис:
Profile ::= profile '(' string | word | list ')'
Сертификат, используемый для поддержки HTTPS-соединения. Действительно только для правил reverse-прокси.
Синтаксис:
CertAuthEnabled ::= cert_auth_enabled '(' boolean ')'
Certificate ::= certificate '(' certificate_name ')'
certificate_name ::= string | word
Шлюз. Имя одного из существующих шлюзов. Действительно только для правил NAT и маршрутизации, и для условий сценария "Проверка состояния".
Синтаксис:
Gateway ::= gateway '(' string | word ')'
Устанавливает способ, с помощью которого будет блокироваться трафик. Действительно только для правил межсетевого экрана.
Синтаксис:
Reject ::= reject_with '(' "tcp-reset-both" | "tcp-rst" | "host-unreach" ')'
Проверка на фрагментированность пакетов. Действительно только для правил межсетевого экрана.
Синтаксис:
Fragmented ::= fragmented '(' boolean ')'
boolean ::= yes | no | true | false
yes — проверяются только фрагментированные пакеты;
no — проверяются только нефрагментированные пакеты;
—, если свойство fragmented не указано, то будут проверяться все пакеты.
Устанавливает профиль IPS. Действительно только для правил межсетевого экрана.
Синтаксис:
IPS_Profile ::= ips_profile '(' string | word ')'
Устанавливает профиль приложения. Действительно только для правил межсетевого экрана.
Синтаксис:
L7_Profile ::= l7_profile '(' string | word ')'
Блокирование сайтов с некорректными сертификатами. Действительно только для правил инспектирования SSL.
Синтаксис:
InvalidCertificate ::= block_invalid_cert '(' boolean ')'
boolean ::= yes | no | true | false
Проверка по списку отозванных сертификатов. Действительно только для правил инспектирования SSL.
Синтаксис:
ChekRevocation ::= check_revoc_cert '(' boolean ')'
boolean ::= yes | no | true | false
Блокировка сертификатов с истекшим сроком действия. Действительно только для правил инспектирования SSL.
Синтаксис:
ExpiredCertificate ::= block_expired_cert '(' boolean ')'
boolean ::= yes | no | true | false
Блокировка самоподписанных сертификатов. Действительно только для правил инспектирования SSL.
Синтаксис:
SelfSignedCertificate ::= block_self_signed_cert '(' boolean ')'
boolean ::= yes | no | true | false
Профиль SSL. Действительно только для правил инспектирования SSL, reverse-прокси, веб-портала.
Синтаксис:
SslProfile ::= ssl_profile '(' string | word ')'
Профиль пересылки SSL. Действительно только для правил инспектирования SSL.
Синтаксис:
SslForwardProfile ::= ssl_forward_profile '(' string | word ')'
profile_id ::= integer
Полоса пропускания. Действительно только для правил пропускной способности.
Синтаксис:
BandwidthPool ::= bandwidth_pool '(' bandwidth ')'
bandwidth ::= "100 Kbps" | "512 kbps" | "1 Mbps" | "2 Mbps" | "5 Mbps" | "10 Mbps" | "20 Mbps" | "50 Mbps" | "100 Mbps"
Пример:
scenario = "Сценарий обнаружения torrent" bandwidth_pool("1 Mbps") enable(true) name("Пропускная способность torrent")
Маркировка. Текст тега, который маркирует письмо. Действительно только для правил защиты почтового трафика.
Синтаксис:
Mark ::= mark '(' string | word ')'
Заголовок. Поле, куда помещается тег маркировки. Действительно только для правил защиты почтового трафика.
Синтаксис:
MarkHeader ::= mark_hdr '(' word ')'
Проверка антиспамом. Действительно только для правил защиты почтового трафика.
Синтаксис:
AntispamKav ::= antispam_kav '(' boolean ')'
boolean ::= yes | no | true | false
Проверка антиспамом UserGate. Действительно только для правил защиты почтового трафика.
Синтаксис:
AntispamUsergate ::= antispam_usergate '(' boolean ')'
boolean ::= yes | no | true | false
Пример:
DENY("with error") envelop_to = UserGate antispam_usergate(yes)
DNSBL-проверка (только SMTP). Действительно только для правил защиты почтового трафика.
Синтаксис:
DNSBLacklistCheck ::= dnsbl '(' boolean ')'
boolean ::= yes | no | true | false
Пример:
DENY service = SMTP dnsbl(yes)
Адрес назначения DNAT, если задано действие dnat или port_mapping.
Новая IP-сеть/маска, если задано действие netmap.
Действительно только для правил NAT и маршрутизации.
Синтаксис:
TargetIp ::= target_ip '(' ipv4 | ipv4_with_mask ')'
Пример:
PASS target_ip("192.168.1.20") dnat
Включение SNAT. При включении данной опции UserGate будет изменять адрес источника в пакетах из внешней сети на свой IP-адрес.
Действительно только для правил NAT и маршрутизации.
Синтаксис:
TargetSnat ::= target_snat '(' boolean ')'
boolean ::= yes | no | true | false
SNAT IP (внешний адрес). Явно указывает IP-адрес, на который будет заменен адрес источника при подмене адресов пакетов.
Действительно только для правил NAT и маршрутизации.
Синтаксис:
SnatTargetIp ::= snat_target_ip '(' ip_address ')'
Порт-форвардинг. Переопределение портов публикуемых сервисов. Действительно только для правил NAT и маршрутизации.
Синтаксис:
PortMap ::= port_map '(' protocol, port_from, port_to ')'
protocol ::= tcp | udp | smtp | smpts
port_from ::= integer
port_to ::= integer
port_from — номер TCP/UDP-порта, на который пользователи шлют запросы;
port_to — номер TCP/UDP-порта, на который будут пересылаться запросы пользователей на внутренний публикуемый сервер.
Направление подмены сетей. Действительно только для правил NAT и маршрутизации.
Синтаксис:
Direction ::= direction '(' input | ouput ')'
input — входящий, подменяется IP-сеть назначения. Будут изменены IP-адреса назначения в трафике;
ouput — исходящий, подменяется IP-сеть источника. Будут изменены IP-адреса источника в трафике.
Список IP-адресов DNS-серверов. Действительно только для правил DNS-прокси.
Синтаксис:
DnsServer ::= dns_server '(' ip_address | ip_address_list ')'
Аутентификация по сертификату. Действительно только для правил Reverse-прокси.
Синтаксис:
CertAuthEnabled ::= cert_auth_enabled '(' boolean ')'
boolean ::= yes | no | true | false
Включение поддержки HTTPS. Действительно только для правил Reverse-прокси.
Синтаксис:
IsHttps ::= is_https '(' boolean ')'
boolean ::= yes | no | true | false
Подмена путей. Действительно только для правил Reverse-прокси.
Синтаксис:
RewritePath ::= rewrite_path '(' path_from, path_to ')'
path_from — изменить с (домен и/или путь URL, которые требуется изменить);
path_to — изменить на (домен и/или путь URL, на которые требуется заменить старые).
Профиль WAF. Действительно только для правил Reverse-прокси.
Синтаксис:
WafProfile ::= waf_profile '(' string | word | list ')'
Иконка, которая будет отображаться на веб-портале для данной закладки. Действительно только для правил веб-портала.
Синтаксис:
Icon ::= icon '(' string | word ')'
Вспомогательные URL, необходимые для работы основного URL, но которые нет необходимости публиковать для пользователей.
Действительно только для правил веб-портала.
Синтаксис:
AdditionalUrl ::= additional_url '(' string | word | list ')'
Проверка авторизации для RDP-сессий. Действительно только для правил веб-портала.
Синтаксис:
RdpCheckSessionAlive ::= rdp_check_session_alive '(' boolean ')'
boolean ::= yes | no | true | false
Включение прозрачной аутентификации пользователя. Действительно только для правил веб-портала.
Синтаксис:
TansparentAuth ::= transparent_auth '(' boolean ')'
boolean ::= yes | no | true | false
Блокировка рекламы.
Синтаксис:
EnableAdblock ::= enable_adblock '(' boolean ')'
boolean ::= yes | no | true | false
URL-список сайтов исключений, для которых блокировать рекламу не требуется.
Синтаксис:
UrlListExclusions ::= url_list_exclusions '(' list_libs ')'
list_libs :: = lib_name ','' list_libs
lib_name ::= word | string
Позволяет вставить произвольный код во все веб-страницы.
Синтаксис:
EnableInjector ::= enable_injector '(' boolean ')'
boolean ::= yes | no | true | false
Код инжектора.
Синтаксис:
СustomInjector ::= custom_injector '(' string ')'
Функция безопасного поиска.
Синтаксис:
SafeSearch ::= safe_search '(' boolean ')'
boolean ::= yes | no | true | false
Запись в журнал поисковых запросов пользователей.
Синтаксис:
SearchHistoryLogging ::= search_history_logging '(' boolean ')'
boolean ::= yes | no | true | false
Блокировка приложения в популярных социальных сетях.
Синтаксис:
SocialSitesBlock ::= social_sites_block '(' boolean ')'
boolean ::= yes | no | true | false
Максимальное количество устройств, с которых пользователь может получать доступ в сеть.
Действительно только для правил BYOD.
Синтаксис:
MaxDeviceNumber ::= max_device_number '(' integer ')'
Максимальное количество устройств, с которых пользователь одновременно может получать доступ в сеть.
Действительно только для правил BYOD.
Синтаксис:
MaxActiveDeviceNumber ::= max_active_device_number '(' integer ')'
Тип устройств, для которых применяется данное правило политики BYOD.
Действительно только для правил BYOD.
Синтаксис:
DeviceType ::= device_type '(' word | string | list ')'
Подтверждение администратора.
Действительно только для правил BYOD.
Синтаксис:
ApprovingRequired ::= approving_required '(' boolean ')'
boolean ::= yes | no | true | false
Блокировка удалённого запуска shell. Действительно только для правил инспектирования SSH.
Синтаксис:
BlockSshShell ::= block_ssh_shell '(' boolean ')'
boolean ::= yes | no | true | false
Блокировка удалённого выполнения команд по SSH. Действительно только для правил инспектирования SSH.
Синтаксис:
BlockSshExec ::= block_ssh_exec '(' boolean ')'
boolean ::= yes | no | true | false
Блокировка соединения SFTP (Secure File Transfer Protocol). Действительно только для правил инспектирования SSH.
Синтаксис:
BlockSftp ::= block_sftp '(' boolean ')'
boolean ::= yes | no | true | false
Команда linux, которую требуется передать, в формате ssh user@host 'command'.
Действительно только для правил инспектирования SSH.
Синтаксис:
SshCommand ::= ssh_command '(' string ')'
Профиль аутентификации. Действительно только для правил VPN-сервера.
Синтаксис:
AuthProfile ::= auth_profile '(' string | word ')'
Сеть VPN. Действительно только для правил VPN-сервера.
Синтаксис:
VpnNetwork ::= vpn_network '(' string ')'
Интерфейс VPN. Действительно только для правил VPN-сервера и VPN-клиента.
Синтаксис:
Interface ::= interface '(' word ')'
IP-адрес сервера. Действительно только для правил VPN-клиента.
Синтаксис:
ServerAddress ::= server_address '(' ip_address ')'
Пароль. Действительно только для правил VPN-клиента.
Синтаксис:
Password ::= password '(' word ')'
Последняя ошибка VPN. Информационное поле, недоступное для редактирования. Действительно только для правил VPN-клиента.
Синтаксис:
LastError ::= last_error '(' string ')'
Время соединения. Информационное поле, недоступное для редактирования. Действительно только для правил VPN-клиента.
Синтаксис:
ConnectionTime ::= connection_time '(' word ')'
Статус. Информационное поле, недоступное для редактирования. Действительно только для правил VPN-клиента.
Синтаксис:
Status ::= status '(' string ')'
Тип срабатывания сценария. Действительно только для правил сценариев.
Синтаксис:
Trigger ::= trigger '(' trigger_type ')'
trigger_type ::= all_users | one_user
Продолжительность. Время в минутах, в течение которого сценарий будет активным после его активации. Действительно только для правил сценариев.
Синтаксис:
Duration ::= duration '(' integer ')'
Сценарий срабатывает при совпадении одного или всех условий.
Синтаксис:
OperationMode ::= operation_mode '(' mode ')'
mode ::= all | any
Тип условий сценария. Действительно только для условий сценария.
Синтаксис:
SCondType ::= scond_type '(' type ')'
SCondType ::= scond_type '(' type ')'
Количество срабатываний. Действительно только для условий сценария "Категория URL" (url_category), "Приложение" (app), "Тип контента" (mime_type) и "Проверка состояния" (health_check).
Синтаксис:
CountInterval ::= count_interval '(' integer ')'
Интервал времени в минутах, за который было обнаружено count_interval срабатываний. Действительно только для условий сценария "Категория URL" (url_category), "Приложение" (app), "Тип контента" (mime_type) и "Проверка состояния" (health_check).
Синтаксис:
MaxEventCount ::= max_event_count '(' integer ')'
Размер пакета. Размер пакета в трафике пользователя превысил указанное значение. Действительно только для условий сценария "Размер пакета" (net_packet_size).
Синтаксис:
PacketSize ::= packet_size '(' size ')'
size ::= integer | integer KB | integer MB | integer GB
64 — размер в байтах;
2MB — размер в мегабайтах.
Объем трафика. Действительно только для условий сценария "Ограничение трафика" (traffic).
Синтаксис:
TrafficLimit ::= traffic_limit '(' size ')'
size ::= integer | integer KB | integer MB | integer GB
Период времени. Действительно только для условий сценария "Ограничение трафика" (traffic).
Синтаксис:
Period ::= period '(' time_period ')'
time_period ::= minute | hour | day | week | month
Уровень угрозы СОВ. Действительно только для условий сценария "СОВ" (ips).
Синтаксис:
IpsTl ::= ips_tl '(' level ')'
level ::= integer | very_low | low | medium | high | very_high
ips_tl(2) scond_type(ips);
ips_tl(low) scond_type(ips).
Метод проверки. Действительно только для условий сценария "Проверка состояния" (health_check).
Синтаксис:
CheckMethod ::= health_check_method '(' method ')'
method ::= ping | dns | get
Результат. Действительно только для условий сценария "Проверка состояния" (health_check).
Синтаксис:
esult ::= health_result '(' result ')'
result ::= positive | negative
Тайм-аут подключения (сек). Действительно только для условий сценария "Проверка состояния" (health_check).
Синтаксис:
RequestTimeout ::= health_request_timeout '(' integer ')'
Тайм-аут ответа (сек). Действительно только для условий сценария "Проверка состояния" (health_check), "Метод проверки HTTP GET" (get).
Синтаксис:
ut ::= health_answer_timeout '(' integer ')'
Тип DNS-запроса. Действительно только для условий сценария "Проверка состояния" (health_check), "метод проверки DNS" (dns).
Синтаксис:
TypeRequest ::= health_type_request '(' type_name ')'
type_name ::= word | string
Метод балансировки. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
Scheduler ::= scheduler '(' balancing_type ')'
balancing_type ::= wrr | rr | lc | wlc
wrr — Weighted round robin;
rr — Round robin;
lc — Least connections;
wlc — Weighted least connections.
Реальные серверы. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
RealServer ::= real_server '(' mode, ipv4[:port], weight ')'
mode ::= gate | masq | masq_snat
port ::= integer
weight ::= integer
gate — шлюз;
masq — маскарадинг;
masq_snat — маскарадинг с подменой IP-адреса источника (SNAT).
Пример:
OK \
url.address = 172.168.13.100 \
url.port = 10000 \
service = tcp \
scheduler(wlc) \
real_server(masq_snat, 172.168.13.11:10000, 50) \
ipvs_fallback(gate, 172.168.13.12)
monitor_kind(ping) \
monitor_interval(60) \
monitor_timeout(60) \
monitor_failurecount(10) \
enabled(true) \
name("TCP/UPD load balancing")
Аварийный режим сервера. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
IpvsFallback ::= ipvs_fallback '(' mode, ipv4[:port] ')'
mode ::= gate | masq | masq_snat
port ::= integer
Режим. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
MonitorKind ::= monitor_kind '(' kind ')'
kind ::= ping | connect | negotiate
Сервис. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
MonitorService ::= monitor_service '(' service ')'
service ::= http | dns
Запрос. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
MonitorRequest ::= monitor_request '(' string ')'
Ожидаемый ответ. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
MonitorResponse ::= monitor_response '(' string ')'
Интервал проверки. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
MonitorInterval ::= monitor_interval '(' integer ')'
Время ожидания. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
MonitorTimeout ::= monitor_timeout '(' integer ')'
Число неудачных попыток. Действительно только для правил балансировки нагрузки TCP/UDP.
Синтаксис:
MonitorFailurecount ::= monitor_failurecount '(' integer ')'
Действие (action) — это то, что будет выполнено, если условия в правиле истинны. В качестве параметров могут использоваться константные значения, или динамические значение там, где это предусмотрено.
Синтаксис:
action = action_name | action_name '(' list_params ')'
action_name ::= warning | log_message | append | delete | set | replace | encrypt | inc|dec | reset | redirect | encrypt_body_url | decrypt_path | body_inject | set_cookie_token | body_replace | lookup_and_auth | encode_cookie | decode_cookie | sma | nat | dnat | route | port_mapping | netmap | forward | ignore | action_label
action_label ::= 'action'.<action_label_name>
action_label_name ::= atom
list_params ::= value ',' list_params
Действия, которые разрешаются без выхода из обработки правил на текущем слое. warning ставит отметку о том, что необходимо вставить код с предупреждением в тело ответа.
Пример:
[L1]
category = lib.category(Productivity) warning
DENY user = user1
Записать сообщения в журнал.
Пример:
DENY category = lib.category(Productivity) log_message("Deny porno")
Добавить заголовок к HTTP-запросу/ответу. Список поддерживаемых заголовков приведен в Приложении.
Первый параметр может быть опущен, если заголовок относится к одной группе request или response.
Синтаксис:
append([request | response,] <headername>, value)
headername — см. в Приложении.
value ::= string | numeric | condition_name.
Переписать значение конкретному HTTP-заголовку. Список поддерживаемых заголовков см. в Приложении.
Первый параметр может быть опущен, если заголовок относится к одной группе request или response.
Синтаксис:
set([request | response,] <headername>, value)
headername — см. в Приложении.
value ::= string | numeric | condition_name.
Удалить HTT- заголовок. Список поддерживаемых заголовков см. в Приложении.
Первый параметр может быть опущен, если заголовок относится к одной группе request или response.
Синтаксис:
delete([request | response,] <headername>)
headername — см. в Приложении.
Модифицировать значение HTTP-заголовка. Список поддерживаемых заголовков см. в Приложении.
Первый параметр может быть опущен, если заголовок относится к одной группе request или response.
Синтаксис:
replace([request | response,] <headername>, regex, value)
regex ::= string % регулярное выражение
value ::= string | condition_name
headername — см. в Приложении.
Пример 1:
Добавить заголовок Referer:
PASS append(Referer, "http://example.com") enabled(true)
Удалить заголовок:
PASS delete(Referer)
Переписать заголовок:
PASS set(request, Cache-Control, no-cache)
Модифицировать заголовок Location:
PASS response.header.Location.count = 1.. replace(response, Location, "http://example.com", url.host) enabled(true)
Пример 2:
define action delete_referer
log_message("Referer header deleted")
delete(request, Referer)
end
Шифровать часть пути в HTTP-заголовке. Список поддерживаемых заголовков см. в Приложении.
Первый параметр может быть опущен, если заголовок относится к одной группе request или response.
Ключ шифрования и флаг "Использовать IP как часть ключа шифрования" — необязательные параметры.
Синтаксис:
encrypt([request | response,] <headername>, <url>[, <user_key>[, <add_ip>]])
url ::= string % часть url для фильтрации
user_key ::= string % пользовательский ключ шифрования (необязательный параметр)
add_ip ::= boolean % добавлять ли IP к ключу шифрования (логическое значение, необязательный параметр)
boolean ::= yes | no | true | false
headername — см. в Приложении.
Шифровать часть пути в ссылках тела ответа.
Ключ шифрования и флаг "Использовать IP как часть ключа шифрования" — необязательные параметры.
Синтаксис:
encrypt_body_url(<url>[, <user_key>[, <add_ip>]])
url ::= string % часть url для фильтрации
user_key ::= string % пользовательский ключ шифрования (необязательный параметр)
add_ip ::= boolean % добавлять ли IP к ключу шифрования (логическое значение, необязательный параметр)
boolean ::= yes | no | true | false
Дешифровать часть пути запроса.
Первый параметр может быть опущен, если заголовок относится к одной группе request или response.
Ключ шифрования и флаг "Использовать IP как часть ключа шифрования" — необязательные параметры.
Синтаксис:
decrypt_path(<path>[, <user_key>[, <add_ip>]])
path ::= string % часть пути для фильтрации
user_key ::= string % пользовательский ключ шифрования (необязательный параметр)
add_ip ::= boolean % добавлять ли IP к ключу шифрования (логическое значение, необязательный параметр)
boolean ::= yes | no | true | false
Пример:
Шифровать все относительные пути в заголовке Location и теле ответа, и дешифровать путь запроса:
decrypt_path("/", "User_Key", true) enabled(true) name("Path decode")
http.response.code = 302 encrypt(Location, "/", "User_Key", true) enabled(true) name("Encrypt Location header")
encrypt_body_url("/", "User_Key", true) enabled(true) name("Encrypt all relative URL")
Вставить скрипт в тело ответа.
Синтаксис:
body_inject(inject_text)
inject_text ::= string
Добавить в ответ заголовок 'Set-Cookie' со сгенерированным токеном.
Синтаксис:
set_cookie_token(cookie_name, parameter, expires_date)
cookie_name ::= string
parameter ::= string
expires_date ::= [DD_]HH:MM % время которое будет прибавлено к текущему времени
Пример:
Реализация CSRF защиты:
DENY http.method = POST request.header.Referer.substring = "/login.php" qparam.UCSRF_TOKEN != request.header.Cookie.ucsrf_token enabled(true) name("Check CSRF")
url.path.prefix = "/login.php" set_cookie_token(ucsrf_token, "path=/", 01_00:00) body_inject("<script language='JavaScript'>
var tokenName = 'UCSRF_TOKEN';
document.addEventListener('DOMContentLoaded', function()
{
var t_res = document.cookie.match(/ucsrf_token=(.+?)(;|$)/);
var tokenValue = t_res ? t_res[1] : '';
var forms = document.getElementsByTagName('form');
for(i=0; i<forms.length; i++)
{
var html = forms[i].innerHTML;
html += '<input type=hidden name=' + tokenName + ' value=' + tokenValue + ' />';
forms[i].innerHTML = html;
}
});
</script>") enabled(true) name("Inject")
Шифровать значения Cookie в заголовке Set-Cookie с заданным именем.
Синтаксис:
encode_cookie(cookie_name[, condition_name][, user_kry_string][, f_encrypt])
cookie_name ::= string
condition_name % условие используемое для кодирования (по умолчанию src.ip)
user_kry_string ::= string % пользовательский ключ шифрования (по умолчанию "")
f_encrypt := true % необходимо шифрование (по умолчанию false)
Дешифровать токен в заголовке Cookie с заданным именем.
Синтаксис:
decode_cookie(cookie_name[, condition_key][, user_kry_string][, f_decript])
cookie_name ::= string
condition_name % условие используемое для декодирования (по умолчанию src.ip)
user_kry_string ::= string % пользовательский ключ шифрования (по умолчанию "")
f_encrypt := true % необходимо шифрование (по умолчанию false)
Пример:
Шифрование и дешифрование Cookie с именем security:
response.header.Set-Cookie.count != 0 encode_cookie("security", src.ip, true) enabled(true) name("encode_cookie")
request.header.Cookie.count != 0 decode_cookie("security", src.ip, true) enabled(true) name("decode_cookie")
Модифицировать тело ответа. Выполняется не более двух (первых) модификаций для каждого ответа.
Синтаксис:
body_replace(<regex>, <value>)
regex ::= string % регулярное выражение
value ::= string
Пример:
PASS \
body_replace("(\\+7|8)[\\s(]?(\\d\{3})[\\s)]?(\\d\{3})[\\s-]?(\\d\{2})[\\s-]?(\\d\{2})", "+\\1 (\\2) \\3-XX-XX") \
body_replace("(\\w{1})[\\w\.]*(\\w{1})@([\\w]+)\\.([\\w]+)", "\\1***\\2@\\3.\\4") \
enabled(true) \
name("Replace mail and phone")
Аутентифицировать пользователя. В случае если IP не указан, запрос маркируется имением пользователя.
Синтаксис:
lookup_and_auth(<user_login>[, <ip_address>[, <session_timeout>]])
user_login ::= string | condition_name % Логин аутентификации
ip_address ::= string | condition_name % IP адрес
session_timeout ::= integer % тайм-аут сессии, по умолчанию 0.
Пример:
lookup_and_auth(request.x_header.X-Authenticated-User, request.x_header.X-Forwarded-For, 300) enabled(true) name("User authentication")
lookup_and_auth(request.x_header.X-Authenticated-User) enabled(true) name("Mark request")
При блокировке перенаправить пользователя на адрес, который указан в редиректе.
Синтаксис:
Redirect ::= redirect(RespCode[, RedirectText], Url)
RespCode ::= 301 | 302 | 305 | 307
RedirectText ::= string
Url ::= string
Пример:
DENY src.zone = Trusted redirect(302, "Custom test (Moved)", "https://block.captive/block")
DENY src.zone = Untrusted redirect(302, "https://block.captive/block")
Используются для изменения значения переменных, объявленных как def var.
Синтаксис:
inc(var.<var_name>, integer)
dec(var.<var_name>, integer)
Пример:
На каждый http.response.code = 500 увеличивается значение rps на 1. Если превысили 10 таких запросов за 5 минут, блокируем дальнейшие ответы. Через 5 минут переменная rps будет сброшена в 0:
def var rps
init = 0
window = 00:05
key = src.ip
end
http.response.code = 500 var.rps=..10 inc(var.rps, 1) enabled(true)
PASS var.rps = 5 log_message("Warning!") enabled(true)
DENY var.rps=11.. log_message("Too many 500 errors!") enabled(true)
Сбросить значения переменных, объявленных как init в def var, в начальное значение.
Синтаксис:
reset(var.<var_name>)
Используются для подсчета среднего значения в окне времени, которое определяется в переменной как window в def var.
Синтаксис:
sma(var.<var_name>, integer)
Пример:
Блокируются запросы, когда среднее время запроса за 30-секундный интервал превысит 2 секунды:
def var avg_time
init = 0
window = 00:00:30
key = src.ip
end
src.zone = Untrusted sma(var.avg_time, response_time) enabled(true) name("sma")
DENY src.zone = Untrusted var.avg_time = 2000.. enabled(true) name("sma res")
NAT — подмена сетевых IP-адресов.
Пример:
PASS src.zone = Trusted dst.zone = Untrusted nat
DNAT — подмена IP-адреса назначения.
Пример:
PASS dnat target_ip("192.168.1.20")
Порт-форвардинг — перенаправление трафика на указанный IP-адрес c изменением номера порта публикуемого сервиса.
Пример:
PASS port_mapping target_ip("192.168.1.20") port_map(tcp, 2000, 2001)
Network mapping — позволяет произвести замену IP-адресов источника или назначения одной сети на другую.
Пример:
PASS netmap target_ip("192.168.32.0/24") direction(output)
Policy-based routing — позволяет маршрутизировать IP-пакеты на основе расширенной информации, например, сервисов, MAC-адресов или серверов (IP-адресов).
SNAT IP — Адрес, на который будет заменен адрес источника для трафика NAT.
Пример:
PASS service = HTTP route getway(Шлюз1)
Игнорировать ответ от ICAP-сервера. В этом случае, вне зависимости от ответа ICAP-сервера, данные к пользователю уходят без модификации.
Пример:
OK profile("Example ICAP server") enabled(true) name("ICAP rule") ignore
Переслать. В случае успешной расшифровки трафика SSL/TLS копия трафика будет переслана в соответствии с правилом и профилем инспектирования SSL.
Пример:
OK url = lib.url(ZAPRET_INFO_BLACK_LIST_DOMAIN)ssl_profile("Default SSL profile") ssl_forward_profile("Forward SSL profile") enabled(false) name("Decrypt rule") forward
|
Имя |
Описание |
|---|---|
|
PASS |
Разрешение посещения. |
|
DENY |
Блокировка веб-страницы. |
|
WARNING |
Предупреждение пользователя о том, что страница нежелательна для посещения. |
category, scenario, time, url, user.
request.header.Referer — Список URL, в котором указаны рефереры для текущей страницы.
request.header.User-Agent — Useragent пользовательских браузеров.
response.header.Content-Type — Списки типов контента.
http.method — Метод, используемый в HTTP-запросах.
name, desc, enabled, rule_log, virus_heuristic.
[content "Content Rules"]
% ----------------- 1 --- "Content Rules" --------------
PASS \
url = lib.url("Education institutions") \
src.zone = Trusted \
desc("Content filtering rule which allows access to the list of URLs. This is an example rule which can be changed or deleted if necessary.") \
rule_log(yes) \
enabled(true) \
name("Example white list")
% ----------------- 2 --- "Content Rules" --------------
DENY("Blockpage (EN)") \
url = lib.url("Education institutions") \
dst.zone = Untrusted \
rule_log(yes) \
enabled(false) \
name("Example block RU RKN by URL list")
% ----------------- 3 --- "Content Rules" --------------
DENY \
url = lib.network("Private IPs") \
morphology = lib.morphology(Drugs) \
src.zone = Trusted \
time = lib.time(Weekdays) \
rule_log(yes) \
redirect(302, "https://bing.com") \
enabled(false) \
name("Example redirect to safesearch engines")
|
Имя |
Описание |
|---|---|
|
PASS |
Разрешение трафика. |
|
DENY |
Блокировка трафика. |
service, scenario, time, url, user, hip_profile.
name, desc, enabled, rule_log, reject_with, ips_profile, l7_profile.
[firewall "Firewall rules"]
% ----------------- 1 -----------------
DENY \
scenario = "Example torrent detection scenario" \
dst.zone = Untrusted \
dst.ip = lib.network("Botnets IP list") \
rule_log(session) \
reject_with("host-unreach") \
enabled(true) \
name("Example block RU RKN by IP list")
% ----------------- 2 -----------------
PASS \
scenario = "Example torrent detection scenario" \
src.zone = Trusted \
dst.zone = Untrusted \
hip_profile = "HIP profile" \
ips_profile("Default IDPS profile") \
l7_profile("Pass all applications") \
rule_log(yes, "3/h", 5) \
enabled(true) \
name("Allow trusted to untrusted")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
Тип правила определяется действием (Action):
src.zone, src.geoip, src.ip, src.mac.
service, scenario, time, url, user.
name, desc, enabled, rule_log, direction, target_ip, target_snat, snat_target_ip,
[nat_routing "NAT and Routing Rules"]
% ----------------- 1 -----------------
OK \
src.zone = Trusted \
service = (HTTP, HTTPS) \
snat_target_ip("192.168.13.210") \
rule_log(session) \
enabled(true) \
name("NAT Rule")\
nat
% ----------------- 2 -----------------
OK \
src.zone = Management \
dst.ip = (lib.network("Private IPs"), lib.url("Microsoft Windows Internet checker")) \
target_ip("171.168.1.1") \
target_snat(yes) \
snat_target_ip("192.168.1.1") \
enabled(true) \
name("DNAY Rule")\
dnat
% ----------------- 3 -----------------
OK \
target_ip("172.168.1.1") \
snat_target_ip("192.168.1.1") \
port_map(tcp, 2000, 2000) \
enabled(true) \
name("Port-forwarding Rule")\
port_mapping
% ----------------- 4 -----------------
OK \
user = example \
scenario = "Example torrent detection scenario" \
gateway(My) \
enabled(true) \
name("Policy-base Rule")\
route
% ----------------- 5 -----------------
OK \
dst.geoip = (RW, SO) \
target_ip("172.168.1.1") \
direction(input) \
enabled(true) \
name("Network mapping Rule")\
netmap
|
Имя |
Описание |
|---|---|
|
PASS |
Не использовать аутентификацию. |
|
OK |
Использовать Captive-профиль. |
name, desc, enabled, rule_log, profile.
[captive "Captive Rules"]
% ----------------- 1 -----------------
PASS \
category = lib.category(Threats) \
url = lib.url("Microsoft Windows Internet checker") \
time = lib.time(Weekends) \
rule_log(yes) \
enabled(true) \
name("Skip auth for Microsoft Internet checker")
% ----------------- 2 -----------------
OK \
src.zone = Trusted \
profile("Example Captive profile") \
enabled(true) \
name("Example Captive portal")
|
Имя |
Описание |
|---|---|
|
PASS |
Не расшифровывать передаваемые данные. |
|
OK |
Расшифровать передаваемые данные. |
Пересылка определяется действием (Action):
time, service, user, category.
name, desc, enabled, rule_log, ssl_profile, ssl_forward_profile.
block_invalid_cert, check_revoc_cert, block_expired_cert, block_self_signed_cert.
[ssl "Decrypt Rules"]
% ----------------- 1 -----------------
PASS \
category = (Finance, "Information Security") \
rule_log(yes) \
ssl_profile("Default SSL profile") \
enabled(false) \
name("Example DO NOT Decrypt rule for Finance and Security sites")
% ----------------- 2 -----------------
OK \
category = lib.category(Threats) \
rule_log(yes) \
block_invalid_cert(yes) \
check_revoc_cert(yes) \
block_expired_cert(yes) \
block_self_signed_cert(yes) \
ssl_profile("Default SSL profile") \
enabled(false) \
name("Example decrypt rule for parental control")
% ----------------- 3 -----------------
OK \
url = lib.url("Default SSL profile") \
rule_log(yes) \
ssl_profile("Default SSL profile") \
ssl_forward_profile("SSL forward profile") \
enabled(false) \
name("Example decrypt RU RKN")\
forward
|
Имя |
Описание |
|---|---|
|
PASS |
Не расшифровывать передаваемые данные. |
|
OK |
Расшифровать передаваемые данные. |
name, desc, enabled, rule_log,
block_ssh_shell, block_ssh_exec, block_sftp, ssh_command.
[ssh "SSH inspection Rules"]
% ----------------- 1 -----------------
PASS \
service = "Any UDP" \
rule_log(yes) \
enabled(true) \
name("Bypass Rule")
% ----------------- 2 -----------------
OK \
service = IMAP \
block_ssh_shell(yes) \
block_ssh_exec(yes) \
block_sftp(yes) \
ssh_command("command") \
rule_log(yes) \
enabled(true) \
name("Decrypy Rule")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда OK. |
name, desc, enabled, dns_server.
[dns "DNS Rules"]
% ----------------- 1 -----------------
OK \
url.domain = "*.example.com" \
dns_server(1.2.3.4) \
enabled(true) \
name("Dns rule")
|
Имя |
Описание |
|---|---|
|
PASS |
Разрешение трафика. |
|
DENY |
Безусловная блокировка трафика. |
|
WARNING |
Применение профиля защиты от DoS-атак. |
time, service, user, scenario,
name, desc, enabled, rule_log, profile.
[dos "DoS Rules"]
% ----------------- 1 -----------------
PASS \
scenario = "Example torrent detection scenario" \
user = example \
src.ip = lib.url("Microsoft Windows Internet checker") \
dst.geoip = RW \
service = FTP \
rule_log(session) \
enabled(true) \
name("DoS Allow Rule")
% ----------------- 2 -----------------
DENY \
desc(api_dos_rule) \
rule_log(yes, "3/h", 5) \
enabled(true) \
name("DoS Deny Rule")
% ----------------- 3 -----------------
WARNING \
user = "CN=VPN users,DC=LOCAL" \
time = lib.time("Working hours") \
profile("DoS Profile") \
enabled(false) \
name("DoS Protect Rule")
|
Имя |
Описание |
|---|---|
|
PASS |
Пропуск. Не посылать данные на ICAP-сервер. |
|
OK |
Пересылка данных на ICAP-сервер. |
Действие (Action):
url, category, user, service, http.method, response.header.Content-Type.
name, desc, enabled, rule_log, profile.
[dos "DoS Rules"]
% ----------------- 1 -----------------
PASS \
scenario = "Example torrent detection scenario" \
user = example \
src.ip = lib.url("Microsoft Windows Internet checker") \
dst.geoip = RW \
service = FTP \
rule_log(session) \
enabled(true) \
name("DoS Allow Rule")
% ----------------- 2 -----------------
DENY \
desc(api_dos_rule) \
rule_log(yes, "3/h", 5) \
enabled(true) \
name("DoS Deny Rule")
% ----------------- 3 -----------------
WARNING \
user = "CN=VPN users,DC=LOCAL" \
time = lib.time("Working hours") \
profile("DoS Profile") \
enabled(false) \
name("DoS Protect Rule")
|
Имя |
Описание |
|---|---|
|
PASS |
Пропуск трафика без изменений. |
|
DENY ("with error") |
Блокировка письма, при этом сообщается об ошибке доставки письма на сервер. |
|
DENY |
Блокировка письма без уведомления о блокировке. |
|
WARNING |
Маркировка почтовых сообщений. |
user, service, envelope_from, envelope_to.
name, desc, enabled, rule_log, mark_hdr, mark, antispam_usergate, dnsbl.
[mailsecurity "Mail Security Rules"]
% ----------------- 1 -----------------
PASS \
user = (example, "CN=VPN users,DC=LOCAL") \
envelope_from = "Email froup from" \
envelope_to = "Email froup to" \
service = SMTP \
rule_log(yes) \
mark_hdr(Subject) \
enabled(true) \
name("Mail Pass Rule")
% ----------------- 2 -----------------
DENY("with error") \
service = (SMTPS, SMTP) \
rule_log(yes) \
mark_hdr(Subject) \
antispam_usergate(yes) \
enabled(true) \
name("Mail Drop Rule")
% ----------------- 3 -----------------
DENY \
src.zone = Untrusted \
service = SMTP \
mark_hdr(Subject) \
dnsbl(yes) \
enabled(false) \
name("DNSBL spam drop rule")
% ----------------- 4 -----------------
WARNING \
src.zone = Untrusted \
service = (SMTP, POP3, SMTPS, POP3S) \
mark_hdr(Subject) \
mark("[SPAM]") \
antispam_usergate(yes) \
enabled(false) \
name("SMTP and POP3 filtering")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
src.zone, src.geoip, src.ip, src.mac.
user, request.header.User-Agent, url.port.
name, desc, enabled, rule_log, profile, certificate, cert_auth_enabled, is_https, ssl_profile,
[reverseproxy "Reverse proxy Rules"]
% ----------------- 1 -----------------
OK \
url.port = 80 \
src.zone = Untrusted \
desc("Example reverse proxy rule. This is an example rule which can be changed or deleted if necessary. ") \
profile("Example reverse proxy server") \
rewrite_path("example.com/path1", "example.local/path1") \
waf_profile("Example WAF profile") \
enabled(true) \
name("Example reverse proxy rule")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
src.zone, src.geoip, src.ip, src.mac.
name, desc, enabled, rule_log.
enable_adblock, safe_search, search_history_logging, social_sites_block, enable_injector,
custom_injector, url_list_exclusions.
[safebrowsing "Safe browsing Rules"]
% ----------------- 1 -----------------
OK \
rule_log(yes) \
enable_adblock(yes) \
safe_search(yes) \
search_history_logging(yes) \
social_sites_block(yes) \
enable_injector(yes) \
custom_injector(code) \
url_list_exclusions(FISHING_BLACK_LIST) \
desc("Safebrowsing rule for all users. This is an example rule which can be changed or deleted if necessary.") \
enabled(false) \
name("Example safebrowsing")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
src.zone, src.geoip, src.ip, src.mac.
time, user application, service, scenario,
name, desc, enabled, rule_log, bandwidth_pool.
[shaper "Shaper Rules"]
% ----------------- 1 -----------------
OK \
scenario = "Example torrent detection scenario" \
service = "HTTP Proxy" \
rule_log(session) \
bandwidth_pool("1 Mbps") \
enabled(true) \
name("Example Bandwidth rule")
% ----------------- 2 -----------------
OK \
scenario = "Example torrent detection scenario" \
src.zone = Trusted \
application = lib.category("Coin Miners", Business) \
rule_log(yes, "3/h", 5) \
bandwidth_pool("100 Kbps") \
enabled(true) \
name("Example torrent shaper")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
src.zone, src.geoip, src.ip, src.mac.
[tunnel "Tunnel inspection Rules"]
% ----------------- 1 -----------------
PASS \
src.zone = Trusted \
dst.zone = Untrusted \
service = gre \
enabled(true) \
name("Example Tonnel Incpection Bypass rule")
% ----------------- 2 -----------------
OK \
dst.geoip = YE \
service = gtpu \
enabled(true) \
name("Example Tonnel Incpection Rule")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
url, user, url.domain.
icon, ssl_profile, certificate, additional_url, rdp_check_session_alive, transparent_auth.
[webportal "Web portal Rules"]
% ----------------- 1 -----------------
OK \
user = "CN=Default Group,DC=LOCAL" \
url = "http://www.intranet.loc" \
icon("default.svg") \
rdp_check_session_alive(yes) \
transparent_auth(yes) \
certificate("CA (Default)") \
ssl_profile("Default SSL profile") \
enabled(false) \
name("Example http application published via web portal")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
src.zone, src.geoip, src.ip, src.mac.
user,
profile, auth_profile, vpn_network, interface.
[vpn_server "VPN server Rules"]
% ----------------- 1 -----------------
OK \
user = "CN=VPN users,DC=LOCAL" \
src.zone = Untrusted \
profile("Remote access VPN profile") \
auth_profile("Example user auth profile") \
vpn_network("Remote access VPN network") \
interface(tunnel1) \
enabled(false) \
name("Remote access VPN rule")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
profile, interface, server_address.
last_error, status, connection_time — информационные поля, недоступные для редактирования.
[vpn_client "VPN client Rules"]
% ----------------- 1 -----------------
OK \
server_address("10.10.10.10") \
last_error(Disabled) \
status(disconnected) \
connection_time(0) \
profile("Client VPN profile") \
interface(tunnel3) \
enabled(true) \
name("Client VPN rule")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
operation_mode, trigger, duration.
count_interval, max_event_count, scond_type
count_interval, max_event_count, scond_type
count_interval, max_event_count, scond_type
traffic_limit, period, scond_type
health_check_method, health_result, health_request_timeout, health_type_request,
health_answer_timeout, count_interval, max_event_count, scond_type
[scenarios "Scenario Rules"]
% ----------------- 1 -----------------
def scenario_cond example_scenario_define
category = (lib.category(Threats), "Advertisements & Pop-Ups") count_interval(10) max_event_count(3) scond_type(url_category)
scond_type(virus_detection)
application = lib.category(Threats) count_interval(2) max_event_count(1) scond_type(app)
ips_tl(medium) scond_type(ips)
response.header.Content-Type = lib.mime("Java script") count_interval(0) max_event_count(0) scond_type(mime_type)
packet_size(200MB) scond_type(net_packet_size)
sessions_limit(50) scond_type(sessions_per_ip)
traffic_limit(2GB) period(hour) scond_type(traffic)
url.address = "192.168.100.100" url.domain = "example.com" health_check_method(dns) \
health_result(negative) health_request_timeout(4) health_type_request(a) \
count_interval(5) max_event_count(3) scond_type(health_check)
url.domain = "example.com" health_check_method(get) \
health_result(negative) health_request_timeout(5) health_answer_timeout(10) \
count_interval(0) max_event_count(0) scond_type(health_check)
end
OK \
scenario_cond = example_scenario_define \
operation_mode(all) \
trigger(one_user) \
duration(5) \
enabled(false) \
name("Example torrent detection scenario")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
src.zone, src.geoip, src.ip, src.mac.
service, url.address, url.port.
scheduler, real_server, ipvs_fallback
monitor_kind, monitor_service, monitor_request, monitor_response, monitor_interval,
monitor_timeout, monitor_failurecount
[ipvs_server "TCP/UDP load balancing Rules"]
% ----------------- 1 -----------------
OK \
src.geoip = RW \
url.address = 192.168.1.100 \
url.port = 80 \
service = tcp \
scheduler(rr) \
real_server(gate, 1.1.1.1:80, 50) \
ipvs_fallback(masq_snat, 8.8.8.8:10000) \
monitor_kind(negotiate) \
monitor_service(http) \
monitor_request("example.com") \
monitor_interval(60) \
monitor_timeout(60) \
monitor_failurecount(10) \
enabled(true) \
name("TCP load balancing")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
Пример
[icap_balancing "ICAP load balancing Rules"]
% ----------------- 1 -----------------
OK \
profile("Example ICAP server") \
enabled(true) \
name("ICAP load balancing")
|
Имя |
Описание |
|---|---|
|
OK |
Всегда ОК. |
Пример
[reverseproxy_balancing "Reverse proxy load balancing Rules"]
% ----------------- 1 -----------------
OK \
profile("Example reverse proxy server") \
enabled(true) \
name("Reverse-proxy load balancing")
|
ID |
Название |
Description |
Описание |
|---|---|---|---|
|
0 |
Unknown |
Not categorized |
Сайты без принадлежности к какой-либо категории. |
|
1 |
Advertisements and Pop-Ups |
Sites that provide advertising graphics or other ad content files that appear on Web pages. |
Сайты, содержащие графическую рекламу (баннеры, всплывающие окна и прочее). |
|
2 |
Alcohol and Tobacco |
Sites that promote or sell alcohol- or tobacco-related products or services. |
Сайты, посредством которых реализуется продвижение или продажа алкогольной и табачной продукции |
|
3 |
Anonymizers |
Sites that act as an intermediary for surfing to other websites in an anonymous fashion, whether to circumvent web filtering or for other reasons. |
Сайты, предоставляющие возможность анонимного посещения других сайтов и ресурсов интернета. Анонимайзеры также могут применяться для обхождения средств веб-фильтрации и т.д. |
|
4 |
Arts |
Sites with artistic content or relating to artistic institutions such as theaters, museums, galleries, dance companies, photography, and digital graphic resources. |
Сайты, посвященные искусству, в том числе различным театрам, музеям, галереям, фотографии, танцевальным коллективам и т.д. |
|
5 |
Business |
Sites that provide business related information such as corporate web sites. Information, services, or products that help businesses of all sizes to do their day-to-day commercial activities. |
К данной категории относятся корпоративные веб-сайты, а также интернет-ресурсы, содержащие информацию об услугах и продуктах, необходимых предприятиям любого размера для успешной деятельности. |
|
6 |
Transportation |
Sites that include information about motor vehicles such as cars, motorcycles, boats, trucks, RVs and the like, including online purchase sites. Includes manufacturer sites, dealerships, review sites, pricing, enthusiasts clubs, etc. |
Сайты, посвященные автотранспорту и его покупке. Категория включает в себя интернет-ресурсы производителей, дилеров, сайты с обзорами, сообщества, клубы автолюбителей и т.д. |
|
7 |
Chat |
Sites that enable web-based exchange of real-time messages through chat services or chat rooms |
Сайты, позволяющие осуществлять общение в режиме реального времени. |
|
8 |
Kids sites |
Websites that are family and children oriented. |
Сайты, ориентированные на детскую аудиторию |
|
9 |
Forums and Newsgroups |
Sites for sharing information in the form of newsgroups, forums, bulletin boards. Does not include personal blogs. |
Ленты новостей, форумы, доски объявлений. Категория не включает в себя персональные блоги. |
|
10 |
Compromised |
Sites that have been compromised by someone other than the site owner in order to install malicious programs without the user's knowledge. Includes sites that may be vulnerable to a particular highrisk attack. |
Сайты, контроль над которыми был захвачен злоумышленниками для распространения вредоносных программ без ведома владельцев. В категорию также входят ресурсы из группы высокого риска заражения. |
|
11 |
Computers and Technology |
Sites that contain information such as product reviews, discussions, and news about computers, software, hardware, peripheral and computers services. |
Сайты, содержащие обзоры продуктов, новости и информация о компьютерах, программном обеспечении, оборудовании, периферийных устройствах, технологиях и услугах. |
|
12 |
Criminal Activity |
Sites that offer advice on how to commit illegal or criminal activities, or to avoid detection. These can include how to commit murder, build bombs, pick locks, etc. Also includes sites with information about illegal manipulation of electronic devices, hacking, fraud and illegal distribution of software. |
Сайты, предлагающие советы и рекомендации по совершению противоправных или преступных действий, а также содержащие информацию о том, как скрыть следы преступления. На подобных ресурсах можно узнать о том, как совершить убийство, создать бомбу, взломать замки и т.д. В данную категорию также включены сайты о незаконном использовании электронных устройств, хакерстве, мошенничестве и незаконном распространении программного обеспечения. |
|
13 |
Dating and Personals |
Sites that promote networking for interpersonal relationships such as dating and marriage. Includes sites for match-making, online dating, spousal introduction, escort services. |
Сайты, способствующие налаживанию межличностных отношений, таких как знакомства и брак. Категория включает в себя сайты для сватовства, знакомств, ресурсы, предлагающие эскорт-услуги. |
|
14 |
Download Sites |
Sites that contain downloadable software, whether shareware, freeware, or for a charge. Includes some peer-to-peer sites. |
Сайты, которые содержат доступное для скачивания программное обеспечение. Данная категория также включает в себя некоторые Peer-to-Peer сайты. |
|
15 |
Education |
Sites sponsored by educational institutions and schools of all types including distance education. Includes general educational and reference materials such as dictionaries, encyclopedias, online courses, teaching aids and discussion guides |
Сайты, поддерживаемые учебными заведениями и школами всех типов, включая дистанционное обучение. Включает в себя общеобразовательные и справочные материалы, такие как словари, энциклопедии, интерактивные курсы, учебные пособия и методические материалы. |
|
16 |
Entertainment |
Sites containing programming guides to television, movies, music and video (including video on demand), celebrity sites, and entertainment news. |
Сайты, предлагающие пользователю телеканалы, кино, музыку и видео (в том числе видео по запросу). Категория также включает в себя сайты знаменитостей и развлекательные новости. |
|
17 |
Finance |
Sites related to banking, finance, payment or investment, including banks, brokerages, online stock trading, stock quotes, fund management, insurance companies, credit unions, credit card companies, and so on. |
Сайты, связанные с банками, финансами, платежами или инвестициями. В категорию входят интернет-ресурсы банков, брокерских компаний, порталы для онлайн-торговли на бирже. На данных ресурсах также можно узнать котировки акций, информацию об управлении фондами, страховых компаниях, кредитных союзах и т.д. |
|
18 |
Gambling |
Sites that offer or are related to online gambling, lottery, casinos and betting agencies involving chance. |
Сайты, связанные с азартными играми, лотереями, казино и букмекерскими агентствами. |
|
19 |
Games |
Sites relating to computer or other games, information about game producers, or how to obtain cheat codes. Game-related publication sites. |
Сайты, связанные с компьютерными или другими видами игр. Ресурсы содержат информацию о разработчиках игр, кодах и читах. |
|
20 |
Government |
Sites run by governmental or military organizations, departments, or agencies, including police departments, fire departments, customs bureaus, emergency services, civil defense, counterterrorism organizations and hospitals. |
Сайты, находящиеся в ведении правительственных или военных организаций, ведомств или учреждений, в том числе отделений полиции, пожарной охраны, таможенных бюро, аварийных служб, гражданской обороны, служб борьбы с терроризмом и больниц. |
|
21 |
Hate and Intolerance |
Sites that promote a supremacist political agenda, encouraging oppression of people or groups of people based on their race, religion, gender, age, disability, sexual orientation or nationality. |
Интернет-ресурсы, посвященные вопросу поощрения ущемления прав людей в зависимости от расы, религии, пола, возраста, инвалидности, сексуальной ориентации или национальности. |
|
22 |
Health and Medicine |
Sites containing information pertaining to health, healthcare services, fitness and wellbeing, including information about medical equipment, hospitals, drugstores, nursing, medicine, procedures, prescription medications, etc |
Сайты, содержащие информацию, относящуюся к поддержанию здоровья, медицинским услугам, фитнесу и благополучию. В данную категорию также включены интернет-ресурсы, связанные с медицинским оборудованием, больницами, аптеками, сестринским делом, медициной, рецептами лекарств, и т.д. |
|
23 |
Illegal Drug |
Sites with information on the purchase, manufacture, and use of illegal or recreational drugs and their paraphernalia, and misuse of prescription drugs and other compounds. |
Сайты с информацией о приобретении, производстве и использовании незаконных или рекреационных наркотиков, а также злоупотреблении отпускаемыми по рецепту лекарствами. |
|
24 |
Job Search |
Sites containing job listings, career information, assistance with job searches (such as resume writing, interviewing tips, etc.), employment agencies or head hunters. |
Сайты, содержащие списки вакансий, оказывающие помощь в поиске работы. В категорию входят интернет-ресурсы агентств по трудоустройству и рекрутинговых компаний. |
|
25 |
Military |
Information on military branches, armed services, and military history. |
Информация о военных организациях, военной истории. |
|
26 |
Streaming Media and Downloads |
Sites that deliver streaming content, such as Internet radio, Internet TV or MP3 and live or archived media download sites. Includes fan sites, or official sites run by musicians, bands, or record labels. |
Сайты, содержащие потоковый контент, например, интернет-радио, интернет-телевидение или MP3-live. Категория включает в себя фан- или официальные сайты музыкантов, групп или звукозаписывающих компаний. |
|
27 |
News |
Sites covering news and current events such as newspapers, newswire services, personalized news services, broadcasting sites, and magazines. |
Новостные сайты: онлайн-журналы, новостные ленты и т.д. |
|
28 |
Non-profits and NGOs |
Sites devoted to clubs, communities, unions, and non-profit organizations. Many of these groups exist for educational or charitable purposes. |
Сайты, посвященные клубам, сообществам, союзам и некоммерческим организациям. Значительное число данных структур созданы в образовательных или благотворительных целях. |
|
29 |
Nudity |
Sites that contain full or partial nudity that are not necessarily overtly sexual in intent. Includes sites that advertise or sell lingerie, intimate apparel, or swimwear. |
Ресурсы, содержащие изображение частичной или полной наготы. Категория включает в себя сайты, рекламирующие или продающие нижнее белье, интимную одежду или купальные костюмы. |
|
30 |
Personal Sites |
Sites about or hosted by personal individuals, including those hosted on commercial sites such as Blogger, AOL, etc. |
Персональные сайты, созданные отдельными людьми или группами лиц, блоги. |
|
31 |
Phishing and Fraud |
Sites that are used for deceptive or fraudulent purposes (e.g. phishing), such as stealing financial or other user account information. These sites are most often designed to appear as legitimate sites in order to mislead users into entering their credentials |
Сайты, которые используются для обмана или в мошеннических целях (например, фишинг), такие как кражи финансовой или другой информации посредством учетной записи пользователя. Эти сайты чаще всего являются искусно выполненной подделкой популярных законных ресурсов, что вводит в заблуждение пользователей. |
|
32 |
Politics |
Sites that promote political parties or political advocacy, or provide information about political parties, interest groups, elections, legislation or lobbying. Also includes sites that offer legal information and advice. |
Сайты, посвященные политическим партиям или занимающиеся политической пропагандой, а также предоставляющие информацию о группах интересов, выборах, законодательстве или вопросе лоббирования. Категория включает в себя сайты, которые предлагают сведения о правах и их защите. |
|
33 |
Pornography/Sexually Explicit |
Sites that contain explicit sexual content. Includes adult products such as sex toys, CD-ROMs, and videos, adult services such as videoconferencing, escort services, and strip clubs, erotic stories and textual descriptions of sexual acts. |
Сайты, которые содержат контент сексуального содержания. Категория включает в себя продукцию для взрослых, такую как секс-игрушки, компакт-диски и видео. Сайты из данной группы позволяют заказывать эскорт-услуги, получить сведения о стриптиз-клубах, почитать эротические рассказы и текстовые описания половых актов. |
|
34 |
Real Estate |
Sites relating to commercial or residential real estate services, including renting, purchasing, selling or financing homes, offices, etc. |
Информация об аренде, покупке или продаже недвижимости или земельных участков. Рекомендации по покупке или продаже жилых помещений. Агентства недвижимости, услуги по аренде, переезду, улучшению жилищных условий. |
|
35 |
Religion |
Sites that deal with faith, human spirituality or religious beliefs, including sites of churches, synagogues, mosques and other houses of worship. |
Сайты, посвященные вопросу веры, человеческой духовности и религиозным убеждениям, в том числе сайты церквей, синагог, мечетей и других молитвенных домов. |
|
36 |
Restaurants and Dining |
Sites that list, review, promote or advertise food, dining or catering services. Includes sites for recipes sites, cooking instruction and tips, food products, and wine advisors. |
Сайты, содержащие списки, обзоры заведений общественного питания. Категория включает в себя сайты с рецептами, инструкциями и советами, продуктами питания и советами по выбору вина. |
|
37 |
Search Engines and Portals |
Sites enabling the searching of the Web, newsgroups, images, directories, and other online content. Includes portal and directory sites such as white/yellow pages. |
Сайты, позволяющие осуществлять поиск в интернете по новостям, изображениям, каталогам и другим видам онлайн-контента. Категория включает в себя порталы и каталоги сайтов, такие как белые/желтые страницы. |
|
38 |
Shopping |
Sites for online shopping, catalogs, online ordering, auctions, classified ads. Excludes shopping for products and services exclusively covered by another category such as health & medecine. |
Интернет-магазины, каталоги, аукционы, рекламные объявления. Категория не включает в себя ресурсы, посвященные товарам и услугам из более узких категорий, таких как здравоохранение и медицина. |
|
39 |
Social Networking |
Sites that enable social networking for online communities of various topics, for friendship, dating, or professional reasons. |
Сайты социальных сетей, пользователи которых могут общаться, взаимодействовать, обмениваться сообщениями, файлами. |
|
40 |
Spam Sites |
Sites that have been promoted through spam techniques. |
Сайты, продвижение которых основано на использовании спам-рассылок. |
|
41 |
Sports |
Sites relating to sports teams, fan clubs, scores and sports news. Relates to all sports, whether professional or recreational. |
Сайты команд или спортивных ассоциаций, международные и национальные, спортивные колледжи. Ресурсы, содержащие результаты и расписания игр, спортивные журналы и газеты, виртуальный спорт и спортивные лиги. |
|
42 |
Malware |
Sites that install unwanted software on a user's computer with the intent to make system changes or enable third-party monitoring without the user's consent. |
Сайты, содержащие нежелательные программы, автоматически загружающиеся и устанавливающиеся на ПК пользователей. Вирусы вносят изменения в систему и позволяют злоумышленникам получить данные с компьютера без ведома и согласия его владельца. |
|
43 |
Stock trading |
Promotion and facilitation of securities trading and management of investment assets. Also includes information on financial investment strategies, quotes, and news. |
Сайты по торговле ценными бумагами и управления инвестиционными активами. Также включает информацию о финансово-инвестиционной стратегии, котировкам и новостям. |
|
44 |
Translators |
Sites that translate Web pages or phrases from one language to another. These sites bypass the proxy server, presenting the risk that unauthorized content may be accessed, similar to using an anonymizer |
Cайты, на которых возможен онлайн-перевод веб-страниц на другие языки. Данные ресурсы могут использоваться для обхода заданных ограничений, так как просмотр сайтов осуществляется с URL сайта онлайн-переводчика. |
|
45 |
Travel |
Sites that provide travel and tourism information or online booking or travel services such as airlines, accommodations, car rentals. Includes regional or city information sites. |
Авиакомпании, агентства по бронированию авиабилетов, планирование поездок, предварительные заказы, аренда транспортных средств, описания мест назначения, реклама гостиниц и казино. |
|
46 |
Violence |
Sites that contain images or text depicting or advocating physical assault against humans, animals, or institutions. Sites of a particularly gruesome nature. Sites that contain profanity. |
Сайты, содержащие изображения, текстовые описания и пропаганду физического насилия против людей, животных или организаций\сообществ. Категория включает в себя ресурсы с иллюстрациями ужасов природы, а также сайты, содержащие ненормативную лексику. |
|
47 |
Weapons |
Sites that depict, sell, review or describe guns and weapons, including for sport. |
Сайты, содержащие изображения, обзоры и описания оружия. В категории также входят интернет-магазины орудий и оружия, в том числе для занятия спортом. |
|
48 |
Web-based Email |
Sites that enables users to send and receive email through a web-accessible email account. |
Порталы, позволяющие завести собственные почтовые аккаунты для написания, чтения, отправки и получения электронных писем. |
|
49 |
General |
Sites that do not clearly fall into other categories, for example, blank web pages |
Сайты, которые не попадают в другие категории, например, пустые веб-страницы. |
|
50 |
Leisure and Recreation |
Sites relating to recreational activities and hobbies including zoos, public recreation centers, pools, amusement parks, and hobbies such as gardening, literature, arts & crafts, home improvement, home décor, family, etc. |
Сайты, связанные с рекреационной деятельностью и увлечениями, включая ресурсы, посвященные зоопаркам, центрам общественного отдыха, бассейнам, паркам развлечениям и хобби, таким как садоводство, литература, искусства и ремесла, домашний декор и т.д. |
|
51 |
Online training and tools |
Distance education, online courses, vocational training, software training, skills training. |
Дистанционное образование, онлайн-курсы, профессиональное обучение, программы обучения, повышения квалификации. |
|
52 |
Legal |
Legal websites, law firms, discussions and analysis of legal issues. |
Сайты юридических фирм, обсуждение и анализ юридических вопросов. |
|
53 |
Local Information |
City guides and tourist information, including restaurants, area information and local points of interest. |
Путеводители и информация для туристов, в том числе о ресторанах и местные достопримечательности. |
|
54 |
Reference and Research |
Personal, professional, or educational reference material, including online dictionaries, maps, library catalogues and scientific information. |
Профессиональные или образовательные справочные материалы, в том числе онлайн-словари, карты, переписи, альманахи, каталоги библиотек, генеалогии, и научной информации. |
|
55 |
Technical or business forums and news groups |
Websites with discussions of user-generated content related to business or technical development. |
Сайты с обсуждениями, относящимся к деловой или технической тематикам. |
|
56 |
Technical information and documentation |
Websites that provide information on technical information and documentation. |
Сайты, которые предоставляют информацию к техической документации и информации. |
|
57 |
Personal Storage |
Websites that allow the uploading of files for remote data storage. |
Сайты, которые позволяют загружать файлы и резервные копии для удаленного хранения данных. |
|
58 |
CDNs |
Content distribution networks |
Сети предоставления контента |
|
59 |
Profanity |
Websites which contain excessive use of profanity or obscenities. |
Сайты, содержащие нецензурную лексику |
|
60 |
Professional social networks |
The subset of social networking websites which includes content intended exclusively for businesses or professionals. |
Подмножество веб-сайтов социальных сетей, которое включает в себя контент, предназначенный исключительно для бизнеса и профессионалов. |
|
61 |
Botnets |
Sites that manage networks of bots through command-and-control centers. |
Сайты, которые управляют сетями ботов через командно-контрольные центры. |
|
62 |
Cults |
Sites relating to non-traditional religious practice typically known as cults, that is, considered to be false, unorthodox, extremist, or coercive, with members often living under the direction of a charismatic leader. |
Сайты, связанные с нетрадиционной религиозной практикой, обычно называемой культами. Подобные движения считаются ложными, неортодоксальными, экстремистскими. Члены культов зачастую живут под руководством харизматического лидера. |
|
63 |
Fashion and Beauty |
Sites concerning fashion, jewelry, glamour, beauty, modeling, cosmetics or related products or services. Includes product reviews, comparisons, and general consumer information. |
Сайты о моде, ювелирных изделиях, гламуре, красоте, модельном бизнесе, косметике или связанных со всем перечисленным товарах или услугах. Включает отзывы, сравнения, а также общую информацию, полезную потребителю. |
|
64 |
Greeting cards |
Sites that allow people to send and receive greeting cards and postcards. |
Сайты, которые позволяют людям получать и отправлять поздравительные открытки. |
|
65 |
Hacking |
Sites that promote or give advice about how to gain unauthorized access to proprietary computer systems, for the purpose of stealing information, perpetrating fraud, creating viruses, or committing other illegal activity related to theft of digital inform |
Сайты, которые способствуют или содержат рекомендации о том, как получить несанкционированный доступ к компьютерным системам с целью кражи информации, совершения мошеннических действий, советы по созданию вирусов или совершению других видов незаконной деятельности, связанной с кражей цифровой информации. |
|
66 |
Cryptocurrency Mining |
Sites that use cryptocurrency mining technology without user permission. |
Сайты, которые используют технологии майнинга криптовалют без разрешения пользователя. |
|
67 |
Illegal Software |
Sites that illegally distribute software or copyrighted materials such as movies or music, software cracks, illicit serial numbers, illegal license key generators. |
Сайты, которые незаконно распространяют программное обеспечение или защищенные авторским правом материалы, такие как фильмы, музыка, незаконные серийные номера, генераторы ключей. |
|
68 |
Image Sharing |
Sites that host digital photographs and images, online photo albums and digital photo exchanges. |
Порталы для размещения цифровых фотографий и изображений, фотоальбомы и фотообменники. |
|
69 |
Information Security |
Sites that provide legitimate information about data protection, including newly discovered vulnerabilities and how to block them |
Сайты, которые предоставляют информацию о законной защите данных, в том числе о новых угрозах и способах борьбы с ними. |
|
70 |
Instant Messaging |
Sites that enable logging in to instant messaging services such as ICQ, AOL Instant Messenger, IRC, MSN, Jabber, Yahoo Messenger, and the like |
Сайты, которые позволяют создавать и использовать аккаунт в службах обмена мгновенными сообщениями, таких как ICQ, AOL Instant Messenger, IRC, MSN, Jabber, Yahoo Messenger, и т.п. |
|
71 |
Network Errors |
Sites that do not resolve to any IP address. |
Сайты, которым не присвоен IP-адрес. |
|
72 |
Parked Domains |
Sites that are inactive, typically reserved for later use. They most often do not contain their own content, may simply say "under construction," "purchase this domain," or display advertisements. |
К паркованным доменам относятся URL-адреса с ограниченным контентом, конечные точки перехода с рекламных объявлений. Подобные ресурсы могут приносить прибыль, но, как правило, не несут в себе полезной для пользователя информации. Категория также включает в себя сайты, находящиеся на реконструкции, папки и базовые страницы веб-серверов. |
|
73 |
Peer-to-Peer |
Sites that enable direct exchange of files between users without dependence on a central server. |
Сайты, которые позволяют осуществлять прямой обмен файлами между пользователями вне зависимости от центрального сервера. |
|
74 |
Private IP Addresses |
Sites that are private IP addresses as defined in RFC 1918, that is, hosts that do not require access to hosts in other enterprises (or require just limited access) and whose IP address may be ambiguous between enterprises but are well defined within a certain enterprise. |
Включает наборы IP-адресов, определенные в RFC 1918. |
|
75 |
School Cheating |
Sites that promote unethical practices such as cheating or plagiarism by providing test answers, written essays, research papers, or term papers. |
Сайты с ответами на различные школьные тесты, написанными эссе, рефератами, исследовательскими или курсовыми работами. |
|
76 |
Sex Education |
Sites relating to sex education, including subjects such as respect for partner, abortion, gay and lesbian lifestyle, contraceptives, sexually transmitted diseases, and pregnancy. |
Сайты, связанные с сексуальным образованием, включая такие темы, как уважение к партнеру, аборты, бисексуальный образ жизни, противозачаточные средства, заболевания, передаваемые половым путем и беременность. |
|
77 |
Tasteless |
Sites with offensive or tasteless content such as bathroom humor, or gruesome or even frightening content such as shocking depictions of blood or wounds, or cruel animal treatment. |
Сайты с оскорбительным контентом, такого рода как юмор "ниже пояса", ужасный или даже пугающий контент, шокирующие изображения крови, ран или жестокого обращения с животными. |
|
78 |
Child Abuse Images |
Sites that portray or discuss children in sexual or other abusive acts |
Сайты, содержащие фотографии, иллюстрирующие случаи жестокого обращения с детьми. |
|
79 |
Gay, Lesbian or Bisexual |
Web pages that cater to or discuss the gay, lesbian, bisexual or transgender lifestyle. |
Сайты, содержащие материалы о геях, лесбиянках, трансгендерах. |
|
80 |
Literature and Books |
Web pages for published writings including fiction and non-fiction novels, poems and biographies. |
Сайты, содержащие опубликованные книги, новеллы, рассказы, включая фантастику, биографии. |
|
81 |
Nutrition and Diet |
Web pages on losing weight and eating healthy, diet plans, weight loss programs and food allergies. |
Сайты, посвященные правильному питанию, снижению веса, диетам. |
|
82 |
Pets and Animals |
Web pages with information or products and services for pets and other animals including birds, fish, and insects. |
Сайты, посвященные продуктам и сервисам для домашних и других животных. |
|
84 |
Updates |
All sites with software updates, OS updates, security updates. |
Сайты обновлений программного обеспечения, обновлений операционных систем, обновлений |
|
97 |
Reputation: Low risk |
Sites with low reputational risk. Web sites with no known security risks, but belonging to categories of sites that may be a risk. |
Сайты с низким репутационным риском. Как правило это сайты, не имеющие известных уязвимостей, но относящиеся к категориям, где риск нарушения безопасности возможен. |
|
98 |
Reputation: Medium risk |
Sites with medium reputational risk. Web sites that may be harmless, but belong to categories of sites that could harm your computer. |
Сайты со средним репутационным риском. Как правило это сайты, которые могут содержать уязвимости и относящиеся к категориям, где риск нарушения безопасности возможен. |
|
99 |
Reputation: High risk |
Sites with high reputational risk. Web sites that are confirmed to be a security risk. |
Сайты с высоким репутационным риском. Сайты с известными уязвимостями. |
|
HTTP Header |
Request/Response |
SET/REPLACE/ENCRYPT |
APPEND |
DELETE |
|---|---|---|---|---|
|
Accept |
Request |
|
|
|
|
Accept-Charset |
Request |
|
|
|
|
Accept-Encoding |
Request |
|
|
|
|
Accept-Language |
Request |
|
|
|
|
Accept-Ranges |
Response |
|
|
|
|
Age |
Response |
|||
|
Allow |
Request/Response |
|
|
|
|
Authorization |
Request |
|||
|
Cache-Control |
Request/Response |
|
|
|
|
Client-IP |
Request |
|
|
|
|
Connection |
Request/Response |
|
||
|
Content-Encoding |
Request/Response |
|
||
|
Content-Language |
Request/Response |
|
||
|
Content-Length |
Request/Response |
|||
|
Content-Location |
Request/Response |
|
|
|
|
Content-Range |
Request/Response |
|||
|
Content-Type |
Request/Response |
|||
|
Cookie |
Request |
|
|
|
|
Date |
Request/Response |
|||
|
ETag |
Response |
|
|
|
|
Expect |
Request |
|
||
|
Expires |
Request/Response |
|
|
|
|
From |
Request |
|
|
|
|
Host |
Request |
|||
|
If-Match |
Request |
|
||
|
If-Modified-Since |
Request |
|||
|
If-None-Match |
Request |
|
||
|
If-Range |
Request |
|||
|
If-Unmodified-Since |
Request |
|||
|
Last-Modified |
Request/Response |
|||
|
Location |
Response |
|
|
|
|
Max-Forwards |
Request |
|||
|
Meter |
Request/Response |
|
|
|
|
Pragma |
Request/Response |
|
|
|
|
Proxy-Authenticate |
Response |
|
||
|
Proxy-Authorization |
Request |
|
||
|
Proxy-Connection |
Request |
|
||
|
Range |
Request |
|
|
|
|
Referer |
Request |
|
|
|
|
Retry-After |
Response |
|
|
|
|
Server |
Response |
|
|
|
|
Set-Cookie |
Response |
|
|
|
|
TE |
Request |
|
||
|
Trailer |
Request/Response |
|
||
|
Transfer-Encoding |
Request/Response |
|
||
|
Upgrade |
Request/Response |
|
||
|
User-Agent |
Request |
|
|
|
|
Vary |
Response |
|
|
|
|
Via |
Request/Response |
|
|
|
|
Warning |
Request/Response |
|
|
|
|
WWW-Authenticate |
Response |