Перенаправления запросов заблокированных сайтов в SQUID
Появилась необходимость настроить в Squid перенаправление на определенный сайт в случае если пользователь пытается зайти на сайт который находится в списке заблокированных. Я нашел для себя несколько способов реализовать данную задачу.
Способ #1
Рассмотрим способ мгновенного редиректа на заданный сайт.
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
Обсуждение
Нет комментариев.