Редиректор для Squid

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



Небольшой самописный редиректор для squid, написанный на PERL.
Материал обновлён, выложена информация о новых редиректорах Squid.

Старый материал и старый редиректор SQUID не рекомендуется использовать.

Хочу представить два редиректора для Squid на PERL:

Поисковый редиректор версии 1.
http://sourceforge.net/projects/webdans/files/other/squid_redirector_rus...

Три функциональных режима:
1. Вывод указанной страницы блокировки вместо результатов поиска.
2. Замена поискового запроса на пустышку, в результате выдача поисковика пустая.
3. Замена поискового запроса на случайный безопасный запрос, определенный вами.
Отсутствие ложных срабатываний на сайтах, не являющихся поисковыми машинами.
Свободная лицензия.
Использование специальных опций (safe,family) для Google,Yandex
Распознавание двух кодировок запроса UTF-8 и WIN-1251

Поисковый редиректор версии 2.
Функциональность первой версии + ведение лога поисковых запросов и корректное завершение по сигналу SIGHUP посылаемым Squid.
Использование лога позволяет быстрее формировать списки фраз для ограничения поиска.
Формат лога - обычный CSV(разделитель - точка с запятой), что позволяет очень просто обрабатывать лог.
http://sourceforge.net/projects/webdans/files/other/squid_redirector_sea...

Пример записей лога.
9-1-2013 15:22:29;yandex.ru/yandsearch;192.168.5.200/-;teacher;Дробные+числа
9-1-2013 15:25:27;yandex.ru/yandsearch;192.168.5.200/-;teacher;Части+речи

Если требуется сохранять поисковые запросы в лог, то используйте версию 2.
Если не требуется сохранять поисковые запросы в лог, то используйте версию 1.

Инструкция по установке и использованию внутри архива в обычном текстовом формате.

Материал ниже устарел и не рекомендуется к реальному использованию, но вполне может быть использован в учебных целях.

Имеет одну функцию - отфильтровывает запрос, посланный методом GET в кодировке UTF8 и 1251.
Пример работы.
Вводит пользователь запрос в поисковую систему, типа ******, а ему страница левая по вашему выбору.
Работает на Google, Yandex и др. (желательно в браузере включить кодирование строк url в utf8).

Установка.
1. Копируем скрипт в определенную директорию, например /usr/local/bin/,
устанавливаем владельца и группу скрипта такую же как у squid,
обязательно делаем его исполняемым.

2. Создаем файл для хранения образцов плохих выражений в определенной директории,например файл bad в /usr/local/etc/,
устанавливаем владельца и группу скрипта такую же как у squid.
Каждая запись в файле располагается на новой строке.

Пример файла bad
*******
*******

Не пишу конкретнее, Dansguardian иначе заблокирует.

Открываем в текстовом редакторе скрипт и редактируем две строки.

$poisk="/usr/local/etc/bad";
указываем свое местоположение bad. Доп. кавычек не ставим.
$html="http://192.168.4.1/safeinternet.html";
прописываем свою страницу замены, можно адрес школьного сайта поставить.
:-) Доп. кавычек не ставим.

3. Проверяем работу скрипта, запустив его из консоли.
Записываем в bad слово э р о т и к , естественно слитно, символами в нижнем регистре.

На ввод 5 5 5 5, скрипт должен выдать 5 5 5 5.
На ввод строки http://www.google.com/search?q=%D0%AD%D1%80%D0%9E%D1%82%D0%98%D0%BA%D0%90 5 5 5 скрипт должен вернуть адрес заданной вами страницы плюс 5 5 5.

Если проверка удачная, то

4. подключаем скрипт к Squid,
прописав в Squid.conf две строки:
первая указывает где находится программа редиректора.
вторая количество одновременно запущенных процессов редиректора.

(чем больше скорость доступа в Интернет и интенсивнее использование прокси, тем больше их должно быть, иначе при их нехватке squid может повиснуть.)

redirect_program /usr/local/bin/redir.pl
redirect_children 20

5. Перезапускаем Squid для принятия изменений.

PS. Файл bad должен быть записан в кодировке utf-8, если системная локаль другая, то можно использовать ICONV.

Прикрепленный файлРазмер
redir.pl_.txt5.52 кб