Enviado em 27/06/2012 - 11:56h
@./.ronin,
function _procedimentosIniciais(){
rm -rf /etc/scripts/aux/
mkdir /etc/scripts/aux/
cp /etc/dhcp/dhcpd.conf /etc/scripts/aux/dhcpd.conf
arquivoEntrada="/etc/scripts/aux/dhcpd.conf"
arquivoSaidaREGRAS="/etc/scripts/aux/arqREGRAS"
}
function _definicaoDeRegras(){
_INICIO_REGRA='iptables -A INPUT -s'
_ACCEPT_FIM_REGRA='-j ACCEPT'
_REJECT_FIM_REGRA='-j REJECT'
}
function _getSubnet(){
delimitador='subnet'
grep -e $delimitador $arquivoEntrada |
sed "s/$delimitador/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getMaskSubnet(){
delimitador='netmask'
grep -e $delimitador $arquivoEntrada |
sed "s/$delimitador/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getIpList(){
delimitador='fixed-address'
grep -e $delimitador $arquivoEntrada |
sed "s/$delimitador/_/g" |
sed 's/;/_/g' |
cut -d '_' -f2 |
sed 's/ //g'
}
function _getRejectList(){
paste -d '/' $( _getSubnet ) $( _getMaskSubnet )
}
function _getAcceptRules(){
for _ip_range in $( _getIpList )
do
echo "${_INICIO_REGRA} ${_ip_range} ${_ACCEPT_FIM_REGRA}"
done
}
function _getRejectRules(){
unset _ip_range
for _ip_range in $( _getRejectList )
do
echo "${_INICIO_REGRA} ${_ip_range} ${_REJECT_FIM_REGRA}"
done
}
function _finalizaVariaveis(){
unset arquivoEntrada
unset arquivoSaidaREGRAS
unset delimitador
unset _ip_range
unset _INICIO_REGRA
unset _ACCEPT_FIM_REGRA
unset _REJECT_FIM_REGRA
}
function _executar(){
_procedimentosIniciais
_definicaoDeRegras
_getAcceptRules >> $arquivoSaidaREGRAS
_getRejectRules >> $arquivoSaidaREGRAS
chmod +x $arquivoSaidaREGRAS
#$arquivoSaidaREGRAS
cat $arquivoSaidaREGRAS
_finalizaVariaveis
}
_executar
function _getRejectList(){
paste -d '/' $( _getSubnet ) $( _getMaskSubnet )
}