Liberar acesso por MAC/IP
Publicado por Luis Eduardo Vilella (última atualização em 24/09/2012)
[ Hits: 4.718 ]
Download 1346711693.Script.sh (versão 2)
Precisei liberar acesso por IP/MAC porem eu precisava ficar cadastrando.. ai fiz um script e o pessoal me ajudou sendo assim nada mais justo que compartilhar.
São dois scripts um faz a amarração IP/MAC o outro libera acesso para os IPs cadastrados.
Versão 2 - Enviado por Luis Eduardo Vilella em 03/09/2012
Changelog: Lista de Acesso IP/MAC
[code]
#!/bin/bash
#
# Makes iptables/MAC rules usings the /etc/dhcp/dhcp.conf file
# autor Paulo Riceli (./.ronin) [ http://sekysu.blogspot.com ]
# autor Luis Vilella (luivilella)[http://www.vivaolinux.com.br/perfil/verPerfil.php?login=luivilella]
typeset -r _INPUT_ARQ='/etc/dhcp/dhcpd.conf'
typeset -r _RULES='/tmp/rules.sh'
function _getIpList(){
delimitador='fixed-address'
grep -e $delimitador $_INPUT_ARQ |
sed "s/$delimitador/_/g" |
sed 's/;/_/g' |
cut -d '_' -f2 |
sed 's/ //g'
}
function _getMACList(){
delimitador='ethernet'
grep -e $delimitador $_INPUT_ARQ |
sed "s/$delimitador/_/g" |
sed "s/;/_/g" |
cut -d"_" -f2 |
sed "s/ //g"
}
function _getAcceptRules(){
_INDICE=0
for _CONTEUDO in $(_getIpList)
do
_IP[${_INDICE}]=${_CONTEUDO}
_INDICE=`echo "(${_INDICE} + 1)" | bc`
done
unset _CONTEUDO
_INDICE=0
for _CONTEUDO in $(_getMACList)
do
_MAC[${_INDICE}]=${_CONTEUDO}
_INDICE=`echo "(${_INDICE} + 1)" | bc`
done
unset _CONTEUDO
for ((i=0; i < ${_INDICE} ; i++))
do
echo "${_IP[${i}]} ${_MAC[${i}]}"
done
unset _IP
unset _MAC
unset _INDICE
unset i
}
function _executar(){
_getAcceptRules > $_RULES
cat $_RULES
}
_executar
[/code]
Lista de Acesso aos IPs cadastrados
[code]
#!/bin/bash
#
# Makes iptables rules usings the /etc/dhcp/dhcp.conf file
# autor Paulo Riceli (./.ronin) [ http://sekysu.blogspot.com ]
# autor Luis Vilella (luivilella)[http://www.vivaolinux.com.br/perfil/verPerfil.php?login=luivilella]
typeset -r _INPUT_ARQ='/etc/dhcp/dhcpd.conf'
typeset -r _RULES='/tmp/rules.sh'
typeset -r _START_RULE='iptables -A INPUT -s'
typeset -r _ACCEPT_END_RULE='-j ACCEPT'
typeset -r _REJECT_END_RULE='-j REJECT'
function _getSubnet()
{
_DELIM='subnet'
grep -e ${_DELIM} ${_INPUT_ARQ} |
sed "s/${_DELIM}/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getMaskSubnet()
{
_DELIM='netmask'
grep -e ${_DELIM} ${_INPUT_ARQ} |
sed "s/${_DELIM}/_/g" |
cut -d '_' -f2 |
sed 's/ /_/g' |
cut -d '_' -f2
}
function _getIp()
{
_DELIM='fixed-address'
grep -e ${_DELIM} ${_INPUT_ARQ} |
sed "s/${_DELIM}/_/g" |
sed 's/;/_/g' |
cut -d '_' -f2 |
sed 's/ //g'
}
function _getRejectList()
{
_INDICE=0
for _CONTEUDO in $(_getMaskSubnet)
do
_MASK[${_INDICE}]=${_CONTEUDO}
_changeMask
_INDICE=`echo "(${_INDICE} + 1)" | bc`
done
unset _CONTEUDO
_INDICE=0
for _CONTEUDO in $(_getSubnet)
do
_SUBNET[${_INDICE}]=${_CONTEUDO}
_INDICE=`echo "(${_INDICE} + 1)" | bc`
done
unset _CONTEUDO
for ((i=0; i < ${_INDICE} ; i++))
do
echo -e "\n${_SUBNET[${i}]}/${_MASK[${i}]}"
done
unset _INDICE
unset i
}
function _changeMask()
{
case "`echo ${_MASK[${_INDICE}]} | sed 's/\\r//g' | sed 's/ //g' | sed 's/\.//g'`" in
"`echo "128.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='1';;
"`echo "192.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='2';;
"`echo "224.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='3';;
"`echo "240.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='4';;
"`echo "248.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='5';;
"`echo "252.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='6';;
"`echo "254.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='7';;
"`echo "255.0.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='8';;
"`echo "255.128.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='9';;
"`echo "255.192.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='10';;
"`echo "255.224.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='11';;
"`echo "255.240.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='12';;
"`echo "255.248.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='13';;
"`echo "255.252.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='14';;
"`echo "255.254.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='15';;
"`echo "255.255.0.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='16';;
"`echo "255.255.128.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='17';;
"`echo "255.255.192.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='18';;
"`echo "255.255.224.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='19';;
"`echo "255.255.240.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='20';;
"`echo "255.255.248.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='21';;
"`echo "255.255.252.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='22';;
"`echo "255.255.254.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='23';;
"`echo "255.255.255.0" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='24';;
"`echo "255.255.255.128" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='25';;
"`echo "255.255.255.192" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='26';;
"`echo "255.255.255.224" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='27';;
"`echo "255.255.255.240" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='28';;
"`echo "255.255.255.248" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='29';;
"`echo "255.255.255.252" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='30';;
"`echo "255.255.255.254" | sed 's/\.//g'`" )
_MASK[${_INDICE}]='31';;
* );;
esac
}
function _getAcceptRules()
{
for _IP_RANGE in $(_getIp)
do
echo "${_START_RULE} ${_IP_RANGE} ${_ACCEPT_END_RULE}"
done
}
function _getRejectRules()
{
unset _IP_RANGE
for _IP_RANGE in $( _getRejectList )
do
echo "${_START_RULE} ${_IP_RANGE} ${_REJECT_END_RULE}"
done
}
function _execute()
{
_getAcceptRules > ${_RULES}
_getRejectRules >> ${_RULES}
echo -e "\n #$0 \n # The rules list from \n #${_RULES}\n"
cat ${_RULES}
}
function _main()
{
if [ -e ${_INPUT_ARQ} ]
then
_execute
else
echo -e "$0::Input error \nThe file ${_INPUT_ARQ} not exists"
exit 1
fi
}
_main &&
exit 0
[/code]
ddflash - criar mídia bootável do Linux e FreeBSD
ADMINISTRANDO USUARIOS COM XDIALOG
Localizar e excluir linhas repetidas em um arquivo texto
Gerar arquivos CSV no postgresql
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGANDO MSG ANTIGAS DA MBOX - TODOS OS USUARIOS
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático









