Servidor DHCP automático com limitação por MAC no Debian 2.6

Publicado por Isomi Luiz da Silva em 01/06/2007

[ Hits: 13.819 ]

Blog: http://www.tecalerta.com.br

 


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

Solucionando erro: comm_select_init: epoll_create(): (38) Function not implemented

Resolvendo erro -maxdepth no CQB

Conectividade Social da Caixa Econômica - Resolvendo definitivamente

Removendo a identificação do servidor e do Squid do rodapé

Criando usuário para reiniciar ou desligar o Debian com segurança

Leitura recomendada

Comandos mtools - parte 2

Ajustar a data do sistema

Carregando proxy automático no script de Logon

Conectar a internet discada por modo texto

Você conhece o NetbootCD?

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts