blackhatthi
(usa Slackware)
Enviado em 04/10/2010 - 18:37h
Fazendo alguns testes aqui, verifiquei que o problema é que ele não está sendo executado como proxy transparente. Se eu configurar o proxy no navegador, ele funciona perfeitamente bloqueando os sites. Agora não sei se o problema é no squid.conf ou no meu script de iptables, de qualquer modo estou postando o script do firewall aqui:
#!/bin/bash
echo "Carregando o Firewall....."
IPTABLES="/usr/sbin/iptables"
REDECORP="192.168.0.0/24"
REDEINFO="192.168.1.0/24"
IPDNSPROVEDOR="201.X.X.X"
IPDNSPROVEDOR2="201.X.X.X"
ENT="ppp+"
modprobe ip_tables
modprobe iptable_nat
$IPTABLES -F #Limpa as regras do firewall
$IPTABLES -t nat -F #Habilita NAT limpa as regras anteriores
#-----------------------------------------------------------------------------------------------
#SQUID
$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#------------------------------------------------------------------------------------------------
#BLOQUEIO DE MSN
#Nao redireciona a porta 1863
#$IPTABLES -A FORWARD -s $REDECORP -p tcp --dport 1863 -j REJECT
#Rejeita o IP do server
#$IPTABLES -A FORWARD -s $REDEINFO -d 46.4.13.0/24 -j REJECT
#------------------------------------------------------------------------------------------------
#BLOQUEIO DE BACKDOORS ESPECIFICOS
#$IPTABLES -A FORWARD -p UDP --dport 6343 -j REJECT
#------------------------------------------------------------------------------------------------
#PROTECAO CONTRA PING OF DEATH
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#------------------------------------------------------------------------------------------------
#PROTECAO CONTRA ATAQUES DO TIPO SYN-FLOOD, DOS, ETC
$IPTABLES -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
#------------------------------------------------------------------------------------------------
#LOG DE PACOTES MORTOS POR INATIVIDADE
#$IPTABLES -A FORWARD -m limit 3/minute --limit-burst 3 -j LOG
#------------------------------------------------------------------------------------------------
#PERFORMANCE - SETANDO ACESSO WEB COM DELAY MINIMO
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
#------------------------------------------------------------------------------------------------
#DEIXA PASSAR AS PORTAS UDP DO SERVIDOR DNS E REJEITA O RESTANTE
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR2 -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -j REJECT
#------------------------------------------------------------------------------------------------
#FECHAR TODAS AS PORTAS ABAIXO DE 32000
$IPTABLES -A INPUT -i $ENT -p tcp --dport :32000 -j DROP
#$IPTABLES -A INPUT -i $ENT -p UDP --dport 1234 -j DROP #Bloqueia uma porta especifica
#------------------------------------------------------------------------------------------------
#RESPONDE PACOTES ICMP ESPECIFICADOS E REJEITA O RESTANTE (NAO ALTERAR)
$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type host-unreachable -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp -j REJECT --reject-with icmp-host-unreachable
#------------------------------------------------------------------------------------------------
#LIBERAR ACESSO INTERNO DA REDE
$IPTABLES -A INPUT -p tcp --syn -s $REDECORP -j ACCEPT
$IPTABLES -A INPUT -p tcp --syn -s $REDEINFO -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --syn -s $REDECORP -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --syn -s $REDEINFO -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -s $REDECORP -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -s $REDEINFO -j ACCEPT
#------------------------------------------------------------------------------------------------
#LIBERAR LOOPBACK
$IPTABLES -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
#------------------------------------------------------------------------------------------------
#LIBERA CONEXOES DE FORA PARA DENTRO
$IPTABLES -A INPUT -p tcp --destination-port 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 443 -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 22 -j ACCEPT
#------------------------------------------------------------------------------------------------
#LIBERA CONEXOES DE DENTRO PARA FORA
$IPTABLES -A OUTPUT -p tcp --destination-port 80 -j ACCEPT #WEB
$IPTABLES -A OUTPUT -p tcp --destination-port 22 -j ACCEPT #SSH
$IPTABLES -A OUTPUT -p tcp --destination-port 443 -j ACCEPT #HTTPS
$IPTABLES -A OUTPUT -p tcp --destination-port 25 -j ACCEPT #SMTP
$IPTABLES -A OUTPUT -p tcp --destination-port 110 -j ACCEPT #POP
#------------------------------------------------------------------------------------------------
#COMPARTILHAR A WEB NA REDE INTERNA
$IPTABLES -t nat -A POSTROUTING -s $REDECORP -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -s $REDEINFO -o eth0 -j MASQUERADE
#------------------------------------------------------------------------------------------------
#BLOQUEIA O RESTO
$IPTABLES -A INPUT -p tcp --syn -j DROP
$IPTABLES -A OUTPUT -p tcp --syn -j DROP
$IPTABLES -A FORWARD -p tcp --syn -j DROP
echo "Firewall OK..."