Имеется squid-havp-squidGuard-squid. Захотелось настроить прокси прозрачно, т.е. чтобы пользователь принудительно без настроек вручную в браузере выходил в инет через эту приблуду. Как я это понимаю, тут есть 2 варианта — либо в конфиге сквида просто указать
http_port 127.0.0.1:8080 transparent http_port 127.0.0.1:3128
(по-моему сомнительный вариант, и на практике у меня не работающий, в таком случае ни havp ни squidGuard ничего не фильтруют). Покопав в инете я нашел вот это
$IPT -t nat -A OUTPUT -p tcp -m owner --uid-owner proxy -j ACCEPT $IPT -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
Выглядит вроде логично и убедительно, поэтому я решил так и сделать. Однако. Squid стал выдавать в окне браузера такое сообщение
Во время доставки URL: / Произошла следующая ошибка: * Неправильный URL Некоторые аспекты URL неправильны. Возможные проблемы: * Отсутствует либо неверный протокол доступа (должен быть `http://'' или похожий) * Отсутствует имя сервера * Некорректный двойной управляющий символ в URL-пути * Недопустимый символ в имени сервера; подчёркивания недопустимы
Причем даже если я привожу правила iptables в прежнее состояние, ошибка остается и в инет попадаю лишь если перезагружаю ос (другого решения не нашел:))
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Что-то ты совсем кашу наворотил…
Чтобы заворачивать на сквид, правило должно быть в PREROUTING, а не OUTPUT…
($IPT -t nat -A PREROUTING -s $net -p tcp --dport 80 -j REDIRECT --to-ports $port )
И в сквиде должно быть обязательно указано, что он должен принудительно пропускать через себя http трафик, как раз таки http_port host:port transparent
С такой настройкой
у меня фильтрация вообще не работает. Логи говорят что вроде как прозрачно, но зачем мне такая прозрачность без самого главного.
Попробую еще раз для уточнения… Сети нет. Мне нужно, чтобы пакеты при запросе firefox шли на порт 8080 а дальше в инет. Правильно ли я понимаю, что при
что пакет приходит из инета (веб сервера) и перенаправляется на порт 8080?
Может для моего случая правильнее так
. Енто как я понимаю будет означать, что пакет с локального процесса (браузера) перенаправляется на порт 8080 и дальше идет на сетевой интерфейс а потом в инет. Исправьте если что плюс дайте кто знает хорошую справку про prerouting postrouting с примерами ;)
Работающее решение такое
Добавлю только что решил отказаться от SquidGuard в пользу dansGuardian. (squid-dansguardian(от подключает к фильтрации также clamav)-интернет
ЗЫ: Зачем и кому это надо? Вряд ли кому-то. Просто хотел узнать как сделать прозрачный прокси на одиночном компе в отсутствии сети. Хотя если компом еще кто то пользуется, то можно всех заставить ходить через squid в независимости от настроек firefox.