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"
