-
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
-
Desafio Squid + Iptables
OK vou checar se não estou fazendo confusão com relação a ordem das acls.
Valeu mesmo.
-
Desafio Squid + Iptables
Olha acho que realmente vou voltar ao ipchains pois com o iptables não tive muita sorte não.. <IMG SRC="images/forum/smilies/icon_lol.gif">
-
Desafio Squid + Iptables
Entaum volte o kernel para o 2.2 que q o ipchains com o 2.4 tem algumas imcompatibilidades...
mas isso q esta acontecendo eu acho q num eh problema com o iptables mas sim o squid
-
Desafio Squid + Iptables
Vou tirar a prova recentemente saiu uma versão nova e estavel do squid irei baixa-la e refazer todas as confs , começando do zero.
Valeu pela ajuda de todos.
<IMG SRC="images/forum/smilies/icon_smile.gif">
-
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>
Ative o repasse de pacotes
no rc.local adicione
echo 1 > /proc/sys/net/ipv4/ip_forward
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>
-
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-11-22 13:30, Anonymous wrote:
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
Ative o repasse de pacotes
no rc.local adicione
echo 1 > /proc/sys/net/ipv4/ip_forward
Allan PAtrick
[email protected]
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>
-
Desafio Squid + Iptables
nas configurações do squid.conf:
http_access allow rede_interna
httpd_accel_host virtual # aqui, ao invés de "virtual" vc deve inserir o nome da máquina q vc esta ulilizando para o proxy
httpd_accell_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
<IMG SRC="images/forum/icons/icon_wink.gif">
-
Desafio Squid + Iptables
Qdo fui implementar Proxy Transparente aqui, tive o mesmo problema:
A configuração do Proxy sobe sem erros, mas NADA de transparente, tinha que especificar o proxy no navegador.
Resolvi o problema corrigindo minhas configurações do BIND
Talves vc não tenha o BIND rodando, mas pode ser alguma coisa relacionada com servidor DNS.
Verifique /etc/resolv.conf
e na configuração do squid
visible_hostname seudominio.com.br
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
-
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-11-25 20:44, 4ndr3 wrote:
Qdo fui implementar Proxy Transparente aqui, tive o mesmo problema:
A configuração do Proxy sobe sem erros, mas NADA de transparente, tinha que especificar o proxy no navegador.
Resolvi o problema corrigindo minhas configurações do BIND
Talves vc não tenha o BIND rodando, mas pode ser alguma coisa relacionada com servidor DNS.
Verifique /etc/resolv.conf
e na configuração do squid
visible_hostname seudominio.com.br
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>
FOI MAL
MARQUEI E NÃO ME LIGUEI QUE JÁ HAVIA MAIS DUAS PAGINAS COM RESPOSTAS.
SAIO DE FININHO E VOLTO MAIS TARDE ...
<IMG SRC="images/forum/icons/icon_biggrin.gif"> <IMG SRC="images/forum/icons/icon_cool.gif"> <IMG SRC="images/forum/icons/icon_eek.gif">
-
Desafio Squid + Iptables
Galerinha,
tive o mesmo problema que os amigos ae... e discubri uma coisa....
heuheuehue
so acontece isso no WINDOWS!!! tenho estacoes linux... que funcionam normalmente.... com o proxy transparente
<IMG SRC="images/forum/icons/icon_mad.gif"> <IMG SRC="images/forum/icons/icon27.gif">
-
Desafio Squid + Iptables
se vcs quizerem eu tenho os arquivos do Iptables e squid para proxy transparente que eu fiz
-
Desafio Squid + Iptables
Mas transparent proxy de web só funciona HTTP... não se pode fazer transparent proxy de HTTPS... resumindo... não vale muito a pena não...
-
Desafio Squid + Iptables
Caros,
Comigo funciona assim, basta isto:
eth1 - ligada a internet
eth2 - para a rede interna
echo 1 > /proc/sys/net/ipv4/ip_forward
# Mascaramento da Internet
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -p tcp -s 10.10.0.0/16 -d 0/0
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -p udp -s 10.10.0.0/16 -d 0/0
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE -p icmp -s 10.10.0.0/16 -d 0/0
# Jogando para o SQUID
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 8080 -s 10.10.0.0/16
------------------------------------------------------
Detalhe crucial do squid.conf
http_port 10.10.5.1:8080
(...) acl´s e outros...
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
-
Desafio Squid + Iptables
Cara o meu problema é o mesmo.
Observe esta linha no seu iptables
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
ela esta fazendo com que tudo que venha da sua rede com destina a qualquer lugar no protocolo tcp na porta 80 seja redirecionado para a porta 3128 que é a porta padrão do squid
Tente tirar a linha de redirecionamento do seu iptables e observe que sua rede não navega mais.
ou seja o squid compartilha a internet sem a regra de nat
estranho isto não?
-
Desafio Squid + Iptables
é bastante claro que o problema está no filtro de pacotes (iptables), não no Squid.
proxy transparente é um pé no s$%##, mesmo quando funciona gera uma porção de outros problemas.
a minha sugestão fica configurar o firewall para aceitar requisições http/https/ftp do servidor proxy, barrar todas as outras máquinas.
já que vc usa windows xp, configure políticas de usuários nas máquinas, configurando o proxy no IE e desabilitando acesso dos usuários a configuração do mesmo.
-
Desafio Squid + Iptables
To com um problema quase igual aqui!!
No Server está Conectiva 8.0 com proxy squid da distribuição.; as estações são windows 98 / 2000 / xp.
As configurações estão assim:
no final do arquivo "/etc/rc.d/rc.local" inclui as seguintes linhas:
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe iptable_nat
modprobe iptable_nat_ftp
modprobe iptable_filter
iptable-restore < /etc/iptables
Conteúdo do arquivo iptables:
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 172.16.64.0/32 -o eth0 -j ACCEPT
iptables -t filter -A FORWARD -d 172.16.64.0./32 -s 0/0 -i eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t filter -A INPUT -s 172.16.64.0./32 -d 0/0 -j ACCEPT
iptables -t filter -A OUTPUT -s 172.16.64.0/32 -d 0/0 -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -s 172.16.64.0/32 -d 0/0 -j ACCEPT
iptables -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to 3128
Observações:
- quando digito "#iptables -L" as regras do arquivo iptables estão ativas.
- A Configuração das estações de trabalho estão assim: na placa de rede eu coloco o ip do meu servidor como gateway; coloco os dois dns do meu provedor + 0 ip do server; no brouser falo para ele procurar automaticamente; mas quando vou navegar não navega......falta configurar mais alguma coisa? Tentei navegar só com ips, pois pensei que não estava resolvendo nomes, mas também não funcionou!!!
O que fazer? O que falta configurar? Está faltando alguma regra?
- se eu seto no brouser o ip do server e porta 3128 a navegação está normal; mas assim eu não quero!!!! pois o objetivo de implantação desse firewall, inicialmente é transformar o meu proxy em proxy transparente e depois que estiver funcionando assim, liberar o envio e recebimento de e-mails (smtp - pop3);
O que está faltando? Eu tenho que configurar um servidor de DNS?
Grato pelas respostas!!!
-
Desafio Squid + Iptables
Quando listo as minhas regras elas ficam assim, mas não está funcionando!!!
Chain INPUT (policy ACCEPT)
target prot opt source destination ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state NEW
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- 172.16.64.0 anywhere LOG tcp -- anywhere anywhere tcp dpt:ssh LOG level warning
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Grato pelas respostas!!!!
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 172.16.64.0 anywhere
ACCEPT all -- anywhere 172.16.64.0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- 172.16.64.0 anywhere
ACCEPT icmp -- 172.16.64.0 anywhere
HELP-ME!!!