Основы компьютерных сетей #22 — Как настроить Port Security в Cisco IOS. Делаем сеть безопасной

Как сделать нашу сеть безопаснее? Можно отключить неиспользуемые порты. Этот вариант кажется весьма безопасным, но с другой стороны, мало, что дает для защиты сети, так как рядом с отключенным портом, соседний все равно остается в рабочем состоянии. 

Для решения этой проблемы существует Port Security. Данная технология позволяет предотвратить несанкционированный доступ к нашей сети, анализируя MAC адреса устройств.

Каждый коммутатор имеет таблицу MAC адресов, в которой указано к какому порту подключено устройство с определенным MAC адресом.

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

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    0050.7966.680c    DYNAMIC     Et0/0
   1    0050.7966.680d    DYNAMIC     Et0/1
Total Mac Addresses for this criterion: 2

Схема простая — один коммутатор L2 и 3 ПК.

Настроим на e0/0 Port Security, ограничив максимальное количество MAC адресов до 1.

S#conf t
S(config)#int e0/0
S(config-if)#switchport mode access
S(config-if)#switchport port-security maximum 1

Теперь включим Port Security

S(config-if)#switchport port-security

Проверим

S#show port-security
Secure Port  MaxSecureAddr  CurrentAddr  SecurityViolation  Security Action
                (Count)       (Count)          (Count)
---------------------------------------------------------------------------
      Et0/0              1            1                  0         Shutdown
---------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Как видим, коммутатор обнаружил MAC адрес PC подключенного к порту и занес его в список.

В Port Security существует два режима нарушения:

  • отключение
  • ограничение

Отключение как следует из названия при появлении на интерфейсе неавторизованного MAC адреса просто отключает порт. Этот режим используется по умолчанию

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

Чтобы задать режим ограничения, введите команду

switchport port-security violation restrict

Если вы сейчас выполните 

S#show port-security
Secure Port  MaxSecureAddr  CurrentAddr  SecurityViolation  Security Action
                (Count)       (Count)          (Count)
---------------------------------------------------------------------------
      Et0/0              1            1                  0         Restrict
---------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

В графе Security Action мы увидим изменения с Shutdown на Restrict.

Давайте проверим и подключим в e0/0 другой ПК.

*Feb 10 16:34:57.225: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.680e on port Ethernet0/0.

S#show port-security
Secure Port  MaxSecureAddr  CurrentAddr  SecurityViolation  Security Action
                (Count)       (Count)          (Count)
---------------------------------------------------------------------------
      Et0/0              1            1                  3         Restrict
---------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Как видите коммутатор отреагировал, счетчик увеличился, порт остался включенным, но неавторизованный PC не смог взаимодействовать с нашей сетью.

В Port Security мы можем задать время, через которое коммутатор “забудет” зафиксированные MAC адреса.

Если сейчас мы выполним

S#sh port-security interface e0/0
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 1
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0050.7966.680e:1
Security Violation Count   : 3

Мы увидим, что Aging Time : 0 mins не задан. 

Давайте установим 1 минуту

S(config)#int e0/0
S(config-if)#switchport port-security aging time 1

Проверим

S#sh port-security interface e0/0
*Feb 10 16:39:20.942: %SYS-5-CONFIG_I: Configured from console by console
S#sh port-security interface e0/0
S#sh port-security interface e0/0
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict
Aging Time                 : 1 mins


S#sh port-security address
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins)
----    -----------       ----                          -----   -------------
   1    0050.7966.680c    SecureDynamic                 Et0/0      < 1
-----------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Подождем минуту и проверим снова

S#sh port-security address
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins)
----    -----------       ----                          -----   -------------
-----------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Таблица стала пустой

Сделаем пинг с ранее подключенного PC

S#sh port-security address
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins)
----    -----------       ----                          -----   -------------
   1    0050.7966.680e    SecureDynamic                 Et0/0        1
-----------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Видим, что MAC адрес изменился, пинг до соседнего ПК проходит.

Теперь запретим подключение неавторизованных устройств.

В Port Security есть такое понятие — sticky mac-address.

Допустим, мы точно знаем, что компьютеры за конкретным коммутатором являются стационарными и постоянно подключены к конкретным портам. Сделаем так, чтобы на интерфейсе e0/0 можно было подключаться только с одного определенного MAC адреса

S(config)#int e0/0
S(config-if)#switchport port-security mac-address sticky

Проверим

S#show running-config interface e0/0
Building configuration...

Current configuration : 268 bytes
!
interface Ethernet0/0
 switchport mode access
 switchport port-security violation restrict
 switchport port-security mac-address sticky
 switchport port-security mac-address sticky 0050.7966.680e
 switchport port-security aging time 1
 switchport port-security
end

S#sh port-security address
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins)
----    -----------       ----                          -----   -------------
   1    0050.7966.680e    SecureSticky                  Et0/0        -
-----------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Видим, что коммутатор закрепил данный MAC адрес за портом e0/0. Функция aging time удобна, если у вас стоит задача настроить много новых компьютеров, а на вашем коммутаторе свободен только один порт, вы подключили к нему, допустим, неуправляемый 5 портовый, увеличили количество разрешенных MAC адресов до 5, затем подождали и подключили новые 5 ПК, но с точки зрения безопасности корпоративной сети — sticky mac-address является более безопасным вариантом. Например в SecureSticky отсутствует понятие Remaining Age.

Допустим, нам нужно перенести компьютер подключенный в e0/0 в другое помещение, а сюда подключить новый. Если мы сделаем это сейчас мы увидим

S#
*Feb 10 16:57:34.041: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.680c on port Ethernet0/0.

Несмотря на то, что Port Security сработал, стоит отметить, что злоумышленник смог бы в теории подделать MAC адрес с авторизованного ПК и клонировать его. С другой стороны это потребует определенного времени и мы уже получили, хотя бы какую-то защиту. Иными словами — лучше чем было.

Чтобы заменить устройство, нам нужно отключить ПК и удалить старый MAC адрес

S(config)#int e0/0
S(config-if)#no switchport port-security mac-address sticky 0050.7966.680e

Теперь подключим новый ПК, подождем и проверим

S#sh port-security address
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins)
----    -----------       ----                          -----   -------------
   1    0050.7966.680c    SecureSticky                  Et0/0        -
-----------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Как видим Port Security автоматический добавил MAC адрес нового ПК.

Наша сеть стала немного безопаснее.