- regra de proxy transp.
+ Responder ao Tópico
-
regra de proxy transp.
Olá,
Quero utilizar essa regra para proxy transparente com o squid:
/usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
porém, com apenas essa regra os browsers não navegam como proxy transparente. Coloquei a regra dessa forma, por causa do conectividade social da caixa (a mãe de todos meus problemas). Para testar, tentei também com as regras:
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 --dport 80 -j REDIRECT --to 3128
e também
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 192.168.0.1/24 --dport 80 -j REDIRECT --to 3128
mas, apenas com essas regras o proxy não fica transparente. Só consigo isso com a regra:
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
Mas os chamados para 200.201.174.0/24 não podem passar pelo proxy...alguém pode me dar uma luz??....
[]´s
-
regra de proxy transp.
A sua regra está quase correta(usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 -d ! 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128), você deve alterar apenas o lugar onde voêÊ colocou o "!". A regra fica da seguinte forma:usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 ! -d 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128. Tenho aqui um proxy transparente e funciona desta forma.
-
regra de proxy transp.
Obrigado, vou fazer isso (mudar a "!" de lugar). Porem ele não faz o proxy transp. apenas com a regra:
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to 3128
Só consigo isso com a regra:
/usr/sbin/iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
pq será que isso acontece?
-
regra de proxy transp.
Sou eu de novo, ele não fazia teu proxy transparente porque o regra estava incorreta, você pode também tentar usar a regra que eu uso aqui que é a seguinte: usr/sbin/iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp ! -d 200.201.174.0/24 --dport 80 -j REDIRECT --to 3128. Onde $LAN_IFACE é a eth da sua rede interna, por exemplo a eth1. E graças a Deus funciona certinho o proxy transparente.
-
regra de proxy transp.
vou tentar com essa regra que vc me passou agora. Porém no post anterior se vc reparar essa regra não possue a exclusão do domínio da caixa. Mas mesmo assim ela não funfa. Eu vou no cliente agora...acho que agora vai. Mto obrigado. se não rolar eu posto aqui. falows...
-
regra de proxy transp.
Ok, depois que vc tentar com a regra que te passei vc me fala.
-
regra de proxy transp.
kra, não sei o que acontece lá...é incrivel.
Coloquei aquela regra e nada. Mesmo sem a parte da caixa...não funciona como proxy transparente nem a pau. Limpei tudo antes com -F e -F -t nat. e nada. Tambei tentei colocando so a regra no bash, sem usar o script todo. e nada. a net para de funcionar nos clientes. Mas quando uso aquela regra com MASQUERADE eles funcionam. Isso ta me quebrando..mto obrigado pela mão. Do jeito que o firewall ta ai ele funciona, mas o conectividade não. Essa parte está no fim do arquivo...lá tem várias outras formas que eu ja tentei.
meu firewall:
iptables -F
iptables -F -t nat
iptables -F -t mangle
## Instalando modulos
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe iptable_filter
modprobe ip_conntrack
## Variáveis
IPTABLES=iptables
EXTIF="eth1"
INTIF="eth0"
## Política
/usr/sbin/iptables -P INPUT ACCEPT
/usr/sbin/iptables -F INPUT
/usr/sbin/iptables -P OUTPUT ACCEPT
/usr/sbin/iptables -F OUTPUT
/usr/sbin/iptables -P FORWARD ACCEPT
/usr/sbin/iptables -F FORWARD
/usr/sbin/iptables -t nat -F
# Melhora latência de ssh pra fora
#$IPTABLES -A PREROUTING -t mangle -p tcp --dport ssh -j TOS --set-tos Minimize-Delay
# Não deixa smtp sair com prioridade pra não matar o link
#$IPTABLES -A PREROUTING -t mangle -p tcp --dport smtp -j TOS --set-tos Normal-Service
# Melhora Thoughput de http que sai
#$IPTABLES -A PREROUTING -t mangle -p tcp -s $EXTIF --sport 8081 -j TOS --set-tos Maximize-Throughput
## Libera a CAIXA!!! com revolta!
/usr/sbin/iptables -A INPUT -i $EXTIF -s 200.201.174.0/24 -d 0.0.0.0/0 -j ACCEPT
/usr/sbin/iptables -A INPUT -i $INTIF -s 200.201.174.0/24 -d 0.0.0.0/0 -j ACCEPT
## Localhost
/usr/sbin/iptables -A INPUT -i lo -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o lo -j ACCEPT
## Liberar portas
# 80 (Caixa)
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 80 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 80 -j ACCEPT
# 443 (Padrão)
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 443 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 443 -j ACCEPT
#2631 (Caixa)
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 2631 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 2631 -j ACCEPT
#8017 (Receita)
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 8017 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 8017 -j ACCEPT
#1080 (TED)
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 1080 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p TCP --dport 1080 -j ACCEPT
#8081 (atual http)
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 8081 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p TCP --dport 8081 -j ACCEPT
#1863(MSN)
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 8081 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p TCP --dport 8081 -j ACCEPT
#Forward da rede
/usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 8081 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 8081 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 8081 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 8081 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 2631 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 2631 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 2631 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 2631 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 8017 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 8017 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 8017 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 8017 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 1080 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 1080 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 1080 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 1080 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 1864 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 1864 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 1864 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 1864 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 80 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 80 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 80 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 80 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p udp -d 192.168.0.0/24 -s 0/0 --sport 443 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -d 192.168.0.0/24 -s 0/0 --sport 443 -j ACCEPT
## Saida SMTP
# Libera SMTP
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 25 -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 25 -j ACCEPT
## Saida FTP
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# ftp ativado
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
# ftp passivo
/usr/sbin/iptables -A INPUT -i $EXTIF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
/usr/sbin/iptables -A OUTPUT -o $EXTIF -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
## Nega 19720
/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 19720 -j DROP
## Abre 19720 Local
/usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.9.0/24 -p tcp --dport 19720 -j ACCEPT
## Nega 19720 Externo
/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 19721 -j DROP
## Abre ssh
/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 1972 -j ACCEPT
## Abre SMTP local
/usr/sbin/iptables -A INPUT -i $INTIF -p tcp --dport 25 -j ACCEPT
## Nega SMTP externo
/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 25 -j DROP
## Libera chamada ao Proxy
/usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
#/usr/sbin/iptables -A INPUT -i $INTIF -s 0/0 -p tcp --dport 3128 -j ACCEPT
/usr/sbin/iptables -A INPUT -s 127.0.0.0/8 -p tcp --dport 3128 -j ACCEPT
# Nega exterior
#/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 3128 -j DROP
## Libera POP3 e IMAP interior
/usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.0.0/24 -p tcp --dport 110 -j ACCEPT
/usr/sbin/iptables -A INPUT -i $INTIF -s 192.168.0.0/24 -p tcp --dport 143 -j ACCEPT
## MSN
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1863 -j ACCEPT
#iptables -A FORWARD -s 192.168.0.0/24 -d loginnet.passport.com -j ACCEPT
## Nega POP3 e IMAP exterior
/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 110 -j DROP
/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 143 -j DROP
## Abre 8081 externo
/usr/sbin/iptables -A INPUT -i $EXTIF -s 0.0.0.0/0 -p tcp --dport 8081 -j ACCEPT
## FORWARD
# loga todo forward
#/usr/sbin/iptables -A FORWARD -j LOG
## Proxy transparente (meio porco)
#iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
#iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.11/32 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.16 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.54/32 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o eth1 -s 192.168.9.0/24 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o eth1 -s 192.168.10.0/24 -j MASQUERADE
## Proxy transparente (CAIXA NOVAMENTE)
/usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.0/24 ! -d 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
#/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 --dport 80 -j REDIRECT --to 3128
#/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to 3128
/usr/sbin/iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
# Habilita forward
echo 1 > /proc/sys/net/ipv4/ip_forward
-
squid.conf
teu squid.conf tá com aquelas 4 linhas pra trabalhar em modo transparente ?
-
regra de proxy transp.
Olá Whinston,
sim,estão.
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
quando eu dou o MASQUERADE ele fica transparente...
Mas com essa regra ($IPT -t nat -A PREROUTING -s $LAN -d ! 200.201.174.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128) não funfa.
-
só conectividade
mas não funciona "apenas" o conectividade né? o resto vai?
o meu tá igual o seu.. funciona tudo, exceto conectividade
tb to a procura da regra correta, atualmente tá assim:
$iptables -t nat -A PREROUTING -p tcp -i eth0 -s $lan -d ! $lan --dport 80 -j REDIRECT --to-port 8085
$iptables -t nat -A PREROUTING -p udp -i eth0 -s $lan -d ! $lan --dport 80 -j REDIRECT --to-port 8085
como eu tenho um apache rodando, eu falo que eu quero mandar tudo que vier na 80 para a 8085 (proxy transparente), exceto o que for com destino a própria a LAN, ou seja, o webserver.
como eu já uso a regra com ! na linha, não sei se posso colocar mais alguma para desviar o tráfego com destino ao conectividade, pra passar por fora
-
regra de proxy transp.
não fica nem transparente o proxy. Com apenas essa regra só funciona a net se eu configurar no browser...