quinta-feira, 17 de abril de 2014

Port-Security na Proteção de Switches de Acesso

Olá Pessoal,

O recurso port-security é uma ferramenta de segurança importante que pode ser adotada nas camadas de acesso das redes de computadores onde ficam os switches que conectam os dispositvos terminais. Esse recurso permite restringir os computadores (e outros dispositivos terminais) que podem ou não ter acesso à rede cabeada da empresa através da verificação dos endereços físicos (MAC) dos quadros que chegam nas interfaces do switch.

Para exemplificar o procedimento de configuração do port-security o leitor pode reproduzir o laboratório observado na figura abaixo através do Simulador Cisco Packet Tracer. A topologia é muito simples, possuindo um único switch e dois computadores, com apenas uma máquina conectada ao switch. Depois de realizada a configuração do port-security no switch, iremos conectar a outra máquina (círculo vermelho) na mesma interface em que estava conectada a máquina confiável.




Uma vantagem do port-security é a possibilidade de definir qual será a ação praticada pelo switch na ocorrência de uma violação, podendo essa ação ser do tipo: protect, restrict ou shutdown. A ação padrão shutdown faz o bloqueio da porta que passa para o status "error-disabled", também sendo possível enviar uma mensagem de violação para o administrador (trap SNMP). Ambas as ações protect e restrict recusam os quadros com endereços desconhecidos (drop) sem bloquear a porta, com a diferença de que a ação restrict incrementa a contagem de violação. 

Outra vantagem é que não há necessidade de cadastrar previamente os endereços MAC de todos os dispositivos terminais conectados, uma vez que existe a opção "stick" que faz o aprendizado dinâmico dos endereços MAC. Além disso, não é necessário que cada interface esteja limitada a um único MAC, sendo esse parâmetro definido pelo administrador. Essa opção é útil para que mais de um dispositivo terminal tenha acesso à mesma interface do switch, o que é comum quando os computadores estão ligados atrás de telefones IP (que possuem um switch embutido em sua eletrônica) ou mesmo quando um determinado ponto de rede é compartilhado por mais de uma máquina. Também é possível determinar um período de validade dos endereços aprendidos dinâmicamente.

Na realidade, a principal vantagem de ativar esse recurso nas interfaces dos switches é mitigar um ataque muito comum em redes de computadores denominado "MAC Flood". Esse ataque consiste em enviar muitos quadros falsos com endereços MAC aleatórios, prática que rapidamente estoura o limite de registros da Tabela MAC dos switches. Dessa forma os switches passam a se comportar como hubs porque não há informação íntegra sobre qual dispositivo está conectado em qual interface, implicando em péssimo desempenho decorrente dos sucessivos broadcasts. Esse ataque é muito simples de ser realizado a partir de ferramentas já conhecidas e potencialmente perigoso para qualquer rede porque um atacante pode derrubá-la em poucos minutos se tiver acesso físico a um ponto da rede - que pode ser uma tomada na recepção ou na sala de reuniões da empresa! :-o

Apesar do ataque ser perigoso, com poucas linhas de comando ele pode ser totalmente mitigado limitando a quantidade de endereços que podem ser associados por porta, de forma que qualquer ataque dessa natureza será frustrado e o atacante perderá sua conexão com a rede, inclusive podendo o administrador ser notificado da ocorrência e de onde partiu a tentativa frustrada! Para habilitar o port-security com aprendizado dinâmico do endereço MAC (stick), basta as poucas linhas de comando apresentadas abaixo, destacando que a ação padrão na ocorrência de uma violação é shutdown - por isso a última linha pode ser omitida:

Switch(config)# interface f0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 1
Switch(config-if)# switchport port-security mac-address stick
Switch(config-if)# switchport port-security violation shutdown

Para configurar manualmente o endereço MAC sem o recurso do aprendizado dinâmico é só substituir a palavra "stick" pelo MAC da interface de rede do dispositivo, por exemplo: "port-security mac-address 0000.0000.AAAA". Através da saída abaixo é possível verificar em quais interfaces o port-security está habilitado:

Switch# show port-security 
Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
               (Count)       (Count)        (Count)
--------------------------------------------------------------------
        Fa0/1        1          0                 0         Shutdown
--------------------------------------------------------------------

Através da saída abaixo é possível verificar as configurações do port-security por interface:

Switch# show port-security interface f0/1
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Shutdown
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 0
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0000.0000.0000:0
Security Violation Count   : 0

Utilizando a simples topologia apresentada anteriormente o leitor pode desconectar a máquina confiável que teve seu endereço MAC associado ao port-security (através do parâmetro strick) e conectar a outra máquina na interface f0/1 do switch. Ao fazê-lo o leitor irá constatar que o port-security está funcionando como deveria porque assim que ocorre uma violação na interface f0/1, ela é bloqueada (shutdown). Para finalizar, depois de simulada a violação, é conveniente observar novamente as saídas anteriores destacando algumas informações importantes.

Switch# show port-security 
Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
               (Count)       (Count)        (Count)
--------------------------------------------------------------------
        Fa0/1        1          1                 1         Shutdown
--------------------------------------------------------------------

Switch# show port-security interface  f0/1
Port Security              : Enabled
Port Status                : Secure-shutdown
Violation Mode             : Shutdown
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 1
Last Source Address:Vlan   : 0007.ECC9.07D1:1
Security Violation Count   : 1

As boas práticas dizem que port-security somente deve ser configurado em portas de acesso onde são conectados os dispositivos terminais. O port-security não pode ser configurado em conjunto com os seguintes recursos: 802.1x, SPAN (espelhamento) e EtherChannel. O artigo é simples e o recurso um "velho conhecido", mas certamente é útil para aqueles que ainda não estão familiarizados com os Switches Catalyst da Cisco e/ou com o potencial deste recurso.

Abraço.

Samuel.

12 comentários:

  1. Ótimo artigo. Porém eu tive uma dificuldade e acho que muitos também devem ter ao começar utilizar esse recurso. Quando port-security é habilitado e se atinge a condição, a porta em estado de errdisable, ou seja, causa uma violação "administrativa". Porém errdisable é uma condição que pode se causado por vários fatores desde um bpdu indesejado até um cabo errado. A primeira forma de reativar essa porta seria o administrador ir na porta e dar um comando shut e depois no shut nela. Porém isso é impraticável se muitas portas entrarem nesse estado. Existe uma forma automática com o comando: errdisable recovery . Exemplos disso podem ser encontrados em : https://www.youtube.com/watch?v=559abswkSkc
    ou http://www.cisco.com/cisco/web/support/BR/104/1044/1044070_errdisable_recovery.html
    O segundo link mostra as possíveis causas do estado errdisable .

    ResponderExcluir
  2. Nossa, não consigo simular a violação no Packet Tracer. Quando se troca de PC, a interface do switch sobe sem problemas.

    ResponderExcluir
    Respostas
    1. Aqui funcionou utilizando o mac ao invés do stick. Somente dessa forma consegui ver o port-security funcionando.

      Excluir
    2. Para simular no Packet Tracer é só ativar o DHCP dinâmico nos PCs simulados, assim eles tentarão realizar uma comunicação onde o switch ira receber o MAC dos mesmos.

      Excluir
  3. apos realizar a troca do computador para bloquear dispara um ping que ele vai reconhecer que o mac foi alterado então sera feito o bloqueio

    ResponderExcluir
  4. Para funcionar 100% tem que ativar o spanning-tree portfast na interface. Acessa a interface desejada e execute o comando: spanning-tree portfast

    ResponderExcluir
  5. Muito bom e explicativo, obrigado por compartilhar.

    ResponderExcluir