Опции security для сетевых устройств Cisco
https://t.me/w2hackIntro
Защита сети занимает ведущее место в обеспечении корпоративной безопасности. Надежную защиту обеспечивают связки МСЭ (firewall), различных UTM и NextGen-шлюзов, IDS\IPS-систем, SIEM-агрегаторов, VPN-севрверов, MDM-шлюзов и тому подобных сетевых девайсов. Однако базовый уровень сетевой защиты можно обеспечить и при помощи стандартного арсенала опций безопасности, которые вшиты в девайсы самим производителем Cisco еще с завода. Эти опции позволяют отражать большинство не целевых атак (APT), так же не плохо подготовиться к проведению внешнего аудита (пен-тесты). Для этого будет достаточно лишь светлой головы и прямых руки администратора. И так в нашей сегодняшней статье обзор стандартного security option арсенала из закромов Cisco.

1.Настраиваем Port security
Port security — функция коммутатора, позволяющая указать MAC-адреса хостов, которым разрешено передавать данные через порт. После этого порт не передает пакеты, если MAC-адрес отправителя не указан как разрешенный. Кроме того, можно указывать не конкретные MAC-адреса, разрешенные на порту коммутатора, а ограничить количество MAC-адресов, которым разрешено передавать трафик через порт.
Используется для предотвращения:
· несанкционированной смены MAC-адреса сетевого устройства или подключения к сети,
· атак направленных на переполнение таблицы коммутации.
Режимы запоминания адресов
Port security может работать в нескольких режимах запоминания MAC-адресов и реагирования на нарушения:
· Continuous — устройство с любым MAC-адресом может без ограничений работать через порт коммутатора.
· Static — от 0 до 8 MAC-адресов могут быть статически заданы, остальные могут быть динамически выучены.
· Configured — от 1 до 8 MAC-адресов могут быть статически заданы, динамически адреса выучены быть не могут.
· Limited-continuous — от 1 до 32 MAC-адресов могут быть динамически выучены.
· Port-access — используется вместе с 802.1X для того, чтобы временно выучить MAC-адрес аутентифицированной сессии 802.1X.

Режимы реагирования на нарушения безопасности
Нарушением безопасности для port security считаются ситуации:
· максимальное количество безопасных MAC-адресов было добавлено в таблицу адресов, и хост, чей MAC-адрес не записан в таблице адресов, пытается получить доступ через интерфейс.
На интерфейсе могут быть настроены такие режимы реагирования на нарушения безопасности:
· none — когда количество безопасных MAC-адресов достигает максимального ограничения настроенного на порту, пакеты с неизвестным MAC-адресом отправителя отбрасываются до тех пор, пока не будет удалено достаточное количество безопасных MAC-адресов, чтобы их количество было меньше максимального значения, или увеличено максимальное количество разрешенных адресов. Оповещения о нарушении безопасности нет.
· send-alarm — когда количество безопасных MAC-адресов достигает максимального ограничения, настроенного на порту, пакеты с неизвестным MAC-адресом отправителя отбрасываются до тех пор, пока не будет удалено достаточное количество безопасных MAC-адресов, чтобы их количество было меньше максимального значения, или увеличено максимальное количество разрешенных адресов. В этом режиме при нарушении безопасности отправляются SNMP trap и сообщение syslog.
· send-disable — нарушение безопасности приводит к тому, что интерфейс переводится в заблокированное состояние и выключается немедленно. Отправляются SNMP trap и сообщение syslog. Когда порт в заблокированном состоянии — вывести его из этого состояния можно, введя команду port-security <port-id> clear-intrusion-flag, и затем вручную включить интерфейс, введя в режиме настройки интерфейса enable.
Eavesdrop Prevention
Eavesdrop Prevention — функция, запрещающая передавать unicast-пакеты, которые передаются на неизвестные для коммутатора MAC-адреса, на порты, на которых она включена. Это не позволяет неавторизованным пользователям прослушивать трафик, который передается на MAC-адреса, удалённые из таблицы коммутации по таймауту (aged-out).
Eavesdrop Prevention не влияет на multicast и broadcast трафик. Коммутатор передает этот трафик через соответствующие порты независимо от того настроена ли на них port security.
Настройка port security на интерфейсе автоматически включает на этом интерфейсе Eavesdrop Prevention.

Команды для port security
switch(config)# port-security <port-list>
[learn-mode < continuous | static | port-access | configured | limited-continuous>]
[action < none | send-alarm | send-disable >]
[address-limit <1-8 | 1-32>
[mac-address <mac-addr1 [mac-addr2]...>]
[clear-intrusion-flag]
Настройки по умолчанию
На коммутаторах Cisco такие настройки по умолчанию для функции port security:
· Port security — выключен.
· Запоминание sticky-адресов — выключено.
· Максимальное количество безопасных MAC-адресов на порту — 1.
· Режим реагирования на нарушения — shutdown.
· Время хранения адресов:отключено. Значение aging time — 0,
· для статических адресов — отключено,
· тип времени — абсолютное.
Еще чуть чуть о port security
Port security настраивается в режиме настройки интерфейса. На многих коммутаторах Cisco по умолчанию порт находится в режиме dynamic auto, однако этот режим не совместим с функцией port security. Поэтому интерфейс надо перевести в режим trunk или access:
switch(config-if)# switchport mode <access | trunk>
Включение port security на интерфейсе (после этого включены настройки по умолчанию):
switch(config-if)# switchport port-security
Так как после команды switchport port-security, сразу включается Port security с настройками по умолчанию, то ее стоит давать вначале только если настройки по умолчанию подходят.
Если требуется исправить какие-то параметры, то сначала нужно их исправить, а затем включить функцию.
Максимальное количество безопасных MAC-адресов
Максимальное количество безопасных MAC-адресов на интерфейсе или в VLAN:
switch(config-if)# switchport port-security maximum <value> [vlan <vlan-list>]
Например, на интерфейсе разрешить 2 MAC-адреса, а остальные настройки по умолчанию:
switch(config)# interface Fastethernet0/3
switch(config-if)# switchport mode access
switch(config-if)# switchport port-security maximum 2
switch(config-if)# switchport port-security
Заданием опционального параметра vlan, при указании максимального количества безопасных MAC-адресов, можно ограничить количество MAC-адресов для VLAN или перечня VLAN (добавлено с версии IOS 12.2.37SE).
Например, настроить транк и разрешить 20 MAC-адресов в VLAN 7:
switch(config)# interface Fastethernet0/3
switch(config-if)# switchport mode trunk
switch(config-if)# switchport port-security maximum 20 vlan 7
switch(config-if)# switchport port-security
Если на интерфейсе fa0/3 возникнет нарушение безопасности в VLAN 7, например, появится 21 адрес, то заблокирован будет только трафик этого VLAN.
Просмотр информации о настройках port-security для VLAN 7:
switch# show port-security vlan 7
Если вы запишите на порт меньше безопасных адресов, чем указано в значении switchport port-security maximum, то оставшееся количество свободных адресов дополнится динамическими адресами по принципу "кто первый встал того и тапки".
Если компьютер подключен к сети через PC-порт ip телефона Cisco, и у вас отдельный vlan для телефонии, то телефон продублирует свой mac-адрес в двух vlan'ах. Настройка port-security в таком случае будет выглядеть следующим образом:
switch(config-if)# switchport port-security maximum 3
switch(config-if)# switchport port-security mac-address mac_телефона
switch(config-if)# switchport port-security mac-address mac_телефона vlan voice
switch(config-if)# switchport port-security mac-address mac_компьютера vlan access
switch(config-if)# switchport port-security
Настройка безопасных MAC-адресов
Включение sticky запоминания адресов:
switch(config-if)# switchport port-security mac-address sticky
switch(config-if)# switchport port-security mac-address sticky [mac-address | vlan <vlan-id | <access | voice>>]
Настройка режима реагирования на нарушения безопасности
Режим реагирования на нарушения безопасности (по умолчанию shutdown):
switch(config-if)# switchport port-security violation <protect | restrict | shutdown>
Если порт был настроен (или оставлен по умолчанию) режиме реагирования shutdown, то при нарушении порт перейдет в состояние error-disabled.
Посмотреть, что порт перешел в состояние error-disabled:
switch# show interfaces <interface-number> status
Очистка таблицы MAC-адресов
Очистить таблицу MAC-адресов, для подключения других устройств:
switch# clear port-security [all|configured|dynamic|sticky] [address <mac>|interface <int-id>]

2.Настраиваем Dynamic ARP Inspection
Dynamic ARP Inspection (Protection) — функция коммутатора, предназначенная для защиты от атак с использованием протокола ARP. Например, атаки ARP-spoofing, позволяющей перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена.
Dynamic ARP Inspection (Protection) регулирует только сообщения протокола ARP и не может повлиять напрямую на трафик пользователей или другие протоколы.
Dynamic ARP Inspection позволяет:
· защитить клиентов в сети от атак с использованием протокола ARP,
· регулировать какие сообщения протокола ARP отбрасывать, какие перенаправлять.
Для правильной работы Dynamic ARP Inspection, необходимо указать какие порты коммутатора будут доверенными (trusted), а какие — нет (untrusted, в дальнейшем — ненадёжными):
· Ненадёжные (Untrusted) — порты, к которым подключены клиенты. Для ненадёжных портов выполняется ряд проверок сообщений ARP.
· Доверенные (Trusted) — порты коммутатора, к которым подключен другой коммутатор. Сообщения протокола ARP полученные с доверенных портов не отбрасываются.
Настройка Dynamic ARP Protection на коммутаторах ProCurve
Включить dynamic ARP protection:
switch(config)# arp-protect
Включить dynamic ARP protection в VLAN, которые должны быть защищены с его помощью:
switch(config)# arp-protect vlan 3
Указание доверенных портов:
switch(config)# arp-protect trust a3
Просмотр информации о настройках dynamic ARP protection:
switch(config)# show arp-protect
Опциональные настройки Dynamic ARP Protection
Задание статических соответствий IP-MAC:
switch(config)# ip source-binding <vlan-id> <ip-address> <mac-address> <port-id>
Просмотр настроек
show ip arp inspection interfaces
show errdisable recovery

3.Настраиваем DHCP snooping
DHCP snooping — функция коммутатора, предназначенная для защиты от атак с использованием протокола DHCP. Например, атаки с подменой DHCP-сервера в сети или атаки DHCP starvation, которая заставляет DHCP-сервер выдать все существующие на сервере адреса злоумышленнику.
DHCP snooping регулирует только сообщения DHCP и не может повлиять напрямую на трафик пользователей или другие протоколы. Некоторые функции коммутаторов, не имеющие непосредственного отношения к DHCP, могут выполнять проверки на основании таблицы привязок DHCP snooping (DHCP snooping binding database).
В их числе:
Dynamic ARP Protection (Inspection) — проверка ARP-пакетов, направленная на борьбу с ARP-spoofing,
IP Source Guard — выполняет проверку IP-адреса отправителя в IP-пакетах, предназначенная для борьбы с IP-spoofingом.
Настройка доверенных и ненадёжных портов
По умолчанию на коммутаторе все порты ненадёжные, поэтому доверенные порты надо явным образом указывать.
Указать доверенные порты:
sw2(config)# dhcp-snooping trust a1
Проверка соответствия MAC-адресов
По умолчанию, после включения DHCP snooping, на коммутаторе включена проверка соответствия MAC-адресов. Коммутатор проверяет соответствие MAC-адреса в DHCP-запросе MAC-адресу клиента. Если они не соответствуют, то коммутатор отбрасывает пакет.
При необходимости можно отключить эту проверку:
switch(config)# no dhcp-snooping verify mac
Поиск неисправностей
Включение debug:
sw2# debug dhcp-snooping [agent | event | packet]
В прошивках старше K.15
sw2# debug security dhcp-snooping [agent | event | packet]
Если необходимо вывести сообщения отладки в текущую сессию:
sw2# debug destination session
Если необходимо отправлять сообщения на log-сервер (log-сервер должен быть настроен командой logging <IP-адрес>):
sw2# debug destination logging
Настройка DHCP snooping на коммутаторах Cisco
Включить DHCP snooping:
sw2(config)# ip dhcp snooping
Включить DHCP snooping в VLAN, которые должны быть защищены с его помощью:
sw2(config)# ip dhcp snooping vlan 10
IP Source Guard (Dynamic IP Lockdown) — функция коммутатора, которая ограничивает IP-трафик на интерфейсах 2го уровня, фильтруя трафик на основании таблицы привязок DHCP snooping и статических соответствий. Функция используется для борьбы с IP-spoofingом.

4.Настраиваем IP Source Guard
IP Source Guard (Dynamic IP Lockdown) — функция коммутатора, которая ограничивает IP-трафик на интерфейсах 2го уровня, фильтруя трафик на основании таблицы привязок DHCP snooping и статических соответствий. Функция используется для борьбы с IP-spoofingом.
И так, включаем:
ip verify source
ip verify source port-security
ip source binding mac-address vlan vlan-id ip-address interface interface-id
show ip verify source [interface interface-id]
Dynamic IP lockdown
ip source-lockdown
ip source-lockdown <port-list>
Функция Dynamic IP lockdown остается выключенной на порту, если любое из следующих условий существует:
· Если DHCP snooping не включен глобально на коммутаторе.
· Если порт не принадлежит хотя бы одному VLAN'у в котором включен DHCP snooping.
· Если порт настроен как доверенный порт для DHCP snooping.
show ip source-lockdown status
show ip source-lockdown bindings [<port-number>]
debug dynamic-ip-lockdown
A source is considered “trusted” for all VLANs if it is seen on any VLAN without DHCP snooping enabled.

5.Cisco SSH
Тюнингуем SSH
Имя домена (необходимо для генерации ключей):
ip domain-name aaa.ru
Создание пары ключей:
crypto key generate rsa modulus 1024
Включение SSH версии 2:
ip ssh version 2
Создание пользователя в локальной базе:
username admin secret cisco123
Настройка VTY:
line vty 0 4
login local
transport input ssh
Ограничение времени timeoutá аутентификации (по-умолчанию 120 секунд)
ip ssh time-out {секнуд}
SSH сервер прерывает соединение, если на стадии аутентификации не передаются никакие данные в течение этого времени ожидания.
Пример:
Router(config)#ip ssh time-out 60
Указание интерфейса для всех сессий ssh
Router(config)#ip ssh source-interface FastEthernet0/1
Включение журналирования событий SSH ip ssh logging events
Router(conifig)#ip ssh logging events
Указание версии использования протокола ip ssh version версия Пример:
Router(config)#ip ssh version 2
Указание, какой ключ должен использоваться при соединении:
sm-c2821(config)#ip ssh rsa keypair-name aaa.ru

Другие фичи безопасности
6.CAM table overflow
Таблица коммутации заполняется и после этого коммутатор работает как хаб.
Это значит, что после выполнения атаки, подключившись к любому порту коммутатора, можно перехватывать весь трафик в пределах широковещательного домена, которому принадлежит порт.
Это не касается тех записей в таблице коммутации, которые были до начала выполнения атаки. Трафик к компьютерам, MAC-адреса которых уже были в таблице коммутации, отправляется не широковещательно.
Атаку можно выполнить, например, с помощью утилиты macof, которая входит в dsniff.
Атака сама по себе не влияет на работу VLAN, но может быть основой для выполнения последующих атак на VLAN или других типов атак.
Пример выполнения атаки
Сначала на трех коммутаторах почистить таблицы коммутации:
SW_1# clear mac address-table dynamic
После этого начать атаку. Атака с помощью macof утилиты, которая входит в dsniff:
macof -i eth1
После этого коммутатор работает как хаб.
Если пингануть с машины одного студента машину другого или маршрутизатор, то трафик видят все в одном широковещательном домене.
Защита от атаки
Функция port security.
7.STP Manipulation
Отправка BPDU корневого коммутатора:
sudo yersinia stp -attack 4 -interface eth1
8.BPDU Guard
Перевод в режим portfast всех access портов:
SW_1(config)#spanning-tree portfast default
Набор pdf-инструкций с более подробным описанием этих опций безопасности и других разъяснений ты так же найдешь на нашем @w2hack канале после опубликованной статьи.
Всем удачи и нехорошего настроения!