Перейти к содержанию

09. DHCPSnooping

Введение

DHCP Snooping — это функция уровня 2, реализуемая на коммутаторах, которая обеспечивает безопасность сети путём фильтрации нежелательных или вредоносных сообщений DHCP. Основная цель — защита клиентов от поддельных DHCP-серверов и предотвращение атак, таких как DHCP spoofing.

Назначение и необходимость

DHCP (Dynamic Host Configuration Protocol) используется для автоматической раздачи IP-адресов. Однако в незащищённой сети злоумышленник может запустить собственный DHCP-сервер и выдавать ложные настройки, что приведёт к:

  • Потере связи клиентов с реальной сетью
  • Перехвату трафика (MITM)
  • Нарушению работы сети

DHCP Snooping предотвращает эти атаки, контролируя, какие порты могут передавать DHCP-ответы.

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

Коммутатор разделяет все порты на два типа:

  • Trusted (доверенные) — порты, через которые разрешено прохождение DHCP-ответов от авторизованного DHCP-сервера
  • Untrusted (недоверенные) — порты, на которых запрещена передача DHCP-ответов (DHCPOFFER, DHCPACK)

Коммутатор отслеживает и фильтрует DHCP-сообщения, исходящие с недоверенных портов.

Также создаётся binding таблица, в которой коммутатор хранит информацию о клиентах:

  • MAC-адрес клиента
  • IP-адрес
  • VLAN
  • Порт коммутатора
  • Время аренды

Эта таблица используется и другими механизмами безопасности: Dynamic ARP Inspection, IP Source Guard.

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

Когда DHCP Snooping включен, коммутатор начинает активно фильтровать DHCP-трафик:

  1. DHCPDISCOVER и DHCPREQUEST сообщения, отправленные клиентами, разрешены со всех портов (включая недоверенные).
  2. DHCPOFFER и DHCPACK сообщения, отправленные DHCP-сервером, разрешены только с доверенных портов.
  3. При получении DHCPACK от DHCP-сервера коммутатор заносит в специальную таблицу информацию о:
    • MAC-адресе клиента
    • Назначенном IP-адресе
    • Номере VLAN
    • Интерфейсе, через который клиент подключён
    • Времени аренды (lease time)
  4. Недоверенные порты не могут отправлять DHCP-ответы. Это позволяет блокировать поддельные DHCP-серверы.
  5. При подозрительной активности, например, если недоверенный порт отправляет DHCPOFFER, пакет отбрасывается.
  6. В случае перезагрузки устройства — при включённой опции сохранения binding-таблицы — информация восстанавливается из файла.

Эта логика позволяет создать безопасную среду, где только авторизованный DHCP-сервер имеет право раздавать IP-адреса.

Поддерживаемые сообщения

DHCP Snooping анализирует и фильтрует следующие типы DHCP-сообщений:

Сообщение Назначение
DHCPDISCOVER Инициируется клиентом для поиска DHCP-серверов
DHCPOFFER Ответ от сервера с предложением IP-адреса
DHCPREQUEST Клиент запрашивает конкретный IP-адрес у сервера
DHCPACK Подтверждение от сервера о назначении IP-адреса
DHCPNAK Отказ сервера от назначения IP-адреса
DHCPDECLINE Клиент сообщает, что полученный IP уже используется
DHCPRELEASE Клиент отказывается от аренды IP-адреса
DHCPINFORM Клиент запрашивает параметры конфигурации, но не IP-адрес

DHCP Snooping в основном работает с DHCPDISCOVER, DHCPOFFER, DHCPREQUEST и DHCPACK, поскольку именно они участвуют в назначении IP-адреса. Остальные сообщения отслеживаются, но чаще не участвуют в построении таблицы привязок.

Типовые атаки и защита

Rogue DHCP Server (враждебный DHCP-сервер)

Описание: злоумышленник запускает свой DHCP-сервер, чтобы выдать неверные параметры (IP, шлюз, DNS) и перенаправить трафик.

Защита:

  • Назначать только порты, подключенные к официальному DHCP-серверу, как trusted
  • Включить DHCP Snooping для VLAN
  • Использовать Option 82 для проверки источника запроса

DHCP Starvation

Описание: злоумышленник рассылает множество DHCP-запросов с поддельными MAC-адресами, чтобы исчерпать пул IP-адресов.

Защита:

  • Ограничить количество DHCP-пакетов через ip dhcp snooping limit rate
  • Применять динамическую фильтрацию MAC-адресов

Man-in-the-Middle через поддельный шлюз

Описание: враждебный DHCP-сервер выдает адреса с поддельным шлюзом, направляя трафик через злоумышленника.

Защита:

  • DHCP Snooping блокирует DHCPOFFER/DHCPACK с недоверенных портов
  • Использовать Dynamic ARP Inspection в связке с DHCP Snooping

Практика в Cisco Packet Tracer

Топология:

  • Коммутатор S1
  • DHCP-сервер на FastEthernet0/1
  • Клиенты на FastEthernet0/2 и 0/3
  • Поддельный DHCP-сервер на FastEthernet0/4
  • VLAN 10 используется для клиентов

Шаги:

Базовая настройка:

Switch(config)# ip dhcp snooping
  • Включает DHCP Snooping глобально
Switch(config)# ip dhcp snooping vlan 10,20
  • Включает DHCP Snooping для указанных VLAN (10 и 20)
Switch(config-if)# ip dhcp snooping trust
  • Назначает порт как доверенный (например, порт, ведущий к DHCP-серверу)
Switch(config-if)# no ip dhcp snooping trust
  • Делает порт недоверенным (по умолчанию). Используется для клиентских портов, чтобы предотвратить выдачу IP-адресов из неавторизованных источников.

Ограничение скорости на недоверенных портах помогает защититься от DHCP starvation атак. Атаки этого типа создают множество поддельных DHCP-запросов с уникальными MAC-адресами, чтобы исчерпать IP-пул сервера. Ограничив количество таких запросов, мы минимизируем эффект от подобных атак.

Switch(config-if)# ip dhcp snooping limit rate 15
  • Ограничивает количество DHCP-пакетов на интерфейсе до 15 пакетов в секунду
Switch(config)# ip dhcp snooping information option
  • Включает добавление Option 82 в DHCP-запросы (идентификатор порта и коммутатора)
Switch(config)# no ip dhcp snooping information option
  • Отключает вставку Option 82

Настройка DHCP-сервера:

ip dhcp pool CLIENTS
 network 192.168.10.0 255.255.255.0
 default-router 192.168.10.1
 dns-server 8.8.8.8

Настройка клиентов:

Убедитесь, что они получают IP-адреса от официального сервера.

Симуляция атаки:

Подключите второй DHCP-сервер к Fa0/4 и настройте выдачу адресов (например, 10.10.10.0/24).

Если DHCP Snooping работает правильно — клиент не получит адрес с Fa0/4.

Проверка работы:

S1# show ip dhcp snooping
S1# show ip dhcp snooping binding

Анализ:

Удалите команду ip dhcp snooping trust на Fa0/1 и проверьте, сможет ли теперь поддельный DHCP-сервер раздавать адреса.

Проверка и мониторинг

Switch# show ip dhcp snooping

Показывает, включён ли snooping, для каких VLAN и какие порты доверены.

Switch# show ip dhcp snooping binding

Выводит таблицу DHCP Snooping Binding с привязкой MAC/IP/VLAN/интерфейса.

Option 82

Option 82 (DHCP Relay Agent Information Option) — это дополнительная информация, добавляемая в DHCP-запросы на коммутаторе при включённой функции DHCP Snooping. Эта опция позволяет сетевому оборудованию (например, коммутатору уровня доступа) вставлять информацию о себе и о порте, через который поступил DHCP-запрос. Это повышает контроль и безопасность в сетях, где используется централизованный DHCP-сервер.

Что содержит Option 82:

Option 82 состоит из двух подопций:

1. Circuit ID

  • Указывает физический порт коммутатора, с которого был получен DHCP-запрос.
  • Обычно включает идентификатор интерфейса и VLAN.
  • Пример: FastEthernet0/1:VLAN10

2. Remote ID

  • Указывает уникальный идентификатор коммутатора (например, hostname или MAC-адрес).
  • Помогает идентифицировать, с какого устройства пришёл запрос.

Принцип работы:

  1. Клиент отправляет DHCPDISCOVER.
  2. Коммутатор, на котором включено DHCP Snooping и information option, вставляет Option 82 в пакет.
  3. DHCP-сервер получает пакет, видит в нем информацию Option 82 и может принять решение, какой IP назначить, или вообще отказаться.
  4. Если DHCP-сервер поддерживает Option 82 — он может использовать эти данные для точного логирования или назначения IP на основе порта.
  5. Коммутатор проверяет возвращаемый пакет от сервера и может отклонить его, если Option 82 была изменена.

Зачем это нужно:

  • Предотвращение неавторизованного перемещения клиента (например, один и тот же MAC пытается получить IP в другом месте сети).
  • Улучшенная идентификация клиента по физическому подключению.
  • Позволяет строить IP-адресацию на основе порта — часто используется в гостиницах, университетах, офисах.
  • Противодействие подмене DHCP-сообщений.

Настройка на Cisco:

Switch(config)# ip dhcp snooping information option
  • Включает вставку Option 82.
Switch(config)# no ip dhcp snooping information option
  • Отключает вставку.
Switch(config)# ip dhcp snooping verify option82
  • Включает проверку Option 82 в ответах DHCP-сервера (можно отклонять подозрительные).

Важные замечания:

  • DHCP-сервер должен поддерживать Option 82, иначе он может отклонить такие запросы.
  • Если используется verify option82, убедитесь, что сервер корректно возвращает вставленные данные.
  • В некоторых случаях необходимо отключать вставку Option 82, если это вызывает проблемы на старом оборудовании или неуправляемых серверах.

Безопасность и рекомендации

  • Всегда проверяйте, какие порты настроены как доверенные
  • Отключите Option 82, если DHCP-сервер не поддерживает его
  • Используйте ограничение скорости для защиты от DHCP starvation атак
  • Убедитесь, что база DHCP Snooping сохраняется между перезагрузками

Лучшая практика

  • Включать DHCP Snooping только на нужных VLAN
  • Доверять только тем портам, где действительно находится DHCP-сервер
  • Комбинировать с другими технологиями (DAI, IP Source Guard)
  • Ограничивать скорость DHCP-пакетов
  • Сохранять binding таблицу в память для перезагрузок (на некоторых моделях)

Связь с другими механизмами безопасности

DHCP Snooping — это основа для работы других функций уровня 2 безопасности, таких как Dynamic ARP Inspection (DAI) и IP Source Guard (IPSG). Эти механизмы используют информацию из DHCP Snooping Binding Table.

Dynamic ARP Inspection (DAI)

DAI предотвращает атаки подмены ARP (ARP spoofing). Он проверяет ARP-пакеты, проходящие через недоверенные порты, и сравнивает их с информацией из DHCP Snooping Binding Table.

  • Включение DAI:
Switch(config)# ip arp inspection vlan 10
  • Назначение доверенного порта:
Switch(config-if)# ip arp inspection trust

IP Source Guard (IPSG)

IPSG предотвращает IP-спуфинг на уровне интерфейсов. Он фильтрует входящие пакеты на основе соответствия IP-адреса, MAC-адреса и интерфейса, используя DHCP Snooping Binding Table.

  • Включение IPSG:
Switch(config-if)# ip verify source
  • Для более строгой проверки (IP и MAC):
Switch(config-if)# ip verify source port-security

Совместимость с другими функциями безопасности

DHCP Snooping работает в тандеме с рядом функций безопасности второго уровня:

  • Port Security — ограничивает количество допустимых MAC-адресов на порту. В связке с DHCP Snooping позволяет ещё точнее контролировать доступ.
  • Private VLANs — может использоваться вместе с DHCP Snooping для изоляции устройств в одной подсети.
  • 802.1X (Port-based Network Access Control) — может применяться в тех же портах, что и DHCP Snooping, при этом оба механизма усиливают безопасность.
  • ACLs (Access Control Lists) — DHCP Snooping может дополняться ACL для фильтрации трафика от известных злоумышленников.
  • Storm Control — используется совместно для предотвращения атак типа DHCP starvation.

Эти механизмы, работая совместно, позволяют добиться максимального уровня защиты сети от угроз на уровне доступа.

Заключение

DHCP Snooping — критически важная функция безопасности в корпоративных сетях. Она защищает клиентов от несанкционированных DHCP-серверов и является фундаментом для других функций безопасности, таких как Dynamic ARP Inspection и IP Source Guard. Понимание механизма, настройки и мониторинга DHCP Snooping обязательно для любого сетевого администратора.