новости
статьи
.save ass…

DHCP snooping

DHCP snooping — функция коммутатора, предназначенная для защиты от атак с использованием протокола DHCP. Например, атаки с подменой DHCP-сервера в сети или атаки DHCP starvation, которая заставляет DHCP-сервер выдать все существующие на сервере адреса злоумышленнику.

DHCP snooping регулирует только сообщения DHCP и не может повлиять напрямую на трафик пользователей или другие протоколы. Некоторые функции коммутаторов, не имеющие непосредственного отношения к DHCP, могут выполнять проверки на основании таблицы привязок DHCP snooping (DHCP snooping binding database). В их числе:

- Dynamic ARP Protection (Inspection) — проверка ARP-пакетов, направленная на борьбу с ARP-spoofing,

- IP Source Guard — выполняет проверку IP-адреса отправителя в IP-пакетах, предназначенная для борьбы с IP-spoofingом.

введение

DHCP snooping позволяет:

- защитить клиентов в сети от получения адреса от неавторизованного DHCP-сервера;

- регулировать, какие сообщения протокола DHCP отбрасывать, какие перенаправлять и на какие порты.

Для правильной работы DHCP snooping необходимо указать, какие порты коммутатора будут доверенными (trusted), а какие — нет (untrusted, в дальнейшем — ненадёжными):

- Ненадёжные (Untrusted) — порты, к которым подключены клиенты. DHCP-ответы, приходящие с этих портов, отбрасываются коммутатором. Для ненадёжных портов выполняется ряд проверок сообщений DHCP и создаётся база данных привязки DHCP (DHCP snooping binding database).

- Доверенные (Trusted) — порты коммутатора, к которым подключен другой коммутатор или DHCP-сервер. DHCP-пакеты, полученные с доверенных портов, не отбрасываются.

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

По умолчанию коммутатор отбрасывает DHCP-пакет, который пришел на ненадёжный порт, если:

- приходит одно из сообщений, которые отправляет DHCP-сервер (DHCPOFFER, DHCPACK, DHCPNAK или DHCPLEASEQUERY);

- приходит сообщение DHCPRELEASE или DHCPDECLINE, в котором содержится MAC-адрес из базы данных привязки DHCP, но информация об интерфейсе в таблице не совпадает с интерфейсом, на котором был получен пакет;

- в пришедшем DHCP-пакете не совпадают MAC-адрес, указанный в DHCP-запросе, и MAC-адрес отправителя;

- приходит DHCP-пакет, в котором есть опция 82.

На ненадёжные порты не передаются запросы на получение адреса.

пример топологии

Топология, изображенная на рисунке, не является рекомендацией, а служит демонстрацией того, какие порты коммутаторов указывать доверенными, а какие ненадёжными.

Настройки DHCP snooping на коммутаторах разных производителей выполняются для этой топологии (конфигурационные файлы коммутаторов в конце страницы).



Пояснения к рисунку:

- на коммутаторах sw1 и sw2 включен DHCP snooping;

- порт 24 коммутатора sw1 и порт a1 коммутатора sw2 указаны доверенными, так как на ненадежных портах сообщения DHCP-сервера будут отбрасываться;

- порт 24 коммутатора sw1 и порт a1 коммутатора sw2 указаны доверенными, так как коммутатор, на котором включен DHCP snooping, будет перенаправлять DHCP-запросы только на доверенные порты.

порядок настройки

1. Настройка и проверка работы DHCP-сервера и DHCP-ретранслятора без включенного DHCP snooping.

2. Включение DHCP snooping. После включения DHCP snooping на коммутаторе и в соответствующих VLAN все порты коммутатора по умолчанию считаются ненадёжными.

3. Указание доверенных портов. Те порты, к которым подключены коммутаторы и которые ведут к DHCP-серверу (или порты, к которым сервер подключен), должны быть настроены как доверенные.

4. Настройка политики обработки опции 82.

5. (Опционально) Включение или выключение дополнительных проверок DHCP-сообщений.

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

В базе данных привязки DHCP хранятся (информация хранится только о ненадёжных портах):

- MAC-адрес клиента

- Арендованный IP-адрес клиента

- Время аренды в секундах

- Идентификатор VLAN

- Идентификатор порта к которому присоединен клиент

использование опции 82

По умолчанию коммутатор, на котором включен DHCP snooping, вставляет опцию 82 в DHCP-запросы. Коммутатор может изменять или вставлять опцию 82, даже если клиент и сервер находятся в одной подсети.

При вставке опции 82 коммутатор фактически вставляет два значения:

- Remote ID (MAC-адрес или IP-адрес коммутатора). Это значение можно настраивать;

- Circuit ID (порт с которого пришел запрос). Это значение не настраивается.

По умолчанию коммутатор, использующий DHCP snooping, обнаруживает и отбрасывает любой DHCP-запрос содержащий опцию 82, который он получил через ненадёжный порт.

Этот режим стоит оставить, если коммутатор соединен с конечными клиентами. Получение запроса с опцией 82 от клиента будет говорит об атаке, которую коммутатор должен предотвратить.

Если коммутатор соединен с другим коммутатором, использующим DHCP snooping, то возможны два варианта обработки пакетов:

- сохранить опцию 82 в пришедшем пакете;

- заменить опцию 82 в пришедшем пакете.

настройка DHCP snooping на коммутаторах ProCurve

Включить DHCP snooping:

sw2(config)# dhcp-snooping

Включить DHCP snooping в VLAN, которые должны быть защищены с его помощью:

sw2(config)# dhcp-snooping vlan 25

настройка доверенных и ненадёжных портов

По умолчанию на коммутаторе все порты ненадёжные, поэтому доверенные порты надо явным образом указывать.

Указать доверенные порты:

sw2(config)# dhcp-snooping trust a1

(Опционально) Указать адрес авторизованного DHCP-сервера, доступного через доверенный порт:

sw2(config)# dhcp-snooping authorized-server 192.168.25.254

По умолчанию, после включения DHCP snooping, на коммутаторе включена проверка соответствия MAC-адресов. Коммутатор проверяет соответствие MAC- адреса в DHCP-запросе MAC-адресу клиента. Если они не соответствуют, то коммутатор отбрасывает пакет.

При необходимости можно отключить эту проверку:

switch(config)# no dhcp-snooping verify mac

настройка опции 82

С опцией 82 связаны две настройки:

- настройка значения remote ID;

- настройка политики обработки пакетов с опцией 82.

Настройка remote ID:

sw2(config)# dhcp-snooping option 82 remote-id [mac | subnet-ip | mgmt-ip]

Значения remote ID:

- mac — MAC-адрес коммутатора (значение по умолчанию);

- subnet-ip — IP-адрес VLAN, который получил DHCP-запрос;

- mgmt-ip — IP-адрес коммутатора.

Настройка политики обработки пакетов с опцией 82:

sw2(config)# dhcp-snooping option 82 untrusted-policy [drop | keep | replace]

Значения политики:

- drop — отбросить пакет;

- keep — коммутатор отправляет пакет с сохранением значения опции 82;

- replace — коммутатор отправляет пакет, но заменяет значение опции 82.

Отключить вставку опции 82:

switch(config)# no dhcp-snooping option 82

просмотр настроек и проверка работы DHCP snooping

Просмотр настроек DHCP snooping:

sw2(config)# show dhcp-snooping

DHCP Snooping Information

DHCP Snooping : Yes
Enabled Vlans : 1 10 25 30
Verify MAC : Yes
Option 82 untrusted policy : replace
Option 82 Insertion : Yes
Option 82 remote-id : mac

Store lease database : Not configured

Authorized Servers
------------------
192.168.25.254


Port Trust
----- -----
A1 Yes
A2 No
A3 No
A4 No
A5 No
.......


Просмотр статистики DHCP snooping:

sw2(config)# show dhcp-snooping stats

Packet type Action Reason Count
----------- ------- ---------------------------- ---------
server forward from trusted port 15
client forward to trusted port 9
server drop received on untrusted port 3
server drop unauthorized server 0
client drop destination on untrusted port 0
client drop untrusted option 82 field 13
client drop bad DHCP release request 0
client drop failed verify MAC check 0

Просмотр базы данных привязки DHCP для коммутатора sw2:

sw2(config)# show dhcp-snooping binding

MacAddress IP VLAN Interface Time Left
------------- --------------- ---- --------- ---------
00163e-000101 192.168.10.10 10 A5 562
00163e-000103 192.168.30.10 30 A5 569


Просмотр базы данных привязки DHCP для коммутатора sw1:

sw1(config)# show dhcp-snooping binding

MacAddress IP VLAN Interface Time Left
------------- --------------- ---- --------- ---------
00163e-000101 192.168.10.10 10 1 525
00163e-000103 192.168.30.10 30 7 532


DHCP snooping и DHCP-ретранслятор

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

Описание процедуры настройки коммутаторов ProCurve для работы DHCP-ретранслятором можно прочитать на странице Опция 82 DHCP.

Если DHCP snooping не настроен в VLAN, то для него применяются глобальные настройки.

настройка DHCP snooping на коммутаторах Cisco

Включить DHCP snooping:

sw2(config)# ip dhcp snooping

Включить DHCP snooping в VLAN, которые должны быть защищены с его помощью:

sw2(config)# ip dhcp snooping vlan 10

настройка доверенных и ненадёжных портов

По умолчанию на коммутаторе все порты ненадёжные, поэтому доверенные порты надо явным образом указывать.

Указать доверенные порты:

sw2(config)# interface fa 0/1
sw2(config-if)# ip dhcp snooping trust


По умолчанию, после включения DHCP snooping, на коммутаторе включена проверка соответствия MAC-адресов. Коммутатор проверяет соответствие MAC- адреса в DHCP-запросе MAC-адресу клиента. Если они не соответствуют, то коммутатор отбрасывает пакет.

При необходимости можно отключить эту проверку:

switch(config)# no ip dhcp snooping verify mac-address

настройка опции 82

С опцией 82 связаны две настройки:

- настройка значения remote ID;

- настройка политики обработки пакетов с опцией 82.

Настройка remote ID (по умолчанию используется MAC-адрес коммутатора):

sw2(config)# ip dhcp snooping information option format remote-id [string ASCII-string | hostname]

Настройка политики обработки пакетов с опцией 82. Коммутатор не будет отбрасывать пакеты, в которых есть опция 82:

sw2(config)# ip dhcp snooping information option allow-untrusted

Отключить вставку опции 82:

switch(config)# no ip dhcp snooping information option

просмотр настроек и проверка работы DHCP snooping

Просмотр настроек DHCP snooping:

sw2(config)# show ip dhcp snooping

Просмотр статистики DHCP snooping:

sw2(config)# show ip dhcp snooping statistics

Просмотр базы данных привязки DHCP:

sw2(config)# show ip dhcp snooping binding

конфигурационные файлы
DHCP-сервер


Конфигурационный файл DHCP-сервера:

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.25.0 netmask 255.255.255.0 {
range 192.168.25.200 192.168.25.220;
option routers 192.168.25.254;
}

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.15;
option routers 192.168.10.1;
}

subnet 192.168.30.0 netmask 255.255.255.0 {
range 192.168.30.10 192.168.30.15;
option routers 192.168.30.1;
}


коммутаторы ProCurve

Конфигурация sw1:

; J4906A Configuration Editor; Created on release #M.10.41

hostname "sw1"
vlan 1
name "DEFAULT_VLAN"
untagged 2-6,8-48
ip address dhcp-bootp
no untagged 1,7
exit
vlan 10
name "VLAN10"
untagged 1
tagged 24
exit
vlan 30
name "VLAN30"
untagged 7
tagged 24
exit

# Включение DHCP snooping
dhcp-snooping

# Включение DHCP snooping в VLAN'ах 1, 10, 30
dhcp-snooping vlan 1 10 30

# Настройка 24 порта доверенным
interface 24
dhcp-snooping trust
exit


Конфигурация sw2:

; J8697A Configuration Editor; Created on release #K.13.23

hostname "sw2"
module 1 type J8705A
interface A10
disable
exit
ip routing
snmp-server community "public" Unrestricted
vlan 1
name "DEFAULT_VLAN"
untagged A2-A24
ip address dhcp-bootp
no untagged A1
exit
vlan 10
name "VLAN10"

# По умолчанию на коммутаторе включен DHCP-ретранслятор.
# ip helper-address указывает куда перенаправлять DHCP-запросы.
# 192.168.25.254 — адрес DHCP-сервера.
# Теперь все DHCP-запросы полученные в этом VLAN будут перенаправлены на адрес 192.168.25.254.
ip helper-address 192.168.25.254
ip address 192.168.10.1 255.255.255.0
tagged A5
exit
vlan 30
name "VLAN30"

# ip helper-address указывает куда перенаправлять DHCP-запросы.
ip helper-address 192.168.25.254
ip address 192.168.30.1 255.255.255.0
tagged A5
exit
vlan 25
name "VLAN25"
untagged A1
ip address 192.168.25.1 255.255.255.0
exit

# Включение DHCP snooping
dhcp-snooping

# Задание адреса авторизованного DHCP-сервера
dhcp-snooping authorized-server 192.168.25.254

# Настройка политики обработки опции 82.
# Так как на коммутаторе sw1 включен DHCP snooping,
# то на коммутатор sw2 DHCP-запросы приходят с опцией 82.
# По умолчанию коммутатор такие пакеты отбрасывает.
# Эта политика указывает, что опцию 82 в пришедших пакетах надо заменить.
dhcp-snooping option 82 untrusted-policy replace

# Включение DHCP snooping в VLAN'ах 1, 10, 25, 30
dhcp-snooping vlan 1 10 25 30

# Настройка порта a1 доверенным
interface A1
dhcp-snooping trust
exit




Наташа Самойленко
обсудить статью
© сетевые решения
.
.