Galera, desenvolvi esse firewall iptables...
alguem tem alguma sugestão para me ajudar aqui???
algo para otimizar o codigo ou algum melhoramento...
algo que esqueci de colocar...
ele será usado localmente nas maquinas, nada de proxy, apenas local...
uma duvida: qdo eu bloqueio o orkut, ele naum deixa o usuario entrar no gmail...
alguem sabe como corrigir isso???
tbm naum consigo bloquear sites pornograficos por palavras...
aguardo sugestoes...

#!/bin/sh

########################## ScriptFirewall############################

# Variáveis
#$PALAVRAS=/home/thiago/Documentos/Iptables/palavras

#Proteção contra IP Spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
fi

# Ativando o redirecionamento de pacotes
if [ -e /proc/sys/net/ipv4/ip_forward ]
then
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Ativado o redirecionamento de pacotes!"
else
echo "Redirecionamento de Pacotes não ativado!!!!!"
echo "Falha no Script!!!!!!!!!!!!!"
exit
fi

# Ativando syn cookies protecao Kernel
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi


# Apagando Todas as Regras

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

#Definindo Políticas

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

# Abre para a interface loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i eth0 -j ACCEPT

# Proteje contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Descarta pacotes mal formados
iptables -A INPUT -m state --state INVALID -j DROP

#Libera Conexões pre-estabelecidas
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 HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

# Liberando HTTPS
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p udp --dport 443 -j ACCEPT
iptables -A OUTPUT -p udp --dport 443 -j ACCEPT

# Liberando NTP
iptables -A INPUT -p tcp --dport 123 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 123 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT


#Liberar redirecionamento e accesso pelo proxy do dns
iptables -A FORWARD -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -m state --state NEW -j ACCEPT

iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

# Anti-Spoofing
iptables -A INPUT -j DROP -s 10.0.0.0/8 -i eth0
iptables -A INPUT -j DROP -s 127.0.0.0/8 -i eth0
iptables -A INPUT -j DROP -s 172.16.0.0/12 -i eth0
iptables -A INPUT -j DROP -s 192.168.1.0/16 -i eth0

# Bloqueia as demais portas
iptables -A INPUT -p tcp --syn -j DROP

#Bloquear Orkut
#iptables -A INPUT -s www.orkut.com -j REJECT
#iptables -A OUTPUT -d www.gmail.com -j ACCEPT
#iptables -A FORWARD -d gmail.com -j ACCEPT

# Bloqueia orkut, mas não entra no gmail
iptables -t nat -A OUTPUT -d www.orkut.com -p tcp --dport 443 -j DROP
iptables -t nat -A OUTPUT -d orkut.com -p tcp --dport 443 -j DROP
iptables -t nat -A OUTPUT -d www.google.com -p tcp --dport 443 -j DROP
iptables -t nat -A OUTPUT -d google.com -p tcp --dport 443 -j DROP

#Previne ping da morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j 
ACCEPT

# Bloqueando sites por palavras
#echo "Fazendo bloqueio por palavras..."

#for end in `cat /home/thiago/Documentos/Iptables/palavras`
#do
#   iptables -A OUTPUT -d $end -j REJECT
#   iptables -A FORWARD -d $end -j REJECT

#for i in $PALAVRAS; do
#    echo " Bloqueio feito para a string $i"
#    iptables -t mangle -A FORWARD -p tcp –dport 80 -m string –string "$i" 
–algo kmp  -j DROP
#done
#echo "Bloqueio realizado"

#Bloqueando P2P

#Bittorrent
iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP

#Edonkey
iptables -A FORWARD -m layer7 --l7proto edonkey -j DROP

#fasttrack
iptables -A FORWARD -m layer7 --l7proto fasttrack -j DROP

#Gnutella
iptables -A FORWARD -m layer7 --l7proto gnutella -j DROP

#Imesh
iptables -A FORWARD -m layer7 --l7proto imesh -j DROP

#Bloqueio do MSN
iptables -A OUTPUT -m layer7 --l7proto msnmessenger -j DROP
iptables -A INPUT -m layer7 --l7proto msnmessenger -j DROP

# Bloqueio de vídeos
iptables -A INPUT -m layer7 --l7proto httpvideo -j DROP

echo "Regras de Firewall ativadas"

Responder a