SCROLL
Среднее время на прочтение: 1 мин.

Перенаправления запросов заблокированных сайтов в SQUID

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

Способ #1

Рассмотрим способ мгновенного редиректа на заданный сайт.

Сразу хочу предупредить, что выполнить перенаправление на заданную страницу в Squid возможно только при посещении пользователем HTTP сайтов. К сожалению с HTTPS сайтами перенаправление работать не будет.

В данном способе используем директиву deny_info, синтаксис ее выглядит так:

  • deny_info http://... acl — с указанием внешнего сайта для редиректа.
  • deny_info err_access_denied acl — в указанием информационных страниц Squid

Пример использования с заданным ACL со списком запрещенных сайтов — /etc/squid/blackList.txt

acl blackList dstdomain "/etc/squid/blackList.txt"
...
http_access deny blackList
deny_info http://www.yandex.ru blackList

Теперь если пользователь попытается зайти на заблокированный сайт, то он сразу будет перенаправлен на сайт http://www.yandex.ru

Способ #2

Данный способ отличается от первого тем что, пользователь сперва видит страницу ERR_ACCESS_DENIED и через несколько секунд перенаправляется на заданную нами страницу.

Сперва нужно подготовить страницу ERR_ACCESS_DENIED для редиректа на заданный веб-сайт. Все страницы заготовки находятся тут — /usr/share/squid/errors/Russian-koi8-r.

В файле /usr/share/squid/errors/Russian-koi8-r/ERR_ACCESS_DENIED находим параметр <meta> в секции <head></head>, находим строчку — <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> и приводим ее к виду — <meta http-equiv="refresh" content="5;http://www.yandex.ru">

Пояснения:

  • http-equiv="refresh" — Загрузить другой документ в текущее окно браузера.
  • content="5;http://www.yandex.ru"> — где 5 кол-во секунд и адрес сайта который нужно загрузить.

Теперь если пользователь попытается зайти на заблокированный сайт, то он сразу увидит страницу ERR_ACCESS_DENIED и через 5 секунд будет перенаправлен на сайт http://www.yandex.ru.

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

squid -k reconfigure

 

Обсуждение

0 комментариев

Нет комментариев.