DHCP snooping

DHCP snooping.

Содержание

1 Общая информация

  • DHCP snooping — функция коммутатора, предназначенная для защиты от атак с использованием протокола DHCP.
  • Например, атаки с подменой DHCP-сервера в сети или атаки DHCP starvation, которая заставляет DHCP-сервер выдать все существующие на сервере адреса злоумышленнику.
  • DHCP snooping позволяет:
    • защитить клиентов в сети от получения адреса от неавторизованного DHCP-сервера;
    • регулировать какие сообщения протокола DHCP отбрасывать, какие перенаправлять и на какие порты.
  • Для правильной работы DHCP snooping, необходимо указать какие порты коммутатора будут доверенными (trusted), а какие — ненадёжными (untrusted).
  • Ненадёжные (Untrusted) порты: порты, к которым подключены клиенты.
    • DHCP-ответы, приходящие с этих портов отбрасываются коммутатором.
    • Для ненадёжных портов выполняется ряд проверок сообщений DHCP и создаётся база данных привязки DHCP (DHCP snooping binding database).
  • Доверенные (Trusted) порты: порты коммутатора, к которым подключён другой коммутатор или DHCP-сервер.
    • DHCP-пакеты полученные с доверенных портов не отбрасываются.

2 Принципы работы DHCP snooping

  • По умолчанию коммутатор отбрасывает DHCP-пакет, который пришел на ненадёжный порт, если:
    • приходит одно из сообщений, которые отправляет DHCP-сервер (DHCPOFFER, DHCPACK, DHCPNAK или DHCPLEASEQUERY);
    • приходит сообщение DHCPRELEASE или DHCPDECLINE, в котором содержится MAC-адрес из базы данных привязки DHCP, но информация об интерфейсе в таблице не совпадает с интерфейсом, на котором был получен пакет;
    • в пришедшем DHCP-пакете не совпадают MAC-адрес указанный в DHCP-запросе и MAC-адрес отправителя;
    • приходит DHCP-пакет, в котором есть опция 82.

3 Опция 82

  • По умолчанию коммутатор на котором включен DHCP snooping, вставляет опцию 82 в DHCP-запросы.
  • Коммутатор может изменять или вставлять опцию 82, даже если клиент и сервер находятся в одной подсети.
  • При вставке опции 82, коммутатор вставляет два значения:
    • Remote ID (MAC-адрес или IP-адрес коммутатора) (это значение можно настраивать);
    • Circuit ID (порт с которого пришел запрос) (это значение не настраивается).
  • По умолчанию коммутатор, использующий DHCP snooping, обнаруживает и отбрасывает любой DHCP-запрос содержащий опцию 82, который он получил через ненадёжный порт.
  • Этот режим стоит оставить, если коммутатор соединен с конечными клиентами. Получение запроса с опцией 82 от клиента будет говорит об атаке, которую коммутатор должен предотвратить.
  • Но если функция DHCP snooping включена на нескольких коммутаторах, которые соединены последовательно, то такое поведение по умолчанию, приведет к тому, что клиенты не смогут получить адрес по DHCP (если сервер находится через несколько коммутаторов).
  • Решения этой проблемы:
    • Сделать порт, к которому подсоединён нижележащий коммутатор, доверенным.
    • Настроить варианты обработки опции 82 на вышележащем коммутаторе:
      • сохранить опцию 82 в пришедшем пакете;
      • заменить опцию 82 в пришедшем пакете.
    • Отключить вставку опции 82 на коммутаторе.

4 DHCP-ретранслятор

  • Настройки опции 82 с DHCP snooping перекрывают любые глобальные настройки указанные при настройке коммутатора для работы DHCP-ретранслятором.
  • Если DHCP snooping не настроен в VLAN, то для него применяются глобальные настройки.

5 Настройка

5.1 Порядок настройки

  • Настройка и проверка работы DHCP-сервера и DHCP-ретранслятора без включенного DHCP snooping.
  • Включение DHCP snooping. После включения DHCP snooping на коммутаторе и в соответствующих VLAN, все порты коммутатора по умолчанию считаются ненадёжными.
  • Указание доверенных портов. Те порты к которым подключены коммутаторы и которые ведут к DHCP-серверу (или порты к которым сервер подключен) должны быть настроены как доверенные.
  • Настройка политики обработки опции 82.
  • (Опционально) Включение или выключение дополнительных проверок DHCP-сообщений.
  • После того, как DHCP snooping включен на коммутаторе, по мере выдачи адресов клиентам, начинает заполняться база данных привязки DHCP.
  • В базе данных привязки DHCP хранятся (информация хранится только о ненадёжных портах):
    • MAC-адрес клиента
    • Арендованный IP-адрес клиента
    • Время аренды в секундах
    • Идентификатор VLAN
    • Идентификатор порта к которому присоединен клиент

5.2 Коммутаторы Cisco

5.2.1 Основные настройки

  • Включаем глобально DHCP snoopig на коммутаторе:

    1switch(config)#ip dhcp snooping
    
  • Включаем DHCP snooping в нужном VLAN:

    1switch(config)#ip dhcp snooping vlan 100
    
  • Указываем доверенные порты:

    1switch(config)#interface GigabitEthernet 1/0/1
    2switch(config-if)#ip dhcp snooping trust
    

5.2.2 Дополнительные настройки

  • Можно отключить передачу опции 82:
    1switch(config)#no ip dhcp snooping information option
    
  • Можно настроить ограничение количества DHCP обращений на не доверенном интерфейсе:
    1switch(config)#interface gigabitEthernet 1/0/1
    2switch(config-if)#ip dhcp snooping limit rate 50
    
  • (Опционально) Указать адрес авторизованного DHCP-сервера, доступного через доверенный порт:
    1switch(config)#ip dhcp-server 10.84.168.253
    

5.2.3 Команды просмотра

  • Посмотреть состояние DHCP snooping:
    1switch#show ip dhcp snooping
    
  • Просмотр базы данных привязки DHCP:
    1switch#show ip dhcp snooping binding
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие