- Desafio Squid + Iptables
+ Responder ao Tópico
-
Desafio Squid + Iptables
Tenho aqui na empresa um servidor Linux rodando Red Hat 7.3 e uma rede Windows porém o servidor funciona como proxy para esta rede um proxy transparente que fiz baseado no tutorial "Squid Ninja", mas estou encontrando um sério problema, as estações navegam normalmente na internet mesmo sem regras de iptables, é como se as estações (todas Windows XP) estivessem conectadas diretamente, sem passar pelo servidor, isso só não é possivel quando paro o squid, já limpei o cache e tudo mais, as páginas de erros no squid só aparecem quando efetuo as configurações de proxy no navegador, estou usando um script de iptables assim.
#!/bin/bash
echo 1 >/proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe iptable_nat
modprobe ip_conntrack_ftp
iptables -F
iptables -Z
iptables -t nat -F
iptables -t filter -P FORWARD DROP
iptables -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
iptables -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT
iptables -t filter -A INPUT -i eth1 -m state --state NEW -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -d 0/0 -s 192.168.10.0/24 -o eth0 -j ACCEPT
iptables -t filter -A FORWARD -d 192.168.10.0/24 -s 0/0 -i eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t filter -A INPUT -s 192.168.10.0/24 -d 0/0 -j ACCEPT
iptables -t filter -A OUTPUT -s 192.168.10.0/24 -d 0/0 -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -s 192.168.10.0/24 -d 0/0 -j ACCEPT
No squid está habilitado
http_access allow rede_interna
httpd_accel_host virtual
httpd_accell_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Gostaria de saber se alguem ja enfrentou algo parecido e se podem me ajudar.
Obrigado desde já.
-
Desafio Squid + Iptables
Fala ae...
Pode estar ocorrendo impasse de processamento nas suas regras.
Você realmente precisa de todas aquelas regras no seu script, ou apenas copiou?
Na minha rede eu uso a seguinte regra para direcionar o acesso http:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --
to-port 3128
Note que estou discriminando a origem...
Espero ter ajudado.
[]´s
-
Desafio Squid + Iptables
Retirei todas as regras e inseri somente a regra acima mas não adiantou não, está a mesma coisa.
-
Desafio Squid + Iptables
tenta isso:
IPTABLES=/usr/sbin/iptables
ANY="0/0"
#rede interna
INET="192.168.0.0"
#mascara interna
IMASK="255.255.255.0"
# IP interno do servidor
IIP="192.168.0.100"
#IP externo
OIP="200.XXX.XXX.XXX"
# interface interna
IIF="eth1"
$IPTABLES -t nat -A POSTROUTING -o $IIF -j MASQUERADE
#####################################################
# Redireciona requisicoes de HTTP para o SQUID
$IPTABLES -t nat -A PREROUTING -s $INET/$IMASK -p tcp --dport 80 -j REDIRECT --to-port 3128
#####################################################
# Altera endereço de origem para o endereço real
$IPTABLES -t nat -A POSTROUTING -s $IIP/$IMASK -j SNAT --to $OIP
<IMG SRC="images/forum/smilies/icon_biggrin.gif">
-
Desafio Squid + Iptables
Ola,
Não sou muito experiente, mas acho que vc tirou cisa demais. tente este script, comigo funcionou legal.
#!/bin/sh
#..
/sbin/depmod -a
modprobe iptable_nat
#Regras
#Mascara todos os pacotes que sairem pela eth0 ( internet )
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
OBS: lenbre de trocar a gama de IP da regra pelo da sua rede.
-
Desafio Squid + Iptables
Isso soh eh necessario se o seu kernel não estiver compilado para suportar NAT... se jah tiver nem precisa das linhas abaixo....
>> /sbin/depmod -a
>> modprobe iptable_nat
E isso aki eu não faço pq soh quero mascarar HTTP, o resto eu controlo por outra regra....
>> #Regras
>> #Mascara todos os pacotes que sairem pela eth0 ( internet )
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
-
Desafio Squid + Iptables
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2002-09-30 08:51, 1c3_m4n wrote:
Isso soh eh necessario se o seu kernel não estiver compilado para suportar NAT... se jah tiver nem precisa das linhas abaixo....
>> /sbin/depmod -a
>> modprobe iptable_nat
E isso aki eu não faço pq soh quero mascarar HTTP, o resto eu controlo por outra regra....
>> #Regras
>> #Mascara todos os pacotes que sairem pela eth0 ( internet )
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>
-
Desafio Squid + Iptables
Sugiro tambem a leitura do howto:
www.tldp.org/mini/HOWTO/TransparentProxy.html
Lá estao as diretivas necessarias no Kernel para funcionamento do Proxy Transparente.
-
Desafio Squid + Iptables
Ok meus amigos tentei todas as alternativas acima, com relação ao mascaramento, não estou tendo problemas, o meu problema esta sendo realmente o Proxy Transparente, que não funciona de jeito nenhum, o proxy só está funcionando mesmo se eu inserir a configuração no navegador , com relação ao tutorial acima citado o link acho que deixou de existir.
-
Desafio Squid + Iptables
Deixa eu ver se entendi direto, vc quer que os navegadores dos seus clientes detectem automaticamente a configuração do proxy?
Se for isso a ultima coisa q posso falar eh para abilitar essa opção do squid
ie_refresh on
Fora isso minha configuração está praticamente igual ao que jah foi dito anteriormente e funciona numa boa.
-
Desafio Squid + Iptables
Ok habilitei a opção acima mas me diz uma coisa, quando um cliente MS requisita uma URL que não se pode resolver aparece no navegador a página default do Squid?
Esta está sendo minha dúvida com relação ao proxy transparente, pois com as opções acima listadas eu consegui sim resolver em partes o problema pois agora sem as regras do firewall não se navega por aqui não, só resta então esta dúvida quanto as páginas default do Squid.
Obrigado mais uma vez.
-
Desafio Squid + Iptables
Como diria um legista: - Vamos por partes...
Vou te passar "parte" do que fiz aquí:
/etc/rc.local:
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
iptables-restore < /etc/muro/regras (onde salvei as regras p/ uma carga rapida)
insmod ip_conntrack_ftp
insmod ip_nat_ftp
NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --
to-port 3128
iptables-save > /etc/muro/regras (salva né?)
Squid (squid.conf)
acl CONNECT method CONNECT
acl rede_interna src 192.168.1.0 <---
http_access allow all rede_interna <---
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Dica: se você alterou muito o squid.conf, volta pro original, caso ainda o tenha, e muda esse minino ae e testa.
Espero que agora funcione...
[]´s <IMG SRC="images/forum/smilies/icon_smile.gif">
-
Desafio Squid + Iptables
OK minhas confs estão iguais as suas, todos os módulos carregados,o squid.conf está somente com as alterações citadas, porém este proxy está parecendo coisa do além, todos estão navegando via proxy agora , porém as páginas defaults do squid não são exibidas quando de um erro ou uma requisição inexistente.
-
Desafio Squid + Iptables
da uma olhada no /etc/squid/errors/ lah estao todas as paginas default do squid....
e oq ele exibe qdo fazem conexoes inexistentes?
<font size=-1>[ Editado por 1c3_m4n On Date 30-09-2002 em 13:38 ]</font>
-
Desafio Squid + Iptables
Ele exibe a página default de erro do IE que são os clientes porém as páginas do squid estão todas lá mas não aparecem
-
Desafio Squid + Iptables
é não sei pq mas existem algumas paginas que o ele assume as paginas do IE e não a do squid, eu vi isso acontecer em dois casos...
-
Desafio Squid + Iptables
Deve ser o que está acontecendo aqui comigo, e tem mais as confs de restrição quanto a sites pornográficos também não estão funcionando.
-
Desafio Squid + Iptables
essa eh a conf q uso pra isso.....
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
acl password proxy_auth REQUIRED
acl proibir_palavras url_regex "/etc/palavras"
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny proibir_palavras
http_access allow password
-
Desafio Squid + Iptables
Sim , tirando a autenticação que na sua é requerida, realizei as confs como está em web.onda.com.br/orso e não tive sucesso não, mas está parecida com a sua.
Não sei se preciso remover meu squid e tentar atualizar p/ a nova versão e refazer as confs, ou sei lá, mas sei que estou perdendo um tempão com isso aqui.
<IMG SRC="images/forum/smilies/icon_confused.gif">
-
Desafio Squid + Iptables
cara da uma olhada na ordem em q estao os http_access... isso faz muuuuuuuuuuita diferenca, jah perdi mto tempo com isso tb