Firewall profissional
Firewall muito fácil de configurar e extremamente seguro, podendo ser instalado em qualquer distribuição Linux. Batizamos de FWControl.
Parte 3: funcoes_ff.sh
Coloque o seguinte conteúdo no arquivo e salve-o:
#!/bin/sh
parse_f_forward () {
grep -v "#" $CONF_DIR/filter/forward/* | grep -v "^$" | while read j
do
FF_IFACE_ENTRADA=`echo $j | awk -F, '{ print $1 }'`
if [ ! -z $FF_IFACE_ENTRADA ]
then
FF_IFACE_ENTRADA="-i $FF_IFACE_ENTRADA"
fi
FF_IFACE_SAIDA=`echo $j | awk -F, '{ print $2 }'`
if [ ! -z $FF_IFACE_SAIDA ]
then
FF_IFACE_SAIDA="-o $FF_IFACE_SAIDA"
fi
FF_PROTO=`echo $j | awk -F, '{print $3 }'`
if [ ! -z $FF_PROTO ]
then
FF_PROTO="-p $FF_PROTO"
else
FF_PROTO="-p tcp"
fi
FF_IP_ORIGEM=`echo $j | awk -F, '{ print $4 }'`
if [ ! -z $FF_IP_ORIGEM ]
then
FF_IP_ORIGEM="-s $FF_IP_ORIGEM"
else
FF_IP_ORIGEM="-s 0/0"
fi
FF_PORTA_ORIGEM=`echo $j | awk -F, '{ print $5 }'`
if [ ! -z $FF_PORTA_ORIGEM ]
then
FF_PORTA_ORIGEM="--sport $FF_PORTA_ORIGEM"
else
FF_PORTA_ORIGEM="--sport 1024:"
fi
FF_IP_DEST=`echo $j | awk -F, '{ print $6 }'`
if [ ! -z $FF_IP_DEST ]
then
FF_IP_DEST="-d $FF_IP_DEST"
else
FF_IP_DEST="-d 0/0"
fi
FF_PORTA_DEST=`echo $j | awk -F, '{ print $7 }'`
if [ ! -z $FF_PORTA_DEST ]
then
FF_PORTA_DEST="--dport $FF_PORTA_DEST"
fi
FF_ACAO=`echo $j | awk -F, '{ print $8 }'`
if [ -z $FF_ACAO ]
then
FF_ACAO="ACCEPT"
fi
if [ $DEBUG -eq 0 ]
then
$IPT -t filter -A FORWARD $FF_IFACE_ENTRADA $FF_IFACE_SAIDA $FF_IP_ORIGEM $FF_PORTA_ORIGEM $FF_IP_DEST $FF_PORTA_DEST -j $FF_ACAO
else
echo $IPT -t filter -A FORWARD $FF_IFACE_ENTRADA $FF_IFACE_SAIDA $FF_IP_ORIGEM $FF_PORTA_ORIGEM $FF_IP_DEST $FF_PORTA_DEST -j $FF_ACAO
fi
done
}
parse_f_forward () {
grep -v "#" $CONF_DIR/filter/forward/* | grep -v "^$" | while read j
do
FF_IFACE_ENTRADA=`echo $j | awk -F, '{ print $1 }'`
if [ ! -z $FF_IFACE_ENTRADA ]
then
FF_IFACE_ENTRADA="-i $FF_IFACE_ENTRADA"
fi
FF_IFACE_SAIDA=`echo $j | awk -F, '{ print $2 }'`
if [ ! -z $FF_IFACE_SAIDA ]
then
FF_IFACE_SAIDA="-o $FF_IFACE_SAIDA"
fi
FF_PROTO=`echo $j | awk -F, '{print $3 }'`
if [ ! -z $FF_PROTO ]
then
FF_PROTO="-p $FF_PROTO"
else
FF_PROTO="-p tcp"
fi
FF_IP_ORIGEM=`echo $j | awk -F, '{ print $4 }'`
if [ ! -z $FF_IP_ORIGEM ]
then
FF_IP_ORIGEM="-s $FF_IP_ORIGEM"
else
FF_IP_ORIGEM="-s 0/0"
fi
FF_PORTA_ORIGEM=`echo $j | awk -F, '{ print $5 }'`
if [ ! -z $FF_PORTA_ORIGEM ]
then
FF_PORTA_ORIGEM="--sport $FF_PORTA_ORIGEM"
else
FF_PORTA_ORIGEM="--sport 1024:"
fi
FF_IP_DEST=`echo $j | awk -F, '{ print $6 }'`
if [ ! -z $FF_IP_DEST ]
then
FF_IP_DEST="-d $FF_IP_DEST"
else
FF_IP_DEST="-d 0/0"
fi
FF_PORTA_DEST=`echo $j | awk -F, '{ print $7 }'`
if [ ! -z $FF_PORTA_DEST ]
then
FF_PORTA_DEST="--dport $FF_PORTA_DEST"
fi
FF_ACAO=`echo $j | awk -F, '{ print $8 }'`
if [ -z $FF_ACAO ]
then
FF_ACAO="ACCEPT"
fi
if [ $DEBUG -eq 0 ]
then
$IPT -t filter -A FORWARD $FF_IFACE_ENTRADA $FF_IFACE_SAIDA $FF_IP_ORIGEM $FF_PORTA_ORIGEM $FF_IP_DEST $FF_PORTA_DEST -j $FF_ACAO
else
echo $IPT -t filter -A FORWARD $FF_IFACE_ENTRADA $FF_IFACE_SAIDA $FF_IP_ORIGEM $FF_PORTA_ORIGEM $FF_IP_DEST $FF_PORTA_DEST -j $FF_ACAO
fi
done
}
Eita reinvenção brava...
Se procurar no google como complicar a configuração do IPTABLES cairá aqui no VoL agora...
Meu Deus, quanta criatividade...