Eu estou tentando fazer com que um servidor proxy do squid funcione como um servidor proxy transparente, e estou enfrentando alguns problemas que não consigo descobrir os motivos. A configuração que estou usando é de várias VLANs com "funções" específicas se você disser (exemplo: 1 vlan para dispositivos externos / guests como tablets e start phones, outros para dispositivos internos como tablets e smartphones e por último um para a área de trabalho "normal" impressoras de rede).
Esses acessos na vlan são controlados por um firewall Checkpoint incluindo o acesso à internet, onde eu tenho a VLAN eu quero usar o proxy transparente usar uma opção de porta mapeada para redirecionar todo o tráfego da porta 80 dessa VLAN para o servidor squid Eu posso gerenciar o acesso à web com o squid. Eu desenhei um pequeno diagrama apenas caso eu o explicasse mal (desculpe meu idioma principal não é o inglês ..)
Estouusandoumamáquinavirtualcom1NICcomDebian7.6instaladoecompiladoosquid3.4.6dafontecomasseguintesopções:
#!/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'\"$@"
Eu fiz uma pequena configuração de lula para testes contendo os seguintes
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
eu ativei a opção de IP Foward no linux fazendo o seguinte:
echo "1" > /proc/sys/net/ipv4/ip_forward
Por fim, estou usando as regras do IPTABLES do wiki do squid para a fonte de redirecionamento: link :
# 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
O problema que estou tendo é ao tentar conectar de qualquer navegador na porta 8080 (com todo o tráfego 80 foi redirecionado daquela VLAN específica para o servidor squid) com o modo de interceptação no navegador eu recebo o erro do squid dizendo "Falha na conexão com 10.5.0.86 O sistema retornou (111) Connection Refused" e no squid access.log eu recebo:
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
Eu tentei várias configurações diferentes e não consigo colocar o modo de interceptação / transparente para funcionar corretamente. apenas uma nota lateral ao usar um navegador e eu configurar com a porta 3128 o proxy funciona bem.