Get Adobe Flash player

postheadericon DansGuardian - лучшая контент-фильтрация

Безусловно, фильтрация по URL и IP-адресам, которую осуществляет Squid, очень быстрая и простая, но существенно ограниченная. При минимуме изобретательности ее можно обойти, и многие web-сайты (особенно сомнительного содержания) постоянно изменяют свои параметры.

Ответом на все это является программа DansGuardian. Как и Squid, DansGuardian может блокировать IP-адреса, URL или целые домены, числящиеся в черном списке. Но подлинная причина, по которой его следует использовать – та, что в первую очередь это фильтр содержимого (контента). DG действительно способен просканировать входящую web-страницу и заблокировать ее, если ее текст нарушает некоторые определенные пользователем критерии.

DansGuardian не скачивает web-страницы напрямую: он создан для работы поверх прокси-сервера, например, Squid. При этом остаются доступными все преимущества повышения скорости, присущие прокси-серверам.

DansGuardian может определять неприемлемые страницы несколькими способами. Простейший из них, который DG разделяет с более традиционными web-фильтрами – это занесение в черные списки IP-адресов, определенных URL или целых доменов. Чтобы определить эти параметры с предельной гибкостью, можно использовать регулярные выражения.

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

Как и web-фильтры, DansGuardian может блокировать или ограничивать скачивание файлов, а также загрузку файлов на сервер через web-формы. Типы MIME, расширения файлов или их размер – все это можно использовать как критерии блокировки. Есть и способы определения вирусов в допустимых вложениях.

 

Установка и настройка DansGuardian

1. Через пакетный менеджер Synaptic установите пакет dansguardian.

2. Отконфигурируйте через Midnight Commander файл /etc/dansguardian/dansguardian.conf:

# выберем внутренний шаблон страницы запрета
reportinglevel = 3
# определим язык страницы с ошибкой, которую покажет DansGuardian при блокировке веб-содержимого
language = 'russian'
# Затем настройте шаблон отображаемой страницы.  В файле /etc/dansguardian/languages/russian/template.html укажите название вашей компании и поменяите текст сообщения под свои нужды.
# укажем IP - адрес фильтра DansGuardian
filterip = 192.168.0.1 (можно оставить пустым, тоже сработает)
# укажем порт фильтра DansGuardian
filterport = 8080
# укажем порт нашего прокси-сервера Squid
proxyip = 127.0.0.1
# в данном случае прокси находится на том же компьютере, если на другом, то просто укажите другой ip-адрес
# укажем порт нашего proxy-сервера Squid
proxyport = 3128
# DansGuardian стоит между браузером и прокси-сервером: в этом случае он будет использовать TCP- порт 8080 для общения с браузером и одновременно порт 3128 для связи с прокси-сервером, прослушивающим этот порт.
# раскомментируем строку "contentscanner", чтобы сообщить DansGuardian о необходимости использовать ClamAV для проверки запрошенных через HTTP файлов.
contentscanner = '/etc/dansguardian/contentscanners/clamav.conf'
# для завершения настройки закомментируйте или удалите следующую строку. Это необходимо для того, чтобы сообщить DansGuardian о том, что мы изменили конфигурацию по-умолчанию.
# UNCONFIGURED - Please remove this line after configuration
# параметры, отвечающие за поиск по фразам
weightedphrasemode = 1
phrasefiltermode = 2
preservecase = 2
hexdecodecontent = on
forcequicksearch = on

# для корректной фильтрации русскоязычного контента выполним такие настройки

# параметр, который проводит фильтрацию в два приема, первый раз приведя все символы к нижнему регистру, а затем используя оригинальное написание
preservecase = 2
# включает HEX кодировку всех символов для фильтрации страниц с разными кодировками
hexdecodecontent = on
# заменяет стандартный алгоритм DFA, некорректно работающий с Юникодом, алгоритмом Force Quick Search
forcequicksearch = on

3. Списки фильтров DansGuardian, которые можно добавить/отредактировать под свои нужды, находятся в директории /etc/dansguardian/lists

banned - именно с этого начинается название черного списка, далее следует название списка (например site) и заканчивается на list. Пример, bannedsitelist - черный список, содержащий имена доменов, но на самом деле домены в нем не указываются, так как логичнее делить их по категориям, поэтому в этом файле прописаны ссылки на соответствующие черные списки.
exception - практически то же только для белых списков.
weightedphraselist - этот файл стоит особняком, поскольку в нем указываются списки с фразами.

4.Составим списки фраз для фильтрации русскоязычного контента. Создавать списки нужно сразу в трех кодировках (Windows-1251, UTF-8, KOI8-R), чтобы потом не было проблем с блокировкой.

Перейдем в каталог /etc/dansguardian/lists/phraselists и создадим там папку для наших списков:

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

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

сd rus
touch rus1251 rusutf8 ruskoi8

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

<фраза>,<40>

Число <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>

Сохраним файл.

5. При запущенном прокси-сервере Squid запустите DansGuardian:

  • service dansguardian start - запуск DansGuardian.
  • service dansguardian stop - остановка DansGuardian.
  • service dansguardian restart - перезапуск DansGuardian.

Или:

  • /etc/init.d/dansguardian start
  • /etc/init.d/dansguardian stop
  • /etc/init.d/dansguardian restart


5. Если вы хотите запретить пользователям работать в обход DansGuardian, то от rootа выполните следующие команды:

ufw default DENY
ufw ALLOW 8080
ufw enable

Благодаря этим правилам, вы будете уверены в том, что входящие соединения на порт, отличный от 8080 (порта, на котором работает DansGuardian), будут заблокированы, и пользователи не смогут получить доступ к открытому прокси-серверу Squid на порту 3128. Также вы можете просто заблокировать порт 3128 следующим образом:

ufw DENY 3128

Скачать PCLinuxOS

Поиск
Язык сайта