Многосписочность

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (55)

просмотр истории страницы
{toc}



Carbon Reductor позволяет блокировать разным абонентам разные ресурсы и показывать разные страницы заглушки в зависимости от списка запрещённых URL к которому принадлежит ресурс.

{code}
# cat /app/reductor/cfg/userinfo/hooks/custom_url_lists/1
http://test1.category1.example.com/index.html http://bad.example.com
http://test2.category1.example.com/bad-things-in-internet.html
# cat /app/reductor/cfg/userinfo/hooks/custom_url_lists/2
http://test3.category2.example.com/one-more-bad-thing.php?param=1 http://torrents.example.com
http://test4.category2.example.com http://piracy.example.com
{code}

h3. Категории абонентов

123
Создайте папку для *категорий абонентов*

{code}
mkdir -p /app/reductor/cfg/userinfo/hooks/custom_ipsets/
{code}

внутри неё создайте файл *категории абонентов* со списком IP-адресов ([требования к спискам те же, что и для собственных списков провайдера|http://docs.carbonsoft.ru/67404013]).

название файла должно состоять из *номера категории* (без расширения), например 3, 7, 15 или 163.

h3. Примеры

{code}
# cat /app/reductor/cfg/userinfo/hooks/custom_ipsets/1
192.168.3.0/24
10.30.0.0/16
# cat /app/reductor/cfg/userinfo/hooks/custom_ipsets/2
196.168.4.0/24
{code}

h3. Связь категорий абонентов и URL

123
Создайте файл

{code}
vim /app/reductor/cfg/userinfo/hooks/custom_bindings
{code}

В нём нужно описать связи между категориями абонентов и ресурсов (URL).

Формат файла для списков URL следующий:

# 1 колонка - номер категории ресурсов (URL)
# 2 колонка - номер категории абонентов
# 3 колонка - URL страницы заглушки для перенаправления
# 4 колонка - комментарий, который будет отображаться в правиле фильтрации.

Разделитель - пробел или табуляция, комментарии в файле не поддерживаются.

Номер категории ресурсов заблокированных для всех абонентов (реестр запрещённых сайтов, список МинЮста, собственные списки провайдера) - 0. Не используйте его в файле custom_bindings, это может привести к пропускам фильтрации и штрафам.

h4. Пример

{code}
1 2 http://good.example.com block_bad_things
2 1 http://promo-tv.example.com anti_piracy_promo
{code}

Возьмём первую строчку и попробуем понять что она значит:

Категория URL №1 (см. файл custom_url_lists/1) для категории абонентов №2 (custom_ipsets/2) будет перенаправляться на страницу http://good.example.com.
В файрволе это правило можно будет найти по комментарию "block_bad_things".

h2. Настройка дополнительных списков доменов

h3. Категории абонентов

123
Создайте папку для *категорий абонентов*

h3. Связь категорий абонентов и URL
{code}
mkdir -p /app/reductor/cfg/userinfo/hooks/custom_ipsets/
{code}

123
внутри неё создайте файл *категории абонентов* со списком IP-адресов ([требования к спискам те же, что и для собственных списков провайдера|http://docs.carbonsoft.ru/67404013]).

h1. Предыдущая версия документации
название файла должно состоять из *номера категории* (без расширения), например 3, 7, 15 или 163.

h2. Разные списки заблокированных Domain
h3. Примеры

Нужно перечислить список блокируемых domain. 

Создайте папку

{code}
mkdir -p /app/reductor/cfg/userinfo/hooks/custom_domains/
# cat /app/reductor/cfg/userinfo/hooks/custom_ipsets/1
192.168.3.0/24
10.30.0.0/16
# cat /app/reductor/cfg/userinfo/hooks/custom_ipsets/2
196.168.4.0/24
{code}

Дальше по аналогии с URL, создайте списки с нужными ресурсами.
h3. Связь категорий абонентов и доменов

h2. Разные подсети абонентов
Создайте файл

Создайте папку

{code}
mkdir -p /app/reductor/cfg//userinfo/hooks/custom_ipsets
vim /app/reductor/cfg/userinfo/hooks/custom_bindings_dns
{code}

внутри неё создайте файл со списком подсетей ([требования к спискам те же, что и для собственных списков провайдера|http://docs.carbonsoft.ru/67404013]).
название файла должно состоять из номера списка (без расширения), который будет использоваться в качестве его идентификатора при создании правила и загрузки списка в ядро.
В нём нужно описать связи между категориями абонентов и ресурсов (доменов).

Пример:
{panel}
/app/reductor/cfg/userinfo/hooks/custom_ipsets/1
/app/reductor/cfg/userinfo/hooks/custom_ipsets/2
{panel}
Формат файла для списков доменов следующий:

содержимое:
{panel}
\#cat /app/reductor/cfg/userinfo/hooks/custom_ipsets/1
192.168.3.0/24
10.30.0.0/16
\#cat /app/reductor/cfg/userinfo/hooks/custom_ipsets/2
196.168.4.0/24
{panel}
# 1 колонка - номер категории ресурсов (доменов)
# 2 колонка - номер категории абонентов
# 3 колонка - IP-адрес страницы заглушки для перенаправления
# 4 колонка - режим блокировки. Имеет два варианта:
## with_subdomains - все перечисленные в категории ресурсов домены будут блокироваться "по маскам" со всеми субдоменами.
## exact - все перечисленные в категории ресурсов домены будут блокироваться точечно. Их субдомены не будут заблокированы.
# 5 колонка - тип списка. Имеет два ваианта:
## black - чёрный список, ресурсы будут блокироваться для заданной категории абонентов
## white - белый список, ресурсы будут разблокированы для заданной категории абонентов.
# 6 колонка - комментарий, который будет отображаться в правиле фильтрации.

h2. Связывание этих списков и разные страницы редиректа
Разделитель - пробел или табуляция, комментарии в файле не поддерживаются.

Далее необходимо описать связь между этими списками в файле.
Номер категории ресурсов заблокированных для всех абонентов (реестр запрещённых сайтов, список МинЮста, собственные списки провайдера) - 0. Не используйте его в файле custom_bindings, это может привести к пропускам фильтрации и штрафам.

h5. Для *URL:*
h4. Пример

{panel} {code}
1 1 192.168.1.100 with_subdomains black content_filter
2 2 - exact white monitoring_services
/app/reductor/cfg/userinfo/hooks/custom_bindings {code}
{panel}

Формат файла:
1 колонка - id списка (одноимённо с файлом списка, только цифры. id списка фильтрации по всем ФЗ, минюсту, our.list итд - 0).
2 колонка - id ipset’а
3 колонка - url куда редиректить
4 колонка - комментарий, в правиле показываться будет
разделитель - пробел или tab, комментарии не поддерживаются
Возьмём первую строчку и попробуем понять что она значит:

h3. Пример содержимого для редиректа части абонентов на другую заглушку:
{panel}
0 1 [http://www.patriarchia.ru] just_other_block_page
0 \-1 [http://default.redirect.page/] default
{panel}
Категория доменов №1 (см. файл custom_domains/1) для категории абонентов №1 (custom_ipsets/1) будет перенаправляться на адрес 192.168.1.100. Действовать это будет для всех поддоменов.
В файрволе это правило можно будет найти по комментарию "content_filter".

h3. Пример содержимого для фильтрации доп. URL для части абонентов:
{panel}
1 1 [http://www.patriarchia.ru] no_suicide_and_terrorism
2 2 [http://somthing.very.good] no_something_very_bad
{panel}
Вторая строчка:

h5. Для *Domain:*

/app/reductor/cfg/userinfo/hooks/custom_bindings_dns
Формат файла:
1 колонка - id списка (одноимённо с файлом списка, только цифры. id списка фильтрации по всем ФЗ, минюсту, our.list итд - 0).
2 колонка - id ipset’а
3 колонка \-  IP куда редиректить
4 колонка - Статично прописать "*with_subdomains*"
5 колонка - Вид списка "*black*"
6 колонка - комментарий, в правиле показываться будет
разделитель - пробел или tab, комментарии не поддерживаются

h3. Пример содержимого для редиректа абонентов на заглушку:

{panel}
1 1 192.168.1.100 with_subdomains black content_filter
{panel}[http://test1.category1.example.com]
Категория доменов №2 (см. файл custom_domains/2) для категории абонентов №2 (custom_ipsets/2) не будет никуда перенаправляться, даже если содержится в других чёрных списках. Действовать это будет только для конкретных доменов - если в другом чёрном списке такой домен блокируется по маске - субдомены продолжат блокироваться.