|
|||||||
DansGuardian. Сложности фильтрации русскоязычного контента.
Время создания: 28.10.2011 15:06
Автор: Уваров А.С.
Раздел: Компьютер - Linux - Сеть в Linux - DansGuardian
Запись: xintrea/mytetra_syncro/master/base/13197999904q4z5b6rnl/text.html на raw.github.com
|
|||||||
|
|||||||
DansGuardian. Сложности фильтрации русскоязычного контента. Автор: Уваров А.С. 09.10.2010 Как показал читательский отклик, многие системные администраторы испытывают определенные трудности при настройке фильтрации русскоязычного контента. В общем плане это сводится к тому, что контент-фильтр не блокирует то, что надо. В данной статье мы решили уделить повышенное внимание этому вопросу. Основная сложность фильтрации русскоязычных текстов - это наличие нескольких кодировок страниц. Наиболее распространена в русскоязычном сегменте 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, после чего можем проверить фильтрацию по указанным нами словам. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|