Просмотр Исходного

{toc}



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

Поддерживаются списки URL и списки доменов.

h2. Обобщённое устройство дополнительных списков

Для настройки дополнительных списков нужно три "компонента":
* Файл со списком заблокированных ресурсов, описывающий *категорию ресурсов*
* Файл со списком IP сетей, описывающий *категорию абонентов*
* Файл со списком *сопоставлений*, в котором категории ресурсов привязываются к категориям абонентов.

Ко всем этим файлам относятся те же самые требования, что и к обычным пользовательским спискам (в списках URL должны быть HTTP-URL, в списке доменов - домены, в списке IP - IPv4 адреса).
Все эти файлы располагаются в директори.


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

При изменении файла сопоставлений и добавлении новых URL/доменов (например при первичной настройке) требуются полная обработка списков перезапуск службы /app/reductor.

Рекомендуем проверить фильтрацию URL/доменов для абонента входящего в категорию для которой фильтрация предполагается и для абонента вне таких групп до (не должно работать) и после (должно заработать) настройки.


{code}
chroot /app/reductor/ /usr/local/Reductor/bin/update.sh
/app/reductor/service restart
{code}

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

h3. Категории URL

Создайте папку для *категорий URL*

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

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

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


h4. Примеры

{code}
# cat /app/reductor/cfg/userinfo/hooks/custom_url_lists/1
http://test1.category1.example.com/index.html
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://test4.category2.example.com
{code}

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

123

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

123

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

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

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

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

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

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


h4. Примеры

{code}
# cat /app/reductor/cfg/userinfo/hooks/custom_domains/1
test1.category1.example.com
test2.category1.example.com
# cat /app/reductor/cfg/userinfo/hooks/custom_domains/2
test3.category2.example.com
test4.category2.example.com
{code}

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

123

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

123

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

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

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

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

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

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

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

{code}
mkdir -p /app/reductor/cfg//userinfo/hooks/custom_ipsets
{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}

h2. Связывание этих списков и разные страницы редиректа

Далее необходимо описать связь между этими списками в файле.

h5. Для *URL:*

{panel}
/app/reductor/cfg/userinfo/hooks/custom_bindings
{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}

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]