Rodolfo_Machado
(usa Debian)
Enviado em 20/05/2013 - 14:30h
Amigos, estava com um problema de acesso ao Yahoo devido ao Squid, mesmo as maquinas liberadas pelo Squid não conseguiam acessar o Yahoo e outros sites, Portal R7, por exemplo.
No Squid, configurei como proxy transparente,dividi por faixas de IP, uma faixa de IPs liberados, e duas outras faixas com restrições de acesso, variando o grau de restrição.
Quando descobri o problema, fui mapeando os links bloqueados pesquisando no log e tentando liberalos, apesar de que até onde eu entendo, as regras se aplicam somente aos IPs bloqueados:
acl yahoo url_regex -i .yahoo.com* .yimg.com* .adinterax.com* .yldmgrimg.net* .scorecardresearch.com* .nspmotion.com* .beap.bc.yahoo.com* .update.uniblue.com* .sump.uniblue.com*
acl permitidos src 192.168.2.1-192.168.2.6
acl permitidos2 src 192.168.2.7-192.168.2.10
acl permitidos3 dstdomain "/etc/squid/permitidos2"
acl sites dstdomain "/etc/squid/permitidos"
http_access deny yahoo !permitidos
http_access allow permitidos
http_access allow permitidos2 permitidos3
http_access allow sites
http_access deny all
Não consegui resolver o problema através do próprio Squid, e então resolvi criar uma regra no firewall para que as maquinas liberadas contornem o Squid:
#!/bin/bash
echo "Limpando as regras do Firewall"
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
# compartilhando a conexao
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "compartilhamento ativado"
#iptables -A FORWARD -p tcp --dport 80 -m iprange --src-range 192.168.2.1-192.168.2.6 -j ACCEPT
#Contornando o proxy para as maquinas liberadas
iptables -A FORWARD -s 192.168.2.1 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.1 -j RETURN
iptables -A FORWARD -s 192.168.2.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.2 -j RETURN
iptables -A FORWARD -s 192.168.2.3 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.3 -j RETURN
iptables -A FORWARD -s 192.168.2.4 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.4 -j RETURN
iptables -A FORWARD -s 192.168.2.5 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.5 -j RETURN
iptables -A FORWARD -s 192.168.2.6 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.6 -j RETURN
echo "Liberado acesso as maquinas permitidas"
#proxy transparent
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "proxy transparente ativado"
Desta forma funcionou, mas ainda tenho algumas duvidas.
1) - É possível utilizar faixas de IPs no iptables ao invés de escrever a regra repetidas vezes dentro do script, vi alguns exemplos usando iprange, mas para mim não funcionaram, exemplo:
http://aprendafirewall.blogspot.com.br/2...range.html
Módulo iprange
Liberando acesso a porta 80 para as máquinas 192.168.0.131 até 192.168.0.140
iptables -A FORWARD -p tcp --dport 80 -m iprange --src-range 192.168.0.131-192.168.0.140 -j ACCEPT
2) - O servidor, cujo IP é 192.168.2.1 continua não acessando o Yahoo e os outros sites, apesar de estar na regra do iptables.
3) - Se os IPs agora são liberados no firewall, no iptables, então eu posso retirar as regras referentes a estes IPs(somente os liberados) no squid.conf?