DansGuardian. Сложности фильтрации русскоязычного контента

  • Автор:

dansguardian-russian.png

Как показал читательский отклик, многие системные администраторы испытывают определенные трудности при настройке фильтрации русскоязычного контента. В общем плане это сводится к тому, что контент-фильтр не блокирует то, что надо. В данной статье мы решили уделить повышенное внимание этому вопросу.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Основная сложность фильтрации русскоязычных текстов - это наличие нескольких кодировок страниц. Наиболее распространена в русскоязычном сегменте Windows-1251, последнее время получает все более широкое распространение UTF-8, а местами до сих пор встречается KOI8-R.

Вторая проблема заключается в том, что настроенный по умолчанию DansGuardian не фильтрует кириллицу в кодировке UTF-8.

Все это довольно неприятно, особенно для школьных администраторов, в чьи служебные обязанности входит обеспечение фильтрации трафика. Значит будем исправлять ситуацию.

Первым делом проведем тонкую настройку, которая позволит DansGuardian наиболее эффективно фильтровать контент в любой из трех возможных кодировок. Откроем /etc/dansguardian/dansguardian.conf в котором найдем и установим следующие значения параметров:

preservecase = 2

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

hexdecodecontent = on

Включает HEX кодировку всех символов для фильтрации страниц с разными кодировками.

forcequicksearch = on

Заменяет стандартный алгоритм DFA, некорректно работающий с Юникодом, алгоритмом Force Quick Search.

Сохраним файл конфигурации и перезапустим DansGuardian, проверим на UTF-8 сайте, ключевые слова должны блокироваться.

Следующим шагом будет составление списков фраз. Понятно, что готовить списки нам придется сразу в трех кодировках, но не стоит пугаться раньше времени. Перейдем в каталог /etc/dansguardian/lists/phraselists и создадим там папку для наших списков:

cd /etc/dansguardian/lists/phraselists
sudo mkdir rus

Перейдем в эту папку и создадим заготовки для файлов списка:

сd  rus
touch rus1251 rusutf8 ruskoi8

Так как системной консолью Ubuntu является UTF-8 основная работа у нас будет происходить с файлом rusutf8. Добавим в него необходимые фразы и их вес. Формат записи следующий:

<фраза>,<40>

Остановимся на одном тонком моменте, пробелах перед и после фразы. Их наличие не допускает подстановку символов при проверке. Так например запись < наркотик > будет блокировать слово "наркотик", но не будет "наркотики". А фраза <эро> заблокирует даже такие слова как "аэрофлот", правильнее будет записать < эро>, что будет блокировать все слова с таким началом.

Создав список в Юникоде, перекодируем его в остальные кодировки:

iconv -f UTF-8 -t WINDOWS-1251 rusutf8 > rus1251
iconv -c -f UTF-8 -t KOI8-R rusutf8 > ruskoi8

Параметр во второй строке предписывает выбрасывать те символы, которые не могут быть преобразованы, потому что KOI8, по сравнению с современными кодировками, содержит ограниченное число символов.

Теперь подключим наши списки, для этого в конец файла /etc/dansguardian/lists/weightedphraselist добавим строки:

#Russian
.Include</etc/dansguardian/lists/phraselists/rus/rus1251>
.Include</etc/dansguardian/lists/phraselists/rus/rusutf8>
.Include</etc/dansguardian/lists/phraselists/rus/ruskoi8>

Сохраним файл и еще раз перезапустим DansGuardian, после чего можем проверить фильтрацию по указанным нами словам.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дополнительные материалы:


  1. DansGuardian. Настраиваем контент-фильтр роутера
  2. DansGuardian. Дополняем контент-фильтр роутера антивирусом ClamAV
  3. DansGuardian. Сложности фильтрации русскоязычного контента
  4. Школьный роутер. Подводим итоги. Теория
  5. DansGuardian. Настраиваем передачу IP-адреса клиента в Squid

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments