← Všechny kurzyZpět do simulátoru →

Switch do hloubky

L2 mechanika a bezpečnost: MAC tabulka a flooding, 802.1Q rámec, port security, VLAN hopping, DHCP snooping a DAI, ochrana Spanning Tree.

Tohle je textový náhled lekcí pro čtení. Plná verze – interaktivní simulátor s animacemi, úlohami a kvízy – běží v aplikaci.

▶ Spustit interaktivní verzi

Lekce 1: Jak switch doopravdy přepíná

MAC learning

SWPC-APC-BPC-CSRVMAC → port

Návštěvník si v zasedačce zapojí notebook do zásuvky ve zdi – a za pár minut může odposlouchávat cizí provoz, nebo mu leží celá firemní síť. Jak je tohle možné a jak tomu zabránit, je celý tenhle kurz. A začíná to u toho, jak switch doopravdy funguje uvnitř. Jak switch ví, kam poslat rámec? Učí se sám. U každého příchozího rámce si přečte zdrojovou MAC adresu a zapamatuje si, na kterém portu ji viděl – do MAC tabulky (CAM). Příště, když má pro tu MAC něco doručit, pošle to jen na ten jeden port, ne všude. Switch nikdy nečte IP (to je práce routeru) – pracuje čistě s MAC adresami na 2. vrstvě. Tahle tabulka je srdce switche.

Krok za krokem

  1. PC-A pošle rámec. Switch si přečte jeho zdrojovou MAC a port, kterým přišel.
  2. Zapíše do MAC tabulky: „AA:..:A1 je na portu P1". Naučil se, kde PC-A je.
  3. Až bude mít pro AA:..:A1 něco, pošle to jen na P1 – ne na všechny porty. Tabulka šetří síť.

Flooding neznámé MAC

SWPC-APC-BPC-CSRVcíl PC-C? neznám

Co když switch ještě nezná cílovou MAC (není v tabulce)? Nezahodí rámec – udělá flooding: pošle ho na všechny porty kromě toho, odkud přišel (unknown unicast flooding). Správný příjemce odpoví, switch se z té odpovědi naučí jeho port, a příště už to pošle adresně. Stejně se zachází s broadcastem (cíl „všem") – ten se rozešle vždy všude v dané VLANě. Flooding je normální a krátkodobý; problém nastane, jen když se tabulka rozbije (další lekce).

Krok za krokem

  1. SRV chce poslat PC-C, ale switch nezná MAC PC-C (není v tabulce).
  2. Switch floodne rámec na všechny ostatní porty. Doletí ke všem, ale jen PC-C odpoví.
  3. Z odpovědi PC-C se switch naučí jeho port. Příště už žádný flood – pošle to adresně.

Aging a kapacita tabulky

SWPC-APC-BPC-CSRVMAC → portAA:..:A1 → P1BB:..:B → P2CC:..:C → P3

MAC tabulka není nekonečná ani věčná. Každý záznam má časovač (aging timer), typicky kolem 5 minut: když se daná MAC chvíli neozve, switch ji z tabulky vyhodí (zařízení se mohlo přepojit nebo vypnout). Tabulka má taky omezenou velikost (kapacitu CAM). Když se zaplní, switch se nemá kam učit nové MAC a začne floodovat – a přesně toho zneužívá útok, který si ukážeme ve 3. lekci (CAM overflow). Aging i kapacita jsou tedy nejen technický detail, ale i bezpečnostní téma.

Krok za krokem

  1. Tabulka plná aktivních záznamů. PC-B se ale chvíli neozval…
  2. …tak po aging timeru switch jeho záznam vyhodí. Tabulka drží jen to, co se ozývá.
  3. A pozor: kdyby se tabulka celá zaplnila, switch začne floodovat všechno. Toho zneužívá útok CAM overflow – lekce 3.

▶ Otevřít v simulátoru

Lekce 2: Uvnitř rámce a 802.1Q

Ethernetový rámec

SWPC-APC-BPC-CSRVcíl MACzdroj MACtypdataFCS

Pojďme dovnitř rámce (frame) – jednotky 2. vrstvy. Důležité pole jsou dvě adresy: cílová MAC (komu) a zdrojová MAC (od koho), pak typ/délka a samotná data, a na konci kontrolní součet (FCS). Switch se rozhoduje jen podle těchhle MAC adres – IP uvnitř ho nezajímá. Zdrojovou MAC použije k učení, cílovou k doručení. Tohle je celý „jazyk", kterým switch mluví.

Krok za krokem

  1. Cílová MAC = komu rámec patří. Podle ní switch rozhodne, na který port doručit.
  2. Zdrojová MAC = od koho. Podle ní se switch učí (zapíše ji k příchozímu portu).
  3. Uvnitř jsou data (i s IP paketem) a na konci FCS. Ale switch IP nečte – jede čistě po MAC. To je L2.

Značka 802.1Q

SWPC-APC-BPC-CSRVaccess: bez značky

Když má jeden spoj (trunk) nést víc VLAN (co je VLAN, znáš z kurzu Switching a VLANy), jak switch pozná, do které VLANy rámec patří? Vloží do rámce značku 802.1Q – krátké 4bajtové pole hned za zdrojovou MAC, které nese hlavně VLAN ID (číslo 1–4094). Druhý switch značku přečte, zařadí rámec do správné VLANy a značku zase odebere, než ho předá koncovému zařízení (to o VLAN nic neví). Tagování je tedy jen mezi switchi na trunku; access port ke koncovému zařízení je vždy bez značky.

Krok za krokem

  1. PC-A pošle obyčejný rámec bez značky (o VLAN nic neví). Přijde na access port ve VLAN 20.
  2. Než rámec pošle trunkem na druhý switch, vloží 802.1Q značku s „VLAN 20". Teď je jasné, kam patří.
  3. Druhý switch značku přečte, zařadí do VLAN 20 a zase ji odebere, než to dá koncovému PC. Tagování je jen mezi switchi.

Native VLAN

SWPC-APC-BPC-CSRVnative VLAN = bez značky

Jedna výjimka: na trunku existuje native VLAN – jediná VLANa, jejíž rámce jdou bez značky (untagged). Historicky kvůli zařízením, co 802.1Q neuměla. Je to ale bezpečnostní riziko: když mají dva propojené switche jinou native VLAN, rámce mohou „přeskočit" do nesprávné VLANy (native VLAN mismatch). A útok VLAN hopping přes dvojité tagování native VLANy přímo zneužívá (lekce 4). Pravidla z praxe: native VLAN na obou koncích stejná, a ideálně nepoužívaná dedikovaná VLANa, ve které nejsou žádná data.

Krok za krokem

  1. Na trunku jde jedna VLANa bez značky – native VLAN. Všechny ostatní jsou tagované.
  2. Když mají switche jinou native VLAN, netagovaný rámec skončí ve špatné VLANě (mismatch). Bezpečnostní díra.
  3. Pravidlo: native VLAN na obou koncích stejná a ideálně nepoužívaná (žádná data). Tím zavřeš i VLAN hopping (lekce 4).

▶ Otevřít v simulátoru

Lekce 3: Port security do hloubky

CAM overflow (MAC flooding)

SWPC-APC-BPC-CSRVMAC → portfake..01 → P2fake..02 → P2fake..03 → P2

Teď první L2 útok – a navazuje přesně na MAC tabulku. Při MAC flooding útočník chrlí do switche záplavu rámců s vymyšlenými zdrojovými MAC. Switch se je poslušně snaží naučit, až mu přeteče CAM tabulka (CAM overflow). Plný switch se nemá kam učit legitimní MAC – nové/neznámé cíle nemá kam ukládat a flooduje je na všechny porty: chová se čím dál víc jako hub. Útočník tak odposlechne provoz, který by k němu jinak vůbec nedorazil. Obrana? Omezit, kolik MAC smí být na portu – port security (další moduly).

Krok za krokem

  1. Útočník na PC-B chrlí rámce s tisíci falešných MAC. Switch se je snaží učit…
  2. …až přeteče CAM. Plný switch neznámé cíle flooduje na všechny porty – chová se čím dál víc jako hub.
  3. Provoz SRV → PC-A teď doletí i k útočníkovi (PC-B). Odposlech! Obrana = port security.

Port security a sticky MAC

SWPC-APC-BPC-CSRVmax MAC = 1

Port security je obrana přímo na portu switche. Řekneš mu: „na tomhle access portu smí být nejvýš N MAC adres" (typicky 1 – jeden počítač). Když se objeví víc, je to porušení. Navíc se dá MAC uzamknout (sticky): switch si zapamatuje první naučenou MAC a jen tu pak pustí – kdokoli jiný neprojde. Tím padá MAC flooding (útočník nenaplní tabulku přes jeden port) i prosté „přepojím si cizí PC do zásuvky". V tomhle simulátoru to vyzkoušíš: na managed switchi v záložce Porty nastavíš max MAC a povolenou MAC.

Krok za krokem

  1. Na portu PC-B nastavíš max 1 MAC. Jeden počítač = v pořádku.
  2. Sticky: switch si uzamkne MAC PC-B. Jen ta na portu projde.
  3. Útočník chce floodovat falešné MAC nebo přepojit cizí PC → porušení, port zasáhne. MAC flooding padá.

Reakce na porušení

SWPC-APC-BPC-CSRVprotect: tiše zahodí

Co se stane při porušení port security? Jsou tři režimy reakce. Protect: zakázané rámce tiše zahodí, nic nehlásí. Restrict: zahodí je a navíc zaznamená (log/čítač) – víš, že se něco děje. Shutdown (výchozí a nejpřísnější): port úplně vypne (err-disabled), dokud ho správce ručně neobnoví. Volba je kompromis mezi bezpečností a provozem: shutdown je nejbezpečnější, ale jeden omyl shodí port; protect/restrict provoz nepřeruší, ale útočníka jen brzdí. V praxi se na koncových portech často volí restrict nebo shutdown.

Krok za krokem

  1. Protect: zakázané rámce tiše zmizí. Nejmírnější – ale ani nevíš, že se něco dělo.
  2. Restrict: zahodí a zaznamená. Provoz běží dál, ale máš stopu pro vyšetření.
  3. Shutdown (výchozí): port se úplně vypne, dokud ho ručně neobnovíš. Nejbezpečnější, ale nejtvrdší.

▶ Otevřít v simulátoru

Lekce 4: VLAN hopping

Dvojité tagování

SWPC-APC-BPC-CSRVtag1 nativetag2 oběťútok

VLAN hopping = útok, který se dostane do cizí VLANy, kam by neměl. První varianta: dvojité tagování (double tagging). Útočník (v native VLANě) pošle rámec se dvěma 802.1Q značkami. První switch odebere vnější značku (je to jeho native VLAN, jde untagged) a pošle rámec dál – jenže pod ním zůstane druhá značka, mířící do cílové VLANy oběti. Druhý switch ji přečte a doručí do té VLANy. Je to jednosměrné – odpověď oběti jde zpět normální cestou (s jednou značkou), takže se k útočníkovi nevrátí; funguje jen z native VLANy – ale stačí to k vstříknutí útoku. Obrana je v dalším modulu.

Krok za krokem

  1. Útočník (v native VLANě) pošle rámec se dvěma značkami: vnější = native, vnitřní = VLANa oběti.
  2. První switch sloupne vnější značku (je to jeho native → untagged) a rámec pošle dál. Zůstane druhá značka.
  3. Druhý switch přečte zbylou značku a doručí útok do VLANy oběti. Hopping! Jednosměrné, ale účinné.

DTP a switch spoofing

SWPC-APC-BPC-CSRVDTP: chceš trunk?

Druhá varianta VLAN hoppingu: switch spoofing přes DTP. Mnoho switchů má porty ve výchozím nastavení v režimu, kdy samy vyjednávají trunk (Dynamic Trunking Protocol) – kvůli pohodlí (propojíš dva switche a trunk naskočí sám), jenže to je i díra. Útočník se připojí a předstírá, že je switch, který chce trunk. Když port DTP přijme, vznikne trunk – a útočník rázem vidí všechny VLANy najednou (trunk nese vše). Z access portu pro jeden počítač se stane brána do celé sítě. Příčina: automatické vyjednávání trunku tam, kde nemá co dělat. Obrana je jasná – další modul.

Krok za krokem

  1. Port je ve výchozím nastavení ochotný vyjednat trunk (DTP). Čeká, jestli se ozve switch.
  2. Útočník předstírá switch a požádá o trunk. Port souhlasí → vznikne trunk.
  3. Trunk nese všechny VLANy – útočník je vidí naráz. Z portu pro jedno PC se stala díra do celé sítě.

Obrana proti hoppingu

SWPC-APC-BPC-CSRVport = access natvrdo (DTP off)

Obrana proti VLAN hoppingu je naštěstí přímočará a je to hygiena portů: (1) Na portech ke koncovým zařízením vypni DTP a nastav je natvrdo jako access (žádné automatické vyjednávání trunku). (2) Native VLAN nastav jako dedikovanou nepoužívanou VLANu, ve které nejsou žádná data – tím padá double tagging. (3) Na trunku povol jen potřebné VLANy (pruning), ne všechny. (4) Nepoužívané porty administrativně vypni. Pár pravidel, a obě varianty hoppingu jsou pryč.

Krok za krokem

  1. Port k PC nastavíš natvrdo jako access a vypneš DTP. Switch spoofing nemá šanci.
  2. Native VLAN dáš dedikovanou nepoužívanou. Double tagging nemá z čeho vyjít.
  3. Na trunku jen potřebné VLANy a nepoužívané porty vypni. Hotovo – hopping zavřen.

▶ Otevřít v simulátoru

Lekce 5: DHCP a ARP obrana

Rogue DHCP (MITM)

SWPC-APC-BPC-CSRV„kdo mi dá IP?"

Další L2 hrozba cílí na DHCP (automatické přidělování IP). Útočník připojí do sítě podvodný DHCP server (rogue DHCP). Když si klient řekne o IP, může mu odpovědět dřív než ten pravý – a podstrčit mu svou IP jako výchozí bránu. Od té chvíle teče všechen provoz klienta přes útočníka (man-in-the-middle): může ho odposlouchávat nebo měnit. Klient přitom o ničem neví – dostal „IP a bránu", jako vždycky. Tohle je nebezpečné právě proto, že DHCP standardně nikdo neověřuje. Obrana? DHCP snooping – další modul.

Krok za krokem

  1. PC-A si řekne o IP přes DHCP (broadcast „kdo mi pomůže?").
  2. Rogue DHCP útočníka odpoví dřív: „tady máš IP a bránu = já". PC-A netuší.
  3. Teď všechen provoz PC-A teče přes útočníka (MITM). Může odposlouchávat i měnit. Obrana = DHCP snooping.

DHCP snooping

SWPC-APC-BPC-CSRVtrusted ↑untrusted

DHCP snooping je obrana přímo na switchi. Princip: porty se rozdělí na důvěryhodné (trusted) a nedůvěryhodné (untrusted). DHCP odpovědi (nabídky IP/brány) switch přijme jen z trusted portů – typicky uplink směrem k pravému DHCP serveru. Přijde-li DHCP nabídka z untrusted portu (kde je připojené koncové PC nebo útočník), switch ji zahodí. Tím rogue DHCP padá. Switch si navíc buduje vazební tabulku (binding table) „MAC + IP + port", která se hodí pro další obranu (DAI – příští modul).

Krok za krokem

  1. Porty rozdělíš: uplink k pravému DHCP = trusted, porty ke koncovým PC = untrusted.
  2. Útočník zkusí poslat DHCP nabídku z untrusted portu → switch ji zahodí. Rogue DHCP padá.
  3. Switch si u legitimních klientů zapíše MAC + IP + port do binding table. Bude se hodit pro DAI.

Dynamic ARP Inspection

SWPC-APC-BPC-CSRVpodvržené ARP: „brána = já"

Poslední z trojice je Dynamic ARP Inspection (DAI) – obrana proti ARP spoofingu. Připomeň si z kurzu Jak fungují sítě: ARP překládá IP na MAC. Útočník může rozeslat podvržené ARP („IP brány = moje MAC"), čímž si k sobě stáhne provoz oběti (zase MITM). DAI tomu zabrání: na nedůvěryhodných portech kontroluje každý ARP proti binding table z DHCP snoopingu. Sedí „MAC + IP" se záznamem? ARP projde. Nesedí (podvod)? Zahodí ho. DHCP snooping a DAI tak tvoří dvojici: snooping ví, kdo má jakou IP, a DAI to vynucuje i pro ARP.

Krok za krokem

  1. Útočník rozešle podvržené ARP: „IP brány = moje MAC". Chce si stáhnout provoz oběti.
  2. DAI ten ARP porovná s binding table (z DHCP snoopingu): má ta MAC opravdu tu IP?
  3. Nesedí (podvod) → ARP se zahodí. ARP spoofing padá. Snooping + DAI = silná dvojka proti MITM.

▶ Otevřít v simulátoru

Lekce 6: Ochrana Spanning Tree

Rogue root a BPDU útok

SWPC-APC-BPC-CSRVlegitimní root = páteřní switch

Útočit jde i na Spanning Tree (z kurzu Redundance a Spanning Tree). STP volí root bridge podle nejnižšího bridge ID. (Simulátor počítá strom zvlášť pro každou VLANu – jako Cisco PVST+.) Když útočník připojí switch (nebo software) s uměle nízkou prioritou, prohlásí se za root a STP přepočítá strom tak, že provoz začne téct přes něj – odposlech, nebo aspoň destabilizace sítě. Stačí k tomu poslat podvržené BPDU (zprávy, kterými si switche STP počítají). Příčina: switch věří jakémukoliv BPDU na jakémkoliv portu – i tam, kde má být jen koncové PC. Obrana je v dalších modulech (BPDU Guard, Root Guard).

Krok za krokem

  1. Normálně je root centrální páteřní switch. Strom je postavený rozumně kolem něj.
  2. Útočník pošle podvržené BPDU s extra nízkou prioritou: „já jsem root". STP mu uvěří.
  3. Strom se přepočítá a provoz začne téct přes útočníka. Odposlech / destabilizace. Obrana → BPDU/Root Guard.

PortFast a BPDU Guard

SWPC-APC-BPC-CSRVPortFast

První ochrana STP: PortFast + BPDU Guard na access portech (kam patří koncové PC). PortFast nechá takový port rovnou přejít do forwarding (PC nemusí čekat na STP). Ale tím by byl zranitelný – proto se přidá BPDU Guard: na PortFast portu se žádné BPDU nečekají, je tam přece jen počítač. Kdyby na takovém portu jakékoli BPDU dorazilo (někdo tam připojil switch nebo útočníka), BPDU Guard port okamžitě vypne (err-disabled). Útok na STP tak skončí dřív, než začne. (PortFast a BPDU Guard znáš z kurzu Redundance a Spanning Tree – tady je vidíš z pohledu obrany proti rogue root útoku.)

Krok za krokem

  1. Na access portu k PC zapneš PortFast – port hned přeposílá, PC nečeká na STP.
  2. Přidáš BPDU Guard: na tomhle portu se žádné BPDU nečekají – je tam přece počítač.
  3. Kdyby tam někdo připojil switch a přišlo BPDU, port se okamžitě vypne. Rogue root nemá šanci naskočit.

Root Guard

SWPC-APC-BPC-CSRVroot je v páteři ✓

A co porty, kde switch být má (legitimní propojení switchů), ale nechceš, aby se ten druhý stal rootem? Tam slouží Root Guard. Hlídá: na chráněném portu smí přijít BPDU, ale NE „lepší" (superior) BPDU, které by udělalo souseda novým rootem. Kdyby takové dorazilo, Root Guard port přepne do stavu root-inconsistent (dočasně blokuje), dokud to nepřestane. Tím zafixuješ směr, odkud smí být root (do páteře), a zabráníš, aby ti někdo zvenčí převzal kořen stromu. BPDU Guard chrání access porty, Root Guard porty směrem k jiným switchům, odkud root přijít nesmí.

Krok za krokem

  1. Root chceš mít v páteři. Na trunku k jinému switchi zapneš Root Guard.
  2. Soused pošle superior BPDU („byl bych lepší root"). Root Guard to nedovolí.
  3. Port přejde do root-inconsistent (blokuje), dokud superior BPDU nepřestanou. Root zůstane, kde má.

▶ Otevřít v simulátoru

Lekce 7: Provoz a syntéza

SPAN a monitoring

SWPC-APC-BPC-CSRV

Trochu jiné, ale praktické téma: jak na switchi vidět provoz, aniž bys stál v cestě? Slouží k tomu SPAN (port mirroring): switch pošle kopii provozu z jednoho nebo více portů na zvolený monitorovací port. Tam si připojíš analyzér nebo IDS (vzpomeň na kurz Pokročilá bezpečnost – IDS sedí „mimo cestu" právě díky SPAN/TAP). Provoz dál normálně teče; SPAN jen zrcadlí. Je to základní nástroj pro diagnostiku (proč to nejede) i bezpečnost (co tu lítá za pakety).

Krok za krokem

  1. Mezi PC-A a serverem teče běžný provoz. Chceš ho vidět, ale nestát v cestě.
  2. Zapneš SPAN: switch pošle kopii provozu na monitorovací port (k PC-C s analyzérem/IDS).
  3. Originální provoz nedotčený teče dál; ty máš kopii pro diagnostiku i bezpečnost. Tak sedí IDS „mimo cestu".

Agregace linek a PoE

SWPC-APC-BPC-CSRV2 kabely = 1 linka

Dvě praktické vychytávky moderních switchů. Agregace linek (EtherChannel/LACP – z kurzu Redundance a Spanning Tree): svážeš víc fyzických kabelů do jedné logické linky – víc propustnosti a redundance bez smyčky (STP svazek vidí jako jeden port, takže na něm žádný neblokuje – smyčka fyzicky nevznikne, i když kabelů je víc). A PoE (Power over Ethernet): switch posílá po datovém kabelu i napájení – telefon, kamera nebo Wi-Fi AP se rozběhnou bez samostatné zásuvky, stačí jeden ethernetový kabel. Tyhle věci sice nejsou „bezpečnost", ale tvoří každodenní realitu přístupové vrstvy, kterou switch obsluhuje.

Krok za krokem

  1. Agregace: dva kabely svázané do jedné logické linky. Víc propustnosti i redundance, bez smyčky.
  2. PoE: po jednom kabelu jdou data i napájení. Kamera/telefon/AP běží bez vlastní zásuvky.
  3. Nejsou to bezpečnostní prvky, ale každodenní realita přístupové vrstvy, kterou switch obsluhuje.

Zabezpečená L2 a co dál

SWPC-APC-BPC-CSRVpřepínání: MAC tabulka, 802.1Q

Shrňme switch do hloubky. Naučili jsme switch přepínat (MAC tabulka, flooding, aging), rozebrali rámec a 802.1Q, a hlavně prošli L2 bezpečnost: port security proti MAC floodingu, obranu proti VLAN hoppingu (vypnout DTP, hlídat native VLAN), DHCP snooping + DAI proti MITM, a BPDU/Root Guard proti útokům na STP. Přístupová vrstva je první, kam se útočník dostane – a teď víš, jak ji zabezpečit. Další zastávka v rytmu kurzů: router do hloubky.

Krok za krokem

  1. Switch přepíná podle MAC tabulky a značkuje VLANy přes 802.1Q. To je jádro L2.
  2. A umíš ji zabezpečit: port security, obrana hoppingu, DHCP snooping + DAI, BPDU/Root Guard.
  3. Přístupová vrstva je zabezpečená. Další v rytmu switch-router-firewall: router do hloubky.

▶ Otevřít v simulátoru