De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Eduardo Bernardino
Data de Publicação: 26 de August de 2008
Espero que eu não seja o único preguiçoso, que não gosta de ficar configurando
um servidor DHCP, prendendo os MACs com os IP s. Por achar que não estou
sozinho nesta empreeitada criei um script que busca os computadores na rede
através do programa nbtscan
, que é um scanner de netbios, onde ele mostra o
nome, IP e Mac dos computadores de sua rede, montando uma tabela pra você.
O script que denominei como Autodhcpd.sh
, filtra estas informações do nbtscan
e formata as entradas do seu arquivo dhcpd.conf
, gerando um servidor DHCP com
configurações básicas e com todos os hosts de sua rede presos por endereço
MAC, aumentado assim a organização e segurança de sua rede.
Instalação no Debian, que é a distribuição que uso:
#apt-get install nbtscan
Modos de utilização do comando:
#nbtscan -r 192.168.1.0/24 #nbtscan 192.168.1.25-137
Onde a saída vai ser algo deste tipo:
#nbtscan 192.168.1.1 Doing NBT name scan for addresses from 192.168.1.1 IP address NetBIOS Name Server User MAC address 192.168.1.1 Fulano-Machine Fulano 00:00:00:00:00:00
Funcionamento básico do Script:
O nbtscan
, que você terá que instalar previamente, busca os hosts da rede
e gera uma tabela como expliquei acima, depois de gerada ele filtra o que
interessa e começa a alimentar o seu novo dhcpd.conf, por isso aconselho vocês
a fazer um backup do antigo, o que ele não conseguir scanear irá informar,
tentando outro método para descobrir o endereço MAC.
#!/bin/bash # # CRIADO : 01 de Agosto de 2008 # AUTORES : Eduardo de Souza B. da Silva # Ricardo Caldas Santos # DESCRIÇÃO : Gerador de arquivos dhcpd.conf # LICENÇA : GPL v2 # VERSÃO : 0.1 # filterip=`echo ${1:0:7}` iplocal=`ifconfig | tr -s | grep end.: | cut -d -f4| head -n1` nbtscan $1 | egrep $filterip | tr -s | sed s/ // |cut -d -f1,2,4 | sed /Doing NBT scan/d > dhcp.temp sed -i / $iplocal /d dhcp.temp # echo -n Entre com o valor para default-lease-time: ; read dlt echo -n Entre com o valor para max-lease-time: ; read mlt echo -n Entre com o valor para option subnet-mask: ; read subnet echo -n Entre com o valor para option broadcast-address: ; read broad echo -n Entre com o valor para option routers: ; read router echo -n Entre com o valor para option domain-name-servers : ; read names echo -n Entre com o valor para option domain-name: ; read name # echo default-lease-time $dlt ; >> dhcpd.conf echo max-lease-time $mlt ; >> dhcpd.conf echo option subnet-mask $subnet ; >> dhcpd.conf echo option broadcast-address $broad ; >> dhcpd.conf echo option routers $router ; >> dhcpd.conf echo option domain-name-servers $names ; >> dhcpd.conf echo option domain-name \ "$name \ " ; >> dhcpd.conf echo >> dhcpd.conf # mac_inv() { echo O computador $name com o seguinte IP $ip não pode ser cadastrado no arquivo, pois não foi possível capturar o seu MAC. echo Tentando descobrir o endereço MAC, aguarde por favor ping -c 1 $ip >> /dev/null if [ $? -eq 0 ] then mac=`arp -a | grep $ip | cut -d -f4` mac_val echo Computador cadastrado com sucesso echo else echo Não foi possível determinar o endereço MAC echo Você pode utilizar este IP para descobrir o endereço MAC através de tabela ARP ou scanner de rede. echo fi } # mac_val() { echo host $name { >> dhcpd.conf echo hardware ethernet $mac ; >> dhcpd.conf echo fixed-address $ip ; >> dhcpd.conf echo } >> dhcpd.conf echo >> dhcpd.conf } # count=`wc -l dhcp.temp | cut -d -f1` # while [ $count -gt 0 ] do ip=`cat dhcp.temp | cut -d -f1 | head -n $count | tail -n 1` name=`cat dhcp.temp | cut -d -f2 | head -n $count | tail -n 1` mac=`cat dhcp.temp | cut -d -f3 | head -n $count | tail -n 1` if test $mac = 00:00:00:00:00:00 then mac_inv else mac_val fi # let count = count -1″ done echo O arquivo dhcpd.conf foi salvo em `pwd`
Bom espero que gostem e que seja útil Ahhh aguardo sugestões no script, pois não sou muito bom em programar Valeu.
Eduardo de Souza Bernardino da Silva - ostrecosdeti.com.br
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários