Функционал Port Security напрямую связан с таблицей MAC-адресов коммутатора и работает с ней. От конфигурации зависит какие MAC-адреса будут изучены и в каком количестве. Port Security защищает от атаки переполнения CAM таблицы, ведь если злоумышленник зафлудит коммутатор Ethernet-кадрами с разными Source MAC-адресами, устройство может стать источником Unknown Unicast трафика. Еще один вид атаки - подмена злоумышленником своего MAC-адреса на один из действующих MAC-адресов в CAM таблице.
Когда на порт коммутатора приходит Ethernet-кадр, он проверяет его Source MAC-адрес по таблице MAC-адресов. Если совпадение есть, то кадр будет отправлен по назначению. При использовании Port Security MAC-адрес попадает в CAM-таблицу тремя способами:
- configured - прямое указание MAC-адреса на определенном порте;
- sticky - то же, что и статическая запись, но адрес добавляется не вручную, а автоматически. Это происходит в момент подключения нового устройства;
- dynamic - изучить MAC-адрес нового устройства динамически (по умолчанию).
Info |
---|
|
Sticky и Dynamic - взаимоисключающие методы. При использовании статического метода, на Trunk и Hybrid портах необходимо также указывать VLAN ID. |
В первых двух случаях адреса сохраняются в конфигурации и останутся там и после перезагрузки. Вы также можете определять допустимое количество MAC-адресов на порте (по умолчанию 1) и действие при его превышении:
- protect - не изучать новые MAC-адреса, отбрасывать пакеты и не записывать событие в Syslog;
- restrict - не изучать новые MAC-адреса, отбрасывать пакеты, посылать SNMP-трап и записывать событие в Syslog;
- shutdown - отключать интерфейс, посылать SNMP-трап и записывать событие в Syslog (по умолчанию).
Info |
---|
|
Параметр maximum влияет на изучение MAC-адресов методами Dynamic и Sticky. |
Настроим порт коммутатора e1/0/1 таким образом, что максимальное количество MAC-адресов будет равняться двум, а также будет создана статическая запись. Действие при превышении количества адресов - restrict:
Code Block |
---|
|
(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 |
Порт e1/0/2 будет изучать MAC-адреса методом sticky:
Code Block |
---|
|
(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-адресов:
Code Block |
---|
|
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'. Все возможные значения:
- SECUREC - статическая запись;
- SECURES - статическая запись методом Sticky;
- SECURED - динамическая запись.
Начнем последовательно подключать к коммутатору за портом e1/0/1 сетевые устройства. После превышения порога разрешенного количества получаем запись в логе:
Code Block |
---|
|
%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:
Code Block |
---|
|
#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 и после превышения максимального количества получаем:
Code Block |
---|
|
%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 снова:
Code Block |
---|
|
#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 в стартовой конфигурации:
Code Block |
---|
|
#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':
Code Block |
---|
|
#sh port-security int e1/0/2
Violation mode : Shutdown
Maximum MAC Addresses : 1
Configured MAC Addresses : 0
Security Violation count : 1 |
Очистить таблицу Port Security можно командой:
Code Block |
---|
|
clear port-security all |
Возможные значения:
- all - все записи;
- configured - статические;
- dynamic - динамические;
- sticky - записи sticky.