Liberar acesso por MAC/IP
Publicado por Luis Eduardo Vilella (última atualização em 24/09/2012)
[ Hits: 4.453 ]
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]
IP Info - Pesquisa geográfica pelo endereço IP
arrcomb: Gerando Arranjos e Combinações
Firewall para Compartilhamento de Conexão 3G
conssh.sh - Frontend para SSH via proxy HTTP
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gravação de tela com temporizador
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (16)
problema no debian que poderia ser corrigido por comando? (12)
Usar uma VM dentro do meu notebook como firewall para um dispositivo e... (0)
Eu tive esse erro aqui depois de de baixar o HyprLand Ubuntu na versão... (1)