Принудительно использовать прокси во всех браузерах

Я настроил squid с squid с squidguard и при использовании прокси в браузере все работает нормально. Но я хочу использовать прокси (возможно, в iptables) во всех браузерах. Теперь он может быть отключен в настройках браузера пользователем.

Мои настройки: один автономный компьютер с Ubuntu, на котором запущены squid и squidguard, и на этом же устройстве я хочу как-то принудительно использовать прокси. Squid conf установил:

http_port 3128 transparent

Спасибо

2 ответа

То, что вы ищете, это прозрачный прокси. В последний раз я проверял, что есть два способа сделать это с Squid:

  1. Использовать WCCP, который поддерживает Squid.
  2. Направляйте весь интернет-трафик через Squid и перехватывайте трафик через IPTables. Squid называет это кэшем Intercept.

Первый вариант требует поддержки вашей инфраструктуры маршрутизации. Поскольку это протокол Cisco, поддержка за пределами Cisco не является сильной. Это работает, я сделал это, если у вас есть инфраструктура.

Второй вариант гораздо более выполним. Чтобы это работало, вам нужно настроить инфраструктуру маршрутизации для отправки всего интернет-трафика через Squid box. Squid может быть скомпилирован с поддержкой перехвата, и может пройти через репозитории Apt.

Следуя рецепту iptables, прозрачно маршрутизирует весь HTTP-трафик на eth1 (наше внутреннее сетевое устройство на маршрутизаторе) в Squid (и vv).

-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.110.0.1:3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

Если вам случится использовать UFW (как мы делаем), вы можете добавить строку в /etc/ufw/after.rules:

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.110.0.1:3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT

Вы можете найти больше примеров и подробной информации из этой статьи.

Другие вопросы по тегам