Сегодня мы рассмотрим наиболее популярные виды сетевых атак и разберем методы защиты от них на примере операционной системы Cisco IOS. В данной статье мы поговорим о сетевых атаках, относящиеся к DHCP, VLAN, STP и Switch table.
В теории обеспечения информационной безопасности есть такое понятие, как глубоко эшелонированная оборона (Defense in depth). Этим умным термином называют концепцию, в которой весь корпоративный ИТ-ландшафт делится на несколько уровней контроля безопасности и защиты от атак. В такой схеме один уровень защиты от атак, не зависит от остальных и является самостоятельной единицей.
К примеру, на границе внутренней локальной сети и интернета стоят периметровые средства защиты, такие как Firewall, IDS/IPS, NGFW (Next-Generation_Firewall) или UTM-шлюзы. После этого вся сеть мониторится на предмет выявления аномальной активности и инцидентов информационной безопасности, к примеру с помощью SIEM-системы. Состояние программного обесепечения контролируется с помощью сканеров безопасности.
РЕКОМЕНДУЕМ:
Безопасность Docker
На другом уровне безопасности задействованы средства защиты прикладного ПО, к примеру WAF для веб-сервера или DAM для СУБД. Ну а на конечных узлах применяются уже endpoint средства защиты — AV, SSO, DLP и другие страшные аббревиатуры, которыми обозначают штатные механизмы безопасности операционной системы, разделения прав доступа и полномочий пользователей, шифрование на лету и т.д.
В статье мы рассмотрим только одну часть этой схемы, а именно защиту сетевого периметра корпоративного ИТ-ландшафта на примере коммутаторов и маршрутизаторов компании Cisco.
Чтобы провернуть все описанные в этой статье атаки на практике, не нужно много софта. Вполне хватит утилиты Yersinia. Она доступна для установки на любую Linux-систему и входит в сборку популярного дистрибутива для пентестеров Kali Linux.
- Типовые сетевые атаки
- Rogue DHCP Server
- DHCP starvation
- Атака на переполнение таблицы, или СAM table overflow
- Атака на виртуальные сети, или VLAN hopping
- Защита от сетевых атак
- Защита от Rogue DHCP Server
- Методы защиты от DHCP starvation
- Методы защиты от VLAN hopping
- Дополнительные опции безопасности
- Детальная настройка Port security
- Тюнинг Dynamic ARP Inspection
- 4.3 Настраиваем IP Source Guard
- Тюнингуем SSH
- Бонус: обзор тулзы Cisco Config Analysis Tool
- Заключение
Типовые сетевые атаки
Перед тем как приступить к практической части, посвященной безопасной настройке сетевого оборудования, рассмотрим типовые атаки, которые с высокой вероятностью будут использоваться против вашей сети хакерами. Ну или пентестерами при проведении пентестов.
Rogue DHCP Server
Цель атаки Rogue DHCP Server — подмена легитимного сервера DHCP сервером хакера. Суть угрозы заключается в следующем — когда в сети одновременно находятся два сервера DHCP, один из которых «вражеский» (Rogue DHCP Server), часть клиентов автоматически сконфигурирует у себя неправильные адреса и другие сетевые настройки. После этого в результате подмены умолчательного шлюза неавторизованный сервер DHCP сможет прослушивать весь трафик клиентов, при этом еще имея возможность форвардить все пакеты по своему желанию.
Но чаще всего атака с подменой сервера DHCP не является атакой как таковой, а скорее служит неким плацдармом для дальнейшего углубления хакеров в атакуемую сеть.
DHCP starvation
Еще одна простая и популярная атака, выполняемая при помощи протокола DHCP. Суть ее заключается в том, что пул DHCP, из которого все корпоративные клиенты получают IP-адреса, изначально ограничен доступным диапазоном. Например, это может быть 253 адреса при использовании маски 255.255.255.0. Для нормальной работы сети этого должно хватить всем клиентам за глаза, однако «атака резервации» (DHCP starvation) стремится исчерпать этот пул и таким образом вывести легитимный сервер DHCP из игры.
Если воспроизвести действия злодеев по шагам, то вот как происходит такая атака:
- Атакующее устройство запрашивает себе IP-адрес, маску и шлюз по умолчанию у сервера DHCP и получает их.
- MAC-адрес атакующего устройства изменяется, и оно запрашивает следующий, уже другой IP-адрес, маскируясь под некоего нового клиента, который появился в корпоративной сети.
- Предыдущие два пункта циклически повторяются до тех пор, пока весь пул IP-адресов на сервере не будет исчерпан.
Возможны два следствия, в зависимости от того, чего добиваются атакующие:
- Отказ в обслуживании. Имеющиеся у сервера IP-адреса исчерпаны, и новые хосты не могут получить их. Таким образом, их взаимодействие с сетью на этом закончится.
- Подмена сервера DHCP. DHCP starvation отлично комбинируется с предыдущей атакой Rogue DHCP Server. Так как на основном сервере DHCP свободных адресов уже не осталось, он выключается, и все 100% корпоративных клиентов сети достаются вражескому атакующему DHCP-серверу.
У операционной системы IOS есть несколько режимов работы (конфигурирования):
- пользовательский режим (приглашение терминала в этом режиме имеет вид >) позволяет только просмотреть базовые настройки сетевого устройства;
- привилегированный режим ( #) — для полноценной настройки всех функций;
- режим конфигурирования ( (config)#), в котором выполняются глобальные настройки.
Помимо этого, для настройки каждого отдельного интерфейса есть режим специфической конфигурации ( Router(config-subif)#).
Атака на переполнение таблицы, или СAM table overflow
Атака CAM table overflow, или переполнение локальной таблицы MAC-адресов, реализуется, когда таблица коммутации заполняется и после этого коммутатор работает в режиме хаба. Иными словами, подключившись к любому порту коммутатора после успешной атаки, можно перехватывать весь трафик в пределах широковещательного домена, которому принадлежит этот порт. Атаку можно выполнить, например, с помощью утилиты macof, которая входит в dsniff.
Чтобы понять, как работает эта атака, необходимо знать принципы работы современного коммутатора. Давай представим себе коммутатор с именем SW, к которому подключены два равнозначных хоста PC1 (MAC 0000.1111.1111) и PC2 (MAC 0000.2222.2222). На них уже настроены IP-адреса (10.0.0.1 и 10.0.0.2), и эти хосты хотят общаться друг с другом, как разнополые подростки в пубертатный период.
Так как хосты располагаются в одной подсети, маршрутизатор для этого не требуется и весь обмен пакетами будет происходить с помощью коммутатора в несколько этапов.
- PC1 хочет обратиться к PC2 по IP-адресу. Тем не менее MAC-адрес PC2 ему неизвестен, поэтому PC1 использует протокол ARP. Для этого отправляется широковещательный запрос всей сети.
- Получив широковещательный запрос, коммутатор пересылает его на все свои порты, но записывает соответствие MAC-адреса отправителя ( 0000.1111.1111) и порта. Теперь все пакеты, адресованные данному получателю, он будет пересылать адресату, а не во все доступные интерфейсы подряд.
- PC2 получает адресованный ему пакет, понимает, что должен ответить, и сообщает свой MAC-адрес PC1. Коммутатор при этом заносит в CAM-таблицу (таблицу MAC-адресов) запись вида интерфейс gig1/2 - MAC 0000.2222.2222). Теперь, когда компьютеры начнут обмениваться информацией, будут использоваться только два порта, за которыми они расположены. На другие порты информация пересылаться не будет.
Основной смысл рассказанной выше романтической истории общения двух устройств заключается в том, что, если коммутатор видит адрес получателя в своей CAM-таблице, он пересылает этот пакет на конкретный порт. Если не видит — устраивает широковещательную рассылку в надежде, что пакет все-таки найдет своего адресата в подконтрольной сети. Дело в том, что размер таблицы MAC-адресов у любого коммутатора ограничен. И при переполнении этой таблицы новые адреса реальных клиентов уже не смогут быть записаны в нее.
Таким образом, хакеру необходимо всего лишь сгенерировать большое количество ложных адресов и заставить коммутатор записать их в свою таблицу, чтобы реальные адреса реальных устройств постепенно были оттуда вытеснены.
РЕКОМЕНДУЕМ:
Что такое и как работает IPsec
Коммутатор начнет рассылать кадры, адресованные конкретному получателю, на все порты, находящиеся в том же VLAN. Следовательно, у атакующего устройства появится возможность перехватить и прочитать их.
А еще все коммутаторы, подключенные к атакованному, тоже подхватят фейковые MAC-адреса и начнут вести широковещательную рассылку по всей корпоративной сети, умножая угрозу.
Атака на виртуальные сети, или VLAN hopping
Следующая атака базируется на возможности коммутаторов автоматически согласовывать тип своего порта — access или trunk. В двух словах расскажу о том, чем порт access отличается от trunk. Наберись терпения!
Как известно, протокол 802.1Q используется во всех современных сетях. Хитрая особенность этого протокола состоит в том, что он слегка расширяет ethernet-кадр, добавляя туда несколько полей (в частности, поле VLAN Identifier, VID). На основании этого поля коммутатор способен определить, какой группе портов адресован тот или иной кадр.
Благодаря полю VID к одному коммутатору можно подключить клиенты из нескольких подсетей, тем самым ограничив широковещательный домен. Также появляется возможность объединить подключенные к разным коммутаторам клиенты в одну логическую сеть.
Рассмотрим передачу кадра в сети с протоколом 802.1Q.
- PC1 подключен к access-порту fa0/1 коммутатора SW1 в VLAN c порядковым номером 10. Это означает, что при попадании кадра на порт коммутатора в него будет добавлен 802.1Q-header с информацией о принадлежности к VLAN10.
- SW1 пересылает тегированный кадр на SW2 через trunk-порт.
- SW2 получает кадр, смотрит в свою CAM-таблицу и отправляет кадр на соответствующий access-порт, заголовок 802.1Q снимается.
При этом можно выделить следующие особенности:
- клиенты ничего не знают о своей принадлежности к определенному VLAN и работают с нетегированными кадрами, заголовок 802.1Q появляется только при прохождении кадра через access-порт;
- порт может быть не тегирован (access) только в одном VLAN;
- через тегированный (trunk) порт можно передавать кадры, принадлежащие к разным VLAN;
- существует так называемый native VLAN — при попадании на trunk-порт кадра без тега он автоматически будет причислен к native VLAN. Как правило, native VLAN по умолчанию — это VLAN1 (но это можно изменить);
- при этом кадры, принадлежащие native VLAN и попавшие в access-порт, передаваться через trunk-порт будут без тега.
А теперь перейдем к самой атаке. Как уже было сказано, VLAN hopping основан на том, что коммутаторы имеют возможность автоматически согласовывать тип порта. Используется для этого проприетарный протокол компании Cisco под названием DTP. При его использовании (а он включен по умолчанию) возможны следующие состояния порта: dynamic auto, dynamic desirable, static access, static trunk.
Как мы видим, при определенных условиях, а именно в режимах dynamic auto и dynamic desirable, порт коммутатора может согласовать свою работу в режиме trunk. Это значит, что, если атакующее устройство будет вести себя как порт в режиме desirable, оно согласует на себя trunk-порт и получит доступ к трафику всех виртуальных сетей, которыми оперирует коммутатор.
Основная проблема заключается в том, что на коммутаторах Cisco все порты по умолчанию находятся в режиме auto. Поэтому, даже если порт настроен в режиме access/auto, при получении запроса на согласование его состояние может измениться на trunk/auto.
Защита от сетевых атак
Что ж, а вот теперь пришло время засучить рукава и приступить к укреплению нашего корпоративного бастиона. Ниже мы рассмотрим настройку функций и режимов работы IOS для нейтрализации всех описанных выше атак, а также ряд дополнительных фич, которые помогут тебе сделать сеть еще чуть-чуть более безопасной.
Перед любыми операциями конфигурирования сетевых устройств не забывай сделать бэкап конфига! Документируй все изменения, чтобы потом не потерять лог изменений и не вырвать себе с досады волосы на затылке.
Защита от Rogue DHCP Server
Простейший способ защиты от атак класса Rogue DHCP Server — это включить на всех коммутаторах такую функцию, как DHCP snooping. Однако перед этим необходимо определить два типа портов:
- доверенные — порты коммутатора, к которым подключается DHCP-сервер либо другой легитимный коммутатор;
- недоверенные — порты для клиентских подключений, за которыми DHCP-сервер находиться не может.
В данном случае DHCP snooping необходим для того, чтобы указать коммутатору, что следует обращать внимание на проходящие сквозь него пакеты DHCP offer и acknowledgment, и не допускать прохождения таких пакетов с недоверенных портов. Также широковещательные запросы от клиента ( discover и request) теперь будут перенаправляться только на доверенные порты.
Для конфигурирования функции DHCP snooping необходимо следующее.
Включить ее на коммутаторе:
1 |
SW(config) #ip dhcp snooping |
Указать, для каких VLAN требуется отслеживать DHCP-пакеты:
1 |
SW(config) #ip dhcp snooping vlan <N> |
Ну и наконец, указать доверенные порты на коммутаторе:
1 |
SW(config-if) #ip dhcp snooping trust <N> |
Методы защиты от DHCP starvation
Самый простой способ защиты — ограничить число MAC-адресов на порте коммутатора. Реализуется это с помощью активации режима port-security. Как его включить? Очень просто.
Переводим порт в режим access:
1 |
SW(config-if) #switchport mode access |
Включаем port-security на интересующем нас интерфейсе:
1 |
SW(config-if) #switchport port-security |
Ограничиваем число MAC-адресов на интерфейсе:
1 |
SW(config-if) #switchport port-security maximum <N> |
Далее выбираем способ изучения MAC-адресов коммутатором — статический ( sticky):
1 |
SW(config-if) #switchport port-security mac-address <mac-address | sticky> |
И финальным шагом задаем тип реагирования на превышение числа разрешенных MAC-адресов:
- protect — после переполнения все пакеты, отправленные с других MAC-адресов, отбрасываются;
- restrict — то же самое, что и в предыдущем случае, но с уведомлением в syslog или по SNMP;
- shutdown—– порт выключается до автоматического или ручного его поднятия (самый верный вариант).SW(config-if) #switchport port-security violation
Таким образом, атакующий уже не сможет исчерпать лимит IP-адресов пула DHCP, так как коммутатор не позволит ему бесконечно изменять свой MAC-адрес.
Также здесь может помочь все тот же DHCP snooping, который можно сконфигурировать при помощи вот такой команды:
1 |
SW(config-if) #ip dhcp snooping limit rate <N> |
Эта команда ограничивает количество обрабатываемых за секунду пакетов DHCP на заданном порте, а если ограничение превышено, переводит порт в состояние err-disable, то есть временно выключает его.
Методы защиты от VLAN hopping
Решение этой проблемы очень простое, но многие при конфигурировании коммутаторов забывают его использовать. Одной короткой командой мы просто отключаем возможность автоматического согласования и делаем атаку невозможной:
1 |
SW(config-if)#switchport nonegotiate |
Еще один потенциальный вектор атаки VLAN hopping — использование native VLAN и добавление второго тега. Работает он только в том случае, если атакующее устройство находится в native VLAN для trunk-порта.
Кадр, пришедший на порт fa0/1, находящийся в VLAN1, будет передаваться через trunk-порт нетегированным. Но так как злоумышленник PC1 присвоил ему два заголовка, на выходе он окажется с тегом VLAN2 и дойдет до атакуемого клиента, чего в норме быть не должно. Следует заметить, что подобная атака однонаправленная, так как невозможно по такой же схеме передать кадр обратно.
Защититься можно следующим образом: назначаем на всех trunk-портах неиспользуемый VLAN в качестве native:
1 |
SW(config-if) #switchport trunk native vlan 999 |
Теперь атака неосуществима, так как VLAN 999 не относится ни к одному из access-портов.
Дополнительные опции безопасности
Рассмотрим более детальную настройку механизмов безопасности, предоставляемых штатными возможностями IOS.
Детальная настройка Port security
Port security — функция коммутатора, позволяющая задать MAC-адреса хостов (клиентов сети), которым разрешено передавать данные через этот порт. После этого порт не передает пакеты, если MAC-адрес отправителя не указан как разрешенный. Кроме того, можно не указывать конкретные MAC-адреса, разрешенные на порте коммутатора, а ограничить общее количество MAC-адресов, которым разрешено передавать трафик через данный порт.
Существует несколько режимов запоминания адресов:
- Continuous — устройство с любым MAC-адресом может без ограничений работать через порт коммутатора;
- Static — от 0 до 8 MAC-адресов могут быть статически заданы, остальные могут быть динамически добавлены самим свитчем;
- Configured — от 1 до 8 MAC-адресов могут быть статически заданы, все динамические адреса отвергаются;
- Limited-continuous — от 1 до 32 MAC-адресов могут быть динамически добавлены самим коммутатором;
- Port-access — используется вместе с опцией 802.1X для того, чтобы временно задать MAC-адрес аутентифицированной сессии в 802.1X.
А теперь разберем режимы реагирования на нарушения безопасности. И для начала определимся, что в нотации Cisco считается нарушением безопасности для фичи 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 — функция, запрещающая передавать unicast-пакеты, которые транслируются на неизвестные для коммутатора MAC-адреса. Это не позволяет неавторизованным пользователям прослушивать трафик, передаваемый на MAC-адреса, удаленные из таблицы коммутации по тайм-ауту (aged-out).
РЕКОМЕНДУЕМ:
Защита почтового сервера без антивируса
Важно заметить, что Eavesdrop Prevention никак не влияет на multicast- и broadcast-трафик в домене. Коммутатор передает этот трафик через соответствующие порты независимо от того, настроена ли на них опция port security. А вот активация port security на интерфейсе автоматически включает на нем Eavesdrop Prevention.
Команды для port security имеют следующий синтаксис:
1 2 3 4 5 6 |
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 — выключен (disabled);
- запоминание sticky-адресов — выключено (disabled);
- максимальное количество безопасных MAC-адресов на порте — 1;
- режим реагирования на нарушения — shutdown;
- время хранения адресов — отключено;
- значение aging time — 0.
Важно знать, что фича port security задается в режиме настройки интерфейса (config)#. Изначально на коммутаторах Cisco по умолчанию любой порт находится в режиме dynamic auto, однако этот режим несовместим с port security. И поэтому конфигурируемый интерфейс сначала необходимо ручками перевести в режим trunk или access.
Итак, переводим наш порт в режим trunk или access:
1 |
switch(config-if)# switchport mode <access | trunk> |
Включаем port security на интерфейсе (после этого активированы настройки по умолчанию):
1 |
switch(config-if)# switchport port-security |
Нужно учесть, что после команды switchport port-security автоматически включается port security с настройками, принятыми по умолчанию, и ее стоит использовать, только если эти самые настройки тебе подходят. Если же требуется добавить какие-то другие параметры, то сначала нужно их задать, а затем включить функцию.
К примеру, задать максимальное количество безопасных MAC-адресов на интерфейсе или в VLAN можно следующей командой:
1 |
switch(config-if)# switchport port-security maximum <value> [vlan <vlan-list>] |
А вот пример того, как на интерфейсе разрешить четыре MAC-адреса, а остальные настройки оставить по умолчанию:
1 2 3 4 |
switch(config)# interface Fastethernet0/1 switch(config-if)# switchport mode access switch(config-if)# switchport port-security maximum 4 switch(config-if)# switchport port-security |
Еще один вариант — настроить trunk и разрешить двадцать MAC-адресов в VLAN 10:
1 2 3 4 |
switch(config)# interface Fastethernet0/2 switch(config-if)# switchport mode trunk switch(config-if)# switchport port-security maximum 20 vlan 10 switch(config-if)# switchport port-security |
Если на интерфейсе fa0/2 возникнет нарушение безопасности в VLAN 10, например появится какой-то 21-й MAC-адрес, то заблокирован будет только трафик этого VLAN, а не всего потока на порте.
Чтобы просмотреть информацию о настройках port-security для VLAN 10, используется следующая команда:
1 |
switch# show port-security vlan 7 |
Если ты вручную задашь меньше безопасных адресов для порта, чем указано в значении switchport port-security maximum, то оставшееся количество свободных адресов дополнится динамическими адресами по принципу «кто первый встал, того и тапки».
Для включения режима sticky запоминания адресов на порте используй следующие команды:
1 2 |
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) конфигурируется так:
1 |
switch(config-if)# switchport port-security violation <protect | restrict | shutdown> |
Если же порт был настроен (или оставлен по умолчанию) в режиме реагирования shutdown, то при нарушении порт перейдет в состояние error-disabled.
А вот команда, которая позволяет посмотреть, перешел ли порт в состояние error-disabled:
1 |
switch# show interfaces <interface-number> status |
Ну и если ты захочешь обнулить все значения, чтобы «начать жизнь с чистого листа», тебе понадобится команда для полной очистки таблицы MAC-адресов:
1 |
switch# clear port-security [all|configured|dynamic|sticky] [address <mac>|interface <int-id>] |
Тюнинг Dynamic ARP Inspection
Dynamic ARP Inspection (Protection) — функция коммутатора, предназначенная для защиты от атак с использованием протокола ARP. Например, от атаки ARP spoofing, позволяющей перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена.
РЕКОМЕНДУЕМ:
Как написать веб-приложение устойчивое к ботнетам
Для корректной работы фичи Dynamic ARP Inspection изначально необходимо указать, какие порты коммутатора будут доверенными (trusted), а какие — недоверенными (untrusted):
- недоверенные (Untrusted) — это порты, к которым подключены все корпоративные клиенты. Для всех недоверенных портов выполняется ряд проверок сообщений ARP;
- доверенные (Trusted) — порты коммутатора, к которым подключен другой коммутатор (по сути, транк). Сообщения протокола ARP, полученные с доверенных портов, не отбрасываются.
Включаем Dynamic ARP protection на требуемом интерфейсе:
1 |
switch(config)# arp-protect |
Теперь включаем Dynamic ARP protection в VLAN, которые должны быть защищены с его помощью:
1 |
switch(config)# arp-protect vlan 7 |
Указываем доверенные порты:
1 |
switch(config)# arp-protect trust a3 |
Просматриваем информацию о настройках Dynamic ARP protection:
1 |
switch(config)# show arp-protect |
Задаем статические соответствия «IP-адрес — MAC-адрес»:
1 |
switch(config)# ip source-binding <vlan-id> <ip-address> <mac-address> <port-id> |
И наконец, просматриваем выполненные настройки:
1 2 |
show ip arp inspection interfaces show errdisable recovery |
4.3 Настраиваем IP Source Guard
IP Source Guard (или Dynamic IP Lockdown) — функция коммутатора, которая ограничивает IP-трафик на интерфейсах второго уровня, фильтруя трафик на основании таблицы привязок DHCP snooping и статических соответствий (DHCP snooping binding database). Эта фича активно используется для борьбы с такими безобразиями, как IP spoofing.
Итак, вводим следующие команды и включаем IP Source Guard:
1 2 3 4 5 6 |
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] ip source-lockdown ip source-lockdown <port-list> |
Функция Dynamic IP lockdown остается выключенной на порте, если выполняется любое из следующих условий:
- если DHCP snooping не включен глобально на коммутаторе;
- если порт не принадлежит хотя бы одному VLAN, в котором включен DHCP snooping;
- если порт настроен как доверенный порт (trusted) для DHCP snooping.
Убедиться в том, что хотя бы одно из этих условий выполняется, можно командами
1 2 3 |
show ip source-lockdown status show ip source-lockdown bindings [<port-number>] debug dynamic-ip-lockdown |
Тюнингуем SSH
Конечно же, необходимо сказать несколько слов о безопасности удаленных подключений для управления сетевыми устройствами. Речь пойдет о протоколе SSH. Задаем имя домена (это будет необходимо нам в дальнейшем для генерации ключей):
1 |
ip domain-name <MyAddress.ru> |
Создаем пару ключей с использованием алгоритма RSA:
1 |
crypto key generate rsa modulus 1024 |
Переключаем SSH на использование версии протокола v.2:
1 |
ip ssh version 2 |
Создаем пользователя в локальной базе:
1 |
username admin secret <your password> |
Настраиваем линии VTY:
1 2 3 |
line vty 0 4 login local transport input ssh |
Задаем ограничение времени timeout аутентификации (по умолчанию 120 с):
1 |
ip ssh time-out <N sec> |
А вот пример лимитирования тайм-аут-аутентификации:
1 |
Router(config)# ip ssh time-out 60 |
Указываем интерфейс для всех сессий SSH:
1 |
Router(config)# ip ssh source-interface FastEthernet0/1 |
Включаем журналирование событий SSH ip ssh logging events:
1 |
Router(conifig)# ip ssh logging events |
Указываем версии использования протокола ip ssh version:
1 |
Router(config)# ip ssh version 2 |
Указываем, какой ключ должен использоваться при соединении:
1 |
sw-c2860(config)# ip ssh rsa keypair-name <MyAddress.ru> |
Бонус: обзор тулзы Cisco Config Analysis Tool
Cisco Config Analysis Tool — это крохотная консольная утилита, написанная на Python. Она предназначена для анализа статуса настроек безопасности в конфигурационных файлах любых девайсов Cisco. На GitHub разработчика приведен чек-лист тех опций, которые проверяет утилита. В общем, это очень крутой анализатор, который сделает всю пыльную работу по аудиту за тебя.
Утилита доступна как для Linux, так и для Windows. Чтобы запустить проверку без дополнительных опций, достаточно ввести всего лишь одну команду:
1 |
$ python3 ccat.py <your configuration_file> |
Также можно запустить исполняемый файл через PowerShell на Windows:
1 |
> ccat.exe <your configuration_file> |
А вот некоторые дополнительные ключи запуска:
- -vlanmap — указать путь к файлу vlanmap;
- -output — указать путь к выходному каталогу файлов HTML (отчет);
- --storm_level — соответствующий уровень для «шторм-контроля» (значение по умолчанию равно 80);
- --max_number_mac — максимальное количество MAC-адресов для защиты порта (по умолчанию 10);
- --disabled-interfaces — принудительно проверять интерфейсы, даже если они выключены;
- --no-console-display — выводить результаты анализа в каталог HTML-файлов;
- --dump-creds — выводить в отчете имена пользователей, пароли и хеши из конфигов;
- --graph — построить карту сети VLAN.
РЕКОМЕНДУЕМ:
Установка настройка и использование системы обнаружения вторжений Snort
Заключение
Сегодня мы познакомились с механикой типовых сетевых атак в периметре корпоративного ИТ-ландшафта, а также научились настраивать штатные функции безопасности, которые входят в арсенал операционной системы Cisco IOS. Ну а чтобы узнать, включены ли все эти опции, ты можешь воспользоваться реактивной утилитой Cisco Config Analysis Tool. Если что-то из приведенного в статье списка отсутствует, эту функцию нужно срочно активировать — для твоего же спокойствия.
- Cisco IOS Switch Security Configuration Guide (PDF) — одна из лучших книг-гайдов по настройке секурных опций на сетевых устройствах Cisco. Содержит подробное изложение теоретических основ, описание команд и примеры конфигураций.
- Cisco Guide to Harden Cisco IOS Devices — гайд самой Cisco, как усилить безопасность работы выпускаемых ей коммутаторов и маршрутизаторов.
- Cisco IOS Security Configuration Guide (Release 12.4) — еще одна книга Cisco, где ты найдешь подробное описание всех опций безопасности для свитчей и роутеров последнего поколения.
- Cisco IOS Switch Security Configuration Guide v1.0 Checklist — типовой чек-лист для проверки включенных опций безопасности, принятых за стандарт в Национальном институте стандартизации США (NIST).