Firewall profissional
Firewall muito fácil de configurar e extremamente seguro, podendo ser instalado em qualquer distribuição Linux. Batizamos de FWControl.
Introdução
Este script foi elaborado de forma que usuários iniciantes possam configurar um firewall iptables de maneira extremamente fácil, bastando apenas seguir os comentários do script.
Para iniciante digite no prompt:
# mkdir /etc/fwcontrol
# echo "echo Inicializando FwControl " >> /etc/rc.d/rc.local
# echo "/etc/fwcontrol/fwcontrol" >> /etc/rc.d/rc.local
# touch /etc/fwcontrol/fwcontrol
Edite:
# vi /etc/fwcontrol/fwcontrol
Insira o seguinte conteúdo e salve o arquivo.
Observe a linha do masquerade, que coloca o ip da sua rede interna e a interface de rede correspondente a Internet.
Criando inicialização
Primeiramente devemos definir um diretório padrão para o nosso script fwcontrol, iremos criar primeiro o diretório /etc/fwcontrol/ para que possamos criar os scripts e adicioná-lo no rc.local do seu Linux.Para iniciante digite no prompt:
# mkdir /etc/fwcontrol
# echo "echo Inicializando FwControl " >> /etc/rc.d/rc.local
# echo "/etc/fwcontrol/fwcontrol" >> /etc/rc.d/rc.local
Instalando Fwcontrol
Crie o arquivo:# touch /etc/fwcontrol/fwcontrol
Edite:
# vi /etc/fwcontrol/fwcontrol
Insira o seguinte conteúdo e salve o arquivo.
Observe a linha do masquerade, que coloca o ip da sua rede interna e a interface de rede correspondente a Internet.
#!/bin/sh
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
CONF_DIR="/etc/fwcontrol"
IPT="/usr/sbin/iptables"
INCLUDE="$CONF_DIR/include"
DEBUG=0
if [ "$1" == "-d" ]
then
DEBUG=1
fi
source $INCLUDE/funcoes_ff.sh
source $INCLUDE/funcoes_fi.sh
source $INCLUDE/funcoes_fo.sh
source $INCLUDE/funcoes_no.sh
source $INCLUDE/funcoes_ne.sh
if [ "$DEBUG" == "0" ]
then
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -F
$IPT -F -t nat
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
else
echo $IPT -P INPUT ACCEPT
echo $IPT -P OUTPUT ACCEPT
echo $IPT -P FORWARD ACCEPT
echo $IPT -F
echo $IPT -F -t nat
echo $IPT -P INPUT DROP
echo $IPT -P OUTPUT DROP
echo $IPT -P FORWARD DROP
echo $IPT -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo $IPT -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
fi
parse_f_input
parse_f_output
parse_f_forward
parse_n_postrouting
parse_n_prerouting
#Mascarando saída da internet
iptables -t nat -A POSTROUTING -s 10.0.20.0/24 -d 0/0 -o eth1 -j MASQUERADE
#Aceitando Ping
$IPT -A FORWARD -p icmp -j ACCEPT
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -p icmp -j ACCEPT
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
CONF_DIR="/etc/fwcontrol"
IPT="/usr/sbin/iptables"
INCLUDE="$CONF_DIR/include"
DEBUG=0
if [ "$1" == "-d" ]
then
DEBUG=1
fi
source $INCLUDE/funcoes_ff.sh
source $INCLUDE/funcoes_fi.sh
source $INCLUDE/funcoes_fo.sh
source $INCLUDE/funcoes_no.sh
source $INCLUDE/funcoes_ne.sh
if [ "$DEBUG" == "0" ]
then
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -F
$IPT -F -t nat
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
else
echo $IPT -P INPUT ACCEPT
echo $IPT -P OUTPUT ACCEPT
echo $IPT -P FORWARD ACCEPT
echo $IPT -F
echo $IPT -F -t nat
echo $IPT -P INPUT DROP
echo $IPT -P OUTPUT DROP
echo $IPT -P FORWARD DROP
echo $IPT -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo $IPT -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
fi
parse_f_input
parse_f_output
parse_f_forward
parse_n_postrouting
parse_n_prerouting
#Mascarando saída da internet
iptables -t nat -A POSTROUTING -s 10.0.20.0/24 -d 0/0 -o eth1 -j MASQUERADE
#Aceitando Ping
$IPT -A FORWARD -p icmp -j ACCEPT
$IPT -A INPUT -p icmp -j ACCEPT
$IPT -A OUTPUT -p icmp -j ACCEPT
Eita reinvenção brava...
Se procurar no google como complicar a configuração do IPTABLES cairá aqui no VoL agora...
Meu Deus, quanta criatividade...