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

|

dansguardian-russian.png

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

Основная сложность фильтрации русскоязычных текстов - это наличие нескольких кодировок страниц. Наиболее распространена в русскоязычном сегменте 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, после чего можем проверить фильтрацию по указанным нами словам.

 

Подписка на блог

Наш канал на YouTube Мы в Твиттере

Архивы по месяцам

Реклама

Статистика

 

Яндекс.Метрика

География

Flag Counter

Реклама

Об этой записи

Сообщение опубликовано 09.10.2010 18:22. Автор — Уваров А.С..

Предыдущая запись — Почтовый сервер для начинающих. Структура и принцип работы

Следующая запись — Устанавливаем и настраиваем WSUS.

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.

Реклама

Облако тегов