Alex,
Primeira coisa Organização e primordial, sem isso não se vai a lugar nenhum.
Da uma olhada abaixo e entenda melhor o que estou dizendo:
#!/bin/bash
# Carregando módulos necessários e dando inicio ao firewall
case "$1" in
start)
echo "Iniciando Firewall..."
# depmod -a
# modprobe ip_tables
# modprobe iptable_nat
# modprobe iptable_filter
# modprobe ipt_MASQUERADE
# modprobe ip_conntrack
# modprobe ip_conntrack_ftp
# modprobe ip_nat_ftp
# modprobe ipt_mark
# modprobe ipt_MARK
# modprobe iptable_mangle
# modprobe ipt_REJECT
# Ativa Roteamento via kernel
echo 1 > /proc/sys/net/ip_forward
# Zerando as chains existentes
iptables -F
iptables -X
iptables -F -t nat
iptables -X-t nat
# Definindo política padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permissões de acesso ao firewall
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Abrindo algumas portas
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Mascarando a conexao
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Bloqueando POrtScanners
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
;;
stop)
echo “Parando Firewall:”
iptables –F
iptables –t nat –F
;;
restart)
$0 stop
$0 start
;;
status)
iptables –L
iptables –t nat –L
;;
*)
echo “Use: $0 {start|stop|restart|status}”
exit 1
;;
esac
exit 0
Abração
Jean