Расширяем функциональность Dansguardian.

Изображение пользователя den2007.


Не так давно, пытаясь подключить в Dansguardian возможность обхода заблокированных страниц по паролю, наткнулся на очень интересную WIKI по DANSGUARDIAN, правда на английском, но всё-таки с её помощью я разрешил свою задачу :)

http://contentfilter.futuragts.com

У любого коммерческого фильтра, есть возможность просмотра заблокированного сайта, введя специальный пароль.
Конечно, такой фильтр как Dansguardian тоже имеет такую функцию, но к сожалению она не используется сразу.
Для чего это может быть полезно?
Например, когда Dansguardian по ошибке заблокировал материал, а он нужен прямо сейчас, а времени заходить на сервер и править конфиги нет. Или например, все видео-форматы заблокированы, а вам надо скачать например видео с экспериментом по физике.

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

Скрипт взят с WIKI http://contentfilter.futuragts.com , он присоединен к статье.

Итак приступим.
Скачаем два файла, прикреплённые к статье, и переименуем их в templates.html и passwords.cgi.
Теперь скопируем templates.html в /usr/share/dansguardian/languages/russian-1251, заменив оригинальный файл.
Отличие от оригинального заключается в добавленной форме html.

Скрипт passwords.cgi копируем в каталог для скриптов на веб-сервере, у меня по умолчанию /var/www/cgi-bin

Теперь в templates.html находим строку
FORM id="myform" action="http://192.168.4.1/cgi-bin/passwords.cgi" method="post"
и заменяем адрес расположения скрипта http://192.168.4.1/cgi-bin/passwords.cgi на свой.
Теперь откроем passwords.cgi
здесь задаем:

пароль
my %passwordlist = ( "ВАШ ПАРОЛЬ", "admin");

ключевую фразу
my $magic = 'ВАША ФРАЗА или ПРОСТО НАБОР СИМВОЛОВ';

адрес веб-страницы, которая будет выводиться при неправильном пароле
my $invalidurl = "АДРЕС СТРАНИЦЫ";

Пока все, переходим к настройке Dansguardian.

Открываем dansguardian.conf
Изменяем опции, как показано ниже:

reportinglevel=3
т. е. использовать HTML-шаблон для формирования страницы запрета.

language='russian-1251'
чтобы использовать наш измененный шаблон

Сохраняем.

Переходим к конфигурационному файлу соответствующей группы, по-умолчанию всего одна.

Открываем dansguardianf1.conf
Изменяем опции, как показано ниже:

bypass = -1
разрешаем работу с внешней программой для генерации ссылок для обхода фильтра.

bypasskey ='ВАША КЛЮЧЕВАЯ ФРАЗА'
вводим ключевую фразу, которую вводили в passwords.cgi

Сохраняем и закрываем.

Перезапускаем Dansguardian.

Пробуем зайти на отключенный Dansguardian ресурс, в появишемся окне вводим пароль, указанный в passwords.cgi и либо получаем доступ, либо попадем на страницу с сообщением о неверном пароле.

Конечно это только базовое применение, функциональность скрипта и такого подхода можно значительно расширить, добавив контроль над именами пользователей, и URL в скрипте.

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

Всем, кто читает мои материалы огромное СПАСИБО, за проявленный Вами интерес к ним.

Прикрепленный файлРазмер
template.html_.txt2.79 кб
passwords.cgi_.txt1.17 кб