16. Безопасность

Общие сведения о безопасности

  • Атака на коммутируемую сеть начинается с абонентских портов (большая часть угроз рождается внутри сети)

    • Защищаться от этих атак необходимо на портах доступа

    • Необходимо принимать во внимание не только заголовок L2, но и другие свойства трафика, которые возможно проанализировать на коммутаторе

    • Способности коммутатора по анализу трафика ограничены, но пренебрегать ими не стоит

  • Абонентских коммутаторов и портов на них много

    • Поэтому автоматизируем все, что возможно

  • Начинается все с физической безопасности коммутаторов

Фильтрация трафика с ACL на MLS

  • PACL на физическом порту, в который включен конечный хост (только на входящий трафик)

  • Внутри VLAN используем VACL

  • На SVI используем ACL c фильтрацией по IP

Port ACL

Port ACL - список контроля доступа, используемый для фильтрации входящего трафика на физических интерфейсах коммутаторов

  • Может отбирать трафик на основании заголовков IPv4, IPv6 и Ethernet

  • На интерфейс назначается только один PACL каждого типа (MAC, IP, ...) на вход

Switch(config)#mac access-list extended MAC_ACL
Switch(config-ext-macl)#permit host 0000.dead.beaf any
Switch(config)#ip access-list extended IP_ACL
Switch(config-ext-nacl)#permit ip host 10.2.3.4 any
Switch(config)#ipv6 access-list IPV6_ACL
Switch(config-ipv6-acl)#permit ipv6 2001:db8::1/128 any

Switch(config)#int gi0/1
Switch(config-if)#mac access-group MAC_ACL in
Switch(config-if)#mac access-group IP_ACL in
Switch(config-if)#mac access-group IPV6_ACL in

Switch#show ip interface gi0/1
GigabitEthernet0/1 is up, line protocol is up
    Inbound access list is IP_ACL
    
Switch#show mac access-group interface gi0/1
Interface GigabitEthernet0/1:
    Inbound access-list is MAC_ACL
    Outbound access-list is not set

VLAN ACL

  • Применяются ко всем кадрам, коммутируемым в VLAN

    • Нет явного направления, классификация по заголовкам MAC/IPv4

  • Конфигурирование с помощью VLAN access maps

    • Совпадение ищется с помощью ACL

    • Для каждого совпадения обозначаются действия: Forward, Drop, Redirect

    • Порядок поиска совпадений важен

    • Один access map можно применить к нескольким VLAN

  • Отбрасываются кадры, не подходящие ни под одно правило

  • Фильтрация IPv6 с помощью VACL не поддерживается

Switch(config)#ip access-list extended HTTP
Switch(config-ext-nacl)#permit tcp any any eq 80
Switch(config-ext-nacl)#permit tcp any any eq 443

Switch(config)#ip access-list extended TELNET
Switch(config-ext-nacl)#permit tcp any any eq 23

Switch(config)#vlan access-map VLAN_MAP1 10
Switch(config-access-map)#match ip address HTTP
Switch(config-access-map)#action forward

Switch(config)#vlan access-map VLAN_MAP1 20
Switch(config-access-map)#match ip address TELNET
Switch(config-access-map)#action drop

Switch(config)#vlan filter VLAN_MAP1 vlan-list 300-302

Switch(config)#do show vlan access-map
Vlan access-map "VLAN_MAP1"    10
  Match clauses:
    ip address: HTTP
  Action:
     forward
 Vlan access-map "VLAN_MAP1"    20
  Match clauses:
    ip address: TELNET
  Action:
     drop
     
Switch(config)#do show vlan filter
VLAN Map VLAN_MAP1 is filtering VLANS:
  300-302 

MAC Spoofing

  • Подмена MAC-адреса с целью получения чужих кадров

  • Атаку можно предотвратить с помощью 802.1X или Port Security

Переполнение таблицы FDB

  • Переполнение таблицы FDB позволяет получать копии чужих кадров так как коммутатор при переполнении таблицы начнет рассылать кадры во все порты

  • Атаку можно предотвратить с помощью Port Security

Port Security

  • На каждом порту ведется "белый список" MAC-адресов источника

  • Количество записей в списке задается администратором

  • Адреса в список можно заносить:

    • из конфигурации (startup-config или вручную)

    • автоматически при получении кадра, если в списке есть свободное место

  • Если получен кадр от отсутствующего в списке адреса, а список уже полный, то возникает нарушение безопасности

  • На транках Port Security работает некорректно на некоторых платформах, желательно использовать только на access. Иначе он будет записывать MAC адреса в Native VLAN, что может сломать коммутацию.

Типы адресов:

  • "Белый список" на порту хранится в отдельной энергозависимой памяти (не в running-config), которая при перезагрузке обнуляется

  • В списке могут присутствовать следующие типы адресов:

    • Адреса, добавленные из конфигурации (Static и Sticky)

    • Адреса, добавленные автоматически по факту получения кадра без нарушения (Dynamic)

  • В режиме Sticky динамические адреса копируются в running-config, и при сохранении конфигурации они ведут себя как статические

Поведение при нарушении безопасности:

  • Protect: дроп кадров при нарушении

  • Restrict: дроп кадров с отправкой сообщения в SYSLOG, SNMP (если настроено) и в счетчик нарушений

  • Shutdown: порт при нарушении помещается в err-disable

Настройка Port Security:

Switch(config)#interface gi0/1
Switch(config-if)#switchport mode access !Port Security не работает на дин. портах
Switch(config-if)#switchport port-security violation shutdown
Switch(config-if)#switchport port-security mac-address sticky
Switch(config-if)#switchport port-security maximum 2
Switch(config-if)#switchport port-security aging type (inactivity|absolute)
Switch(config-if)#switchport port-security aging time 180
Switch(config-if)#switchport port-security

Switch(config-if)#do show port-security interface gi0/0
Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Shutdown
Aging Time                 : 180 mins
Aging Type                 : Inactivity
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 3
Total MAC Addresses        : 0
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 0
Last Source Address:Vlan   : 0000.0000.0000:0
Security Violation Count   : 0

Диагностика Port Security:

Switch#show port-security
Secure Port  MaxSecureAddr  CurrentAddr  SecurityViolation  Security Action
                (Count)       (Count)          (Count)
---------------------------------------------------------------------------
      Gi0/0              3            1                  0          Protect
      Gi0/3              3            0                  0         Shutdown
---------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096
Switch#show port-security address
               Secure Mac Address Table
-----------------------------------------------------------------------------
Vlan    Mac Address       Type                          Ports   Remaining Age
                                                                   (mins)    
----    -----------       ----                          -----   -------------
   1    5000.0001.0000    SecureDynamic                 Gi0/0      180 (I)
-----------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 0
Max Addresses limit in System (excluding one mac per port) : 4096

Доступ на индивидуальной основе

  • Механизм централизованного предоставления права коммутации

    • Использует AAA для авторизации и аутентификации

    • Удобный, масштабируемый, отказоустойчивый

  • Аутентификация по локальной или внешней базе использует:

    • Данные учетной записи

    • Сертификаты x.509

    • Биометрические сведения

    • Одноразовые пароли

  • Для аутентификации по внешней базе можно использовать протоколы RADIUS или TACACS+

Различия RADIUS и TACACS+

RADIUS

TACACS+

RFC 2865, поддерживается многими вендорами

Проприетарное расширение протокола TACACS

Использует UDP, порты 1812 и 1813

Использует TCP, порт 49

Совмещает аутентификацию и авторизацию в рамках одного процесса

Разделяет аутентификацию, авторизацию и аккаунтинг между отдельными процессами

Требует от клиента принятия авторизации в момент аутентификации (единый процесс)

Позволяет клиенту выполнять авторизацию в любое время после аутентификации

Не использует шифрование (некоторые используемые протоколы аутентификации могут шифровать учетные данные)

Шифруется вся информация, передаваемая между клиентом и сервером в рамках сессии

Удобен для управления доступом к сети

Удобен для управления доступом к CLI

  • Важно, что это протоколы доступа к базе, а не сама база.

Аутентификация и авторизация в 802.1AX

  • Используется Extensible Authentication Protocol (EAP)

    • Сервер AAA должен поддерживать EAP

  • Возможности авторизации:

    • Назначение VLAN (Normal VLAN, Guest VLAN, Restricted VLAN, Crit-auth VLAN)

    • Назначение ACL

    • Доступ на основе времени

    • Доступ на основе групп безопасности

  • Для клиентов, не поддерживающих EAPOL (EAPoverLAN), может использоваться MAC Authentication Bypass, веб-аутентификация или Port Security

    • MAB использует для RADIUS Access-Request MAC-адреса из входящих портов

  • Можно независимо аутентифицировать разных клиентов на порту

Аутентификация - процесс идентификации клиента

Авторизация - выдача прав пользователю

Обзор 802.1X

  • 802.1X - механизм аутентификации устройств на порту коммутатора

    • Аналогичный механизм в Wi-Fi называется WPA2-EAP

  • В 802.1X каждое устройство выполняет одну из ролей:

    • Supplicant: агент на конечном устройстве, запрашивает доступ к сети

    • Authenticator: агент на коммутаторе, контролирует доступ клиента к сети. Является своеобразным посредником между клиентом и сервером ААА

    • Сервер аутентификации: осуществляет аутентификацию и авторизацию

Аутентификация узла в 802.1X

Может инициироваться как суппликантом, так и аутентификатором

Настройка 802.1X

Конфигурация 802.1X на интерфейсе и в глобальном конфиге

Switch(config)#aaa new-model

Switch(config)#radius server RADIUS_SERVER1
Switch(config-radius-server)#address ipv4 10.0.0.1
Switch(config-radius-server)#key $ecretKey1

Switch(config)#radius server RADIUS_SERVER2
Switch(config-radius-server)#address ipv4 10.0.0.2
Switch(config-radius-server)#key $ecretKey2

Switch(config)#aaa group server radius RADIUS_GROUP
Switch(config-sg-radius)#server name RADIUS_SERVER1
Switch(config-sg-radius)#server name RADIUS_SERVER2

Switch(config)#aaa authentication dot1x default group RADIUS_GROUP
Switch(config)#dot1x system-auth-control

Switch(config)#interface gi0/1
Switch(config-if)#switchport mode access
Switch(config-if)#authentication port-control auto
                 ! старый синтаксис - dot1x port-control auto
Switch(config-if)#authentication host-mode single-host
                 ! старый синтаксис - dot1x host-mode single-host
Switch(config-if)#authentication event no-response action authorize vlan 2
                 ! старый синтаксис - dot1x guest-vlan 2
Switch(config-if)#authentication event fail action authorize vlan 2
                 ! старый синтаксис - dot1x auth-fail vlan 2

Cisco TrustSec

  • Упрощает развертывание и управление защищенным доступом к сетевым сервисам и приложениям

  • Совмещает концепции меток безопасности (SGT) и MACSec (802.1AE)

    • MACSec - фреймворк для CIA-защиты кадров, аналогичный IPSec

    • SGT (Security Group Tag) - доверенные метки аутентификации, добавляются на "входе" в пределы домена TrustSec

  • Фильтрация на устройствах осуществляется уже посредством меток

Метки SGT

  • Назначение меток:

    • Статическое - для IP адресов, портов коммутатора

    • Динамическое - при аутентификации 802.1X - для машин или пользователей

  • Транспортировка меток:

    • В заголовке Cisco Meta Data (CMD), EtherType 0x8909 (Inline Tagging)

    • Если транзитные узлы не поддерживают Inline Tagging, применяется протокол SXP (SGT eXchange Protocol), обменивающийся привязками IP к SGT

  • И самое интересное - фильтрация на основе меток:

    • Коммутаторы применяют SGACL аппаратно, без потери производительности

deny tcp tag 99 any tag 14 eq ftp
permit ip tag 10 any
deny ip any any

Защита IP на абонентском порту

  • IPv4

    • DHCP Snooping

    • Dynamic ARP inspection

    • IP Source Guard

  • IPv6

    • DHCPv6 Snooping - аналогичен DHCP Snooping в IPv4

    • IPv6 ND Snooping - аналогичен DAI в IPv4

    • IPv6 RA Guard - запрещает прием RA на недоверенных портах

    • IPv6 Source Guard and Prefix Guard

        • Source Guard - аналог IP Source Guard, проверяет по базе ND

        • Prefix Guard - проверяет адрес на соответствие префиксам RA/DHCPv6

    • IPv6 Destination Guard - механизм защиты от переполнения таблицы ND, отбрасываются пакеты на отсутствующие в ND connected-адреса

        • ND resolution rate limiter - ограничивает частоту отправляемых ND-запросов

ARP Cache Poisoning

Защита ARP

  • Dynamic ARP Inspection:

    • DAI определяет каждый интерфейс как доверенный либо недоверенный

    • Доверенные интерфейсы пропускают трафик ARP (ответы)

    • Ответы ARP с недоверенных интерфейсов подвергаются инспекции MAC и IP

  • По умолчанию используется база DHCP Snooping

    • Можно задавать статические соответствия адресов

    • Записи имеют срок действия

    • Записи хранятся в базе снупинга, не видны в running-config (по умолчанию во flash памяти)

  • Можно задать инспекцию по ARP ACL (привязкам IP-MAC) из конфига

    • Удобно в средах со статическими адресами, не использующими DHCP

    • По умолчанию проверка сначала по ARP ACL, потом по базе снупинга

Настройка DAI (DHCP Snooping):

Switch(config)#ip arp inspection vlan 10
Switch(config)#interface gi0/0
Switch(config-if)#ip arp inspection trust

Ручное добавление записи в базу DHCP Snooping:

Например, когда адрес хоста настроен статически и DHCP пакетов хост не формирует

Switch#ip dhcp snooping binding aabb.cc00.3010 vlan 10 10.0.0.1 int fa0/0 expiry 3600

Использование ARP ACL (ключ static - вместо базы DHCP Snooping)

Switch(config)#arp access-list STATIC_ARP
Switch(config-arp-nacl)#permit ip host 10.0.0.1 mac host aabb.cc00.3310
Switch(config)#ip arp inspection filter STATIC_ARP vlan 10 static

Диагностика DAI:

Switch#show ip arp inspection
Switch#show ip arp inspection interfaces
Interface        Trust State     Rate (pps)
  ---------------  -----------     ----------
  Gi1/1            Untrusted               15
  Gi1/2            Untrusted               15
  Gi3/1            Untrusted               15
  Gi3/2            Untrusted               15
  Fa3/3            Trusted               None
  Fa3/4            Untrusted               15
  Fa3/5            Untrusted               15
  Fa3/6            Untrusted               15
  Fa3/7            Untrusted               15
Switch#show ip arp inspection log
Switch#show ip arp inspection statistics

  Vlan      Forwarded        Dropped     DHCP Drops     ACL Drops 
  ----      ---------        -------     ----------     ----------
     1              2              0              0              0

  Vlan   DHCP Permits    ACL Permits   Source MAC Failures
  ----   ------------    -----------   -------------------
     1              2              0                    0

  Vlan   Dest MAC Failures   IP Validation Failures
  ----   -----------------   ----------------------
     1                  0                        0

IP Source Guard

  • Механизм защиты от подмены IP-адреса (IP Spoofing), использующий базу снупинга или статические привязки (но снупинг все равно нужен)

    • Проверяет у входящих IP-пакетов адрес источника

    • По умолчанию не проверяет MAC-адрес, но можно настроить

  • Имеет ограничения:

    • Не работает вместе с Private VLAN

    • Создает неявный PACL

Switch(config)#interface gi0/1
Switch(config-if)#switchport access vlan 10
Switch(config-if)#no ip dhcp snooping trust
Switch(config-if)#ip verify source

Switch(config)#ip source binding aaaa.bbbb.0002 vlan 10 10.0.0.2 interface gi0/1

Switch#show ip verify source interface gi0/1
Interface Filter-type Filter-mode IP-address    Mac-address     Vlan
--------- ----------- ----------- -------------- -------------- --------
Gi0/1     ip          active      10.0.0.1                       10
Gi0/1     ip          active      10.0.0.2                       10

IP Source Guard и Port Security

  • IP Source Guard может использовать базу Port Security для контроля соответствия IP- и MAC-адресов источника во входящих кадрах

Switch(config)#interface gi0/1
Switch(config-if)#switchport port-security
Switch(config)#ip verify source port-security

Switch#show ip verify source interface gi0/1
Interface Filter-type Filter-mode IP-address    Mac-address     Vlan
--------- ----------- ----------- -------------- -------------- --------
Gi0/1     ip-mac      active      10.0.0.1       aaaa.bbbb.0001  10
Gi0/1     ip-mac      active      10.0.0.2       aaaa.bbbb.0002  10

Инфраструктурные ACL

  • На всех пограничных интерфейсах необходимо фильтровать кадры с заведомо небезопасной адресной информацией

    • Пакеты с адресами назначения в вашей сети управления

  • На L3 Access следует использовать Unicast Reverse Path Forwarding

    • Проверяется соответствие входящего интерфейса для пакета выходному интерфейсу до маршрута в сторону адреса источника в пакете

Switch(config)#interface vlan 100
Switch(config-if)#ip verify unicast source reachable-via rx

Работа с интерфейсами Err-diable

  • Статус Err-disable можно снимать автоматически

    • Можно указать причины errdisable для автоматического снятия

    • Глобальный таймер автоматического снятия

Switch(config)#errdisable recovery cause psecure-violation
Switch(config)#errdisable recovery interval 30
  • Снять статус Errdisable с порта - shut/no shut

Посмотреть список портов:

Switch#show interface status err-disabled

Отображение причин errdisable:

Switch#show errdisable recovery
ErrDisable Reason               Timer Status
-----------------               ------------
link-flap                       disabled  
bpduguard                       disabled  
dhcp-rate-limit                 disabled  
arp-inspection                  disabled  
security-violation              disabled  
psecure-violation               disabled  
failed-port-state               enabled   
ip-addr-conflict                disabled  

        Timer interval: 300

Управление механизмами (включить/отключить):

Switch(config)#errdisable detect cause ?

Last updated