Os switches Cisco contam com uma série de funcionalidades de segurança camada 2, e uma das mais simples e úteis é o DHCP Snooping.
Esta funcionalidade impede que um servidor DHCP falso (que não está sob a gerência da organização) distribua IPs na rede. Se proteger contra este tipo de situação é importante porque um servidor falso pode distribuir IPs do mesmo range do servidor válido, causando duplicidade, e assim indisponibilidade do serviços. Pode distribuir um range totalmente diferente, de maneira que os usuários seriam incapazes de acessar os demais recursos na rede, e o mais perigoso: Podem fazer com que os clientes DHCPs sejam direcionados para um gateway falso, onde teriam suas informações capturadas em um ataque do tipo Man In The Middle.
Antes de falarmos do DHCP Snooping, vamos lembrar como o serviço de DHCP funciona… Basicamente, um computador com DHCP Client instalado (o próprio Windows, por exemplo), quando conectado a rede, envia uma requisição UDP via broadcast (DHCP Discovery) procurando um Servidor DHCP. O Servidor DHCP, por sua vez, responde essa requisição com o DHCPOFFER (que contém o MAC do client que fez a solicitação, o IP, máscara e lease time que o servidor está disponibilizando, e o IP do próprio servidor). O Client então responde ao DHCPOFFER com o DHCPREQUEST (via broadcast), avisando que aceita o IP. Para finalizar, o servidor envia para o client o DHCPACK, com a confirmação das informações contidas no DHCPOFFER.
DHCP Snooping
O DHCP Snooping é um recurso de segurança de camada 2, que age filtrando mensagens DHCP não confiáveis/inválidas, e para isso constrói e mantém o DHCP Snooping Binding Database (ou DHCP Snooping Binding Table). Ele funciona como um firewall entre as portas confiáveis (onde estão conectados os servidores DHCP e portas de uplink que levam aos servidores) e não confiáveis (demais portas).
Esta funcionalidade é habilitada por VLAN (por padrão vem desabilitado) e também é importante ressaltar que outros recursos de segurança, como o Dynamic ARP Inspection (DAI), usam as informações armazenadas no DHCP Snooping Binding Database.
Ações executadas pelo switch configurado com DHCP Snooping:
-
Valida mensagens DHCP recebidas de fontes não confiáveis e filtra mensagens inválidas.
-
Faz rate-limit de tráfego DHCP de fontes confiáveis e não confiáveis.
-
Constrói e mantém o DHCP Snooping Binding Database, que contém informações sobre hosts não confiáveis com endereços IP adquiridos via DHCP.
-
Utiliza o DHCP Snooping Binding Database para validar os pedidos subsequentes de hosts não confiáveis.
-
Descarta pacotes do tipo DHCPOFFER, DHCPACK, DHCPNAK, ou pacotes DHCPLEASEQUERY, recebidos em uma porta não confiável.
-
Descarta pacotes recebidos em uma interface não confiável se o endereço MAC de origem e o endereço de hardware do cliente DHCP não coincidem.
-
Descarta mensagens broadcast DHCPRELEASE ou DHCPDECLINE que tem um endereço MAC no DHCP Snooping Binding Database, mas as informações não coincide com a interface em que mensagem foi recebida.
-
Descarta mensagens encaminhadas por um releay agent se ela tiver um endereço de relay agent diferente de 0.0.0.0.
-
Descarta mensagens DHCP com a opção de 82 se estas forem para uma porta não confiável.
Configuração
A configuração do DHCP Snooping é simples, bastando habilitar a funcionalidade, indicar a VLAN que deverá ser inspecionada, e marcar as portas que “vão” para o DHCP como trust.
Opcionalmente podemos definir quantos pacotes DHCP por segundo uma interface pode receber.
hostname SW-CORE
!
ip dhcp snooping vlan 1
ip dhcp snooping information option allow-untrusted
ip dhcp snooping
!
interface Ethernet0/0
description CONEXAO SW-ACCESSO
switchport trunk encapsulation dot1q
switchport mode trunk
duplex auto
!
interface Ethernet0/1
description CONEXAO DHCP-SERVER
switchport mode access
duplex auto
ip dhcp snooping trust
hostname SW-ACESSO
!
ip dhcp snooping vlan 1
ip dhcp snooping
!
interface Ethernet0/0
description CONEXAO SW-CORE
switchport trunk encapsulation dot1q
switchport mode trunk
duplex auto
ip dhcp snooping trust
!
interface Ethernet0/1
description CONEXAO DHCP-CLIENT1
switchport mode access
duplex auto
ip dhcp snooping limit rate 100
!
interface Ethernet0/2
description CONEXAO DHCP-CLIENT2
switchport mode access
duplex auto
ip dhcp snooping limit rate 100
!
Observe que no Core foi inserido o comando ip dhcp snooping information option allow-untrusted, para que as mensagens que vem do switch de acesso (por padrão insere a opção 82) não sejam descartadas.
Mais informações neste link.
Até a próxima.
Quando hábilitamos o comando “ip dhcp snooping trust” em uma interface, significa que nas demais um servidor de DHCP não conseguiria enviar informações DHCP?
Olá Rafael,
Nas demais portas (sem o trust) os pacotes do tipo DHCPOFFER, DHCPACK, DHCPNAK, ou pacotes DHCPLEASEQUERY, serão descartados.