Глава 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
Отрицание — разрешить только определённые категории:
Пример 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 данное условие отсутствует.
Проверяет родительскую категорию в иерархии категорий. Предназначено для группировки подкатегорий по общему родителю.
Синтаксис:
Слои и транзакции:
- Слои: Proxy