sexta-feira, 19 de fevereiro de 2016

Configuração de Filtro de MAC no Cisco Aironet via CLI

Olá Pessoal,

Há alguns dias escrevi um artigo intitulado "Configuração Básica do AP Cisco Aironet 1600 via CLI", oportunidade em que apresentei um roteiro de como realizar algumas das configurações básicas mais importantes no Aironet através da interface de linha de comando (CLI). Neste artigo vou aproveitar o "gancho" do anterior para mostrar ao leitor como aplicar regras de controle de acesso por MAC (ACL) para filtrar (permitir/negar) o acesso de máquinas na rede sem fio, também através da CLI. 

Às vezes algumas pessoas não entendem o motivo de estudar detalhadamente a linha de comando, já que em primeiro momento a interface gráfica (GUI) parece ser mais intuitiva e simples de aplicar as configurações desejadas. Uma primeira justificativa favorável à linha de comando é que ela é universal em todas as caixas que executam o sistema operacional IOS da Cisco, o que quer dizer que os comandos utilizados para realizar as configurações são sempre os mesmos independente do modelo específico do equipamento. Por outro lado, o mesmo nem sempre é verdade nas interfaces gráficas que frequentemente são próprias de cada modelo específico de equipamento. 

Ainda que essa justificativa tenha um peso relevante, ainda assim há aqueles que achem que o esforço de busca das opções nas diferentes interfaces gráficas compense o tempo maior da curva de aprendizado do modo de operação da linha de comando. Ocorre que é comum as interfaces gráficas não explorarem o potencial de todos os recursos que podem ser configurados nos equipamentos de rede, o que faz com que alguns recursos somente possam ser configurados via linha de comando. 

No caso específico da configuração de listas de controle de acesso (ACL) no AP Cisco Aironet 1600, através da interface gráfica somente é possível filtrar 43 endereços MAC, enquanto que através da linha de comando é possível filtrar 2048 endereços MAC, uma diferença significativa em favor da CLI! Para exemplificar essa configuração, vou utilizar como base um cenário bem simples (figura) em que temos apenas um AP responsável por um único SSID denominado NOME (associado à VLAN 37). 


As ACLs para fins de filtragem de endereços físicos (MAC) são identificadas através do intervalo de números que varia de 700 até 799 ou 1100 até 1199. Ao criar uma ACL com numeração nesse intervalo, o sistema IOS aceitará a inserção de endereços MAC na sua sintaxe (no formato dddd.dddd.dddd). Criaremos a ACL 777 com permissão apenas dos endereços físicos especificados, usando a máscara 0000.0000.0000 que trava todas as posições. No final da ACL é importante negar todos os demais endereços, o que pode ser feito através do endereço 0000.0000.0000 com máscara ffff.ffff.ffff (any). Na sequência a ACL é aplicada para todo o AP de maneira global (destaque em amarelo), de forma que os filtros serão válidos para todos os SSIDs que existam configurados.

ap> enable
ap# configure terminal
ap(config)# access-list 777 permit 0040.96aa.1111 0000.0000.0000
ap(config)# access-list 777 permit 0040.96bb.2222 0000.0000.0000
ap(config)# access-list 777 permit 0040.96cc.3333 0000.0000.0000
ap(config)# access-list 777 deny   0000.0000.0000 ffff.ffff.ffff
ap(config)# dot11 association mac-list 777
ap(config)# end

Caso o leitor queira mais granularidade de maneira que seja possível configurar um determinado filtro para apenas um SSID específico, ao invés de todos os SSIDs do AP de maneira global, é possível setar a aplicação das regras apenas na interface dot11radio (física ou sub-interface) responsável pelo SSID. Nesse caso as configurações seriam realizadas da seguinte maneira:

ap> enable
ap# configure terminal
ap(config)# access-list 777 permit 0040.96aa.1111 0000.0000.0000
ap(config)# access-list 777 permit 0040.96bb.2222 0000.0000.0000
ap(config)# access-list 777 permit 0040.96cc.3333 0000.0000.0000
ap(config)# access-list 777 deny   0000.0000.0000 ffff.ffff.ffff
ap(config)# interface dot11radio0.37
ap(config-subif)# bridge-group 37 input-address-list 777
ap(config-subif)# end

Façam seus testes...

Samuel.

6 comentários:

  1. Aproveito para registrar a resposta de uma dúvida que surgiu no Facebook a respeito da possibilidade de bloquear todas as interfaces de um determinado fabricante através do OUI, que são os primeiros 24 bits do MAC. Nesse caso é só configurar a máscara correspondente na sequência do endereço MAC. Por exemplo, travando os primeiros 24 bits (0000.00ff.ffff) você consegue compreender todas as interfaces de rede sem fio de um determinado fabricante.

    Link para relação de OUI:
    http://standards-oui.ieee.org/oui.txt

    ResponderExcluir
  2. Se a empresa utiliza DHCP e a MAC-ACL for aplicada na interface, também é necessário criar uma regra de saída (output) permitindo o tráfego destinado para todas as máquinas (broadcast). Nesse caso deve ser criada outra ACL com permissão para o endereço ffff.ffff.ffff (access-list 778 permit ffff.ffff.ffff 0000.0000.0000) e, então, aplicá-la no tráfego sainte da interface:

    ap(config-if) bridge-group 37 output-address-list 778

    ResponderExcluir
  3. Muito boa a dica da filtragem através do OUI.

    Obrigado.

    ResponderExcluir
  4. Muito boa a dica da filtragem através do OUI.

    Obrigado.

    ResponderExcluir
  5. Gostaria de fazer uma pergunta?
    Como faço para excluir um determinados mac como abaixo:

    access-list 777 permit 0040.96cc.3333 0000.0000.0000

    ResponderExcluir
    Respostas
    1. As configurações no sistema IOS da Cisco podem ser desfeitas simplesmente repetindo o comando original precedido pela palavra "no". Por exemplo:

      no access-list 777 permit (...)

      Excluir