pessoALL estou com o seguinte problema.
Quando digito # ./firewall ele derruba o processo do squid rodando.
Já liberei a porta 3128 dentro do firewall.
Alguém pode me ajudar?
Obs: To usando Debian
pessoALL estou com o seguinte problema.
Quando digito # ./firewall ele derruba o processo do squid rodando.
Já liberei a porta 3128 dentro do firewall.
Alguém pode me ajudar?
Obs: To usando Debian
Segue o script para que possam me ajudar!
#!/bin/bash
IF_EXT="eth0"
IF_INT="eth1"
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
###################################
#Tabela Filter
###################################
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#
## Liberando o SQUID
#
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -i $IF_INT -o $IF-EXT -p tcp --dport 3128 -j ACCEPT
#
## Liberando LoopBack
#
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#
##Bloqueando ping da morte
#
#iptables -A FORWARD -i $IF_INT -o $IF_EXT -p icmp -j DROP
iptables -A INPUT -p icmp -j DROP
#
##Liberar quando não estiver na regra
#
#iptables -A FORWARD -s 192.168.0.x
#
##Liberando as portas necessárias
#
iptables -A FORWARD -i $IF_INT -o $IF_EXT -p tcp -m multiport --dport 20,21,22 -j ACCEPT
iptables -A FORWARD -i $IF_INT -o $IF_EXT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p icmp -i $IF_INT -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --sport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --sport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -j ACCEPT
#
##SPRING
iptables -A INPUT -p tcp -s x.x.x.x --sport 10075 -j ACCEPT
iptables -A INPUT -p tcp --dport 10075 -j ACCEPT
iptables -A INPUT -p tcp -s x.x.x.x --sport 9003 -j ACCEPT
iptables -A INPUT -p tcp --dport 9003 -j ACCEPT
iptables -A INPUT -p tcp -s x.x.x.x --sport 9004 -j ACCEPT
iptables -A INPUT -p tcp --dport 9004 -j ACCEPT
iptables -A INPUT -p tcp -s x.x.x.x --sport 9005 -j ACCEPT
iptables -A INPUT -p tcp --dport 9005 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 1075 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9003 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9004 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 9005 -j ACCEPT
#
##Terminal Server
#
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
#
##Liberando Email
#
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --sport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
#
## Liberando o Banesfácil na FILTER
#
iptables -A INPUT -p tcp --dport 4226 -j ACCEPT
iptables -A INPUT -p tcp --sport 4226 -j ACCEPT
iptables -A FORWARD -p tcp --dport 4226 -j ACCEPT
iptables -A FORWARD -p tcp --sport 4226 -j ACCEPT
#
##Liberando o autphd
#
iptables -A INPUT -p tcp --dport 113 -j ACCEPT
#
## Liberando porta 80 e 443
#
iptables -A FORWARD -i $IF_INT -o IF_EXT -p tcp -m multiport --dport 80,443 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -m limit --limit 1/s -j LOG
#Liberar o msn para determinado ip
iptables -A FORWARD -s 192.168.0.2 -p tcp -m multiport --dport 1683 -j ACCEPT
###############################
## TABELA NAT
###############################
#
## Liberando o acesso ao Terminal Server
#
iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp -i $IF_EXT --dport 3389 -j DNAT --to 192.168.0.2
#
## Mascarando o IP
#
iptables -t nat -A POSTROUTING -s 192.168.0.0 -j SNAT --to x.x.x.x
#
##Redirect server
#
iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 80 -j DNAT --to 192.168.0.5
#
## Liberando o Banesfácil na NAT p/ o IP especifico
#
iptables -t nat -A PREROUTING -s 0/0 -p tcp --sport 20 -m multiport --dport 20,21,4226 -j DNAT --to 192.168.0.114
#
## SPRING
#
iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 10075 -j DNAT --to 192.168.0.5
iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9003 -j DNAT --to 192.168.0.5
iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9004 -j DNAT --to 192.168.0.5
iptables -t nat -A PREROUTING -i $IF_EXT -p tcp --dport 9005 -j DNAT --to 192.168.0.5
#
## Liberando o Conectividade Social
#
iptables -t nat -A PREROUTING -d ! x.x.x.x/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE
#
##Habilitando o squid
#
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
Não vi nas tuas regras nenhuma permitindo o OUTPUT nas portas 80 e 443, que são as portas que o Squid vai tentar acessar quando for atender a uma requisição dos usuários.
O Squid recebe a requisição na porta 3128, que tem que ser liberada (e está) por regra de INPUT e vai na internet buscar as páginas nas portas 80 e 443, que devem ser liberadas por regra de OUTPUT.
iptables -o $IF_EXT -p tcp -m multiport --dports 80,443 -j ACCEPT
essa regra resolve o seu problema.
Minha regra de OUT está accept para todas as portas
iptables -A OUTPUT -j ACCEPT
Alguém pode me ajudar?
Última edição por juliocm; 02-07-2008 às 10:08.
ajudar com?
A sua regra OUTPUT com ACCEPT pra all só quer dizer que as conexões que saem do firewall estão liberadas.
Seguinte, troca a sua regra de redirect do Proxy, por essa:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Testa a regra acima, se nao der certo, aí faz um outro teste rápido: Tira a política padrão de DROP do FORWARD e coloca ACCEPT e testa novamente. Se funcionar, vc já sabe que é FORWARD embaçando, aí vc faz assim:
iptables -A FORWARD -p tcp --destination-port 3128 -j ACCEPT
Teste isso e retorne, valeu
tira isso do teu script:
iptables -F
iptables -t nat -F
ehehehe ta limpando a regra do teu squid :P
ou no fim do teu script coloca
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
Sobe o squid sem firewall e declara no seu navegador o uso dele,
uma coisa importante o squid esta configurado para transparent proxy ??
Abraço