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.699 ]

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

Conectividade Social da Caixa Econômica - Resolvendo definitivamente

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

Resolvendo erro -maxdepth no CQB

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

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

Leitura recomendada

Busque suas dúvidas no VOL e ganhe tempo

Biblioteca digital (desenvolvida em software livre)

Fresh Player Plugin no Firefox - Fedora 20

Sarg com autenticação

Animatubo Linux

  

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