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