Назад | Перейти на главную страницу

Два прозрачных шлюза с использованием squid return 403

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

Топологическая структура сети такая:

Клиент -> | Прозрачный шлюз A -> Прозрачный шлюз B | -> Интернет

        A:172.16.0.1       B:10.190.90.1
  1. Если шлюз A или шлюз B не существует, все в порядке.
  2. Если они оба существуют, клиентский браузер всегда получает 403.

Настройка iptables:

sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

РЕДАКТИРОВАТЬ:

squid.conf обоих шлюзов:

acl localnet src 10.0.0.0/8 # RFC1918 возможная внутренняя сеть

acl localnet src 172.16.0.0/12 # RFC1918 возможная внутренняя сеть

acl localnet src 192.168.0.0/16 # RFC1918 возможная внутренняя сеть

acl localnet src fc00 :: / 7 # RFC 4193 диапазон локальной частной сети

acl localnet src fe80 :: / 10 # RFC 4291 link-local (напрямую подключается)

acl SSL_ports порт 443

acl Safe_ports порт 80 # http

acl Safe_ports порт 21 # ftp

acl Safe_ports порт 443 # https

acl Safe_ports порт 70 # gopher

acl Safe_ports порт 210 # wais

acl Safe_ports port 1025-65535 # незарегистрированные порты

acl Safe_ports порт 280 # http-mgmt

acl Safe_ports порт 488 # gss-http

acl Safe_ports порт 591 # файловый менеджер

acl Safe_ports порт 777 # многоязычный http

acl CONNECT метод CONNECT

http_access deny! Safe_ports

http_access deny CONNECT! SSL_ports

http_access разрешить диспетчер локального хоста

http_access deny manager

http_access разрешить локальную сеть

http_access разрешить localhost

http_access запретить все

http_port 3128 перехват

http_port 3129