Proxy transparente não funciona

13. Re: Proxy transparente não funciona

Carlos Adean
c4rl

(usa CentOS)

Enviado em 15/08/2009 - 09:35h

Prestei mais atenção em teu Firewall e notei que falta algo. Logo no início do arquivo você está ativando o compartilhamento da conexão, porém você se esqueceu de carregar o módulo responsável pelo compartilhamento.

Estas são as regras do Firewall (coloquei ela pra rodar em rc.local):
######################################################
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward # Aqui você compartilha, ativando o encaminhamento de pacotes

Sugiro que você faça a seguinte alteração:

# Primeiro carregue os seguintes modulos
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack_pptp
modprobe ip_nat_pptp

# Depois, libera a rede com nat, fazendo kernel compartilhar a conexão.
echo "1" > /proc/sys/net/ipv4/ip_forward




  


14. Re: Proxy transparente não funciona

Rafael Henrique Vieira de Moura
rhmoura

(usa Ubuntu)

Enviado em 18/08/2009 - 09:51h

Bom dia,

C4rl, testei a dica que vc me deu, porém não resolveu. Estive verificando e no Fedora 11 (distro q estou usando), não precisa mais carregar aqueles modulos. De qualquer forma, testei com e sem eles e nada. Álias ja fiz de td, e não sei mais oq fazer. O Squid ta blz, porem, só funciona se setado no browser. Tinha visto falar que se o server tivesse como cliente em um hub/switch, o proxy transparente não funcionaria. Coloquei ele diretamente conectado na eth1 no router e distribui pela eth0 para um switch, mas num deu em nada.
Segue novamente minhas confs ja td alterado novamente. Eta proxy transparente dificil esse...

OBS: Versão dos softwares
SQUID: 3 Stable 15
iptables v1.4.3.1

#### SQUID.CONF ######
http_port 3128 transparent
always_direct allow all


dns_nameservers 200.175.5.139 200.175.89.139

cache_mem 160 MB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 5000 16 256

maximum_object_size 30000 KB
maximum_object_size_in_memory 40 KB

access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/log/squid/squid.pid
mime_table /etc/squid/mime.conf

cache_mgr nti@hsr.com.br
memory_pools off

diskd_program /usr/lib/squid/diskd
unlinkd_program /usr/lib/squid/unlinkd

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
quick_abort_max 16 KB
quick_abort_pct 95
quick_abort_min 16 KB
request_header_max_size 20 KB
reply_header_max_size 20 KB
request_body_max_size 0 KB

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl wireless src 192.168.1.0/24

acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 1863 # https
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

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow wireless

url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf

cache_mgr webmaster
mail_program mail
cache_effective_user squid
cache_effective_group squid
httpd_suppress_version_string off
visible_hostname proxy.hsr.com.br

error_directory /usr/share/squid/errors/Portuguese/

#######################


FIREWALL

#!/bin/sh

#eth0 = 192.168.1.254 (rede local)
#eth1 = 192.168.200.254 (internet)

# Segundo pesquisa na net, os modulos abaixo ja são carregados
# automaticamente no Fedora 11 (isso procede?)

#modprobe iptable_nat
#modprobe ip_nat_ftp
#modprobe ip_conntrack_ftp
#modprobe ip_conntrack_pptp
#modprobe ip_nat_pptp

echo "1" > /proc/sys/net/ipv4/ip_forward


iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Limite contra ping da morte e DoS
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP


# Liberando portas SSH a partir de qualquer interna somente
iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT

# Liberando portas squid, http e NTP.
iptables -A INPUT -p tcp --dport 3128 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -i eth0 -j ACCEPT


# NAT Rede 1. Note que a "eth1" é minha interface diretamente conectada à internet,

iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE


# Jogando tráfego da porta 80 para o SQUID TRANSPARENT

iptables -t nat -A PREROUTING -s 192.168.1.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128

###############################

Agradeço a disposição de tds os que tem me ajudado.


15. Re: Proxy transparente não funciona

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 18/08/2009 - 13:28h

Será q esse redirecionamento está funcionando? Acrescente a interface dele:

iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Adicionei eth0, mas pode ser outra interface, mas é aquela q pertence à rede interna, OK?


16. Re: Proxy transparente não funciona

Carlos Adean
c4rl

(usa CentOS)

Enviado em 19/08/2009 - 15:10h

Tenho squid rodando e funciona pefeitamente com esta opção sugerida pelo renato_pacheco.
Verifique se as regras estão cadastradas no iptables.

Uma coisa é certa, o squid tá funcionando, o problema está nas regras do iptables.

iptables-save

iptables -L


17. Ta froid...

Rafael Henrique Vieira de Moura
rhmoura

(usa Ubuntu)

Enviado em 20/08/2009 - 10:43h

Opa pessoal, desculpe a demora...

Renato adicionei a interface... (inclusive alterei a interface da Wan pra eth0 e a da lan pra eth1). Mas nada ainda.

Sabem me dizer o que em uma estrutura de rede pode impedir o funcionamento de um proxy transparente? Switch, etc?

C4rl eu fiz iptables-save e mostrou isso:

# Generated by iptables-save v1.4.3.1 on Thu Aug 20 09:22:30 2009
*mangle
:PREROUTING ACCEPT [9054:2457041]
:INPUT ACCEPT [8462:2421181]
:FORWARD ACCEPT [519:32512]
:OUTPUT ACCEPT [4729:2435089]
:POSTROUTING ACCEPT [4729:2435089]
COMMIT
# Completed on Thu Aug 20 09:22:30 2009
# Generated by iptables-save v1.4.3.1 on Thu Aug 20 09:22:30 2009
*nat
:PREROUTING ACCEPT [4435:449274]
:POSTROUTING ACCEPT [546:40394]
:OUTPUT ACCEPT [620:47932]
-A PREROUTING -s 192.168.1.0/24 -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Thu Aug 20 09:22:30 2009
# Generated by iptables-save v1.4.3.1 on Thu Aug 20 09:22:30 2009
*filter
:INPUT DROP [5:1418]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -m limit --limit 1/sec -j DROP
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 123 -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 1863 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT

Da pra saber alguma coisa por ai? Eu dei um tcpdump na eth1 e pelo que vi o iptables não redireciona para 3128 nem a pau. Tenho o Apache no mesmo servidor e inclusive ja mudei ele pra porta 8080 pra não ter encrenca.

Sei la tem horas que parece que o Fedora 11 que ta complicando minha vida.
Ja fiz proxy no Slackware e num deu essa trabalheira danada, mas aqui no trampo o pessoal quis o Fedora.


18. Re: Proxy transparente não funciona

Rafael Henrique Vieira de Moura
rhmoura

(usa Ubuntu)

Enviado em 24/08/2009 - 13:52h

Pessoal Boa tarde,

consegui resolver trocando
iptables -P FORWARD DROP -> iptables -P FORWARD ACCEPT


Temo que isso não seja bom, porém, se coloco em DROP não funciona. Acredito que seja pq nas liberações esteja tudo em INPUT. Não entendo direito ainda como funciona isso, mas pra deixar FORWARD DROP, não deveria haver alguma liberação pra porta 80, por exemplo, alem de INPUT mas tb em FORWARD ou OUTPUT?!



19. Re: Proxy transparente não funciona

Allan Mendes Silva Baliberdin
baliberdin

(usa RedHat)

Enviado em 24/08/2009 - 14:53h

rhmoura...

Andei vendo a discussão e talvez tenha pego o bonde andando rsrs mas vai ai algumas observações
que notei:

1º - Se você vai criar um proxy transparente talvez seja necessário tomar alguns cuidados com as configurações de firewall como:
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE

esta regra, se for combinada com um esquema de Forward accept, permite que qualquer host da sua rede que tenha o gateway configurado consiga acesso a internet. Por isso talvez alguns clientes seus estejam tendo acesso a internet sem passar pelo proxy. Isso ocorre pq a regra é muito generalizada e não declara qual serviço deve ser mascarado, então .. todos os pacotes que chegarem a este estagio do firewall serão encaminhados para a internet independente do serviço, seja HTTP(80), SMTP(25), etc. O correto seria declarar os serviços que tem parmissão para passar para internet, ou seja, todos menos http 80 q deve ser direcionado para o squid.

2º - Me corrija se estiver errado, mas não vi as configurações do SQUID para proxy transparent, isso pode ser uma das causas do seu problema.

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Espero ter ajudado...


20. Re: Proxy transparente não funciona

Welton Cordeiro
weltonpba

(usa Debian)

Enviado em 25/08/2009 - 20:20h

quais os ips as maquinas locais estão pegando pra acessar a internet atraves do proxy transparent ?? vc ja conferiu se seu compartilhamento de internet ta funcionando sem o proxy ???tive basicamente o mesmo problema do que vc... no meu caso era o compartilhamento que não tava funcionando...
aproveite e de uma lida: http://www.gdhpress.com.br/servidores/leia/index.php?p=cap2-17


21. proxy transparent nao fufa

Ricardo Cabral
rickps

(usa Debian)

Enviado em 07/01/2010 - 18:20h


Meu esquema está igual ao do rhmoura, só funciona se setar o proxy no navegador. Se dou stop no squid para tudo!

minhas placas:
eth0 -> ip : 192.168.1.131 (internet)
gty: 192.168.1.1
dns: 192.168.1.2

eth1 -> ip : 192.168.0.1 (rede local)
gty: --
dns: --

### Firewall ######################## inicio

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
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 FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Limite contra ping da morte e DoS
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP


# Liberando portas SSH a partir de qualquer interna somente
iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT

# Liberando portas
iptables -A INPUT -p tcp --dport 3128 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -i eth0 -j ACCEPT


# Nat
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE


# Mandando para o Squid
iptables -t nat -A PREROUTING -s 192.168.0.0/255.255.255.0 -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

**************************************** fim ***

### SQUID 2.7 stable3 ##############################

http_port 3128 transparent

dns_nameservers 192.168.1.2

cache_mem 160 MB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 5000 16 256

maximum_object_size 30000 KB
maximum_object_size_in_memory 40 KB

access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/log/squid/squid.pid
mime_table /etc/squid/mime.conf

cache_mgr test@test.com.br
memory_pools off

diskd_program /usr/lib/squid/diskd
unlinkd_program /usr/lib/squid/unlinkd

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
quick_abort_max 16 KB
quick_abort_pct 95
quick_abort_min 16 KB
request_header_max_size 20 KB
reply_header_max_size 20 KB
request_body_max_size 0 KB

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl wireless src 192.168.0.0/24

acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 1863 # https
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

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow wireless

# url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf

cache_mgr webmaster
mail_program mail
cache_effective_user squid
cache_effective_group squid
httpd_suppress_version_string off
visible_hostname debian.teste.com.br

############### FIM ####




22. Re: Proxy transparente não funciona

Ricardo Libanio
riesdra

(usa Debian)

Enviado em 07/01/2010 - 20:06h

siga o que está no link e seja feliz :)

http://www.gdhpress.com.br/servidores/leia/index.php?p=cap2-17




23. Re: Proxy transparente não funciona

Ricardo Cabral
rickps

(usa Debian)

Enviado em 08/01/2010 - 09:21h

Brother, já segui esse tutor inclusive eu tenho esse livro de morimoto, mas ainda nao consegui colocar para funcionar.
Mas valeu atenção.

Alguem poderia ver se a configuração de minhas placas de rede e comparar com as regras que estou usando para saber se está tudo ok ?



24. Proxy Transparente

Davi lima
verdinho

(usa Debian)

Enviado em 12/12/2011 - 10:20h

Caro colega segue abaixo o script de seu firewall com correcos para que o o proxy transparente funcione de forma correta pois já tive o mesmo problema que o seu exatamente o mesmo!! fiz a correção em seu firewall, verifiquei seu squid e esta tudo ok!! em relacao ao proxy transparente, o problema estava no firewall. mais eu acho melhor vc mandar a conf de seu firewall completa pois e tenho certeza que esta faltando muita coisa ai!!


#############################################################

Estas são as regras do Firewall (coloquei ela pra rodar em rc.local):
######################################################
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward


# Ativando modulos - Veja qual o modilo que vc presciza ativar e apague o que nao vai ativar!! abaixo uns exemplos!!
# -------------------------------------------------------
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_MASQUERADE

# Zera regras
# -------------------------------------------------------

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Determina a pol­tica padrao
# -------------------------------------------------------

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Limite contra ping da morte e DoS
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP


# Liberando portas SSH a partir de qualquer interna somente
iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT

# Liberando portas squid, http e NTP.
iptables -A INPUT -p tcp --dport 3128 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -i eth0 -j ACCEPT

#################################################
# Tabela NAT #
#################################################

# NAT Estatico
# -------------------------------#

$iptables -t nat -A POSTROUTING -s 192.0.0.0(IP Local) -j SNAT --to-source 200.0.0.0(IP DNS)


# Ativa mascaramento de saida
# -------------------------------------------------------
$iptables -A POSTROUTING -t nat -o $IF_WAN -j MASQUERADE


############################################################


# Proxy transparente
# -------------------------------------------------------
$iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

############################################################




01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts