Antes de mais nada o grande criado do script foi Carlos Morimoto, só fiz algumas modificações pra melhor manuzeio...Sujestões, correções e critícas são sempre bem-vindos.

Segue o script abaixo:


#!/bin/bash

# Script de configuração do iptables gerado pelo configurador do Kurumin
# Este script pode ser usado em outras distribuições Linux que utilizam o

#Kernel 2.4 em diante

# Por Carlos E. Morimoto
echo #########################################################
echo Editado por Rafael Messias Prado Valerini
echo email= [email protected]
echo #########################################################

#Compartilhando a internet pra rede local
modprobe iptable_nat
iptables -F
iptables -F INPUT

#Liberando SSH
iptables -A INPUT -p tcp --syn --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#Liberando acesso externo ao seu FTP
iptables -A INPUT -p tcp --syn --destination-port 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --syn --destination-port 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat
iptables -P FORWARD ACCEPT

#Compartilhando conexão via ppp0 (subistitua ppp0 por ethx caso seu modem esteja configurado como router)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

#Levantando modulos ftp
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

#Variaveis
REDELOCAL="192.168.0.0/24"
TODOS="0/0"

#firewall_start(){


#Liberar Portas (NAT) Portas

PORTAS="1433" #Portas a serem liberadas
for PORT in `echo $PORTAS`
do
iptables -t nat -A POSTROUTING -s $REDELOCAL -p tcp -d $TODOS --dport $PORT -o eth1 -j MASQUERADE
iptables -I FORWARD -p tcp -d $TODOS --dport $PORT -s $REDELOCAL -j ACCEPT
iptables -I OUTPUT -p tcp -d $TODOS --dport $PORT -j ACCEPT

done

# Abre para uma faixa de endereços da rede local
iptables -A INPUT -p tcp --syn -s $REDELOCAL -j ACCEPT

# Ignora pings
#echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all


# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP


# Abre para a interface de loopback.
# Esta regra é essencial para o KDE e outros programas gráficos funcionarem
#adequadamente.
iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT

# Redireciona uma faixa de portas para um micro da rede local

REDIRECT="1433:1433-192.168.0.254" #Redirecionamento de portas para uma determinada maquina da rede local
for REDI in `echo $REDIRECT`
do
PORT=`echo "$REDI" | cut -d"-" -f1`
IPDEST=`echo "$REDI" | cut -d"-" -f2`

iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport $PORT -j DNAT --to-dest $IPDEST
iptables -A FORWARD -p tcp -i ppp0 --dport $PORT -d $IPDEST -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport $PORT -j DNAT --to-dest $IPDEST
iptables -A FORWARD -p udp -i ppp0 --dport $PORT -d $IPDEST -j ACCEPT

done

# Esta regra é o coração do firewall do Kurumin,
# ela bloqueia qualquer conexão que não tenha sido permitida acima,
# justamente por isso ela é a última da cadeia.
iptables -A INPUT -p tcp --syn -j DROP

#/etc/skel-fix/firewall-msg

#}
firewall_stop(){
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}

case "$1" in
"start")
firewall_start
;;
"stop")
firewall_stop
echo "O kurumin-firewall está sendo desativado"
sleep 2
echo "ok."
;;
"restart")
echo "O kurumin-firewall está sendo desativado"
sleep 1
echo "ok."
firewall_stop; firewall_start
;;
*)
iptables -L -n
esac