Функционал Port Security напрямую связан с таблицей MAC-адресов коммутатора и работает с ней. От конфигурации зависит какие MAC-адреса будут изучены и в каком количестве. Port Security защищает от атаки переполнения CAM таблицы, ведь если злоумышленник зафлудит коммутатор Ethernet-кадрами с разными Source MAC-адресами, устройство может стать источником Unknown Unicast трафика. Еще один вид атаки - подмена злоумышленником своего MAC-адреса на один из действующих MAC-адресов в CAM таблице.
Когда на порт коммутатора приходит Ethernet-кадр, он проверяет его Source MAC-адрес по таблице MAC-адресов. Если совпадение есть, то кадр будет отправлен по назначению. При использовании Port Security MAC-адрес попадает в CAM-таблицу тремя способами:
Sticky и Dynamic - взаимоисключающие методы. При использовании статического метода, на Trunk и Hybrid портах необходимо также указывать VLAN ID. |
В первых двух случаях адреса сохраняются в конфигурации и останутся там и после перезагрузки. Вы также можете определять допустимое количество MAC-адресов на порте (по умолчанию 1) и действие при его превышении:
На некоторых коммутаторах требуется включить 'mac-address-learning cpu-control' - об этом вы увидите соответсвующее предупреждение: Mac learning is not in cpu-control mode, please enable it to make port-security work well! |
Настроим порт коммутатора e1/0/1 таким образом, что максимальное количество MAC-адресов будет равняться двум, а также будет создана статическая запись. Действие при превышении количества адресов - restrict:
(config)#int e1/0/1 (config-if-ethernet1/0/1)#switchport port-security (config-if-ethernet1/0/1)#switchport port-security maximum 2 (config-if-ethernet1/0/1)#switchport port-security violation protect (config-if-ethernet1/0/1)#switchport port-security mac-address f0-de-f1-19-d5-eb (config-if-ethernet1/0/1)#exit |
На моделях SNR-S2995, SNR-S2989 и SNR-S3850 команда «switchport port-security maximum ...» ограничивает суммарное число dynamic + static MAC-адресов. Поэтому, — как пример, — если вы хотите на SNR-S2995G разрешить один статический MAC-адрес и запретить любые dynamic MAC-дреса, то вам необходимо установить число разрешённых MAC-адресов 1 («switchport port-security maximum 1» - значение по умолчанию) и установить сам статический MAC-адрес («switchport port-security mac-address ...»). Чтобы проверить, какие MAC-адреса ограничивает команда «switchport port-security maximum ...» (только dynamic или dynamic + static), можно установить число разрешённых MAC-адресов 0 («switchport port-security maximum 0») и сделать тестовую запись static MAC-адреса. Если коммутатор покажет ошибку, то команда «switchport port-security maximum ...» ограничивает суммарное число dynamic + static MAC-адресов. Если ошибки не будет, то команда «switchport port-security maximum ...» ограничивает только dynamic MAC-адреса. Такой нюанс работы связан с особенностями чипов, на которых построены коммутаторы. |
Порт e1/0/2 будет изучать MAC-адреса методом sticky:
(config)#int e1/0/2 (config-if-ethernet1/0/2)#switchport port-security (config-if-ethernet1/0/2)#switchport port-security mac-address sticky (config-if-ethernet1/0/2)#end |
Теперь взглянем на таблицу MAC-адресов:
Vlan Mac Address Type Creator Ports ---- --------------------------- ------- ------------------------------------- 1 f0-de-f1-19-d5-eb SECUREC PSecure Ethernet1/0/1 1 f8-f0-82-75-cd-41 STATIC System CPU |
Она уже содержит в себе запись запись типа 'SECUREC'. Все возможные значения:
Начнем последовательно подключать к коммутатору за портом e1/0/1 сетевые устройства. После превышения порога разрешенного количества получаем запись в логе:
%Jan 01 02:30:30:637 2006 Port-security has reached the threshold on Interface Ethernet1/0/1 and violation mode is restrict, the current unkown source mac addr is d8-c4-97-c0-c7-52, vlan id 1! |
С этого момента MAC-адреса новых устройств не изучаются за портом e1/0/1. Посмотрим на таблицу адресов Port Security:
#sh port-security address Secure Mac Address Table ------------------------------------------------------------------------------------- Vlan Mac Address Type Ports 1 f0-de-f1-19-d5-eb SECUREC Ethernet1/0/1 1 38-63-bb-71-d3-00 SECURED Ethernet1/0/1 1 b8-27-eb-ea-05-e1 SECURED Ethernet1/0/1 Total Addresses:3 |
Только две динамические записи, хотя подключено большее количество устройств.
Теперь начнем последовательно подключать сетевые устройства за портом e1/0/2 и после превышения максимального количества получаем:
%Jan 01 02:34:27:024 2006 Port-security has reached the threshold on Interface Ethernet1/0/2, unkown source mac addr b8-27-eb-ea-05-e1, vlan id 1 and violation mode is shutdown, so shutdown it! %Jan 01 02:34:27:050 2006 %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1/0/2, changed state to DOWN %Jan 01 02:34:27:055 2006 %LINK-5-CHANGED: Interface Ethernet1/0/2, changed state to administratively DOWN %Jan 01 02:34:28:059 2006 %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1,changed state to DOWN |
Порт отключился. Напомним, что именно действие 'shutdown' срабатывает по умолчанию, а максимальное количество - один MAC-адрес. Взглянем на таблицу адресов Port Security снова:
#sh port-security address Secure Mac Address Table ------------------------------------------------------------------------------------- Vlan Mac Address Type Ports 1 f0-de-f1-19-d5-eb SECUREC Ethernet1/0/1 1 38-63-bb-71-d3-00 SECURED Ethernet1/0/1 1 b8-27-eb-ea-05-e1 SECURED Ethernet1/0/1 1 38-63-bb-19-de-71 SECURES Ethernet1/0/2 Total Addresses:4 |
Посмотрим на конфигурацию порта 1/0/2 в стартовой конфигурации:
#sh run int e1/0/2 ! Interface Ethernet1/0/2 switchport port-security switchport port-security mac-address sticky switchport port-security mac-address sticky 38-63-bb-71-d3-00 ! |
Как видно, адрес изученный методом 'sticky' попал в running-config. Вы также можете посмотреть информацию о количестве срабатываний действия 'violation':
#sh port-security int e1/0/2 Violation mode : Shutdown Maximum MAC Addresses : 1 Configured MAC Addresses : 0 Security Violation count : 1 |
Очистить таблицу Port Security можно командой:
clear port-security all |
Возможные значения: