Лабораторная работа настройка параметров безопасности коммутатора cisco

Обновлено: 15.07.2024

Всем привет!
Многие из вас видели и читали прекрасные материалы под общим названием «Сети для самых маленьких». Собственно, я не претендую на лавры, но решил написать нечто подобное в области безопасности сети на основе оборудования Cisco.

Первый материал будет посвящен BaseLine/L2 Security, т.е. тем механизмам, которые можно использовать при начальной конфигурации устройств а также на L2 коммутаторах под управлением IOS.
Всем, кому интересно, поехали!

Допустим, у нас brand-new [switch/router], для первой главы не принципиально. Мы подключаемся к нему с помощью консольного провода (более подробно описано Часть.1 Сети для самых маленьких). Т.к. мы не хотим, чтобы железка лежала у нас на столе или (если она уже в стойке) стоять и мерзнуть в серверной, сразу настроим на ней удаленное управление.

Remote control & credentials

  • 0 уровень: enable password Qwerty!23 – хранение данных в открытом виде.
  • 4 уровень: enable secret Qwerty!23 – преобразование данных в SHA256 Encryption в IOS 15, т.к. «change to new encryption, md5 can be deprecated soon».
  • 5 уровень: enable secret Qwerty!23 – преобразование данных в MD5 Hash.

Вроде бы все, если что забыл, прошу отписаться в комментарии, по крайней мере JDima, всегда делал стоящие комментарии.

L2 Security

  • Vlans бывают: Primary и Secondary: Isolated или Community.
  • Vlans types: Isolated (может быть только в единственном экземпляре, связь внутри vlan отсутствует, только с Promiscuous), Community (много, связь внутри Vlan есть и с Promiscuous)
  • Ports Types: Promiscuous — Primary Vlan port что-то типа dg, также Isolated и Community
  • Private Vlans требуют включения VTP transparent: vtp mode transparent.

Применять или нет решать вам в зависимости от целей.
Вроде бы все ясно, однако если Promiscuous port маршрутизируем, то существует возможность попасть из ISOLATED в другие VLAN, путем посылки подкрафченного пакета до L3 устройства. Закрывается такая возможность с помощью ACL на маршрутизаторе.
Примерно схожий функционал c Isolated VLAN имеется при настройке PVLAN Edge или Protected port. Настраивается это на каждом интерфейсе отдельно командой: switchport protected.
Ну и в завершении с VLAN рассмотрим ACL для VLANs: VLAN ACL (VACL) или VLAN map а также MacSec.
Если возникает необходимость контролировать трафик внутри VLAN нужно определить трафик и повесить его на нужный VLAN, примерно вот так:

Создаем обычный список доступа, который будет использоваться в VACL. Определим VLAN access map. Определим действие при совпадении трафика со списком. Применим к VLAN. 1 класс трафика будет останавливаться, весь другой пересылаться.
Интересная функция в IOS — MacSec.
Вот такой набор команд (к примеру на 2 устройствах):

Настроив на L2 устройствах, на портах через которые два коммутатора соединены между собой, получим симметрично зашифрованный канал (pmk на устройствах должен быть одинаковым).

CAM protection
Если взять утилиту macof (есть в Kali) и запустить ее на генерирование MAC адресов с клиента подключенного к коммутатору, то в зависимости от модели коммутатора через некоторое время он станет хабом. Почему? Из-за того, что место в CAM таблице закончится. Для того чтобы это предотвратить существует режим port security на интересующем нас интерфейсе:
и
Работает этот режим только на trunk или access port, но не на dynamic port.
У режима имеются параметры: Protect (no packets if violation, no log), Restrict (no packets if violation, log: snmp, sylog), Shut down port (default, max=1, log: snmp, sylog), Shut down Vlan. Есть режимы Dynamic (memorize 5 first mac), Static (manually write into running config static mac) и еще sticky (brand new network -> auto write in running config).
Да и в конце настройки нужно не забыть активировать сам режим.

Snooping table
Для того, чтобы обезопасить себя от атак на dhcp можно применять dhcp snooping table. Суть заключается в том, что коммутатор запоминает за каким портом у него легальный dhcp сервер, тем самым выполнить dhcp starvation attack (ну или кто-то просто принес из дома dlink) с портов доступа не получится.

Включается режим отдельно на всю железку и vlans:

Ограничить количество запросов dhcp можно командой ip dhcp snooping limit rate 20. И по необходимости посмотреть имеющиеся связи:

Изначально в этом режиме по умолчанию все порты являются не доверенными.

image

DAI
На основе snooping table работает DAI – dynamic arp inspection, т.е. динамически сравнивает MAC-IP и тем самым предотвращает ARP poisoning: ip arp inspection vlan 456.
Это тип атаки при которой рассылаются ARP пакеты с измененными MAC адресами, после обновления ARP таблицы проводится MITM.

Если же в инфраструктуре нет DHCP, то аналогичного функционала можно добиться с использованием arp access-list:

Также есть функционал для сравнения ARP Validation Checks.

IP Spoofing/Source Guard
Опять же на основе snooping table функционирует IP Spoofing/Source Guard.
Яркий пример атаки с подменой IP, когда злоумышленник генерирует различные пакеты с разными IP DESTINATION и одинаковым IP SOURCE. В итоге все Destination пытаются ответить Source и проводят его DDoS.

Этот набор команд поможет защититься от атак типа IP Spoofing.

STP
Как вы знаете основной задачей STP является устранение петель в топологии, в которой есть избыточные соединения. Но возможно реализовать такую схему, когда нарушитель станет root bridge и опять же реализует MITM:

Для того, чтобы активировать защиту глобально на всех портах необходимо использовать команду spanning-tree portfast bpduguard default.
Далее переводим порт в режим portfast и получаем… Вместо тысячи слов:

Отдельно на интерфейсе это делается командой: spanning-tree bpduguard enable.

Storm Control

  • Производится мониторинг: Broadcast/Multicast/Unicast
  • Устанавливаются пороговые значения: %/PPS/BPS
  • Выбирается действие: Slow/Shutdown

В дополнение к вышеописанному существуют такие технологии как: Root Guard, EtherChannel Guard, Loop Guard, Port Blocking.

За сим все, спасибо, что дочитали до конца. Надеюсь, информация окажется полезной.

В данном документе представлен пример конфигурации некоторых функций безопасности уровня 2, таких как безопасность порта, DHCP-отслеживание, динамическая проверка протокола разрешения адресов (ARP) и защита от подделки IP-адреса (IP source guard), которые могут быть применены на коммутаторах Cisco Catalyst уровня 3 с фиксированной конфигурацией.

Предварительные условия

Требования

Для данного документа нет особых требований.

Используемые компоненты

Сведения, приведенные в данном документе, получены с использованием коммутатора Cisco Catalyst 3750 Series с микропрограммой версии 12.2(25)SEC2.

Данные для документа были получены в специально созданных лабораторных условиях. Все устройства, используемые в этом документе, были запущены с чистой конфигурацией (конфигурацией по умолчанию). Если сеть работает в реальных условиях, убедитесь, что вы понимаете потенциальное воздействие каждой команды.

Соответствующие продукты

Эта конфигурация может также использоваться со следующими версиями оборудования и программного обеспечения:

Коммутаторы Cisco Catalyst серии 3550

Коммутаторы Cisco Catalyst серии 3560

Коммутаторы Cisco Catalyst серии 3560-E

Коммутаторы Cisco Catalyst серии 3750-E

Условные обозначения

Более подробную информацию об условных обозначениях, используемых в документе, см. Условные обозначения, используемые в технической документации Cisco.

Общие сведения

Как и маршрутизаторы, коммутаторы уровней 2 и 3 имеют собственные наборы требований сетевой безопасности. Коммутаторы восприимчивы к большинству тех же атак уровня 3, что и маршрутизаторы. Несмотря на это, коммутаторы и уровень 2 эталонной модели взаимодействия открытых систем (OSI) подвержены сетевым атакам, производящимся различными способами. К ним относятся:

Переполнение таблицы ассоциативной памяти (CAM)

Размер таблиц ассоциативной памяти (CAM) ограничен. Если в таблицу CAM внесено достаточное количество записей перед истечением срока действия уже имеющихся, таблица CAM заполняется до такой степени, что отказывается принимать новые записи. Как правило, атакующий направляет на коммутатор большое количество адресов управления доступом к среде передачи (MAC) из недействительного источника до тех пор, пока таблица ассоциативной памяти не заполнится. После заполнения таблицы коммутатор переполняет все порты входящим трафиком, т.к. не может обнаружить номер порта для определенного MAC-адреса в таблице CAM. По сути, коммутатор начинает работать как концентратор. Если атакующий не поддерживает непрерывный поток MAC-адресов из недействительного источника, коммутатор через некоторое время выбрасывает старые MAC-адреса из таблицы CAM и снова начинает работать как коммутатор. При переполнении таблицы CAM трафик распространяется только внутри локальной сети VLAN, таким образом, атакующий видит только внутренний трафик сети VLAN, к которой он или она подключен.

Сдерживание атаки переполнения таблицы CAM производится с помощью настройки безопасности порта на коммутаторе. Данная функция позволяет указать список MAC-адресов для каждого из портов коммутатора или указать количество MAC-адресов, принимаемых портом. При обнаружении недействительного MAC-адреса на порту коммутатор либо блокирует нежелательный адрес, либо отключает порт. Указание MAC-адресов на портах коммутатора является решением, которое с трудом поддается управлению в условиях производственной среды. Ограничение количества MAC-адресов на порту коммутатора является более удобным с точки зрения управляемости. Наиболее удобным в управлении решением является применение динамической безопасности порта на коммутаторе. Для применения динамической безопасности порта укажите максимальное количество принимаемых MAC-адресов.

Имитация адреса управления доступом к среде передачи (MAC)

Атаки с применением имитации адреса управления доступом к среде передачи (MAC) включают в себя использование известного MAC-адреса другого хоста с целью того, чтобы атакуемый коммутатор отправлял атакующему кадры, предназначенные для удаленного хоста. Когда один кадр отправляется с исходным Ethernet-адресом другого хоста, атакующий перезаписывает элемент таблицы CAM, таким образом, коммутатор направляет атакующему кадры, предназначенные для хоста. Хост не получает никакого трафика до тех пор, пока не завершит отправку. По завершении отправки трафика хостом, элемент таблицы CAM перезаписывается еще раз, чтобы его значение вернулось к оригинальному.

Используйте функцию безопасности порта для предотвращения атак с использованием имитации MAC-адреса. Функция безопасности порта дает возможность указать MAC-адрес системы, подключенной к определенному порту. Также есть возможность указать действие, которое будет производиться при возможном нарушении безопасности порта.

Имитация протокола разрешения адресов (ARP)

После создания ARP-ответа атакующий может выдать свою систему за удаленный хост, который ищет отправитель. ARP-ответ заставляет отправителя сохранять MAC-адрес атакующей системы в кэше ARP. Данный MAC-адрес также сохраняется коммутатором в таблице CAM. Таким образом, атакующий внес MAC-адрес своей системы как в CAM таблицу коммутатора, так и в кэш ARP отправителя. Это позволяет атакующему перехватывать кадры, предназначавшиеся для имитируемого им хоста.

Динамичная проверка ARP определяет правильность пакета ARP на основании действующих привязок MAC-адресов к IP-адресам, хранящихся в базе данных привязок DHCP-отслеживания. К тому же, динамическая проверка AR может определять правильность пакетов ARP в соответствии с настраиваемыми пользователем списками контроля доступа. Это позволяется использовать проверку пакетов ARP для хостов, использующий статические IP-адреса. Динамическая проверка ARP позволяет с помощью использования списков контроля доступа к портам и сетям VLAN (PACL) ограничивать ARP-пакеты для указанных IP-адресов определенными MAC-адресами.

Истощение протокола динамической конфигурации хоста (DHCP)

Суть атаки с использованием истощения DHCP состоит в рассылке DHCP-запросов с сымитированными MAC-адресами. Если отправлено достаточное количество запросов, атакующий может полностью истощить адресное пространство, доступное для DHCP-серверов на определенный период времени. Затем атакующий может создать фальшивый DHCP-сервер на своей системе и отвечать на новые DHCP-запросы клиентов сети. После размещения неавторизованного DHCP-сервера в сети атакующий может назначать клиентам адреса и прочие настройки сети. Поскольку DHCP-ответы обычно содержат сведения о шлюзе по умолчанию и DNS-сервере, атакующий может указать свою систему в качестве шлюза по умолчанию и DNS-сервера. Далее может быть проведена атака типа "man-in-the-middle". Однако, для установки фальшивого DHCP-сервера полного израсходования пространства DHCP-адресов не требуется.

Другие функции коммутатора Catalyst, такие как защита от подделки IP-адреса, могут предоставлять дополнительную защиту против атак, использующих истощение DHCP и имитацию IP. Как и DHCP-отслеживание, защита от подделки IP-адреса запускается на недоверенных портах уровня 2. Изначально блокируется весь IP-трафик, за исключением DHCP-пакетов, перехваченных процессом DHCP-отслеживания. Как только клиент получает действительный IP-адрес от DHCP-сервера, к данном порту применяется PACL. Это ограничивает IP-трафик клиента теми исходными IP-адресами, которые указаны в привязке. Остальной IP-трафик с исходными IP-адресами, отличными от адресов, указанных в привязке, фильтруется.

Настройка

В этом разделе приводится информация по настройке безопасности порта, DHCP-отслеживания, динамической проверки ARP и функций защиты от подделки IP-адреса.

Всем привет!
Многие из вас видели и читали прекрасные материалы под общим названием «Сети для самых маленьких». Собственно, я не претендую на лавры, но решил написать нечто подобное в области безопасности сети на основе оборудования Cisco.

Первый материал будет посвящен BaseLine/L2 Security, т.е. тем механизмам, которые можно использовать при начальной конфигурации устройств а также на L2 коммутаторах под управлением IOS.
Всем, кому интересно, поехали!

Допустим, у нас brand-new [switch/router], для первой главы не принципиально. Мы подключаемся к нему с помощью консольного провода (более подробно описано Часть.1 Сети для самых маленьких). Т.к. мы не хотим, чтобы железка лежала у нас на столе или (если она уже в стойке) стоять и мерзнуть в серверной, сразу настроим на ней удаленное управление.

Remote control & credentials

  • 0 уровень: enable password Qwerty!23 – хранение данных в открытом виде.
  • 4 уровень: enable secret Qwerty!23 – преобразование данных в SHA256 Encryption в IOS 15, т.к. «change to new encryption, md5 can be deprecated soon».
  • 5 уровень: enable secret Qwerty!23 – преобразование данных в MD5 Hash.

Вроде бы все, если что забыл, прошу отписаться в комментарии, по крайней мере JDima, всегда делал стоящие комментарии.

L2 Security

  • Vlans бывают: Primary и Secondary: Isolated или Community.
  • Vlans types: Isolated (может быть только в единственном экземпляре, связь внутри vlan отсутствует, только с Promiscuous), Community (много, связь внутри Vlan есть и с Promiscuous)
  • Ports Types: Promiscuous — Primary Vlan port что-то типа dg, также Isolated и Community
  • Private Vlans требуют включения VTP transparent: vtp mode transparent.

Применять или нет решать вам в зависимости от целей.
Вроде бы все ясно, однако если Promiscuous port маршрутизируем, то существует возможность попасть из ISOLATED в другие VLAN, путем посылки подкрафченного пакета до L3 устройства. Закрывается такая возможность с помощью ACL на маршрутизаторе.
Примерно схожий функционал c Isolated VLAN имеется при настройке PVLAN Edge или Protected port. Настраивается это на каждом интерфейсе отдельно командой: switchport protected.
Ну и в завершении с VLAN рассмотрим ACL для VLANs: VLAN ACL (VACL) или VLAN map а также MacSec.
Если возникает необходимость контролировать трафик внутри VLAN нужно определить трафик и повесить его на нужный VLAN, примерно вот так:

Создаем обычный список доступа, который будет использоваться в VACL. Определим VLAN access map. Определим действие при совпадении трафика со списком. Применим к VLAN. 1 класс трафика будет останавливаться, весь другой пересылаться.
Интересная функция в IOS — MacSec.
Вот такой набор команд (к примеру на 2 устройствах):

Настроив на L2 устройствах, на портах через которые два коммутатора соединены между собой, получим симметрично зашифрованный канал (pmk на устройствах должен быть одинаковым).

CAM protection
Если взять утилиту macof (есть в Kali) и запустить ее на генерирование MAC адресов с клиента подключенного к коммутатору, то в зависимости от модели коммутатора через некоторое время он станет хабом. Почему? Из-за того, что место в CAM таблице закончится. Для того чтобы это предотвратить существует режим port security на интересующем нас интерфейсе:
и
Работает этот режим только на trunk или access port, но не на dynamic port.
У режима имеются параметры: Protect (no packets if violation, no log), Restrict (no packets if violation, log: snmp, sylog), Shut down port (default, max=1, log: snmp, sylog), Shut down Vlan. Есть режимы Dynamic (memorize 5 first mac), Static (manually write into running config static mac) и еще sticky (brand new network -> auto write in running config).
Да и в конце настройки нужно не забыть активировать сам режим.

Snooping table
Для того, чтобы обезопасить себя от атак на dhcp можно применять dhcp snooping table. Суть заключается в том, что коммутатор запоминает за каким портом у него легальный dhcp сервер, тем самым выполнить dhcp starvation attack (ну или кто-то просто принес из дома dlink) с портов доступа не получится.

Включается режим отдельно на всю железку и vlans:

Ограничить количество запросов dhcp можно командой ip dhcp snooping limit rate 20. И по необходимости посмотреть имеющиеся связи:

Изначально в этом режиме по умолчанию все порты являются не доверенными.

image

DAI
На основе snooping table работает DAI – dynamic arp inspection, т.е. динамически сравнивает MAC-IP и тем самым предотвращает ARP poisoning: ip arp inspection vlan 456.
Это тип атаки при которой рассылаются ARP пакеты с измененными MAC адресами, после обновления ARP таблицы проводится MITM.

Если же в инфраструктуре нет DHCP, то аналогичного функционала можно добиться с использованием arp access-list:

Также есть функционал для сравнения ARP Validation Checks.

IP Spoofing/Source Guard
Опять же на основе snooping table функционирует IP Spoofing/Source Guard.
Яркий пример атаки с подменой IP, когда злоумышленник генерирует различные пакеты с разными IP DESTINATION и одинаковым IP SOURCE. В итоге все Destination пытаются ответить Source и проводят его DDoS.

Этот набор команд поможет защититься от атак типа IP Spoofing.

STP
Как вы знаете основной задачей STP является устранение петель в топологии, в которой есть избыточные соединения. Но возможно реализовать такую схему, когда нарушитель станет root bridge и опять же реализует MITM:

Для того, чтобы активировать защиту глобально на всех портах необходимо использовать команду spanning-tree portfast bpduguard default.
Далее переводим порт в режим portfast и получаем… Вместо тысячи слов:

Отдельно на интерфейсе это делается командой: spanning-tree bpduguard enable.

Storm Control

  • Производится мониторинг: Broadcast/Multicast/Unicast
  • Устанавливаются пороговые значения: %/PPS/BPS
  • Выбирается действие: Slow/Shutdown

В дополнение к вышеописанному существуют такие технологии как: Root Guard, EtherChannel Guard, Loop Guard, Port Blocking.

За сим все, спасибо, что дочитали до конца. Надеюсь, информация окажется полезной.

В данной статье, я расскажу что такое Port Security и приведу пример настройки интерфейса коммутатора cisco с использованием этой функции.
Port Security — это функция канального уровня, которая создана для предотвращения несанкционированной смены MAC адреса сетевого подключения. Также, данная функция ограждает коммутатор от атак, которые могут быть направлены на переполнение таблицы MAC адресов.
С помощью Port Security можно ограничить (на канальном уровне) количество подключений (MAC адресов) на интерфейсе, а так же, при необходимости, ввести безопасные MAC адреса вручную (статические MAC адреса).
Пример настройки Port Security на интерфейсе коммутатора cisco:

port-security.jpg


Рисунок 1 — Типичное подключение IP телефона и компьютера к интерфейсу коммутатора.

На рисунке 1 мы видим распространенное подключение устройств в больших организациях. Как правило к порту подключаются два устройства: IP телефон и компьютер пользователя. Пример конфига интерфейса коммутатора с использованием Port Security:

interface FastEthernet0/1
switchport access vlan 10
switchport mode access
switchport voice vlan 2
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict

interface FastEthernet0/1
switchport access vlan 10
switchport mode access
switchport voice vlan 2
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict
switchport port-security mac-address 0005.5E80.22A3
switchport port-security mac-address 00E0.F75B.C101

Теперь, только от этих двух MAC адресов (0005.5E80.22A3, 00E0.F75B.C101) на данный интерфейс будут разрешены входящие пакеты.
Немного поговорим о MAC адресах. При использовании Port Security существуют такие типы MAC адресов:
- Динамические;
- Статические;
- Sticky MAC адреса.
Динамические MAC адреса хранятся в таблице коммутации, но удаляются при истечении «aging time» или при перезагрузке коммутатора.
Статические адреса хранятся в таблице MAC адресов и записываются в памяти коммутатора. Не удаляются при истечении «aging time» и при перезагрузке свитча.
Sticky MAC адреса могут быть внесены в таблицу коммутации статически (в ручную) или динамически выучены. Они хранятся в таблице коммутации и в памяти свитча. Не удаляются при истечении «aging time» или перезагрузке коммутатора.
Хочу отметить, что при использовании Port Security «aging time» по умолчанию равен 0.
Теперь, приведу не большой пример настройки Port Security с использованием Sticky MAC адресов:

В примере приведенном выше, был сконфигурирован один MAC адрес статически («switchport port-security mac-address 0005.5E80.22A3»), а все остальные MAC адреса (в нашем случае еще один) будут выучены динамически, но записаны в память коммутатора («switchport port-security mac-address sticky»). Вот что мы увидим, если в привилегированном режиме введем команду — «show run int fa0/1»:

Читайте также: