L2 Безопасность порта: port-security, DHCP snooping, DAI, 802.1X
Порт доступа на коммутаторе по умолчанию — дырка в сеть: воткнул кабель — и ты внутри, без вопросов. Для гостя в переговорке, для чьего-то домашнего роутера, для атакующего с ноутбуком это открытая дверь. Настоящая сеть так не строится. В этом модуле превратим порт из «дырки» в проходную с охраной: ограничим MAC, отловим чужой DHCP и ARP, поставим на вход аутентификацию 802.1X. Это блок CCNA Security и то, что отличает «сеть работает» от «сеть защищена».
- MAC-flooding и переполнение CAM — как свитч превращают в хаб, и чем это опасно
- Port-security: лимит MAC, sticky, три режима нарушения и err-disabled
- DHCP snooping (углубление из прошлого модуля): trusted/untrusted и таблица привязок
- DAI (Dynamic ARP Inspection) — как убить ARP-spoofing и MITM
- IP Source Guard — против подмены IP-адреса источника
- 802.1X: supplicant / authenticator / RADIUS, EAP, guest VLAN
- AAA и RADIUS vs TACACS+ — где какой
- BPDU Guard — чтобы чужой свитч не перехватил корень STP; плейбук err-disabled
Модуль 2: коммутатор учит MAC-адреса и хранит их в CAM-таблице; неизвестный unicast — флудит. Модуль 3: STP и BPDU, «один чужой свитч роняет сеть». Модуль 15: DHCP snooping делит порты на trusted/untrusted и строит таблицу привязок — сегодня на ней будет стоять DAI и IP Source Guard. Модуль 2 про ARP: «поддельный ARP-ответ уводит трафик» — сегодня закроем это навсегда. Если подзабылось — вернись, весь модуль стоит на этих кирпичах.
1. Заявка: «в переговорке кто-то влез в сеть серверов»
Формально «настроить порт» — минута. Но за этой заявкой — целый набор мер, каждая закрывает свой вектор атаки: одна ограничивает устройства на порту, вторая не даёт поднять чужой DHCP, третья ловит ARP-подмену, четвёртая вообще не пускает неаутентифицированного в сеть. Разберём их по очереди — и в конце соберём «эшелонированную оборону» порта доступа.
2. Почему порт доступа опасен: три классические атаки на L2
🌊 MAC-flooding (CAM overflow)
Атакующий шлёт лавину кадров с тысячами поддельных MAC. CAM-таблица переполняется, свитч «забывает» реальные привязки и начинает флудить весь unicast во все порты — превращается в хаб. Атакующий видит чужой трафик. Лечит — port-security.
🕵️ Rogue DHCP
Чужой DHCP-сервер (домашний роутер или злоумышленник) раздаёт свой шлюз — и весь трафик жертв идёт через него. Лечит — DHCP snooping (модуль 15).
🎭 ARP-spoofing / MITM
Атакующий шлёт поддельные ARP «я — ваш шлюз», уводит трафик на себя и читает/меняет его (man-in-the-middle). Лечит — DAI.
🪓 Чужой свитч и захват STP
Воткнутый свитч со «злыми» BPDU объявляет себя корнем STP и перекраивает топологию, кладя сеть. Лечит — BPDU Guard.
3. Port-security — сколько устройств и каких можно за портом
Идея простая: на порту доступа обычно сидит одно устройство (или ПК + IP-телефон за ним — два). Port-security говорит свитчу: «на этом порту разрешено не больше N MAC-адресов; лишний — нарушение».
- maximum N — сколько MAC разрешено (часто 1, для «ПК+телефон» — 2).
- sticky — свитч запоминает первый увиденный MAC как разрешённый и вписывает его в конфиг. Удобно: не надо вбивать MAC руками, но порт «прикипает» к первому устройству.
- violation-режим — что делать при нарушении:
| Режим | Что делает при лишнем MAC | Когда |
|---|---|---|
protect | молча отбрасывает кадры чужого MAC, порт живёт | мягко, но без следов — редко |
restrict | отбрасывает + инкремент счётчика + syslog/SNMP-trap | хочешь знать о нарушениях, но не ронять порт |
shutdown ⭐ | переводит порт в err-disabled (гасит) | по умолчанию и чаще всего — жёстко и заметно |
Порт в err-disabled «на ровном месте» — это почти всегда сработавший port-security
(кто-то воткнул второе устройство/мини-свитч) или BPDU Guard (воткнули свитч). Порт сам не
поднимется: убери лишнее и передёрни (shutdown → no shutdown) либо
настрой errdisable recovery cause psecure-violation для автоподъёма через таймер.
4. DHCP snooping — фундамент для остальной защиты
Из модуля 15: snooping делит порты на trusted (аплинк к настоящему DHCP-серверу) и
untrusted (клиентские). Серверные ответы (OFFER/ACK) с untrusted-порта режутся —
rogue DHCP не поднять. Но сегодня важнее побочный продукт: snooping строит
таблицу привязок — легитимные пары MAC ↔ IP ↔ порт ↔ VLAN. На этой
таблице стоят следующие два барьера.
5. DAI — конец ARP-спуфингу
ARP из модуля 2 доверчив: кто ответил «этот IP — мой», тому и верят. Атакующий шлёт поддельный
ARP-ответ «10.1.10.1 (шлюз) — это мой MAC» и уводит трафик жертвы на себя
(man-in-the-middle). Dynamic ARP Inspection ставит на пути проверку:
10.1.10.1 за MAC X на порту
gi0/5. А в таблице DHCP snooping этот IP закреплён за другим MAC/портом?» —
несоответствие.ip arp inspection trust, чтобы не проверять легитимные
устройства на статике.Ещё один барьер на той же таблице — IP Source Guard: он режет кадры, у которых IP-адрес источника не совпадает с привязкой snooping, — так нельзя «притвориться» чужим IP.
6. 802.1X — не пускать в сеть без аутентификации
Port-security ограничивает сколько устройств, но не кто они. 802.1X решает именно «кто»: пока устройство не прошло аутентификацию, порт закрыт для всего, кроме самой аутентификации. Три роли:
| Роль | Кто это | Что делает |
|---|---|---|
| Supplicant | клиент (ОС ноутбука, телефон) | предъявляет учётные данные (логин/пароль, сертификат) |
| Authenticator | коммутатор доступа | «посредник»: пропускает только EAP-обмен, остальное блокирует до успеха |
| Authentication server | RADIUS (напр., Cisco ISE, FreeRADIUS) | проверяет данные и говорит «пускать / не пускать / в какой VLAN» |
«Чем 802.1X лучше port-security?» Port-security проверяет только MAC — а MAC легко подделать (спуфинг). 802.1X проверяет личность (учётные данные/сертификат) через RADIUS — подделать куда сложнее. На практике их часто комбинируют: 802.1X для аутентификации + port-security как второй барьер.
7. AAA: RADIUS и TACACS+
За 802.1X и за доступом инженеров к самому оборудованию стоит AAA — три «A»: Authentication (кто ты), Authorization (что тебе можно), Accounting (что ты делал). Реализуют её два протокола:
| RADIUS | TACACS+ | |
|---|---|---|
| Автор | открытый (IETF) | Cisco |
| Транспорт | UDP | TCP |
| Шифрует | только пароль | весь пакет целиком |
| A+A | объединяет authn+authz | разделяет — гибче для команд |
| Где | доступ пользователей в сеть (802.1X, Wi-Fi, VPN) | администрирование устройств (кто какие команды на роутере) |
8. BPDU Guard — чтобы чужой свитч не сломал STP
Из модуля 3: STP выбирает корень по BPDU. Воткнутый в порт доступа свитч может прислать «лучшие»
BPDU и стать корнем — топология перекроится, начнётся переключение, часть сети моргнёт или ляжет.
На портах доступа свитчей быть не должно, поэтому там включают BPDU Guard: пришёл
BPDU на access-порт — порт немедленно в err-disabled. Плюс PortFast,
чтобы клиентский порт поднимался мгновенно, минуя стадии STP.
9. Мини-лаба: увидь свою «поверхность атаки»
Без оборудования — на своём компьютере, чтобы концепции стали руками:
Что понять: в домашней сети тебя ничто не защищает — любой в твоём Wi-Fi может
попробовать ARP-spoofing, и твой arp -a покажет «шлюз» с чужим MAC. В корпоративной
сети именно DAI + snooping + 802.1X делают это невозможным. Ты только что посмотрел ровно те данные,
на которых стоит вся защита порта.
10. Плейбук: «порт в err-disabled» и «новое устройство не пускается»
show interface gi0/5 status → err-disabled;
show errdisable recovery и логи скажут причину: psecure-violation
(port-security), bpduguard (чужой свитч), arp-inspection и т.д. Причина = диагноз.show port-security address, передёрни порт shutdown/no
shutdown.show authentication sessions, доступность RADIUS, настройки клиента. Часто — принтер
без 802.1X, ему нужен MAB (MAC Authentication Bypass).11. Частые ошибки
1) Включили DAI/snooping, но забыли trust на аплинке → зарубили легитимный
сервер/шлюз. 2) Port-security maximum 1 там, где ПК + IP-телефон (нужно 2, а для
телефона — отдельный voice VLAN). 3) BPDU Guard на порту, куда позже воткнули легитимный свитч →
err-disabled. 4) 802.1X без плана для устройств без supplicant (принтеры, камеры) → они выпадают;
решение — MAB.
12. Словарик модуля
| Термин | По-английски | Смысл в одну строку |
|---|---|---|
| CAM-таблица | CAM / MAC address table | память свитча «MAC → порт»; её переполняют MAC-flooding'ом |
| Port-security | port security | лимит и/или список разрешённых MAC на порту |
| Sticky MAC | sticky | свитч сам запоминает первый MAC как разрешённый |
| err-disabled | error-disabled | состояние «порт погашен из-за нарушения» |
| DHCP snooping | DHCP snooping | trusted/untrusted порты + таблица привязок MAC↔IP |
| DAI | Dynamic ARP Inspection | проверка ARP по таблице snooping — против ARP-spoofing |
| IP Source Guard | IPSG | режет кадры с чужим IP-источником |
| 802.1X | port-based NAC | аутентификация доступа к порту через RADIUS |
| Supplicant | supplicant | клиент, который проходит аутентификацию 802.1X |
| MAB | MAC Authentication Bypass | вход по MAC для устройств без 802.1X (принтеры) |
| AAA | authn/authz/accounting | кто ты / что можно / что делал — RADIUS и TACACS+ |
| BPDU Guard | BPDU guard | гасит access-порт, если на него пришёл BPDU (чужой свитч) |
1. На порту доступа стоит ПК, за ним IP-телефон, а сотрудник иногда подключает второй ноут в свитч-переходник. Порт постоянно уходит в err-disabled. Что настроить правильно?
Порт «переходник» = несколько MAC → port-security с maximum 1 роняет его. Правильно:
для телефона — отдельный voice VLAN (телефон и ПК считаются корректно), maximum
поднять до реального числа (2), а мини-свитчи под столом — запретить оргмерами. Если это ноут
подрядчика — ему не место на этом порту, тут как раз 802.1X.
2. Включили DAI на VLAN 10, и сразу «отвалился» шлюз — пинги до него не проходят. Почему?
Забыли пометить аплинк к роутеру/шлюзу как ip arp inspection trust. Шлюз на
статике, его нет в таблице DHCP snooping, поэтому DAI считает его ARP «поддельным» и режет.
Аплинки к инфраструктуре всегда trust — и для snooping, и для DAI.
3. Чем принципиально отличается защита, которую даёт port-security, от защиты 802.1X?
Port-security контролирует сколько и какие MAC — но MAC подделывается. 802.1X контролирует личность (учётные данные/сертификат) через RADIUS — до аутентификации порт закрыт вообще. Первое — «не больше N устройств», второе — «только те, кому реально разрешено». В зрелой сети — оба вместе.
4. Как одна таблица DHCP snooping усиливает сразу три механизма?
Snooping строит легитимные привязки MAC↔IP↔порт↔VLAN. На них стоят: DAI (сверяет ARP-ответы), IP Source Guard (сверяет IP-источник кадра) и косвенно контроль адресов. Поэтому snooping включают первым — без его таблицы DAI и IPSG работать не смогут.
Оборону построили — но откуда ты вообще узнаешь, что где-то сработал port-security, упал линк или пополз трафик? Сеть должна рассказывать о себе: логи, счётчики, потоки, время. Следующий модуль — про наблюдаемость сети: Syslog, SNMP, NetFlow и NTP, без которого все метки времени врут.