Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с 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.
Последние комментарии