На каком порте коммутатора следует настроить динамическое инспектирование arp dai

Обновлено: 05.07.2024

Сети L2 имеют ряд уязвимостей, в частности, с клиентской стороны. Тем не менее, возможные проблемы легко предотвратить за счет правильной конфигурации оборудования доступа. В данной статье рассматривается пример настройки PortSecurity, ARPinspectionиIPSourceGuard на гигабитных коммутаторах Raisecomсерии ISCOM2600G.

Для базовой настройки безопасности на портах с клиентской стороны чаще всего используется механизм PortSecurity. Онпозволяет ограничить доступ в сетьна основеMAC-адреса клиентского оборудования или ограничить число допустимых устройств на порту. Также в этой функции может настраиваться способ реакции на нарушение этих установок.

Описаниеконфигурации, при которой устанавливается ограничение в 10 MAC-адресов на один пользовательский интерфейс:

Далее можно статически записать разрешенные MAC-адреса:

Альтернативой является динамическое изучение: при этом легитимными будут адреса, первыми изученные до полного заполнения допустимого количества адресов на порту.

Динамически записанные MAC-адреса забываются по прошествии времени, установленного на устройстве. Это время можно ввести в абсолютном формате, например,MAC-адрес будет забытчерез 5 минут после изучения:

Также это время может отсчитываться,толькоесли данный клиент неактивен:

Чтобы динамически изученные адреса не «старели», используется функция sticky-learning,при активации которойизученные адреса будут записываться в качестве статических:

При выборе метода обработки коммутатором нелегитимного пакета доступны три варианта:

Protect – устройство отбрасывает пакеты.

Shutdown –отбрасывает пакеты, отключает порти отправляет предупреждение.

Для возобновления работы порта используется команда:

Также можно установить время автоматического восстановления порта (в секундах):

Для более гибкой настройки ограничения по MAC-адресам используется ARP inspection, позволяющая фильтровать ARP-пакеты от нелегитимных клиентов, предотвращая тем самыматакуARP-spoofing.

На коммутаторе формируется таблица соответствия, на основании которой решается, отбрасывается пакет, пришедший на защищенный порт, или проходит дальше. Таблица может формироваться статически или динамически на базе данных, полученных по протоколу DHCP.

ARP inspection также обеспечивает ограничение скорости ARP-пакетов для предотвращения атак на коммутатор. Механизм защиты от атаки представлен ниже.


Когда количество ARP-пакетов, получаемых коммутатором, превышает установленный предел, устройство воспринимает это как атаку и отбрасывает все ARP-пакеты.

Перед настройкойARPinspection необходимо включить DHCP Snooping.При этом коммутатор будет изучать ответы DHCP-сервера, направленные в сторону DHCP-клиентов, и формировать таблицу DHCP Snooping. В ней будет отображаться соответствие IP и MAC-адресов физическим портам коммутатора.

Такжеследует указать доверенный порт, к которому подключен легитимный DHCP-сервер.

На клиентских портах ARP inspection может функционировать в статическом и динамическом режимах. Для настройки статического режима, в котором привязка IP-адреса к порту коммутатора настраивается вручную:

При таких настройках на порту 1 будут проходить только ARP-пакеты с адреса 192.168.1.2 в VLAN2.

Для установки динамического режима, при котором данные о привязке IP-адреса к порту коммутатора будут браться из таблицы DHCPSnooping, необходимо настроить конфигурацию:

Функционал ARP inspection можно подключать только для нужных VLAN-ов:

В дополнение можно настроить ограничение на количество ARP-пакетов, проходящих через коммутатор, измеряется в пакетах/с:

В некоторых задачах требуется более гибкое ограничение для IP-пакетов. Так на оборудовании Raisecom поддерживается функция IP Source Guard. Она позволяет устройству отбрасывать IP-пакеты,приходящие в порт коммутатора и не соответствующие установленным параметрам.Данная функция используется, в частности, для предотвращения атак IP-spoofing.Механизм защиты от атаки представлен ниже.


Для установки ограничений используются связки параметров:

Физический порт коммутатора+IP-адрес

Физический порт коммутатора+IP-адрес+MAC-адрес

Физический порт коммутатора+IP-адрес+VLAN

Физический порт коммутатора+IP-адрес+MAC-адрес+VLAN

Функционал IP Source Guard подразумевает фильтрацию по всем портам коммутатора. Однако обычно в сторону uplink портов фильтрацию отключают, для чего первоначально конфигурируют порт как доверенный:

Установка фильтрации на оставшихся портах коммутатора:

Для использования таблицы DHCP Snooping для автоматического формирования правил с целью фильтрации трафика используется команда:

Кроме того, рекомендуется отключать протоколы автообнаружения такие как LLDP, RNDP, Ethernet OAM, STP там, где в них нет необходимости.

В статье были рассмотрены основные механизмы обеспечения безопасности, применяемые на пользовательских портах коммутаторов доступа. Функционал Port Security, ARP inspection и IP Source Guard позволяет предотвратить основные типы атакна уровнях L2 и L3.

Хочу рассказать, как настроить DHCP Snooping и DAI (Dynamic Arp Inspection). Материал будет полезен начинающим сетевым администраторам.

DHCP Snooping и Dynamic ARP Inspection настройка на Cisco DHCP Snooping и Dynamic ARP Inspection настройка на Cisco

КОРОТКО О ТЕХНОЛОГИИ DHCP SNOOPING И DAI

Данные функции защищают вашу сеть от подмены DHCP сервера. На коммутаторах вручную настраиваются доверенные порты, которые как правило подключены к маршрутизатору или DHCP серверу. Также доверенными портами назначаются UpLink порты.

Другая возможность это Dynamic Arp inspection. Тоже защитная функция, предотвращающая атаку типа Man-in-The-Middle. Это такой вид атаки, когда к вашей сети подключается устройство злоумышленника и, например, объявляет, что IP адрес, принадлежащий авторизованному серверу, принадлежит ему. После этого все данные, которые отправляются на сервер переходят через устройство злоумышленника.

НАСТРОЙКА DHCP SNOOPING И DAI

Чтобы включить функцию DHCP Snooping нужно для начала задать доверенные и не доверенные порты. Все порты, к которому подключены конечные пользователи считаются не доверенными. Так как DHCP Snooping и DAI настраиваются в связке я не буду делить это на отдельные части:

conf t
int ra gi1/0/1-46
ip dhcp snooping limit rate 15
ip arp inspection limit rate 100

Тут мы задаем количество пакетов, которые должны проходить через не доверенный интерфейс. Обычно такого числа пакетов хватает для получения и обновления IP адреса. Далее настраиваем доверенные интерфейсы:

int ra gi1/0/47-48
ip dhcp snooping trust
ip arp inspection trust

После этого глобально включаем DHCP Snooping, но НЕ ARP Inspection:

ip dhcp snooping
ip dhcp snooping vlan 200
no ip dhcp snooping information option

Последняя команда отключает опцию 82, которая используется коммутатором в DHCP пакетах, идущих от DHCP клиента через коммутатор к DHCP серверу. Опция 82 содержит информацию об устройстве (например, MAC адрес коммутатора) и информацию о номере порта с которого идет запрос для того, чтобы сервер, опираясь на полученную информацию, смог выдать IP адрес DHCP клиенту из нужной подсети.

Далее переходим к настройке DAI. Если у вас в сети есть устройства со статическим IP адресом, то нужно как-то сказать коммутатору, чтобы порты, к которым подключены такие устройства не проверялись. Для этого существуют ARP списки доступа. Важно, чтобы название access-list-а было именно DAI. По личному опыту знаю, что в противном случае нужно вводить дополнительные команды. А так все работает без лишних команд.

arp access-list DAI
permit ip host 192.168.200.25 mac host 0017.6111.a309

В таком порядке добавляем IP адреса всех устройств со статическим IP. Дополнительно можно настроить Sorce Guard. Этим мы конкретное устройство к порту коммутатора, таким образом другое устройство подключенное к указанному порту не сможет выдать себя за привязанное:

ip source binding 0017.6111.a309 vlan 200 192.168.200.14 interface Gi1/0/5

Также под не доверенными интерфейсами нужно ввести команду ip verify source, которые проверяет источник запросов.

Важно! После всех настроек, приведенных выше, ждем сутки-две чтобы DHCP Snooping таблица заполнилась. В противном случае DAI будет блокировать все запросы, и пользователи не смогут работать в сети. Когда таблица заполнена включаем arp inspection:

На хабре было довольно много топиков, описывающих те или иные варианты построения провайдерских сетей, в том числе и с использованием указанных в заголовке технологий. Отчасти они помогли мне в решении своей задачи, но многое пришлось копать самому. Хочу поделиться тем, что получилось и попытаться сэкономить время последователям.


image

Итак, постоновка задачи:

Необходимо организовать сеть, максимально удобную для конечного пользователя, при этом также удобную (с точки зрения минимальной нагрузки на техподдержку) и безопасную (с точки зрения мошенничества) для оператора. К тому же сеть должна быть недорогой. Кто-то возразит, что Cisco и «недорого» — несовместимые понятия, однако для решения нашей задачи годятся и End of Life старички, которые можно приобрести по очень демократичным ценам.

  • статическое назначение ip-адресов — неудобно для пользователя, адрес нужно где-то записывать, потерявшие адрес пользователи названивают в техподдержку
  • dhcp с привязкой по mac-адресу — неудобно для пользователя, при смене устройства нужно перерегистрировать его у провайдера или менять на нем mac.
  • всевозможные виды туннелей, в основном pptp — требует настройки у клиента, забытые логины и пароли

Кому интересно решение — прошу под кат

Решение

DHCP сервер для выдачи адресов будет ориентироваться на опцию 82, которая определяет, с какого физического порта коммутатора пришел запрос на получение адреса. Таким образом мы добиваемся того, что Вася Пупкин из 14-й квартиры, кабель которого подключен в 7-й порт нашего коммутатора SW-01 всегда получит адрес 10.10.1.7, например, вне зависимости от того, какое устройство он подключит к своему кабелю. Такой подход позволяет нам идентифицировать Васю Пупкина только по IP-адресу, но тут есть проблема. Сосед Жора, который не хочет платить за инет, поставит себе руками адрес Васи Пупкина, создаст в сети конфликт IP-адресов и будет пользоваться Интернетом за счет Васи.

Чтобы такого не произошло, существует технология Dynamic ARP Inspection. Суть технологии сводится к проверке связки mac+ip, полученных от DHCP-сервера и сравнении их с ARP-запросами, поступающими на порт. Таким образом, даже если сосед Жора поставит себе такой же mac и IP, как у Васи, коммутатор проверит, выдавал ли DHCP в этот порт такой IP такому mac-у. Если не выдавал, пакет будет отброшен.

Собственно настройка

В нашем распоряжении есть два коммутатора: Cisco 2950-24 и Cisco 2960-24-TT-L
Коммутатор 2950 будет использоваться для подключения абонентов. На нем сконфигурирован Management vlan 254 для управления.
IP коммутатора — 10.0.254.10, mac — 00:11:92:1B:3A:00

Коммутатор 2960 будет выступать в роли DHCP-сервера и решать задачу инспектирования ARP.
IP коммутатора — 10.0.254.2, mac — 00:16:C8:D7:D2:80

MAC можно посмотреть командой show version


Коммутатор 2950 не поддерживает Dynamic ARP Inspection, но мы можем решить эту задачу на вышестоящем коммутаторе. В примере в качестве такого коммутатора использован Cisco 2960-24-TT-L, хотя более правильно использовать L3 коммутатор, например, 3550-12T или 3550-12G, тогда он сможет решить и задачу Inter-VLAN Routing тоже.

И так, на С2950 конфигурируем следующее:

Конфигурация С2960 чуть более сложная:

    Для каждого пользователя необходимо создать запись ip dhcp class

В классе достаточно указать только relay-information, но для удобства также рекомендуется использовать комментарий remark, в который можно записать, например, данные абонента.
Здесь самое важное — понять принцип формирования hex-строки. Это 18 байт, содержащиеся в option 82
Ее содержимое состоит из двух полей: circuit-id и remote-id
circuit-id содержит номер vlan и номер физического порта, с которого пришел dhcp запрос.
remote-id содержит mac-адрес коммутатора, который отправил этот запрос.
Данную строку можно извлечь анализатором wireshark, но делать это для каждого абонента неудобно, поэтому рассмотрим, как ее сгенерировать.

Время аренды адреса указано 5 минут. Это нужно для того, чтобы при подключении нового устройства с другим адресом в свой порт, абонент быстро получил на него адрес. В противном случае будет ошибка, что данный пул исчерпан, так как в нем всего 1 адрес. Кроме того, в примере опущены остальные настройки dhcp-пула, такие, как шлюз, днс и т.д.

Proof of Concept

Проверим назначение адреса клиенту, подключенному в 9-й порт коммутатора. Порт находится в 20-м влане, согласно нашей схемы, клиент должен получить адрес 10.0.20.9

Сформируем значение hex: 0106000400140008020800060011921b3a00
где 0014 — 20-й влан,
0008 — 9-й порт коммутатора
0011921b3a00 — его mac.


Так этот обмен выглядит в wireshark:

А так выглядит вывод команды debug ip dhcp server events


000a.e45b.dcc6 — mac-адрес клиента
Теперь подключаем в этот же порт другой ноутбук.


Теперь проверим, сможет ли сосед нашего клиента, подключенный к порту 10 коммутатора, поставить себе вручную адрес 10.0.20.9
Так как Cisco 2950 не поддерживает Dynamic ARP Inspection, данную технологию нужно настраивать на вышестоящем коммутаторе Cisco 2960.
Команда show ip dhcp snooping binding на С2960 покажет привязку IP адресов к mac-ам


FastEthernet0/1 — интерфейс коммутатора 2960, в который включен нижестоящий 2950.

Подключим в 10-й порт С2950 компьютер с настроенным вручную адресом 10.0.20.9
И тут же увидим уведомление об ошибке, из которого видно, что она произошла в 20-м влане на 1-м порту коммутатора. Кроме того, мы видим айпи и мак адреса, которые вызвали ошибку. 000a.e45b.dcc6/10.0.20.9/


Узнать, кто конкретно попытался мошенничать можно зайдя на коммутатор С2950 и посмотрев таблицу коммутации


Мы видим, что интересующий нас mac висит на порту 10.

На этом, пожалуй, все, дополнительную информацию можно найти в этих статьях:

В данном документе представлен пример конфигурации некоторых функций безопасности уровня 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-адреса.

Перечисляются vlan'ы, где есть dhcp-клиенты, включается хранение базы на флешке. На tftp сохранить нельзя.
Настраиваются доверенные порты, т.е. те, за которыми располагается dhcp-сервер, либо те, данные с которых собирать в базу не нужно.
Например, есть последовательная цепочка из двух коммутаторов. Если настроить в качестве доверенного порта только аплинки обоих коммутаторов, то на первом коммутаторе будет собираться база клиентов обоих коммутаторов. Это не смертельно в общем случае, но при использовании всего свободного места на флешке коммутатор перезагрузится из-за возникшей ошибки, как у меня было с mes3124.

Настройка dhcp-snooping на Juniper EX, кроме EX9200

  • не работает для vlan'ов, которые маршрутизируются данным коммутатором, т.е. имеется RVI интерфейс и настроен dhcp-relay.
  • На ex9200 работает вроде, но я забыл уже. Там зато был регулярный косяк с dhcp-relay, который правили раза два минимум. Просто переставал релаить и привет;
  • локальную базу хранить небезопасно, так как при внеплановой перезагрузке она может быть удалена. Это специфика junos;
  • по умолчанию доверенными являются все транковые порты, а недоверенными - access-порты. Нигде не описывается, что транковый агрегированный интерфейс (ae) является недоверенным по умолчанию. В случае, когда в такой порт прописан vlan с настройкой dot1q-tunneling, то настроить порт ae доверенным не получится. Почитать про [EX/QFX] Error message: DHCP trusted configuration cannot be specified on a dot1q tunneled interfaces. Получить такой ответ при создании тикета я совсем не ожидал. Не работает и всё.

Настройка dhcp-snooping на Cisco

Тут нет такого как на джуниперах и в случае L3 коммутатора dhcp-snooping работает. Есть ограничение на использование совсем старых флешек с файловой системой Low End File System, которая предусматривает очистку файловой системы от удаленных файлов вручную. На коммутаторе настраивается dhcp-snooping очень привычно.
Настройка доверенного порта.

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