Я пытаюсь заставить прокси-сервер Squid работать как прозрачный прокси-сервер, и я сталкиваюсь с некоторыми проблемами, причины которых я не могу понять. Используемая мной установка - это несколько VLAN со специфическими «ролями», если вы говорите (например: 1 vlan для внешних / гостевых устройств, таких как планшеты и стартовые телефоны, другой для внутренних устройств, таких как планшеты и смартфоны, и, наконец, один для «обычного» рабочего стола и сетевые принтеры).
Эти доступы в vlan контролируются брандмауэром Checkpoint, включая доступ в Интернет, где у меня есть VLAN, я хочу использовать прозрачный прокси-сервер, используйте параметр сопоставления портов для перенаправления всего трафика порта 80 из этой VLAN на сервер squid, чтобы я мог управлять веб-доступ с помощью squid. Я нарисовал небольшую диаграмму на тот случай, если я плохо ее объяснил (извините, мой основной язык не английский ...)
Я использую виртуальную машину с 1 сетевой картой с установленным Debian 7.6 и скомпилированным squid 3.4.6 из исходного кода со следующими параметрами:
#!/bin/sh
'./configure' \
'--build=x86_64-linux-gnu' \
'--srcdir=.' \
'--prefix=/usr' \
'--includedir=/usr/include' \
'--localstatedir=/var' \
'--mandir=/usr/share/man' \
'--infodir=/usr/share/info' \
'--libexecdir=/usr/lib/squid' \
'--datadir=/usr/share/squid' \
'--sysconfdir=/etc/squid' \
'--localstatedir=/var' \
'--bindir=/usr/sbin' \
'--enable-inline' \
'--enable-ssl' \
'--enable-ssl-crtd' \
'--enable-icap-client' \
'--enable-follow-x-forwarded-for' \
'--enable-removal-policies=heap,lru' \
'--enable-delay-pools' \
'--enable-cache-digests' \
'--enable-storeio=ufs,aufs,diskd,rock' \
'--enable-disk-io' \
'--enable-linux-netfilter' \
'--enable-ipf-transparent' \
'--disable-eui' \
'--disable-snmp' \
'--disable-wccp' \
'--disable-wccpv2' \
'--disable-http-violations' \
'--disable-translation' \
'--disable-auto-locale' \
'--disable-htcp' \
'--disable-internal-dns' \
'--with-default-user=proxy' \
'--with-logdir=/var/log/squid/' \
'--with-pidfile=/var/run/squid.pid' \
'--with-filedescriptors=65536' \
'--with-cppunit-basedir=/usr' \
'--with-large-files' \
"$@"
Я сделал небольшую конфигурацию squid для тестирования, содержащую следующие
http_port 10.5.0.86:3128
http_port 10.5.0.86:8080 intercept
visible_hostname proxyd.domain.com
dns_nameservers 8.8.8.8 8.8.4.4
always_direct allow all
access_log stdio:/var/log/squid/access.log
cache_log /var/log/squid/cache.log
coredump_dir /var/cache/squid
shutdown_lifetime 1 second
acl lan src 10.1.0.3/24
acl pc src 10.2.0.3
http_access allow lan
http_access allow pc
http_access deny all
Я включил опцию IP Foward в Linux, выполнив следующие действия:
echo "1" > /proc/sys/net/ipv4/ip_forward
Наконец, я использую правила IPTABLES из вики по Squid для источника перенаправления:http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxRedirect:
# Generated by iptables-save v1.4.14 on Fri Aug 29 16:43:22 2014
*mangle
:PREROUTING ACCEPT [2979:777594]
:INPUT ACCEPT [2979:777594]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2715:858098]
:POSTROUTING ACCEPT [2715:858098]
-A PREROUTING -p tcp -m tcp --dport 8080 -j DROP
COMMIT
# Completed on Fri Aug 29 16:43:22 2014
# Generated by iptables-save v1.4.14 on Fri Aug 29 16:43:22 2014
*nat
:PREROUTING ACCEPT [205:16651]
:INPUT ACCEPT [211:17011]
:OUTPUT ACCEPT [161:9775]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -s 10.5.0.86/32 -p tcp -m tcp --dport 80 -j ACCEPT
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A POSTROUTING -j MASQUERADE
COMMIT
# Completed on Fri Aug 29 16:43:22 2014
Проблема, с которой я сталкиваюсь, заключается в том, что при попытке подключиться из любого браузера на порт 8080 (ведь весь трафик 80 перенаправляется с этой конкретной VLAN на сервер squid) с режимом перехвата в браузере я получаю сообщение об ошибке squid, говорящее «Подключение к Ошибка 10.5.0.86 Система вернула (111) Connection Refused ", и в журнале squid access.log я получаю:
32 10.1.0.2 TCP_MISS/503 3942 GET http://www.serverfault.com/ - ORIGINAL_DST/10.5.0.86 text/html
166 10.1.0.2 TCP_MISS/503 3976 GET http://www.squid-cache.org/Artwork/SN.png - ORIGINAL_DST/10.5.0.86 text/html
0 10.1.0.2 TCP_MISS/503 3888 GET http://www.serverfault.com/favicon.ico - ORIGINAL_DST/10.5.0.86 text/html
Я пробовал несколько разных конфигураций, и я не могу правильно настроить режим перехвата / прозрачности. просто примечание, когда я использую браузер и настраиваю порт 3128, прокси работает нормально.