Port secutity — описание и настройка на коммутаторах Cisco catalyst

Port security – одна из функций коммутаторов Cisco catalyst, которую следует использовать обязательно. Когда через коммутатор проходят Ethernet-фреймы, он заполняет таблицу MAC адресов используя адрес отправителя, который указан в этих фреймах. Максимальный размер этой таблицы ограничен, заполнить её злоумышленнику не так сложно, как кажется, достаточно использовать специальный софт, который будет генерировать множество фреймов со случайными обратными адресами. Зачем это может понадобиться? В случае переполнения таблицы MAC адресов, коммутатор может начать действовать как хаб – то есть рассылать все полученные фреймы на все порты. Следующее действие злоумышленника – запустить сниффер, программу для просмотра всех входящих пакетов, а так как коммутатор у нас находится в режиме паники, то все пакеты, проходящие через него в том же VLAN-е, что и порт злоумышленника будут видны атакующему. Для того чтобы избежать подобной ситуации следует заранее позаботиться о том, чтобы на всех коммутаторах работал port security.

В чём заключается суть этой функции: тем или иным способом, для каждого порта ограничивается список (или количество) MAC адресов, которые на нём могут появляться, если на порту замечено слишком много адресов, то порт тушится. Таким образом, идея с генерированием фреймов со случайными обратными адресами, как не трудно заметить, достаточно быстро провалится.

Существует два способа введения ограничений на MAC адреса:

  1. Статический – когда администратор перечисляет, какие адреса разрешены
  2. Динамический – когда администратор указывает, сколько адресов разрешено, а коммутатор обучается, запоминая, какие адреса в настоящий момент обращаются через указанный порт

В свою очередь, динамически изученные адреса могут храниться в оперативной памяти коммутатора, в этом случае, после перезагрузки, «обучение» придётся повторить; либо в конфиге – тогда конфиг можно сохранить и адреса останутся даже после перезагрузки. Второй режим называется «липким» (sticky), так как адреса как бы прилипают к порту, после чего «отлепить» их может только администратор – вручную. Ещё один вопрос – что делать, если безопасность нарушена и к порту обращается адресов больше, чем мы настроили в port security? За поведение коммутатора в этом случае отвечает один из трёх режимов:

  • Protect – фреймы с новыми MAC адресами игнорируются, всё остальное продолжает работать. Режим хорош тем, что порт продолжает работать, но плох тем, что администратор скорее всего никогда не узнает, что в его сети происходят такие странные вещи
  • Restrict – идентичен режиму protect за тем исключением, что коммутатор по SNMP уведомляет, что произошла такая неприятная ситуация, кроме того, записывает информацию об этом в syslog (если настроен)
  • Shutdown – как видно из названия, помимо сообщений в syslog и по SNMP, порт тушится. Это не очень хорошо с точки зрения отказоустойчивости сети, но зато мы точно знаем, что злоумышленник не сможет продолжить свои эксперименты по исследованию нашей сети пока мы руками не включим порт.

Теперь, когда мы знаем всю теорию, попробуем настроить port security:

S1#configure terminal
S1(config)#interface fastEthernet 0/11
S1(config-if)#switchport mode access
S1(config-if)#switchport port-security

Таким образом, мы включили на интерфейсе эту функцию со значениями по умолчанию, а именно:

  • Максимум 1 MAC адрес на порту
  • Режим запоминания динамический (в оперативной памяти, без sticky)
  • Действие при появлении второго MAC адреса – отключение порта

Это легко проверить, если подключить компьютер к 11-му порту, пропинговать что-то, а потом сменить MAC и снова попробовать пропинговать. Порт отключится и перейдёт в состояние err-disable. Чтобы снова включить порт, надо его потушить и включить:

S1(config)#interface fastEthernet 0/11
S1(config-if)#shutdown 
%LINK-5-CHANGED: Interface FastEthernet0/11, changed state to administratively down
S1(config-if)#no shutdown 
%LINK-5-CHANGED: Interface FastEthernet0/11, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/11, changed state to up

Текущие настройки port security можно увидеть с помощью команды:

S1#show port-security 
Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
               (Count)       (Count)        (Count)
--------------------------------------------------------------------
        Fa0/11        1          1                 0         Shutdown
----------------------------------------------------------------------

Из таблички видно, что максимум 1 MAC и он уже изучен, действие – Shutdown.

Если коммутатор перезагрузить, то запомненный MAC забудется и надо будет его заново изучать, чтобы этого избежать, надо включить «липкое» заучивание MAC-ов. Заодно давайте увеличим количество с одного до пяти:

S1(config)#interface fastEthernet 0/11
S1(config-if)#switchport port-security mac-address sticky
S1(config-if)#switchport port-security maximum 5

Если мы хотим статически вручную перечислить адреса, то вместо слова sticky (или паралельно с ним – отдельной строчкой) мы можем их перечислять командой:

S1(config-if)#switchport port-security mac-address 1234.abcd.1234

Но предположим, что мы не добавляли MAC статически, а просто включили sticky режим. Пробуем пропинговать с компьютера, после чего смотрим конфиг:

S1#show running-config 
Building configuration...
Current configuration : 1185 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname S1
…
interface FastEthernet0/1
 switchport mode access
 switchport port-security
 switchport port-security mac-address sticky 
 switchport port-security mac-address sticky 0001.4276.96B5
…

Что мы видим? Строка «switchport port-security mac-address sticky 0001.4276.96B5» говорит о том, что адрес компьютера запомнился и «прилип к порту», как будто мы сами его туда вбили статически. Если теперь сохранить конфиг, то после перезагрузки адрес не пропадёт и коммутатор не надо будет заново обучать.

Надеюсь, что статья поможет получит представление о port security и главное, понять, что эта функция очень просто настраивается и достаточно хорошо помогает против некоторых видов атак.

Комментарии

Добрый день не под скажете
я все это прописал но после того как пропингавал и проверил конфиг там мак адреса не прописались нише конфиг Делал на Packet Tracer v5.3.3 если можно ответите плиз на майл darhandkt@gmail.ru

interface FastEthernet0/1
switchport mode access
switchport port-security
switchport port-security mac-address sticky
-------------------------------------------------

Switch#sh mac address-table
Mac Address Table
-------------------------------------------

Vlan Mac Address Type Ports
---- ----------- -------- -----

1 0001.439d.702e STATIC Fa0/1
1 0001.649d.9682 STATIC Fa0/2
1 0030.f2cc.05a1 STATIC Fa0/3

Аватар пользователя bacek
Ну, исходя из приведённого куска - всё должно работать. Так что либо проблема в других частях конфига, либо, что более вероятно, в пакет трэйсере. Он часто работает не совсем адекватно.

Добрый день!
Хорошая статья, но нет информации что делать если мак адрес привязался и теперь его нужно удалить что бы port-security привязал новый мак адрес. Как это сделать, не могу нигде найти. Постоянно увеличивать количество мак адресов не вариант.

port-security discard
port-security max 0
Привязывает мак автоматом, либо привязать вручную в режиме глобальной конфигурации:
mac address-table static ??:??:??:??:??:?? vlan ? interface fastethernet1/0/? secure

clear port-sec sticky int giX/Y/Z

Для этого Вам необходимо перевести порт в режим shutdown, и из привилегированного режима ввести команду clear switchport mac-address sticky int xx access (или voice для телефонии, если на порту 2 статических мака)

Добавить комментарий