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-трафик:
- DHCPDISCOVER и DHCPREQUEST сообщения, отправленные клиентами, разрешены со всех портов (включая недоверенные).
- DHCPOFFER и DHCPACK сообщения, отправленные DHCP-сервером, разрешены только с доверенных портов.
- При получении DHCPACK от DHCP-сервера коммутатор заносит в специальную таблицу информацию о:
- MAC-адресе клиента
- Назначенном IP-адресе
- Номере VLAN
- Интерфейсе, через который клиент подключён
- Времени аренды (lease time)
- Недоверенные порты не могут отправлять DHCP-ответы. Это позволяет блокировать поддельные DHCP-серверы.
- При подозрительной активности, например, если недоверенный порт отправляет DHCPOFFER, пакет отбрасывается.
- В случае перезагрузки устройства — при включённой опции сохранения 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-адрес).
- Помогает идентифицировать, с какого устройства пришёл запрос.
Принцип работы:
- Клиент отправляет DHCPDISCOVER.
- Коммутатор, на котором включено DHCP Snooping и
information option, вставляет Option 82 в пакет. - DHCP-сервер получает пакет, видит в нем информацию Option 82 и может принять решение, какой IP назначить, или вообще отказаться.
- Если DHCP-сервер поддерживает Option 82 — он может использовать эти данные для точного логирования или назначения IP на основе порта.
- Коммутатор проверяет возвращаемый пакет от сервера и может отклонить его, если 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 обязательно для любого сетевого администратора.