Cadastro automatizado para DHCP, Sarg, ethers e hosts
Publicado por Felipe (última atualização em 09/09/2015)
[ Hits: 3.957 ]
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
Trocar string A por string B em vários arquivos
WallpaperID - papel de parede com IP e kernel do usuário
Instalador de Código Fonte - Linha de Comando
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta