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
Removendo a identificação do servidor e do Squid do rodapé
Solucionando erro: comm_select_init: epoll_create(): (38) Function not implemented
Resolvendo erro -maxdepth no CQB
Conectividade Social da Caixa Econômica - Resolvendo definitivamente
Criando usuário para reiniciar ou desligar o Debian com segurança
Leitura recomendada
Comandao fácil: baixando blogs do Wordpress com o wget
Dois Monitores no Ubuntu
Compilando o Mono para atualização da versão 2.4
Backups completos com Clonezilla
Webcams: luz, camera, ação!
Comentários
Nenhum comentário foi encontrado.