DHCP Snooping

DHCP Snooping

Precisamos antes de mais nada, ver como funciona uma requisição DHCP para podermos entender melhor o Spoofing e como o Snooping funciona.

Como funciona uma requisição DHCP?


Em uma resquisição DHCP temos os passos demonstrados abaixo...

Em termos gerais, o PC cliente envia um pacote solicitando um "DHCP" via broadcast para toda a rede em que se encontra. Após essa solicitação ser encaminhada para todos os hosts da rede, o servidor ou servidores DHCP dessa rede irão responder ao Host um pacote DHCP-Offer. Assim que o host recebe esse pacote oferecendo um DHCP, ele encaminha a solicitação para o servidor e terminando o processo todo ele envia para o host um pacote acknowledgment message.

O que é DHCP Spoofing?

Vamos imaginar um cenário onde temos uma rede com um servidor DHCP, e nesse cenário há um usuário malicioso com um computador com serviço de DHCP ativo. Nesse cenário temos um grande problema, o servidor DHCP "intruso" estaria facilmente entregando DHCP para os hosts da rede, criando assim diversos problemas além de em alguns casos perda de conectividade, até mesmo o man-in-the-middle. Nesse Post iremos analisar esse cenário e propor a solução para o mesmo.

O que o DHCP Snooping faz?

A feature snooping basicamente filtra mensagens _dhcp-offer _ de origens desconhecidas. Vimos anteriormente que quando um cliente se conecta à rede, ele envia uma mensagem em broadcast para toda a rede procurando um serviço DHCP, então quando temos mais de um servidor DHCP em nossa rede sendo apenas um o servidor "oficial" e o outro sendo um "intruso" (podendo ser desde roteadores caseiros com dhcp ativados como também máquinas infectadas para atacar a rede) o snooping entra em ação filtrando justamente as mensagens dhcp-offer do servidor intruso impedindo assim ataques à rede interna como man-in-the-middle ou em um caso menos pior, a interrupção de serviços quando clientes conectados receberem um dhcp diferente do Oficial da rede.

O snooping trabalha com o sistema de portas Trusted e Untrusted, deixando passar pacotes de DHCP apenas pelas portas Trusteds e impedindo que servidores instrusos atrás de portas untrusteds distribuam dhcp pela rede.

Bora ver isso na prática em um Switch Cisco?

Configuração do DHCP Snooping no Switch Cisco


Exemplo de configuração para a topologia abaixo.

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
!
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 information option allow-untrusted
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
!
interface Ethernet0/2
  description CONEXAO DHCP-CLIENT2
switchport mode access
!

Na configuração acima, vemos que é importante dizer para o Switch quais são as portas que estão permitidas o trafego do DHPC Offer, ou seja, as portas Trunks que chegam no Switch (e não as que saem do mesmo). Uma outra coisa importante se notar é que deve-se informar quais são as vlans que serão afetadas pelo DCHP snooping.

Em resumo, temos um ambiente agora seguro contra serviços DHCP "clandestinos".