Общая информация
Carbon Reductor поддерживает фильтрацию с помощью нескольких списков, что позволяет блокировать разным абонентам разные ресурсы и показывать разные страницы заглушки в зависимости от того из какого списка запрещённых URL был открыт ресурс.
Кастомные списки располагаются в директории:
/usr/local/Reductor/userinfo/hooks
и состоят из списков заблокированных ресурсов, списков абонентских сетей и файла с описанием связки между ресурсами и абонентами, а также страницей на которую они будут редиректиться.
Описания файлов
Разные списки заблокированных URL
В первую очередь нужно перечислить список блокируемых URL.
Создайте папку
mkdir -p /usr/local/Reductor/userinfo/hooks/custom_url_lists/
внутри неё создайте файл со списком url (требования к спискам те же, что и для собственных списков провайдера).
Важно: эти списки не обрабатываются системой обработки списков и загружаются как есть. Если в них будут ошибки - это может привести к неработоспособности системы фильтрации. Также списки должны быть отсортированы с помощью утилиты sort.sh, например таким образом:
/usr/local/Reductor/bin/sort.sh /usr/local/Reductor/userinfo/hooks/custom_url_lists/1
название файла должно состоять из номера списка (без расширения), который будет использоваться в качестве его идентификатора при создании правила и загрузки списка в ядро.
Пример:
/usr/local/Reductor/userinfo/hooks/custom_url_lists/1 /usr/local/Reductor/userinfo/hooks/custom_url_lists/2
содержимое:
# cat /usr/local/Reductor/userinfo/hooks/custom_url_lists/1 http://боль.кладбище.гроб.рф http://игил.и.прочие.тренды.рф http://sorry.for.this.example.com # cat /usr/local/Reductor/userinfo/hooks/custom_url_lists/2 http://something.very.bad
Разные подсети абонентов
Создайте папку
mkdir -p /usr/local/Reductor/userinfo/hooks/custom_ipsets
внутри неё создайте файл со списком подсетей (требования к спискам те же, что и для собственных списков провайдера).
название файла должно состоять из номера списка (без расширения), который будет использоваться в качестве его идентификатора при создании правила и загрузки списка в ядро.
Пример:
/usr/local/Reductor/userinfo/hooks/custom_ipsets/1 /usr/local/Reductor/userinfo/hooks/custom_ipsets/2
содержимое:
# cat /usr/local/Reductor/userinfo/hooks/custom_ipsets/1 192.168.3.0/24 10.30.0.0/16 # cat /usr/local/Reductor/userinfo/hooks/custom_ipsets/2 196.168.4.0/24
Связывание этих списков и разные страницы редиректа
Далее необходимо описать связь между этими списками в файле
/usr/local/Reductor/userinfo/hooks/custom_bindings
Формат файла:
1 колонка - id списка (одноимённо с файлом списка, только цифры. id списка фильтрации по всем ФЗ, минюсту, our.list итд - 0).
2 колонка - id ipset’а
3 колонка - url куда редиректить
4 колонка - комментарий, в правиле показываться будет
разделитель - пробел или tab, комментарии не поддерживаются
Пример содержимого для редиректа части абонентов на другую заглушку:
0 1 http://www.patriarchia.ru just_other_block_page 0 -1 http://default.redirect.page/ default
Пример содержимого для фильтрации доп. URL для части абонентов:
1 1 http://www.patriarchia.ru no_suicide_and_terrorism 2 2 http://somthing.very.good no_something_very_bad
Применение
update нужен для подтягивания сигнатур
service reductor update /usr/local/Reductor/bin/restart.sh --force