Перейти к содержанию

Глава 13. Условия категорий

Условия категорий позволяют фильтровать трафик по категории контента запрошенного URL. Категории назначаются URL-адресам через определения политики (блоки define category), установленную базу контент-фильтра или стороннюю базу данных.

13.1. category=

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

Категории могут быть назначены URL-адресам через политику (см. define category), через локальную базу данных, которую вы поддерживаете, или через стороннюю базу данных.

URL, который не категоризирован, получает категорию none.

Если выбран провайдер контент-фильтра, но при определении категории происходит ошибка, URL получает категорию unavailable (в дополнение к категориям, назначенным напрямую политикой). Ошибка может быть результатом отсутствия базы данных или истечения лицензии. В последнем случае дополнительно назначается категория unlicensed.

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

Примечание: Если category=unlicensed истинно, то category=unavailable также истинно.

Принимаемые имена (эквивалентны, одно поле UrlCategory): category= и url.category= — оба как в BlueCoat (синонимы); правила с любым из имён импортируются без изменений. Для категории целевого (upstream) URL — отдельное условие server_url.category=.

Синтаксис:

category={status|category_name1[,category_name2,...]|category_group1[,category_group2,...]}
url.category={status|category_name1[,...]}          ; синоним category=

где:

  • status — одно из системных значений: none, pending, unavailable, unlicensed
  • category_name — имя категории, определённое политикой или провайдером контент-фильтра
  • category_group — имя группы категорий, определённое политикой или провайдером

Поддерживается отрицание через != или =!.

Специальные значения:

Значение Описание
none URL не категоризирован
pending Категоризация в процессе
unavailable Сервис категоризации недоступен (ошибка базы или лицензии)
unlicensed Лицензия на контент-фильтр истекла или отсутствует

Слои и транзакции:

  • Слои: Cache, Exception, Proxy, SSL, SSL-Intercept
  • Транзакции: все прокси-транзакции

Пример 1

Заблокировать запросы к играм и спортивному контенту и вернуть указанную страницу исключения:

<Proxy>
    ; Проверяет, попадает ли запрос в одну из этих категорий
    category=(Sports, Games) exception(content_filter_denied)
    category=unavailable exception(content_filter_unavailable) ; безопасный отказ (блокировка)

Пример 2

Использование блока define category для группировки категорий:

define category blocked_cats
    Malware
    Phishing
    "Adult Content"
    Gambling
end

<Proxy>
    category=blocked_cats deny
    category=none log(yes)                 ; логировать некатегоризированные
    allow

Пример 3

Отрицание — разрешить только определённые категории:

<Proxy>
    category!=Business deny

Пример 4

Пользовательские категории с доменами — блокировка конкретных сайтов:

define category blocked_sites
    malware-distribution.example.com
    phishing-site.example.com
    httpbin.org
end

<Proxy>
    category=blocked_sites deny
    ALLOW

Домены в define category автоматически распознаются (по наличию .) и регистрируются для сопоставления. Поддерживается сопоставление по суффиксу — sub.httpbin.org совпадает с категорией httpbin.org.

Домен может принадлежать одновременно нескольким категориям — и из установленной базы контент-фильтра, и пользовательской. Правила для обеих категорий проверяются корректно.

См. также:

  • Условия: server_url.category=, url.category=
  • Свойства: exception()
  • Определения: define category

13.2. category.parent=

Статус: планируется. Не реализовано. Использование в CPL файле приведёт к ошибке парсинга.

Расширение Redcoat. В BlueCoat данное условие отсутствует.

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

Синтаксис:

category.parent=parent_category_name

Слои и транзакции:

  • Слои: Proxy