- Защита сетевого оборудования Cisco
- Домены отказоустойчивости HSRP & GLBP
- Отключение DP
- Выключение DTP и смена NVLAN
- Риски при интеграции использованных ранее коммутаторов Cisco
- Безопасность линии VTY
- Пароли Cisco IOS
- Безопасность при работе с SNMP
- Осторожность при фильтрации ICMP
- No Full Cone NAT
- No Port Forward
- Защита от UPnP-инъекций
- Заключение
Современные компании все больше полагаются на сетевые технологии, а Cisco является одним из ведущих поставщиков сетевого оборудования. Однако в сетевом мире безопасность играет решающую роль, и защита сетевого оборудования Cisco становится крайне важной задачей. В статье рассмотрим ключевые аспекты защиты сетевого оборудования Cisco.
Еще по теме: Защита локальной сети используя Wazuh на Raspberry Pi
Защита сетевого оборудования Cisco
Домены отказоустойчивости HSRP & GLBP
Это проприетарные протоколы Cisco, предназначенные для резервирования шлюзов. Домены HSRP/GLBP могут подвергнуться атакам спуфинга, и ты к ним должен быть готов. Есть два метода защиты.
Первый метод — выставить максимальный приоритет 255. Если в сети уже существует ACTIVE/AVG-спикер с максимальным значением приоритета, то инъекции атакующего будут бесполезны и он не сможет перехватить эти роли для последующей MITM-атаки.
HSRP (Master-спикер):
1 |
SaveMe(config-if)# standby priority 255 |
GLBP (для AVG-спикера отталкивайся от особенностей работы протокола GLBP, там всё сложнее по сравнению с HSRP):
1 |
SaveMe(config-if)# glbp priority 255 |
Второй метод — использовать криптографическую аутентификацию. Выбери стойкую парольную фразу для защиты HSRP/GLBP-доменов, чтобы компьютер атакующего не смог вмешаться в домен отказоустойчивости. К этой процедуре нужно отнестись серьезно, так как атакующий способен прослушать пакеты этих протоколов, выдернуть криптографический хеш и сбрутить пароль. Ты не должен этого допустить. Вот как настраивается аутентификация для этих протоколов.
HSRP:
1 |
SaveMe(config-if)# standby authentication md5 key-string |
GLBP:
1 |
SaveMe(config-if)# glbp authentication md5 key-string |
Кстати говоря, оборудование Cisco может похвастаться наличием Keychain-аутентификации. Эта настройка позволяет создать цепочку из нескольких ключей и даже настроить специальные временные промежутки, в рамках которых ключи будут транслироваться между спикерами. Будь то домен отказоустойчивости или домен динамической маршрутизации. Использование Keychain-аутентификации усложняет жизнь атакующему в несколько раз, ведь необходимо сбрутить все ключи, угадать их порядок и тайминги.
Вот пример настройки Keychain:
1 2 3 4 5 |
SaveMe(config)# key chain SaveMe SaveMe(config-keychain)# key 1 SaveMe(config-keychain-key)# key-string SaveMe(config-keychain)# key 2 SaveMe(config-keychain-key)# key-string |
Получилась цепочка из двух ключей. Ты можешь применить ее, например, для домена отказоустойчивости GLBP или для домена маршрутизации EIGRP. Продемонстрирую два примера. Вместе с цепочкой ключей будем использовать MD5.
Настройка для защиты домена отказоустойчивости GLBP:
1 |
SaveMe(config-if)# glbp authentication md5 key-chain SaveMe |
Настройка для защиты домена маршрутизации EIGRP:
1 2 |
SaveMe(config-if)# ip authentication mode eigrp md5 SaveMe(config-if)# ip authentication key-chain eigrp SaveMe |
SaveMe в конце команды — это название созданной цепочки, не перепутай.
Таким образом мы можем защитить домены отказоустойчивости и домены маршрутизации, реализованные на протоколах Cisco. Для EIGRP, кстати, не будет лишним использовать пассивные интерфейсы. Они запрещают рассылку пакетов приветствия Hello на интерфейсах внутри сети, что лишает атакующего всех шансов воздействовать на домен маршрутизации.
1 2 |
SaveMe(config)# router eigrp SaveMe(config-router)# passive-interface |
Отключение DP
DP (Discovery Protocols) — протоколы, предназначенные для автоматического обмена служебной информации между сетевыми устройствами. Это облегчает сетевому инженеру процесс траблшутинга. Но бывают настройки, при которых рассылка протоколов DP (CDP/LLDP) происходит во все сетевые интерфейсы устройства. Внутренний нарушитель при анализе трафика может перехватить эти пакеты и узнать достаточно чувствительную информацию об устройстве: версию прошивки, тип модели, адресацию и прочее.
Рекомендуется выключать DP-протоколы на портах конечных станций. Однако если в сегменте есть IP-телефония, необходимо с осторожность выключать протоколы на этих портах, так как DP также используются для работы IP-телефонии (VoIP):
1 2 3 4 |
SaveMe(config)# interface range fX/-XX SaveMe(config-if)# no cdp enable SaveMe(config-if)# no lldp receive SaveMe(config-if)# no lldp transmit |
Выключение DTP и смена NVLAN
DTP — это, на мой взгляд, рак коммутаторов Cisco. Бесполезный протокол, предлагающий автоматическую систему транкинга, которая ухудшает дизайн сети. Сеть в результате становится менее предсказуемой. Сетевой инженер сам должен решать, где должен быть транк‑порт, и явно его настраивать.
Использование этого протокола ставит под удар безопасность сегмента, потому что если администратор прозевает наличие дефолтных портов коммутаторов Cisco (которые еще и включены по умолчанию), то атакующий может подключиться к коммутатору, отправить кадр DTP Desirable и тем самым обойти VLAN-сегментацию на коммутаторе.
Также стоит упомянуть о специфическом векторе атаки Double Tagging. Для современных инфраструктур эта атака скорее теоретическая и работает, если присутствует дефолтный Native VLAN 1. Поэтому всегда стоит менять значение Native VLAN (NVLAN) на любое другое. Кстати говоря, Native VLAN — это специальный VLAN, куда падает нетегированный трафик.
Чтобы выключить DTP, нужно в первую очередь перевести порты коммутатора в режим доступа, а также выключить сам DTP:
1 2 3 |
SaveMe(config)# interface range g0/X-XX SaveMe(config-if)# switchport mode access SaveMe(config-if)# switchport nonegotiate |
Также рекомендуется провести энумерацию неиспользуемых портов коммутатора, создать для них специальный VLAN, а‑ля «VLAN Shutdown 666», и переместить их туда, а затем перевести в выключенное состояние. Таким образом уменьшится вероятность несанкционированного подключения в сеть.
1 2 3 4 5 |
SaveMe(config)# vlan 666 SaveMe(config-vlan)# name Shutdown SaveMe(config)# interface range g0/X-XX SaveMe(config-if)# switchport mode access SaveMe(config-if)# switchport access vlan 666 |
Риски при интеграции использованных ранее коммутаторов Cisco
Если тебе нужно установить ранее использованный коммутатор Cisco в другую сеть, обязательно проверь состояние VTP на этом устройстве. VTP позволяет централизованно управлять базой данных VLAN, и актуальность этой базы отслеживается по номеру ревизии. Если получится так, что на старом коммутаторе Cisco номер ревизии VTP больше, то кадр с номером ревизии может распространиться по транковым каналам (а на коммутаторе могут быть другие сети VLAN). Из‑за этого текущие коммутаторы обновят свои БД VLAN, и может возникнуть сетевой паралич.
Всегда проверяй настройки VTP на старом оборудовании, которое хочешь поместить в сеть. Ты можешь сбросить номер ревизии, если изменишь имя VTP-домена на любое другое и поставишь требуемое.
1 2 3 |
SaveMe(config)# vtp mode client SaveMe(config)# vtp domain shadjfkshdfjaks SaveMe(config)# vtp domain |
Также можешь переключить коммутаторы в режим VTP Transparent, они не участвуют в процессах VTP.
1 |
SaveMe(config)# vtp mode transparent |
Безопасность линии VTY
Терминальные линии VTY позволяют подключаться к сетевому оборудованию удаленно (SSH/Winbox/HTTP/API). Однако бывает, что VTY не защищены с помощью ACL, позволяющих фильтровать подключения к VTY только из определенных Management-подсетей, которые используют администраторы для управления оборудованием.
Хорошая практика — использовать концепцию fail2ban внутри инфраструктуры. Вдруг один из админских компьютеров будет заражен трояном, который найдет службы SSH/HTTP на оборудовании и начнет брутфорсить их? Также на службах SSH желательно использовать аутентификации по ключу и запрет входа по паролю.
Вот пример простого ACL, который защищает линии VTY и разрешает подключение только из указанной подсети:
1 2 3 4 |
SaveMe(config)# access-list 10 permit 0.0.0.255 SaveMe(config)# access-list 10 deny any log SaveMe(config)# line vty 0 15 SaveMe(config-line)# access-class 10 in |
Строка access-class 10 in привязывает этот ACL к линиям 0–15.
Пароли Cisco IOS
У Cisco IOS есть проблемы с безопасностью хранения паролей внутри операционной системы. Не рекомендуется использовать типы паролей 4, 5 и 7, так как они подразумевают шифрование SHA-256, MD5 и Vigenere Cipher соответственно. Брутфорс таких паролей не составляет труда, а для типа 7 нужен просто дешифратор ciscot7.
Лучшая практика — использовать TYPE 8, TYPE 9 (PBKDF2, SCRYPT), а также AAA (Authentication, Authorization, Accounting) для централизованного управления учетными записями (RADIUS or TACACS+).
На примере TYPE 8:
1 2 |
SaveMe(config)# enable algorithm-type sha256 secret SaveMe(config)# username motor algorithm-type sha256 secret |
В TYPE 8 используются SHA-256, 80-битная соль и 20 000 итераций, что делает этот тип хеширования достаточно безопасным для защиты паролей. Сбрутить их будет очень сложно.
Безопасность при работе с SNMP
Если атакующий сбрутит строку SNMP RW, то это позволит ему прочитать настройки с маршрутизатора и узнать крайне чувствительную информацию об инфраструктуре (IP-адресация, конфигурация интерфейсов, учетные записи и пароли в хешированном виде). С этой информацией у атакующего есть все шансы проникнуть внутрь инфраструктуры и продолжить продвижение по сети.
Есть два варианта решения этой проблемы:
Установить стойкую RW-фразу, которую будет крайне тяжело сбрутить.
Ограничить сетевой доступ к UDP/161 путем настройки ACL-листов. Пусть этот порт участвует только во взаимодействии с легитимным SNMP-сервером.
Настройка новой RW-строки:
1 |
SaveMe(config)# snmp-server community RW |
Перед настройкой RW-строки обязательно проверяй связность между оборудованием Cisco и SNMP-сервером.
И второе решение — использование ACL. Вот пример такого ACL, здесь разрешается только один адрес (адрес самого SNMP-сервера). Адаптируй этот метод под свой маршрутизатор, где наверняка есть ACL, так как на интерфейс роутера можно установить только один ACL-лист.
1 2 3 4 5 |
access-list 101 permit udp host any eq 161 access-list 101 permit udp host any eq 162 access-list 101 deny udp any any eq 161 access-list 101 deny udp any any eq 162 access-list 101 permit ip any any |
Осторожность при фильтрации ICMP
Блокировать ICMP в сетевой инфраструктуре — грубая ошибка. Во‑первых, из‑за этого пропадет возможность проводить диагностику: пинги и traceroute работать не будут. Во‑вторых, система PMTUD перестанет работать, так как существует за счет работы ICMP Type 3. Благодаря PMTUD можно избежать избыточной фрагментации, а это, в свою очередь, влияет на скорость передачи данных.
Фильтруй ICMP грамотно, отсекай только ненужные тебе типы.
No Full Cone NAT
NAT в сетях настраивают часто, однако тут есть несколько подвидов настроек: Full Cone, Symmetric, Restricted и Port Restricted. Мы остановимся на первом варианте, так как он вызывает больше всего проблем с безопасностью.
При Full Cone NAT входящие пакеты от любого внешнего хоста будут перенаправляться соответствующему хосту в локальной сети, если в таблице NAT присутствует соответствующая запись. Более того, номер порта источника в этом случае не имеет значения — он может быть и 53, и 54, и вообще каким угодно, в этом виде NAT проверяется только порт назначения, адрес назначения и L4-протокол.
Если атакующий будет находиться за NAT, он сможет проникнуть внутрь инфраструктуры благодаря обычным статическим маршрутам сквозь пограничный роутер, так как из‑за особенностей Full Cone NAT его трафик будет маршрутизирован внутрь.
No Port Forward
Проброс портов на первый взгляд кажется очень удобным решением, если нужно быстро организовать устройству доступ в интернет. Однако это негативно сказывается на безопасности сети, так как проброшенный порт легко обнаружить, учитывая скорость современных порт‑сканеров. Если такое устройство будет взломано, то атакующий сможет провести пивотинг внутрь инфраструктуры и эскалировать свое присутствие в скомпрометированной сети.
Рекомендуется отказаться от проброса портов и вместо этого использовать VPN-сервер.
Защита от UPnP-инъекций
UPnP (Universal Plug and Play) — группа протоколов, которые позволяют компьютерам с помощью специальных запросов получать доступ в интернет. Использование UPnP — небезопасная практика, поскольку атакующий может найти порт UPnP и с помощью специальных запросов открыть для себя доступ к хостам за пограничным маршрутизатором (например, через Metasploit Framework).
Рекомендую отключить UPnP на сетевом оборудовании во избежание риска взлома внешнего периметра.
Заключение
Несмотря на то что я сделал акцент на Cisco IOS, все эти механизмы защиты реализованы у большинства вендоров сетевого оборудования. Применяй эти техники у себя, но будь осторожен: с настройками безопасности часто есть шанс «выстрелить себе в ногу» и нарушить нормальную работу сети.
Эффективная защита сетевого оборудования Cisco требует системного подхода и постоянного внимания. Следуя вышеуказанным рекомендациям, вы сможете обеспечить надежную защиту вашей сети от современных киберугроз. В конечном итоге, инвестиции в безопасность сегодня – это гарантия спокойствия завтра.
ПОЛЕЗНЫЕ ССЫЛКИ: