O que você realmente procura é o 802.1x Network Access Control. Isso é executado no RADIUS e requer autenticação do cliente antes do acesso à rede. Existem várias soluções baseadas em Linux, incluindo:
Para os clientes:
Para o servidor NAC:
- PacketFence
- OpenNAC
-
FreeNAC (atualmente este projeto está em desenvolvimento somente, não ativo)
Supondo que você não tenha comutadores gerenciados capazes de executar VLANs, você pode querer ir com o PacketFence no modo in-line, descrito na documentação. Isso usa ipset
para modificar regras de firewall para permitir tráfego, mas exige separações de topologia específicas (DNS em um segmento separado dos hosts). Os switches que o PacketFence pode usar estão listados aqui
CORREÇÃO !: Existe outra maneira interna de gerenciar a arp-table no Linux, veja man 5 ethers
. Você adiciona entradas na forma de ethernet ip
a /etc/ethers
e, em seguida, executa arp -f
para atualizar a tabela com base nisso. Veja man arp
para detalhes, e link para um tutorial mais detalhado.
Para responder à sua pergunta específica sobre as tabelas arp, crie um arquivo static-arp.conf
contaning entries, como:
10.0.0.6 00:0c:29:c0:91:bf
10.0.0.7 00:0c:29:c0:92:bf
10.0.0.8 00:0c:29:c0:93:bf
10.0.0.9 00:0c:29:c0:94:bf
Em seguida, execute:
while read -u 10 arpentry ; do arp -s $arpentry ; done 10<static-arp.conf
Por alguma razão for I in cat static-arp.conf
não funcionou, e eu tive que mudar para a leitura -u para configurar um descritor de arquivo, não sei por que ... mas isso adicionou as entradas conforme listado. Você pode então distribuir esse static-arp.conf
como quiser, via nfs, git, rsync, etc.
Os vlans provavelmente seriam uma ideia melhor no entanto. Informações no uso do linux-pure vlan estão localizadas aqui .