Squid 3.4.6 Questões de proxy transparentes

1

Estou tentando implementar um Proxy de Squid Transparente para uma rede sem fio em que ele serve principalmente para dispositivos móveis. O software que estou usando é o squid 3.4.6 (versão mais recente compilada da fonte) no servidor Debian 7.6 e IPTables. Minha Rede é composta de muitas bruxas de VLANs, todas controladas por um firewall central pela CheckPoint, o que nos permite controlar quem vai aonde e onde os servidores vão diretamente para a internet. Aqui está um pequeno diagrama que criei:

Então,oquefizatéagoraéqueisoleiumaVLANapenasparaosdispositivosmóveis,ondeelesrecebemassolicitaçõesDHCP/DNSredirecionadasparaonossodatacenter,ondeestãotodososservidores.Finalmente,usandoumaopçãoqueredirecionatodootráfegoHTTPeHTTPS(httpmapeado)daquelaVLANdedicadaWirelessparaumúnicoservidorSquidnodatacenter.

EuinstaleioservidorsquidcomumNIC(queficatodootráfegodosquidconectadodiretamenteàinternetusandoofirewalldoCheckpoint)Debiancomtodasasatualizaçõeseeuregistreimeuprocessodeinstalaçãoparafacilitarareplicação.Tudoissoéfeitonamesmamáquina:

InstalarasferramentasdoVMWARE

apt-getinstall-ybuild-essentiallinux-headers-amd64mount/dev/cdrom/mnt/cp/mnt/VMwareTools-4.0.0-236512.tar.gz/tmp/umount/mnt/tar-zxvf/tmp/VMwareTools-4.0.0-236512.tar.gz--directory=/tmp/mkdir-pv/usr/lib64/tmp/vmware-tools-distrib/vmware-install.pl--defaultrm/tmp/WM*/tmp/vm*-rf

InstalaroSQUID

apt-getinstall-ylibtoollibssl-devlibcrypto++-devdevscriptsfakeroothtopssl-certsquid-langpack&&apt-getbuild-dep-ysquid3sysctl-wnet.ipv4.ip_forward=1nano/etc/sysctl.conf-net.ipv4.ip_forward=1-net.ipv4.conf.default.rp_filter=0-net.ipv4.conf.default.accept_source_route=0wgethttp://www.squid-cache.org/Versions/v3/3.4/squid-3.4.6.tar.gztar-zxvfsquid-3.4.6.tar.gzcdsquid-3.4.6nanoconfigure.shchmod+xconfigure.sh./configure.shmakemakeinstall

Conteúdodoconfigure.sh

#!/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'\'--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'\"$@"

Configurando o SQUID

nano /etc/init.d/squid
chmod +x /etc/init.d/squid
chown -R proxy:proxy /var/log/squid/
update-rc.d squid defaults
mkdir -p /etc/squid/ssl
openssl genrsa -des3 -out openssl.key 1024
openssl req -new -key openssl.key -out openssl.csr
cp openssl.key openssl.key.old
openssl rsa -in openssl.key.old -out openssl.key
openssl x509 -req -days 365 -in  openssl.csr -signkey openssl.key -out openssl.crt
/usr/lib/squid/ssl_crtd -c -s /etc/squid/ssl/db
nano /etc/squid/squid.conf

Conteúdo do squid.conf

http_port 3128
http_port 3129 transparent
https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=8MB cert=/etc/squid/ssl/openssl.crt key=/etc/squid/ssl/openssl.key version=3
visible_hostname proxyc.domain.com
dns_nameservers 8.8.8.8 8.8.4.4
strip_query_terms on
access_log stdio:/var/log/squid/access.log
cache_log /var/log/squid/cache.log
coredump_dir /var/cache/squid
shutdown_lifetime 1 second
ssl_bump server-first all
always_direct allow all
sslcrtd_program /usr/lib/squid/ssl_crtd -s /etc/squid/ssl/db -M 8MB
sslcrtd_children 5
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER,NO_DEFAULT_CA
http_access allow all
http_reply_access allow all

É aqui que acredito que o problema é, mas não tenho ideia do que fazer:

configuração IPTABLES

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3129 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3130 -j ACCEPT
iptables -t nat -I PREROUTING -i eth0 ! -s 192.168.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:3129
iptables -t nat -I PREROUTING -i eth0 ! -s 192.168.1.1 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.1:3130

Como faço para que o IPTables redirecione o tráfego HTTP / HTTPS de entrada como DNAT para a porta do Squid em 3129 e 3130 ... a porta 3128 funciona em qualquer navegador que eu possa configurar o proxy, mas os redirecionamentos com o IPTables estão gerando eu NUTS!

O que eu postei acima no IPTables não funciona. Eu continuo recebendo conexão de erro 111 recusada, e se eu instalar algum navegador qualquer URL eu coloco lá eu continuo recebendo página de boas-vindas do Apache de "It Works !!". se alguém pudesse me esclarecer o que estou fazendo de errado, eu agradeceria.

    
por criostage 27.08.2014 / 18:37

0 respostas