Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > Sistemas Operacionais > Serviços > Proxy/NAT/Firewall
Wiki Classificados Galeria Reviews Jogos Grupos Sociais RSS Feeds FAQ Termos de Uso Sobre
Registrar Fotos Membros Calendário Pesquisar Postados Hoje Marcar Fóruns Como Lidos

IPtables + Squid



Tópico Trancado
 
LinkBack Ferramentas do Tópico
Antigo 15-07-2008, 12:20   #1 (permalink)
Padrão IPtables + Squid

Prezados amigos, estou com o seguinte problema.
No meu firewall se eu boto a seguinte regra: iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT a internet funciona normalmente pelo proxy. No entanto, todos os meus usuarios conseguem navegar sem usar proxy. Quando eu boto um DROP no FORWARD, todos param de navegar, inclusive pelo proxy. O que preciso e que todos naveguem, porem, somente passando pelo proxy.
Estou anexando a minha regra do iptables pra ver se alguem tem alguma dica.
Qualquer ajuda e bem vinda.
Abraco
Vitor


RULES.SH


#!/bin/bash

. /etc/firewall/functions.sh

INT_IF="eth1"
EXT_IF="eth0"
DMZ_IF1="eth2"
FWIP_INT=`get_ip_int $INT_IF`
FWIP_EXT1=`get_ip_int $EXT_IF`
FWIP_DMZ1=`get_ip_int $DMZ_IF1`
#REDE_INTERNA=`get_network $INT_IF`
#REDE_DMZ=`get_network $DMZ_IF1`
REDE_INTERNA="10.0.0.0/25"
REDE_DMZ="50.0.0.0/24"

#Don't respond to broadcast pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#Enable forwarding
echo 1 >/proc/sys/net/ipv4/ip_forward

#Block source routing
echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route

#Kill timestamps. These have been the subject of a recent bugtraq thread
echo 0 > /proc/sys/net/ipv4/tcp_timestamps

#Kill redirects
echo 0 >/proc/sys/net/ipv4/conf/all/accept_redirects

#Enable bad error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

#Allow dynamic ip addresses
echo "1" > /proc/sys/net/ipv4/ip_dynaddr


# Disable ICMP redirects for IPSEC
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth2/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/lo/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth2/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/lo/accept_redirects


if [ "$1" == "stop" ]; then
stop_fw stop
exit 0
elif [ "$1" == "clean" ]; then
stop_fw stop
exit 0
else
stop_fw stop
load_modules
fi



iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


# INICIO das Regras de INPUT (Destinadas ao FW)
# Aceita conexoes estabilizadas, originadas do firewall
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

#Redireciona conexao para Go-Global
iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 8087 -j DNAT --to-destination 10.0.0.60
iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 491 -j DNAT --to-destination 10.0.0.60
iptables -A FORWARD -p tcp -m state --state NEW -d 10.0.0.60 -m multiport --dport 491,8087 -j ACCEPT

# Libera acesso SSH vindo da xxxx destinado ao firewall
#iptables -A INPUT -p tcp -s x.x.x.x -i $EXT_IF -m state --state NEW --dport 22 -j ACCEPT

# Libera acesso de SP para o RJ

iptables -A INPUT -s x.x.x.x -j ACCEPT
iptables -A OUTPUT -s x.x.x.x -j ACCEPT

# Libera SSH vindo da rede interna destinado ao firewall
iptables -A INPUT -p tcp -s $REDE_INTERNA -i $INT_IF -m state --state NEW --dport 22 -j ACCEPT

# Libera SSH para Internet
iptables -A INPUT -p tcp -s 0/0 --dport 22 -j ACCEPT

#Libera FTP
iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Libera acesso ao Proxy
iptables -A INPUT -p tcp -s $REDE_INTERNA -i $INT_IF -m state --state NEW --dport 3128 -j ACCEPT


# Libera VPN(IPSEC) para o Firewall
iptables -A INPUT -p icmp -i ipsec0 -j ACCEPT
iptables -A INPUT -s x.x.x.x -i $EXT_IF -p tcp --dport 500 -j ACCEPT
iptables -A INPUT -s x.x.x.x -i $EXT_IF -p udp --dport 500 -j ACCEPT
iptables -A INPUT -s x.x.x.x -i $EXT_IF -p 50 -j ACCEPT

# Libera VPN(IPSEC) SP para o Firewall
iptables -A INPUT -p icmp -i ipsec0 -j ACCEPT
iptables -A INPUT -s x.x.x.x -i $EXT_IF -p tcp --dport 500 -j ACCEPT
iptables -A INPUT -s x.x.x.x -i $EXT_IF -p udp --dport 500 -j ACCEPT
iptables -A INPUT -s x.x.x.x -i $EXT_IF -p 50 -j ACCEPT

# Libera trafego VPN xxxx
iptables -A FORWARD -s $REDE_INTERNA -d 10.0.0.0/8 -j ACCEPT
iptables -A FORWARD -d $REDE_INTERNA -s 10.0.0.0/8 -j ACCEPT

# Permite toda a rede interna acessar FTP,SSH,TS,SMTP,POP3,AIM,IPSEC na internet
#iptables -A FORWARD -s $REDE_INTERNA -p tcp -i $INT_IF -m state --state NEW -m multiport --dport 20,21,22,25,110,119,443,1111,1723,3 389,4343,5190,8080,32768,32769 -j ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -p tcp -i $INT_IF -m state --state NEW -m multiport --dport 20,21,22,25,110,119,443,809 -j ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -p tcp -i $INT_IF -m state --state NEW -m multiport --dport 1111,1723,3389,4343,5190,8080,32768 ,32769 -j ACCEPT
#iptables -A FORWARD -s $REDE_INTERNA -p udp -i $INT_IF -m state --state NEW -m multiport --dport 20,21,22,25,110,500,1111,3389,4343, 4500,5190,8080 -j ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -p udp -i $INT_IF -m state --state NEW -m multiport --dport 20,21,22,25,110,500,809,1111 -j ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -p udp -i $INT_IF -m state --state NEW -m multiport --dport 3389,4343,4500,5190,8080 -j ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -p 50 -i $INT_IF -m state --state NEW -j ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -p 51 -i $INT_IF -m state --state NEW -j ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -i $INT_IF -m state --state NEW -d x.x.x.x -j ACCEPT

# Libera acesso a VPN da xxx
iptables -A FORWARD -s $REDE_INTERNA -p tcp -i $INT_IF -m state --state NEW -d x.x.x.x -j ACCEPT

# Permite toda a rede interna pingar para fora
iptables -A FORWARD -p icmp -s $REDE_INTERNA -i $INT_IF -m icmp --icmp-type echo-request -j ACCEPT

# Permite Servidor na DMZ Acessar Oracle Interno
# change iptables -A FORWARD -s 50.0.0.7 -p tcp -i $DMZ_IF1 -m state --state NEW --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -s 50.0.0.8 -p tcp -i $DMZ_IF1 -m state --state NEW --dport 1024:65535 -j ACCEPT

# Servidor DNS INTERNO 1(AD) e 2(FS) Acessa DNS
iptables -A FORWARD -s 10.0.0.110 -p udp -i $INT_IF -m state --state NEW --dport 53 -j ACCEPT
iptables -A FORWARD -s 10.0.0.110 -p tcp -i $INT_IF -m state --state NEW --dport 53 -j ACCEPT

# liberando acesso para ao Servidor Data Center
iptables -A FORWARD -d x.x.x.x -j ACCEPT

# Servidor AD Acessa xxx
iptables -A FORWARD -s 10.0.0.110 -p udp -i $INT_IF -m state --state NEW --dport 123 -j ACCEPT


# Executa NAT para rede interna acessar os protocolos discriminados anteriormente
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $EXT_IF ! -d 10.0.0.138/25 -j SNAT --to $FWIP_EXT1
iptables -t nat -A POSTROUTING -s $REDE_DMZ -o $EXT_IF ! -d 10.0.0.138/25 -j SNAT --to $FWIP_EXT1

# Inicios das regras de PREROUTING (redirecionamentos)

# Acesso aos servidores CITRIX na DMZ
# Servidor 1 (Inclui Tomcat)
#iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 8084 -j DNAT --to-destination 50.0.0.6
iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 1494 -j DNAT --to-destination 50.0.0.6
iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 8080 -j DNAT --to-destination 50.0.0.6
iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 80 -j DNAT --to-destination 50.0.0.7
iptables -t nat -A PREROUTING -d $FWIP_INT -p tcp -m state --state NEW --dport 80 -j DNAT --to-destination 50.0.0.7
#iptables -A FORWARD -p tcp -m state --state NEW -d 50.0.0.6 -m multiport --dport 1494,1495,8084,8080 -j ACCEPT
iptables -A FORWARD -p tcp -m state --state NEW -d 50.0.0.6 --dport 100:8100 -j ACCEPT
iptables -A FORWARD -p tcp -m state --state NEW -d 50.0.0.7 --dport 80:8100 -j ACCEPT

# Servidor 2
#iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 8088 -j DNAT --to-destination 10.0.0.8
#iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 1495 -j DNAT --to-destination 10.0.0.8
#iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 8084 -j DNAT --to-destination 10.0.0.8
#iptables -A FORWARD -p tcp -m state --state NEW -d 10.0.0.8 -m multiport --dport 1495,8088 -j ACCEPT

iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 8088 -j DNAT --to-destination 10.0.0.156
iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 1495 -j DNAT --to-destination 10.0.0.156
iptables -t nat -A PREROUTING -d $FWIP_EXT1 -p tcp -m state --state NEW --dport 8084 -j DNAT --to-destination 10.0.0.156
iptables -A FORWARD -p tcp -m state --state NEW -d 10.0.0.156 -m multiport --dport 1495,8088 -j ACCEPT
 
Avatar de vasmarinho
 
Registrado em: Feb 2003
Posts: 1
Agradeceu: 0
Agradecido 0 vez(es) em 0 Posts
Reputação: 0 vasmarinho
Enviar mensagem via ICQ para vasmarinho Enviar mensagem via Windows Live Messenger para vasmarinho
vasmarinho está offline  
Antigo 15-07-2008, 12:32   #2 (permalink)
Padrão

Como você bloqueou no forward?? Você tentou bloquar o trafego com destino a porta 80 na tabela forward?

Tenta e posta o resultado ai...
__________________
Magnun Leno
CISCO CCNA: CSCO10991731
e-mail: magnunΘunderlinux.org
Blog: Meu blog no Under!
Participe de uma comunidade!

If you choose not to decide, you still have made a choice." - Freewill (Rush)
Moderador
 
Avatar de Magnun
 
Registrado em: Nov 2006
Localização: Distrito Federal
Distribuição: Debian/Ubuntu
Posts: 667
Agradeceu: 141
Agradecido 99 vez(es) em 97 Posts
Envios no Blog: 7
Reputação: 125 Magnun Magnun Magnun Magnun
Magnun está offline  
Antigo 15-07-2008, 22:42   #3 (permalink)
Padrão

cara.. voce precisa refazer seu firewall, ta uma bagunça.. muita regra que nao precisa.. etc etc

comece lendo um excelente tutorial de iptables:

Firewall com IPTABLES - by Eriberto
__________________
Sds.
Alexandre Correa
Onda Internet / OPinguim Web Hosting
www.ondainternet.com.br
www.opinguim.net

Blog http://alexandrecorrea.under-linux.org/

Consultoria Redes, Servidores, Linux, Mikrotik, IkarusOS, StarOS


NÃO faça pergunta via mensagem privada, poste sua dúvida no forum.


Aprenda a usar o forum, dica by Hitler: http://www.youtube.com/watch?v=8zFYt1_0FUE


Leia o FAQ UnderLinux !!!!!
http://under-linux.org/wiki/index.ph...Linux_Wiki:FAQ
Super Moderador
 
Avatar de alexandrecorrea
 
Registrado em: Feb 2006
Localização: Minas Gerais
Idade: 25
Posts: 3,838
Agradeceu: 14
Agradecido 546 vez(es) em 454 Posts
Envios no Blog: 3
Reputação: 480 alexandrecorrea alexandrecorrea alexandrecorrea alexandrecorrea alexandrecorrea alexandrecorrea
alexandrecorrea está offline  
Antigo 21-07-2008, 13:27   #4 (permalink)
Padrão

Como disse o alexandre, refazer o seu firewall seria uma excelente idéia.

Mas, tratando diretamente o seu problema, eu não vi nenhuma regra liberando o acesso à porta 80 saindo do firewall/squid (iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT), assim o seu firewall não consegue navegar.

Outra coisa, se você bloqueia a porta 80 no forward, você bloqueia a conexão da lo para a eth0 e aí o proxy não navega também.
__________________
Frederico Freire Boaventura (Galahad)
LPIC-II | MCP

A resposta ajudou? Agradeça!

"Linux poses a real challenge for those with a taste for late-night hacking (and/or conversations with God)."
(By Matt Welsh)
Super Moderador
 
Avatar de galahad
 
Registrado em: Jun 2008
Localização: Espírito Santo
Distribuição: Gentoo
Posts: 250
Agradeceu: 10
Agradecido 50 vez(es) em 48 Posts
Reputação: 42 galahad galahad
galahad está offline  
Antigo 21-07-2008, 20:49   #5 (permalink)
Padrão

o firewall bagunça e lei rs...

agora pq vc não manda um redirect da porta 80 pro seu proxy ???? acredito q isso vai resolver o seu problema

se vc nao quiser q naveguem fora do proxy vc mete um drop na porta 80
__________________
lembrem que so a morte pode tirar o seu conhecimento !!
 
Avatar de noir
 
Registrado em: Jul 2003
Posts: 226
Agradeceu: 1
Agradecido 5 vez(es) em 4 Posts
Reputação: 89 noir
Enviar mensagem via Windows Live Messenger para noir
noir está offline  
Tópico Trancado

Ferramentas do Tópico

Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não
Trackbacks are Sim
Pingbacks are Sim
Refbacks are Sim

Ir para...

Tópicos Similares
Tópico Tópico Iniciado Por Fórum Respostas Última Mensagem
iptables / squid Mineiro Proxy/NAT/Firewall 3 27-04-2006 15:26
IPTABLES NAT / SQUID raul_bsd Proxy/NAT/Firewall 6 23-11-2004 18:10
squid e iptables vanessa Proxy/NAT/Firewall 1 04-06-2003 17:41
SQUID - IPTABLES Segurança 7 08-02-2003 07:53
Squid - IpTables Segurança 7 04-02-2003 17:09

Horários baseados na GMT -3. Agora são 10:09.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.