Liberar acesso por MAC/IP
Publicado por Luis Eduardo Vilella (última atualização em 24/09/2012)
[ Hits: 4.423 ]
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]
Configurando Adaptador USBSerial no Ubuntu usando udev
Criação de ports para slackware
Inserção de máquinas no banco de dados para controle interno
Limpando cache do Squid (Baseado em Debian)
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Os empreguim de meu Deus estão cada vez mais tecnológicos (7)