Cadastro automatizado para DHCP, Sarg, ethers e hosts
Publicado por Felipe (última atualização em 09/09/2015)
[ Hits: 4.344 ]
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
Teste de desempenho com números primos em BASH
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CRIANDO USUÁRIOS A PARTIR DE ARQUIVO
Instalação - Servidor de e-mail
Identifica contatos do google que necessitam de ajustes para o nono digito telefonico
Nenhum comentário foi encontrado.
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









