Servidor DHCP automático com limitação por MAC no Debian 2.6
Devido a alguns problemas que encontrei ao tentar instalar o
DHCP limitando todos os MAC liberado e contando com a edição de um único arquivo. Estou postando esse artigo para facilitar. Espero que tenham um bom proveita. Após concluir ficará muito fácil, pois bastará editar um único arquivo e pronto.
Valos lá: antes de tudo instale é claro o servidor DHCP:
# aptitude install dhcp3-server
Crie um arquivo chamado "MACList" na pasta /usr/local/sbin/MACList:
# touch /usr/local/sbin/MACList
Edite-o acrescentando a lista dos MAC e respectivos IP's a serem liberados automaticamente, seguindo o modelo abaixo:
a;00:00:00:00:00:00;10.0.0.?;usuario
Onde:
- a: Ativo (Se b, Bloqueia);
- 00:00:00:00:00:00 = MAC da placa;
- 10.0.0.? = IP a ser usado pelo micro;
- usuario = Nome do usuários para referência posterior.
Crie o script de configuração "wcdhcp.sh" na pasta /usr/local/sbin, com o seguinte conteúdo:
#############################################
#! /bin/bash
# Por Isomi Luiz da Silva - Última atualização 27.02.2007
ConfDHCP=/etc/dhcp3/dhcpd.conf
ConfDHCPTemp=/etc/dhcp3/dhcpd_t.conf
ListMACs=/usr/local/sbin/MACList
ServDHCP=10.0.0.1
ServIniRange=10.0.0.2
ServDHCPBroadcast=10.0.0.255
ServDNS=10.0.0.1,10.1.1.1
echo "[ok] Configurações padrões..."
if [ -e $ConfDHCPTemp ]; then
chmod 777 $ConfDHCPTemp
rm $ConfDHCPTemp
echo '[ok] Excluindo '$ConfDHCPTemp' arquivo de configuração'
else
touch -c $ConfDHCPTemp
echo -ne ''>>$ConfDHCPTemp
chmod 777 $ConfDHCPTemp
echo '[ok] Criando e atribuindo permissão 777 ao arquivo'
fi
ContIPFim=`awk 'END{print NR}' $ListMACs`
for ContIPFim in `cat $ListMACs`; do
IPFim=`echo $ContIPFim | cut -d ';' -f 3`
done
echo '[ok] Encontrando último IP'
echo -ne '#Arquivo de configuração DHCP
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
INTERFACES=eth1;
subnet 10.0.0.0 netmask 255.0.0.0 {
range '$ServIniRange' '$IPFim';
option routers '$ServDHCP';
option domain-name-servers '$ServDNS';
option broadcast-address '$ServDHCPBroadcast';
'> $ConfDHCPTemp
echo '[ok] Definindo parâmetros padrões DHCP'
for i in `cat $ListMACs`; do
#Captura dados da lista de mac
WC_STATUS=`echo $i | cut -d ';' -f 1`
IPSOURCE=`echo $i | cut -d ';' -f 3`
MACSOURCE=`echo $i | cut -d ';' -f 2`
USUARIO=`echo $i | cut -d ';' -f 4`
if [ $WC_STATUS = "a" ]; then
echo -ne '
host '$USUARIO '{
hardware ethernet '$MACSOURCE';
fixed-address '$IPSOURCE';
}'>>$ConfDHCPTemp
fi
done
echo '[ok] Escrito HDCP por MAC'
echo -ne '
}'>>$ConfDHCPTemp
chmod 777 $ConfDHCP
rm $ConfDHCP
echo '[ok] Excluindo arquivo Conf HDCP original anterior'
mv $ConfDHCPTemp $ConfDHCP
chmod 644 $ConfDHCP
echo '[ok] Renomeando criado para o Conf HDCP padrão'
/etc/init.d/dhcp3-server restart
echo '[ok] Iniciando serviço HDCP'
Altere no topo do arquivo "wcdhcp.sh" os parâmetros anteriores à identificação "Configurações padrões" de acordo com suas configurações de rede.
Para testar é só executrar:
# /usr/local/sbin/wcdhcp.sh
E verificar se o arquivo de configuração foi criado corretamente:
# nano /etc/dhcp3/dhcpd.conf
Para atualizar, basta que após acrescentar os dados MAC e IP no arquivo:
# nano /usr/local/sbin/MACList
Execute o script novamente:
# /usr/local/sbin/wcdhcp.sh
Pronto, estará funcionando perfeitamente o serviço DHCP com atribuição de MAC para cada um dos usuários liberados na lista, ou seja, aqueles que constam o "a" no início da linha.
Outras dicas deste autor
Criando usuário para reiniciar ou desligar o Debian com segurança
Solucionando erro: comm_select_init: epoll_create(): (38) Function not implemented
Conectividade Social da Caixa Econômica - Resolvendo definitivamente
Removendo a identificação do servidor e do Squid do rodapé
Resolvendo erro -maxdepth no CQB
Leitura recomendada
Prompt colorido no Xubuntu 9.04
Imagination Slideshow
VMWare no Debian Etch (4.0)
Cinelerra no Ubuntu 13.04
Adicionar um script ao boot do sistema Linux via cron
Comentários
Nenhum comentário foi encontrado.