NetLab Academy

Сетевые лаборатории в браузере

Войти Начать бесплатно

Теория: Безопасность второго уровня

Порт коммутатора верит всему, что в него приходит. Что с этим делают: привязка порта к устройству, защита от чужого сервера DHCP и от подмены в ARP, чужой коммутатор в дереве и ограничение шторма. Прочитайте материал, а затем пройдите тест — следующий пункт курса откроется после верных ответов.

Самый незащищённый уровень сети

Файрвол, списки доступа, VPN — всё это работает на третьем уровне и выше. А коммутатор доступа, к которому люди подключаются кабелем, устроен предельно доверчиво: он верит всему, что приходит в порт.

Пришёл кадр с каким-то MAC-адресом — коммутатор запомнил его и с этого момента шлёт туда трафик. Пришёл ответ ARP — соседи поверили. Пришёл ответ DHCP — клиент настроился. Никаких проверок в этих механизмах нет по замыслу: их придумывали для сети, где все свои.

Отсюда неприятное свойство: достаточно физического доступа к розетке. Ни паролей, ни ключей — воткнул кабель в переговорной, и ты внутри. Причём чаще всего никто не атакует специально: приносят домашний роутер «чтобы вайфай был», включают не в тот порт, приходит подрядчик со своим ноутбуком. Последствия одинаковые.

Защиты второго уровня — это набор правил, которые превращают доверчивый порт в недоверчивый. Каждая закрывает одну конкретную дыру, и по отдельности они дырявые: настоящая защита получается только из набора.

Один порт — одно устройство

Самая базовая защита: ограничить, сколько MAC-адресов коммутатор готов принять с порта, а часто и какие именно.

Она закрывает сразу три вещи:
• в розетку воткнули маленький коммутатор или хаб, и за одним портом оказался целый этаж;
• кто-то подменил свой MAC-адрес, чтобы притвориться чужим устройством;
• атака переполнением таблицы адресов — злоумышленник шлёт тысячи кадров с разными MAC, таблица переполняется, и коммутатор начинает рассылать весь трафик во все порты, как хаб. После этого чужой трафик можно спокойно читать.

Настраивают обычно так: разрешить один адрес и научиться ему автоматически при первом подключении. Дальше вопрос, что делать при нарушении: погасить порт совсем, погасить и записать в журнал или просто молча отбрасывать лишние кадры.

У защиты есть цена, о которой стоит знать заранее: телефон с компьютером за ним. IP-телефоны почти всегда имеют встроенный мини-коммутатор, и на таком порту устройств честно два. Лимит в одно устройство погасит порт в первый же рабочий день.

Чужой сервер DHCP

Принесённый из дома роутер раздаёт адреса всем, кто попросит, и назначает шлюзом себя. Дальше возможны два исхода, и оба плохие.

Сеть просто ломается. Часть людей получает адреса из домашней сети роутера и перестаёт работать. Заявки идут волной, причина неочевидна: у соседа за той же стеной всё в порядке.

Трафик идёт через чужое устройство. Если подставной шлюз ещё и пересылает пакеты дальше, пользователи ничего не заметят — а весь их трафик пройдёт через него.

Кто из серверов ответит первым — лотерея. Клиент берёт тот ответ, который пришёл раньше, и результат меняется от перезагрузки к перезагрузке. Именно поэтому такие аварии выглядят как «работает через раз».

Защита строится на простом делении: порты бывают доверенные и нет. Доверенный — тот, за которым стоит настоящий сервер, обычно порт в сторону ядра сети. Со всех остальных ответы сервера отбрасываются, не доходя до клиентов. Запросы клиентов при этом ходят свободно.

Отличить одно от другого просто: сервер отвечает с UDP-порта 67, клиент спрашивает с 68-го. Всё, что пришло с 67-го порта не оттуда, откуда положено, — подделка.

Подмена в ARP

ARP-запрос выглядит так: «у кого адрес 192.168.1.1, ответьте». Отвечает тот, у кого он есть. Никакой проверки, что отвечающий имеет на этот адрес право, в протоколе нет.

Отсюда классическая атака: злоумышленник рассылает ответы «192.168.1.1 — это я, вот мой MAC». Соседи записывают его в свои таблицы и начинают слать весь трафик наружу через него. Он читает, при желании правит и передаёт дальше настоящему шлюзу — человек посередине, о котором никто не догадывается.

Защита называется динамической проверкой ARP и работает так: коммутатор знает, какой адрес какому порту принадлежит, и сверяет с этим списком каждый ARP. Сказал не своё — кадр отброшен.

Откуда берётся список? Из предыдущей защиты. Отслеживая обмен DHCP, коммутатор запоминает, какому порту какой адрес выдали. Получается связка: сначала снупинг наполняет таблицу привязок, потом проверка ARP по ней работает. Порознь вторая защита бесполезна — сверять будет не с чем.

Для устройств со статическими адресами — серверов, принтеров — привязки прописывают руками.
Подмена в ARP: как чужой становится шлюзом и что этому мешает
ARP-таблица ПК-1 — то, чем он руководствуется, отправляя кадр
Атака не ломает ни одного правила протокола — она им пользуется: в ARP нет проверки, что отвечающий имеет право на адрес. Поэтому и защита строится не в протоколе, а на коммутаторе: он один знает, какой адрес какому порту выдали, и только он может отличить законный ответ от чужого.

Чужой коммутатор и дерево

Порт доступа рассчитан на компьютер, а не на коммутатор. Но никто не мешает воткнуть в него коммутатор — и тогда он начнёт участвовать в выборах дерева STP.

Худший случай: у принесённого устройства приоритет по умолчанию оказался ниже, чем у вашего ядра, и корнем дерева становится он. Весь трафик сети внезапно потечёт через дешёвую коробку под столом. Сеть формально работает и при этом еле дышит.

Защита простая: на портах, где коммутаторов быть не должно, служебные кадры дерева считаются поводом погасить порт. Пришёл BPDU на порт доступа — порт выключается до вмешательства инженера.

Парная к ней настройка — режим быстрого включения порта: на портах к конечным устройствам не нужно ждать полминуты, пока дерево пересчитается. Эти две вещи практически всегда ставят вместе: быстрое включение плюс защита от того, что в такой порт воткнут коммутатор.

Что ещё закрывают на портах доступа

Ограничение шторма. Порт может залить сеть широковещанием — из-за петли, неисправной карты или намеренно. Ограничение задаёт долю полосы, которую разрешено занимать такому трафику; сверх неё кадры отбрасываются, а порт при желании гасится.

Выключенные неиспользуемые порты. Самая дешёвая и самая часто забываемая мера. Свободная розетка в коридоре — это открытая дверь; порт, который не выключили после переезда отдела, живёт годами.

Запрет автосогласования транка. Многие коммутаторы по умолчанию готовы договориться с соседом и превратить обычный порт в транковый — а транк несёт все VLAN сразу. Устройство, умеющее попросить об этом, получает доступ ко всей сети. На портах доступа согласование отключают жёстко.

Смена native VLAN. Кадры этого VLAN идут по транку без метки, и на этом строится приём с двойной меткой, позволяющий уйти в чужой VLAN. Лечится тем, что native VLAN делают отдельным и неиспользуемым.

Что здесь ломается

Разрешили, но не запретили. Самая частая ошибка при настройке правилами: разрешающее правило есть, а запрета на всё остальное нет. Кадр, не подошедший под разрешение, спокойно уходит по общему правилу, и защиты фактически нет.

Доверенным сделан не тот порт. Ответы законного сервера отбрасываются, подставного — тоже. Адреса не получает никто, и авария выглядит как «сломался DHCP».

Проверка ARP включена без снупинга. Таблицы привязок нет, сверять не с чем — отбрасывается всё подряд, включая законный трафик.

Лимит в одно устройство на порту с телефоном. За телефоном стоит компьютер, устройств два, порт гаснет в первый же рабочий день.

Порт погашен защитой и забыт. Режим, гасящий порт намертво, требует ручного включения. Без журнала и оповещения это превращается в «интернет пропал, приходите».

Статические устройства без привязок. Серверы и принтеры адреса по DHCP не получают, в таблицу привязок не попадают — и проверка ARP отрезает их первыми.

Как проверять

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

show port-security — на каких портах привязка включена и какие адреса разрешены. Порт с включённой защитой и пустым списком адресов не пропускает ничего вовсе: это самая частая ошибка.

show ip dhcp snooping — какие порты доверенные, а какие нет. Доверенным должен быть ровно один — тот, за которым стоит настоящий сервер. Ни одного доверенного порта означает, что адреса перестали получать все.

show ip arp inspection — включена ли проверка и какие порты она реально проверяет. Порт, для которого нет привязки, не проверяется: сверять не с чем. Сами привязки показывает show ip source binding.

И привычка, которая экономит больше всего времени: проверять защиту с двух сторон — что нарушитель действительно не проходит и что обычный пользователь при этом ничего не заметил. Защита, отрезавшая заодно и своих, снимается в первый же час, и сеть остаётся вообще без неё.

Команды — шпаргалка

# привязать порт к одному устройству
interface eth2
 switchport port-security                      # включить механизм на порту
 switchport port-security mac-address 0200.0000.6666
                                               # разрешить конкретный MAC.
                                               #   Cisco пишет их по четыре знака через точку
 switchport port-security maximum 1            # сколько MAC-адресов допускается
 switchport port-security violation shutdown   # что делать при нарушении:
                                               #   shutdown выключит порт,
                                               #   restrict отбросит и залогирует,
                                               #   protect отбросит молча

# оставить право раздавать адреса одному серверу
ip dhcp snooping                 # включить подглядывание за DHCP глобально
ip dhcp snooping vlan 1          # и отдельно в каждом нужном VLAN
interface eth3
 ip dhcp snooping trust          # trust — порт в сторону НАСТОЯЩЕГО сервера.
                                 #   Со всех остальных ответы DHCP отбрасываются

# не дать подменить чужой адрес в ARP
ip arp inspection vlan 1         # проверять ARP в этом VLAN
ip source binding 0200.0000.6666 vlan 1 192.168.80.66 interface eth2
                                 # запись привязки вручную: MAC, VLAN, IP и порт.
                                 #   Обычно таблица наполняется сама из snooping
interface eth3
 ip arp inspection trust         # на аплинке проверку выключают: там ходит
                                 #   чужой законный трафик

# что ещё закрывают на порту доступа
interface eth2
 spanning-tree portfast          # сразу в работу, без медленных состояний STP
 spanning-tree bpduguard enable  # появился BPDU — значит воткнули коммутатор:
                                 #   порт выключить
 storm-control broadcast level 5.00
                                 # потолок широковещания в процентах от полосы порта
 switchport nonegotiate          # не вести переговоры о транке: порт доступа
                                 #   не должен внезапно стать транком

# проверка
show port-security               # сводка по всем портам
show port-security interface eth2   # имя порта сужает вывод до него
show ip dhcp snooping            # какие VLAN под наблюдением и где доверенные порты
show ip arp inspection           # счётчики проверенных и отброшенных ARP
show ip source binding           # сама таблица привязок MAC-IP-порт
Две защиты связаны в пару: проверка ARP сверяет кадры с таблицей привязок, а наполняет эту таблицу подглядывание за выдачей адресов. Порознь вторая бесполезна — сверять будет не с чем.
Контрольные вопросы

Дальше — лабораторная работа «Защита доступа на коммутаторе»

Для неё нужен аккаунт: стенд поднимается персонально под вас — свои роутеры, свои конфиги, никто в них не мешает. Регистрация — почта и пароль.

Теория прочитана. Дальше — руками.

Личный стенд из настоящих роутеров разворачивается за секунды. Платформа проверяет не ответы на тесты, а состояние вашей сети: поднялись ли соседства, сошлись ли маршруты, ходит ли ping. Рядом — AI-наставник, который видит ваши конфиги и ведёт к решению, не выдавая готовое.

Начать бесплатно → бета открыта, доступ бесплатный