Документация по ОС FreeBSD Пятница, 29.03.2024, 09:07
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Squid

Rejik — блокируем нежелательный контент [2009]

Вам надоело бесконтрольно пускать юзеров на любые сайты и позволять им качать что ни попадя? Или раздражают рекламные баннеры? А может и то и другое? В общем, сегодня речь пойдет о высокопроизводительном контент-фильтре для Squid или по-другому редиректоре — Rejik.

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

Squid, наверное самый популярный на сегодня прокси-сервер, позволяет использовать внешнюю программу редиректор для фильтрации запросов клиентов. Принцип действия редиректора таков: любой запрос клиентского браузера поступает на прокси-сервер, где данные о запросе передаются на стандартный вход редиректора. Редиректор анализирует поступившие данные и при соблюдении соответствующих условий перенаправляет на требуемый ресурс.

Приведем пример: допустим Squid отдает редиректору такой запрос от клиента (как видите это не запрос HTTP в чистом виде):

http://www.mp3.ru/pesna.mp3 192.168.1.100/- username GET

Посмотрите из чего состоит запрос:

  • http://www.mp3.ru/pesnya.mp3 — запрашиваемый url
  • 192.168.1.100/-  — ip адрес клиента/(имя хоста клиента или «-»)
  • username — логин клиента, если нет авторизации, то «-»
  • GET — метод запроса

редиректор, по нашему замыслу должен привести его к такому виду:

http://127.0.0.1/antimp3.mp3 192.168.1.100/- username GET

В результате пользователь получает вместо вожделенной попсовой эмпэтришки, эксклюзивную запись «владимирского централа» с последнего корпоратива в вашем оригинальном исполнении под аккомпанемент караоке. Или можно подменить картинки с порносайтов на ваше нагло улыбающееся лицо — тоже получится довольно забавно :)

Ну это лирика, ограничимся заменой рекламы на прозрачные .gif 1×1, а вместо порно ресурсов и сайтов с mp3 просто выведем странички с сооответсвующими запрещяющими надписями. Например: «Данный сайт содержит порнографические материалы и заблокирован для просмотра в сети. В случае ошибочной блокировки ресурса, рекомендуем обратиться к администратору сети».

Как всегда, пример будет для FreeBSD. Для Linux всё отличается в основном путями, так что основные принципы неизменны. Для начала компилируем и устанавливаем порт.

cd /usr/ports/www/rejik/
make install

По умолчанию программа будет установлена в /usr/local/rejik. Теперь можно приступать к настройке. В качестве примера рассмотрим случай с авторизацией пользователей в Squid по логину и паролю.

cd /usr/local/rejik
cp redirector.conf.dist redirector.conf
vi redirector.conf
error_log /var/squid/rejik/redirector.err
change_log /var/squid/rejik/redirector.log
make-cache /usr/local/rejik/make-cache
allow_urls /usr/local/rejik/banlists/allow_urls
  
<BANNER>
ban_dir /usr/local/rejik/banlists/banners
url http://127.0.0.1/ban/1x1.gif
log off
  
<PORNO>
ban_dir  /usr/local/rejik/banlists/porno
url http://127.0.0.1/ban/porno.html
  
<MP3>
ban_dir /usr/local/rejik/banlists/mp3
url http://127.0.0.1/ban/mp3.html
allow_id f:/usr/local/rejik/banlists/noblock
<JS>
ban_dir /usr/local/rejik/banlists/js
url http://127.0.0.1/ban/js.js
log off

Рассмотрим подробнее параметры конфига:

  • error_log /var/squid/rejik/redirector.err — параметр определяющий путь к файлу, содержвщему ошибки выполнения, оставим включеным на этапе настройки, при дальнейшей нормальной работе отключим.
  • change_log /var/squid/rejik/redirector.log — указывает где будет вестись лог Rejik.
  • make-cache /usr/local/rejik/make-cache — при старте запускается внешняя программа make-cache, которая создает urls.cache файлы для всех urls файлов. Можно запускать и вручную.
  • allow_urls /usr/local/rejik/banlists/allow_urls — путь к файлу разрешенных сайтов, никакие замены для сайтов, указанных в файле, не производятся. Url сайтов прописываются по одному в каждой строке файла.
  •  — <> означают секционные настройки. Внутри <> пишется название секции, которое отобразится в логе при срабатывании правила из этой секции.
  • ban_dir /usr/local/rejik/banlists/banners — путь к папке, в которой находятся файлы с правилами.
  • url http://127.0.0.1/ban/1×1.gif — указываем чем заменить страницы, попавшие под правила данной секции. В url можно указать специальные переменные, которые будут заменены на данные из запроса клиента (подробности на сайте разработчика)
  • log off — не записывать в лог замены, сделанные в этой секции.
  • allow_id f:/usr/local/rejik/banlists/noblock — файл с логинами для которых не производятся какие-либо замены исходя из правил данной секции (в случае, когда пользователи авторизуются в squid по логину).

Для формирования бан-листов, в режике используется два типа правил: urls (простые списки блокируемых сайтов) и pcre (на основе регулярных выражений). Пример pcre-файла для запрета загрузки медийных файлов:

\.mpg([\W_]|$)
\.mp3([\W_]|$)
\.avi([\W_]|$)
\.wav([\W_]|$)
\.mpeg([\W_]|$)

Пример файла allow_urls. Список сайтов, для которых не производятся проверки.

goodsite1.ru
goodsite2.ru
192.168.1.1

Пример файла noblock, содержаший логины на прокси-сервере

director
admin
OtherGoodUser

Осталось найти в конфигурационном файле Squid строку url_rewrite_program и привести её к такому виду:

url_rewrite_program /usr/local/rejik/redirector

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



Источник: http://www.mdex.nnov.ru/rejik-blokiruem-nezhelatelnyj-kontent.html
Категория: Squid | Добавил: oleg (23.01.2010) | Автор: Dreamer
Просмотров: 1611 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links
pdf password removal

Copyright MyCorp © 2024