Cadastro automatizado para DHCP, Sarg, ethers e hosts
Publicado por Felipe (última atualização em 09/09/2015)
[ Hits: 4.256 ]
Script desenvolvido para receber nome do usuário e endereço MAC para cadastrá-los nos seguintes arquivos:
- /etc/dhcp/dhcpd.conf
Para o correto funcionamento, a parte final do arquivo tem que ser como no exemplo abaixo independente das configurações iniciais:
host Note-branco-vistante-1 { hardware ethernet 30:f9:ed:db:37:50; fixed-address 192.168.0.15; }
host Note-Preto-vistante-2 { hardware ethernet a4:1f:72:fd:40:9f; fixed-address 192.168.0.16; }
}}}
- /etc/ethers
Para o correto funcionamento, o IP deverá ser separado por 1 espaço do MAC, e o MAC de quem ainda não foi cadastrado deverá ser aa:bb:cc:dd:ee:ff (sendo possível alterar no script):
192.168.0.21 aa:bb:cc:dd:ee:ff
192.168.0.22 aa:bb:cc:dd:ee:ff
- /etc/sarg/sarg.usertab
- /etc/hosts
- O IP usado será o próximo disponível no dhcpd.conf (portanto, o dhcpd.conf deverá ter pelo menos 1 cadastro)
- Validador de MAC
- Limitador de IP
- Atualização automática da tabela ARP (arp -f)
- Restart automático do dhcpd (/etc/init.d/isc-dhcp-server restart)
Espero que ajuda alguém e sugestões/críticas são muito bem-vindas.
PAZ!
#!/bin/bash
clear
echo "
##########################################################################
# Autor: Felipe Assunção #
# Email: felipeassuncaoj@gmail.com #
# #
# Script desenvolvido para receber nome do usuário e endereço MAC #
# para cadastra-los nos seguintes arquivos: #
# #
# /etc/dhcp/dhcpd.conf (Distribui IP's automático, amarrando-os nos MAC) #
# /etc/ethers (Amarra IP x MAC) #
# /etc/sarg/sarg.usertab (Nome de usuário no relatório SARG) #
# /etc/hosts (Relaciona nome de usuário ao invés de IP) #
# #
# - O IP usado será o próximo disponível no dhcpd.conf #
# - Validador de MAC #
# - Limitador de IP #
# - Atualização automática da tabela ARP (arp -f) #
# - Restart automático do dhcpd (/etc/init.d/isc-dhcp-server restart) #
##########################################################################
"
ip_final_atual=$(cut -d " " -f 8 /etc/dhcp/dhcpd.conf | tr -d ';','}}}' | tail -2 | cut -d "." -f 4)
ip_final_proximo=$(($ip_final_atual+1))
ip_inicio=$(cut -d " " -f 8 /etc/dhcp/dhcpd.conf | tr -d ';','}}}' | tail -2 | cut -d "." -f 1-3)
ip_proximo=$ip_inicio.$ip_final_proximo
valida_mac=0
if [ "$ip_final_proximo" -gt "254" ]; then
echo
echo "Endereços IP's esgotados"
echo
else
echo
echo "Digite o nome do usuário, sem acentuação e/ou espaço - Ex: Jose-Cel, Jose-Note"
read nome
echo
while [ "$valida_mac" != "" ]; do
echo Digite o endereço MAC - Ex: 11:aa:22:bb:33:cc
read mac
valida_mac=`echo $mac | sed "s/[0-9\a-f\A-F\:]//g"`;
if [ "$valida_mac" != "" ]; then
echo
echo "Endereço MAC Inválido"
echo
else
tac /etc/dhcp/dhcpd.conf | tail -n +2 | tac > /etc/dhcp/dhcpd.tmp
echo "host $nome { hardware ethernet $mac; fixed-address $ip_proximo; }" >> /etc/dhcp/dhcpd.tmp
tail -1 /etc/dhcp/dhcpd.conf >> /etc/dhcp/dhcpd.tmp
mv /etc/dhcp/dhcpd.tmp /etc/dhcp/dhcpd.conf
sed -i s/$ip_proximo\ \aa:bb:cc:dd:ee:ff/$ip_proximo\ $mac/g /etc/ethers
echo $ip_proximo $nome >> /etc/sarg/sarg.usertab
echo $ip_proximo $nome >> /etc/hosts
echo
echo Atualizando tabela ARP...
arp -f
echo
echo Reiniciando servidor DHCP...
/etc/init.d/isc-dhcp-server restart
echo
echo O IP $ip_proximo foi definido para $nome
echo
fi
done
fi
Find em arquivos compactados (grep em arquivos tgz)
Troca periódica de senhas para usuários
Controlando bloqueios de máquinas com squid.conf
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









