Cisco защита от переполнения DHCP и CAM-таблицы
Раз уж зашла речь о защите сети основанной на коммутаторах Cisco, то я бы хотел вспомнить еще один интересный случай, который показал необходимость защиты сети не только от внешних угроз, но и от внутренних.
В одной организации происходила интересная ситуация, приблизительно в четыре или пять часов вечера полностью ложилась сеть предприятия. Это происходило только по будним дням, по этому директор заподозрил в диверсии одного из работников организации. Штатного сисадмина в конторе небыло, а наёмные отказывались работать с Cisco, так как они даже не знали пароль от установленных коммутаторов. Но мы же знаем как сбросить пароль на Cisco сохранив при этом настройки оборудования. Собственно настройки комутатора были по умолчанию и они не предназначены для работы в условиях переполнения CAM-таблицы. О том, что используется атака на переполнение CAM-таблицы можно было судить по тому, что переполнялась таблица DHCP-адресов на сервере. Учитывая переполнение пула DHCP можно догадаться, что в сети генерируется тьма MAC-адресов. Для защиты от генерирования массы MAC-адресов можно защититься ограничив количество одновременно подключающихся MAC-ов. Если архитектура сети равномерная и к каждому оконечному порту подключено по одному компьютеру, а не стопка маленьких неуправляемых коммутаторов. Данный функционал реализуется технологией port-security. Настройка производится на каждом порту отдельно. Конечно, никто не запрещает выбрать сразу группу портов.
Включение защиты на каждый порт производится в пять комманд.
- Переводим порт в access режим,
- включаем port-security,
- указываем максимальное число MAC-адресов на интерфейсе (по умолчанию 1),
- указываем метод изучения MAC-адресов:
- mac-address — ручной ввод адреса
- sticky — режим обучения
- указываем тип реакции на превышение количества MAC-адресов.
- protect — блокировать пакеты от адресов подключившихся позже
- restrict — блокировать пакеты и сообщить о переполнении в syslog
- shutdown — выключить порт
switch(config-if)#switchport mode access switch(config-if)# switchport port-security switch(config-if)# switchport port-security maximum 7 switch(config-if)# switchport port-security mac-address sticky switch(config-if)# switchport port-security violation restrict
Вот так приблизительно выглядит настройка порта к которому подключен комутатор на восемь портов. Получится настройка при которой на порту может зарегистрироваться лишь семь устройств, если произойдет превышение, то коммутатор перестанет принимать пакеты в заголовках которых присутствуют лишние MAC-адреса. Если в вашей сети на каждый порт приходится по одному устройству, то указывать максимальное число подключений не надо, оно по умолчанию равно единице.
Эти параметры можно применять и на транковом порту, но тут главное не перегнуть палку, так как отловить ошибки такого плана сложно и не всегда тривиально. Например, если транковый порт смотрит на коммутатор с арендаторами, то можно ограничить количество MAC-адресов в VLAN. Делается это следующим образом.
switch(config-if)# switchport mode trunk switch(config-if)# switchport port-security maximum 20 vlan 7 switch(config-if)# switchport port-security
Кстати, есть одна очень нужная команда, про которую вечно забываю. Для того, чтобы очистить таблицу запомненных адресов надо дать комманду clear port-security. Синтаксис комманды следующий:
clear port-security [all|configured|dynamic|sticky] [address|interface ]
В общем, на любую хитрую задницу можно найти свой болт с верной резьбой. Планируйте сетевую безопасность предприятия на стади разработки, а не в процессе эксплуатации. В этом случае всё будет хорошо и не придётся искать экстренные решения.
Отредактировано:2020-09-07 06:52:34