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

DHCP: jak zařízení dostane adresu

Adresy se nerozdávají ručně: čtyři zprávy DORA, celý balíček nastavení (adresa, maska, brána, DNS), rozsah a doba zapůjčení, rezervace podle MAC, relay do vzdálených sítí – a nakonec cizí server i vyčerpaný rozsah a obrana na switchi.

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: Proč se adresy nerozdávají ručně

Ruční adresy a jejich meze

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAadresa nastavená ručně

Každé zařízení v síti potřebuje IP adresu – bez ní si nemá jak říct o data. V kurzu Proč sítě existují a jak putují data a Routing a IP adresy sis adresy nastavoval ručně a u tří strojů to je klidně v pořádku. Jenže ruční adresy mají tvrdý strop. Nikdo nedrží evidenci. Adresy si pamatuje správce v hlavě nebo v tabulce, která přestane sedět v okamžiku, kdy si někdo přinese notebook. Dva stroje dostanou stejné číslo – a to je konflikt: stroje si ho všimnou samy (ptají se po majiteli adresy), ale spravit ho musí člověk – síť najednou neví, komu data patří, a nefunguje to oběma. Návštěva nemá šanci. Kdo přijde na schůzku, musel by si adresu vyžádat u správce. A když se změní brána nebo DNS server, obcházíš každý stroj zvlášť. Proto vznikl DHCP: služba, která adresy půjčuje sama, hlídá, aby se neopakovaly, a k adrese rovnou přibalí i zbytek nastavení.

Krok za krokem

  1. U jednoho stroje je ruční adresa nejjednodušší věc na světě: napíšeš číslo a hotovo. Problém není v prvním stroji.
  2. Přibude druhý stroj a někdo se překlepne. Stejná adresa dvakrát = konflikt a spojení se rozpadne oběma. Zákeřné je, že to nevypadá jako chyba adresy, ale jako „občas to nejde“.
  3. Teď přijde návštěva s notebookem. Ruční systém na ni nemá odpověď – buď obtěžuje správce, nebo si tipne a způsobí konflikt.
  4. DHCP obrátí směr: adresu si nenastavuješ, vyžádáš si ji. Jedno místo drží evidenci, takže se nemůže stát, že jedno číslo dostanou dva.

Co všechno klient potřebuje

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAIP 192.168.1.50

Kdyby DHCP půjčoval jen adresu, byl by k ničemu. Zařízení potřebuje čtyři údaje, aby v síti opravdu fungovalo. 1) IP adresa – vlastní číslo, pod kterým ho ostatní najdou. 2) Maska podsítě – z ní zařízení pozná, koho má za souseda a komu může poslat data přímo (jak to maska dělá, rozebírá kurz ISO/OSI a TCP/IP: mapa sítě). 3) Výchozí brána – adresa routeru, kam posílá všechno, co není soused; bez ní se dostaneš po vlastní síti, ale ne dál (přesně ta výchozí cesta z kurzu Routing a IP adresy, jen z pohledu klienta). 4) DNS server – bez něj funguje adresa, ale ne jméno; uživatel to popíše jako „internet nejde“, i když technicky jde. DHCP proto neposílá číslo, ale celý balíček nastavení. To je jeho druhá, méně viditelná polovina: až změníš DNS server, přepíšeš ho na jednom místě a rozejde se sám.

Krok za krokem

  1. Adresa sama o sobě znamená jen „takhle se jmenuju číslem“. Zatím nevíš, s kým můžeš mluvit.
  2. Maska dovolí rozhodnout, koho má klient za souseda. Sousedovi pošle rámec přímo přes switch, bez routeru.
  3. Brána je adresa routeru. Bez ní se klient pohybuje jen po vlastní síti – ven se nedostane a vypadá to jako výpadek internetu.
  4. A DNS server: bez něj se dovoláš na adresu, ale ne na jméno. Uživatel to nahlásí jako „nic nefunguje“ – a přitom síť jede (kurz DNS a jména v síti).

Kde DHCP server bydlí

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAdoma: roli má router

Pod slovem „DHCP server“ si spousta lidí představí zvláštní krabici v serverovně. Ve skutečnosti je to role, ne kus železa – a různě velké sítě ji dávají různým prvkům. V domácnosti ji dělá router od poskytovatele; proto ti doma všechno funguje samo a nikdy jsi o DHCP neslyšel. V menší firmě ji zpravidla drží router nebo firewall na hraně sítě, protože ten už bránu i tak představuje. Ve větší firmě běží DHCP na serveru nebo na L3 switchi – blíž k tomu, kdo adresy potřebuje, a s možností spravovat víc sítí z jednoho místa. V simulátoru je to stejné: roli DHCP zapneš v detailu routeru, firewallu, L3 switche i běžného serveru. Podstatné je, že v jedné síti má tuhle roli jeden prvek. Dva servery, které rozdávají z téhož rozsahu, si začnou lézt do zelí – a přesně o tom je poslední lekce.

Krok za krokem

  1. Doma je DHCP schované v routeru od poskytovatele. Proto ti připojení funguje samo a nikdy jsi nic nenastavoval.
  2. V menší firmě roli obvykle drží router nebo firewall na hraně – stejně už je bránou pro všechny.
  3. Ve větší firmě běží DHCP na serveru nebo L3 switchi – z jednoho místa se dá obsloužit víc sítí najednou.
  4. Ať roli dáš komukoli, platí jedno: v jedné síti jeden DHCP server. Co dělají dva, uvidíš v poslední lekci.

▶ Otevřít v simulátoru

Lekce 2: DORA: čtyři zprávy

Discover: křik do tmy

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAnemám adresu ani bránu

Zapneš notebook. Nemá adresu, nemá masku, nemá bránu – neví o síti vůbec nic, ani jestli v ní nějaký DHCP server je a kde by ho hledal. Přesto musí nějak začít. Řeší to jedinou možnou cestou: zakřičí do tmy. Pošle DHCP Discover jako broadcast – rámec adresovaný „všem“, který switch rozešle do celé sítě (přesněji do celé té VLANy, z kurzu Switching a VLANy víš, že dál zeď nepustí). V hlavičce má jako odesílatele 0.0.0.0, protože žádnou adresu ještě nemá, a jako cíl 255.255.255.255, tedy „kdokoli, kdo tohle slyší“ (samé jedničky v adrese znamenají „všichni“, samé nuly „zatím nikdo“ – proto je odesílatelem 0.0.0.0). Zároveň přiloží svou MAC adresu – tu má vždycky, je natvrdo v síťovce – aby ho měl kdo poznat v odpovědi. (Pozor, „natvrdo“ znamená od výroby, ne nezměnitelně: co si stroj napíše do odesílaného rámce, si určuje sám – přesně toho využívá útok z poslední lekce.) Tenhle první krok je i důvod, proč DHCP nefunguje přes router bez pomoci: broadcast se na hranici sítě zastaví. K tomu se dostaneme ve čtvrté lekci.

Krok za krokem

  1. Klient po zapnutí neví nic: žádná adresa, žádná brána, žádné povědomí o tom, kdo v síti je.
  2. Pošle Discover: od 0.0.0.0 (nemám adresu) na 255.255.255.255 (komukoli). Přiloží svoji MAC, aby se dalo odpovědět jemu.
  3. Switch rámec rozešle na všechny porty té VLANy. Slyší ho i stroje, kterých se to netýká – a to je vlastnost, kterou později zneužije útočník.
  4. Router broadcast nepustí dál – tam DHCP hledání končí. Proto potřebují vzdálené sítě pomoc, o které je čtvrtá lekce.

Offer: nabídka, ne příkaz

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAvyber volnou adresu z rozsahu

Discover doletí k DHCP serveru a ten se poprvé ozve zprávou Offer – nabídkou. Není to ještě přidělení; je to „mám pro tebe tuhle adresu, chceš ji?“. Server si nejdřív ze svého rozsahu vybere adresu, která je volná, a než ji nabídne, dočasně si ji odloží stranou, aby ji mezitím nenabídl někomu jinému. Do nabídky přibalí i zbytek balíčku ze druhého modulu: masku, bránu, DNS a dobu, na jakou se adresa půjčuje. Odpovídá na MAC adresu klienta, protože ten pořád žádnou IP nemá. Když klient do pár desítek sekund neodpoví Requestem, server odloženou adresu zase uvolní – jinak by ji držel donekonečna kvůli stroji, který se mezitím vypnul. Slovo nabídka tu není náhodou. V síti může být serverů víc a klient může dostat nabídek několik – rozhodnutí je na něm. A přesně tuhle vlastnost využije podvržený server, který se snaží být rychlejší než ten pravý.

Krok za krokem

  1. Server dostal Discover a sáhne do rozsahu pro volnou adresu. Vybranou si odloží, aby ji mezitím nenabídl podruhé.
  2. Pošle Offer. Odpovídá na MAC klienta – ten pořád žádnou IP adresu nemá, takže jinak by ho nešlo oslovit.
  3. V nabídce není jen číslo – je v ní celý balíček ze druhého modulu, včetně doby, na jakou se adresa půjčuje.
  4. Je to nabídka, ne příkaz. Nabídnout může kdokoli – i cizí server, který se snaží stihnout to dřív. Pátá lekce ukáže, co z toho plyne.

Request a Acknowledge

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKARequest – zase broadcastem

Klient si z nabídek vybere jednu – zpravidla tu, která dorazila první – a odpoví zprávou Request. Zvláštní na ní je, že jde zase broadcastem, i když už klient ví, s kým mluví. Má to dobrý důvod: takhle se o jeho rozhodnutí dozvědí i ostatní DHCP servery a můžou své odložené nabídky pustit zpátky do rozsahu. Kdyby Request šel jen vybranému serveru, ostatní by adresy drželi zbytečně. Server pak potvrdí zprávou Acknowledge a teprve tímhle okamžikem je adresa opravdu zapůjčená: zapíše se do tabulky zápůjček s časem a MAC adresou klienta. Čtyři zprávy dohromady – Discover, Offer, Request, Acknowledge – se podle prvních písmen zkracují na DORA. Když si zapamatuješ jen jednu věc, ať je to tahle: první dvě zprávy jsou ptaní a nabídka, druhé dvě jsou volba a potvrzení.

Krok za krokem

  1. Klient si vybere nabídku a pošle Request. Znovu broadcastem, i když už ví, koho si vybral.
  2. Proto broadcast: ostatní servery se dozvědí, že vybraný nejsou, a vrátí svou odloženou adresu do rozsahu.
  3. Acknowledge je ta chvíle, kdy je adresa doopravdy zapůjčená. Server ji zapíše do tabulky s časem a MAC adresou.
  4. Čtyři zprávy = DORA. První dvě jsou ptaní a nabídka, druhé dvě volba a potvrzení.

Když odpoví dva

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKADiscover

Zastavme se u jedné věty ze třetího modulu, protože je důležitější, než vypadá: klient si obvykle vybere nabídku, která dorazila první. Ne tu nejlepší, ne tu od správného serveru – prostě tu nejrychlejší. DHCP totiž nemá žádné ověřování. Klient nemá jak poznat, jestli odpověď přišla od firemního serveru, nebo od notebooku někoho, kdo si v síti hraje. Nezná heslo, nekontroluje podpis, nemá seznam povolených serverů. Věří tomu, kdo byl rychlejší. Z toho plynou dvě věci. Zaprvé: mít v jedné síti dva DHCP servery omylem (třeba když někdo přinese domácí router a zapojí ho do zásuvky) rozhodí síť způsobem, který se hledá překvapivě těžko – část strojů dostane adresy odjinud než zbytek. Zadruhé: útočník to zvládne schválně, a protože v nabídce je i brána a DNS, může si sám sebe zapsat jako cestu ven. Obojí rozebere pátá lekce.

Krok za krokem

  1. Klient zakřičí Discover. Zatím nic nového – jenže tenhle broadcast slyší všichni v síti.
  2. Pravý server je dál – přes router a switch. Jeho nabídka je správná, ale letí déle.
  3. Cizí server je blíž, takže jeho nabídka dorazí dřív. A první nabídka vyhrává.
  4. Klient nemá žádný způsob, jak ověřit odesílatele. Věří rychlosti – a v nabídce je i brána a DNS.

▶ Otevřít v simulátoru

Lekce 3: Rozsah, lease a rezervace

Rozsah: odkud kam

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKA192.168.1.100 – .200

Rozsah – anglicky pool nebo scope, potkáš všechna tři slova – je to hlavní, co na DHCP serveru nastavuješ: od které adresy do které smí půjčovat. Zní to jako triviální políčko, ale rozhoduje o dvou věcech naráz. Kolik zařízení síť unese – rozsah od .100 do .150 uživí padesát klientů a padesátý první má smůlu, i kdyby byla podsíť sebevětší. A co zbude na adresy, které se nesmí půjčovat: router, servery, tiskárny. Proto se rozsah skoro nikdy nedělá přes celou podsíť. Typický návrh nechá spodní část ručně (třeba .1 až .99 pro infrastrukturu) a klientům dá vrchní (.100 až .200). Zbytek zůstane jako rezerva. V simulátoru rozsah najdeš v nastavení sítě – u každé sítě zvlášť, protože každá podsíť má vlastní adresy a vlastní hranice. A pozor: rozsah, který je moc malý, se neprojeví hned. Projeví se v den, kdy přijde víc lidí než obvykle.

Krok za krokem

  1. Rozsah říká, odkud kam smí server půjčovat. Tady sto adres pro klienty.
  2. Spodní část podsítě zůstává ručně: router, servery, tiskárny. Ty adresy se nesmí půjčit nikomu jinému.
  3. Klienti dostávají adresy z horní části. Infrastruktura a klienti si tak nelezou do cesty.
  4. Malý rozsah se neprojeví dnes, ale v den, kdy přijde víc lidí. Pak se stroje neptají špatně – jen není z čeho.

Co do rozsahu nepatří

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKArouter a servery: pevně, mimo rozsah

Do rozsahu nepatří tři druhy adres a každý z jiného důvodu. 1) Adresy, které už někdo má ručně. Router, DNS server, tiskárna, kamery – všechno, co jsi nastavil pevně. Kdyby je server půjčil, vznikne přesně ten konflikt z první lekce, jen tentokrát ho způsobí DHCP samo. 2) Adresa sítě a broadcast. První a poslední adresa každé podsítě má zvláštní význam – první je jméno celé podsítě, poslední znamená „všem tady najednou“ (rozebírá to kurz Dělení sítě: podsítě v praxi) – a klientovi se přidělit nesmí – server je proto přeskakuje sám. 3) Adresy, které si necháváš do zásoby. Až budeš příště přidávat server, oceníš, že máš kam. Praktické pravidlo zní: co má pevnou adresu, ať leží mimo rozsah. Alternativou je rezervace, o které je poslední modul téhle lekce – ta nechá adresu uvnitř rozsahu, ale přiváže ji ke konkrétnímu zařízení. Obojí je správně; horší je třetí možnost, totiž pevná adresa uprostřed rozsahu, o které DHCP server neví.

Krok za krokem

  1. Co má pevnou adresu, ať leží mimo rozsah. Jinak ji server jednou půjčí někomu dalšímu.
  2. Adresa sítě a broadcastová adresa mají zvláštní význam. Server je přeskakuje sám, klientovi je nepřidělí.
  3. Nejhorší varianta: pevná adresa uprostřed rozsahu, o které server neví. Jednou ji půjčí a máš konflikt.
  4. Když je rozsah čistý, DHCP dělá přesně to, co má – a konflikty adres z první lekce úplně zmizí.

Lease: půjčeno na čas

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAadresa na 8 hodin

Adresa se nedává, půjčuje se – a to na čas, kterému se říká lease (zápůjčka). Klient dostane spolu s adresou i informaci, jak dlouho platí; typicky hodiny až dny. Proč vůbec na čas? Kdyby se adresy půjčovaly natrvalo, rozsah by se postupně zaplnil stroji, které už dávno nikdo nezapnul – návštěvník, který tu byl jednou na hodinu, by držel adresu navždy. Lease tenhle problém řeší sám od sebe: co se neobnoví, propadne zpátky do rozsahu. Klient přitom o adresu nepřijde uprostřed práce. Zhruba v polovině doby si tiše řekne o prodloužení a server mu obvykle vyhoví – proto si obnovování nikdy nevšimneš. Délka zápůjčky je návrhové rozhodnutí: v kanceláři, kde sedí pořád stejní lidé, se hodí dlouhá (méně provozu, stabilnější adresy). Na letišti nebo v kavárně naopak krátká, protože se lidé rychle střídají a adresy se musí vracet.

Krok za krokem

  1. S adresou přijde i doba, na jakou platí. Není to dar, je to zápůjčka.
  2. Zhruba v polovině si klient tiše řekne o prodloužení. Proto o adresu uprostřed práce nepřijdeš.
  3. Kdo se neozve, o adresu přijde a ta propadne zpátky do rozsahu. Tím se pool sám čistí.
  4. Délku volíš podle provozu: dlouhá tam, kde jsou pořád titíž lidé, krátká tam, kde se rychle střídají.

Rezervace podle MAC

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAtiskárna: potřebuje pořád stejnou adresu

Někdy chceš obojí naráz: aby zařízení dostávalo adresu automaticky z DHCP, ale pokaždé tu samou. Typicky tiskárna, kamera, NAS nebo server, na který někdo odkazuje pevnou adresou. Řešením je rezervace: na serveru řekneš „zařízení s touhle MAC adresou dostane vždycky tuhle IP“. Klient nic nepozná – normálně si o adresu řekne přes DORA a normálně ji dostane, jen je pokaždé stejná. Proč MAC? Protože je to jediná věc, kterou klient má ještě než dostane adresu, jak víš z Discoveru. Oproti ručnímu nastavení má rezervace jednu velkou výhodu: nastavení zůstává na jednom místě. Když změníš bránu nebo DNS, tiskárna to dostane taky – zatímco stroj s ručně nastavenou adresou by ti tam zůstal s tím starým a jednou by ses divil, proč zrovna on nefunguje.

Krok za krokem

  1. Tiskárna se chová jako každý jiný klient – jenže lidé i systémy na ni odkazují pevnou adresou.
  2. Na serveru vznikne rezervace: tahle MAC adresa dostane vždycky tuhle IP.
  3. Klient si o adresu řekne úplně normálně přes DORA. Jen mu pokaždé vyjde ta samá.
  4. Výhoda proti ruční adrese: nastavení zůstává na jednom místě, takže změna brány nebo DNS doletí i sem.

▶ Otevřít v simulátoru

Lekce 4: Když je server jinde: relay

Broadcast přes router neprojde

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKApobočka: klient bez adresy

Vraťme se k tomu, čím končila druhá lekce. Klient hledá server broadcastem – a broadcast se zastaví na hranici sítě, protože router ho dál nepustí. To není chyba ani opomenutí; je to přesně to, proč routery existují. Kdyby broadcasty procházely, celý internet by byl jedna obří síť, kde každý slyší každého. Jenže to znamená, že klient v pobočce nikdy neuslyší DHCP server v centrále. Ať je server sebevýkonnější, ať je linka sebelepší – Discover k němu prostě nedoletí. Nabízejí se tři řešení. DHCP server v každé síti – funguje, ale znamená to spravovat rozsahy na deseti místech místo jednoho. Ruční adresy v pobočce – to je krok zpátky do první lekce. Nebo relay: necháme někoho, kdo v obou sítích je, aby zprávu přenesl. To je téma dalšího modulu.

Krok za krokem

  1. V pobočce se zapne stroj bez adresy. Chová se úplně stejně jako v centrále: zakřičí Discover.
  2. Discover doletí k routeru, protože ten je v pobočkové síti taky. A tam to končí.
  3. Router broadcast nepřepošle – a to je správně. Kdyby to dělal, byl by internet jedna obří síť.
  4. Server v centrále se o klientovi vůbec nedozví. Nepomůže výkon ani rychlá linka – zpráva k němu nedorazí.

Relay: přebalí a pošle dál

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAbroadcast doletí k routeru

DHCP relay (někdy relay agent) je funkce routeru, která tenhle problém řeší jednoduchým trikem. Router v pobočkové síti je – ten broadcast slyší. Když má zapnutý relay, neodhodí ho, ale přebalí: udělá z něj běžný adresný paket poslaný přímo na adresu DHCP serveru, kterou jsi mu ručně zadal při zapnutí relay. A protože už to není broadcast, projde bez potíží přes celou síť až do centrály. Trik má ještě druhou polovinu, bez které by to nefungovalo: relay do zprávy doplní, ze které sítě klient přišel. Server tak pozná, ze kterého rozsahu má půjčit – jinak by u sebe měl deset rozsahů a netušil by, který použít. Odpověď pak putuje zpátky stejnou cestou k relay, který ji doručí klientovi. V simulátoru relay zapneš u routeru a zadáš adresu serveru; klient v pobočce pak dostane adresu úplně stejně jako ten v centrále.

Krok za krokem

  1. Klient křičí jako vždycky a router ho slyší – v pobočkové síti přece je.
  2. Se zapnutým relay ho router neodhodí, ale přebalí na běžný paket mířený přímo na server.
  3. Do zprávy navíc doplní, ze které sítě klient přišel – jinak by server nevěděl, ze kterého rozsahu půjčit.
  4. Odpověď se vrací stejnou cestou a relay ji doručí klientovi. Ten o žádném triku neví.

Jeden server pro víc sítí

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKArozsah pro centrálu

Relay se vyplatí kvůli tomu, co umožní: jeden DHCP server pro celou firmu. Na jednom místě máš rozsahy pro všechny sítě, jeden přehled zápůjček, jedno místo, kde měníš DNS server nebo bránu. Kdybys místo toho měl DHCP v každé síti zvlášť, čeká tě deset míst na spravování a s nimi deset příležitostí, kde se něco rozejde. Má to i druhou stranu. Když centrální server vypadne, nedostane adresu nikdo – zatímco při serveru v každé síti by výpadek postihl jen jednu. Proto se v návrhu obvykle nesází všechno na jednu kartu: buď se DHCP zdvojí (dva servery, každý půjčuje z jiné poloviny rozsahu), nebo se aspoň hlídá jeho dostupnost. Je to stejná úvaha jako u DNS z kurzu DNS a jména v síti a stejná jako u odolnosti obecně: centralizace ušetří práci, ale soustředí riziko do jednoho bodu. Nic není zadarmo, jen si vybíráš, co je pro tvoji síť horší.

Krok za krokem

  1. Server drží rozsah pro centrálu a obsluhuje ji přímo, bez pomoci.
  2. A přes relay drží i rozsah pro pobočku. Jedno místo, jeden přehled, jedna změna DNS pro všechny.
  3. Jenže když tenhle server vypadne, nedostane adresu nikdo – ani centrála, ani pobočka.
  4. Proto se DHCP zdvojuje: dva servery, každý půjčuje z jiné poloviny rozsahu. Stejná úvaha jako u DNS.

▶ Otevřít v simulátoru

Lekce 5: Když DHCP zlobí

Cizí DHCP server

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAněkdo zapojil vlastní krabičku

Ze druhé lekce plyne nepříjemný závěr: klient věří první nabídce a nemá jak ověřit, kdo ji poslal. Stačí tedy do sítě dostat vlastní DHCP server, být blíž než ten pravý – a klienti si tvoje nastavení vezmou sami. Nejčastěji to není útok. Někdo přinese domácí router, zapojí ho do zásuvky, aby měl víc portů, a nevšimne si, že ta krabička rozdává adresy taky. Výsledek vypadá jako záhada: části strojů síť funguje, části ne, a záleží na tom, který server byl zrovna rychlejší. Zákeřnější je varianta úmyslná. V nabídce je totiž i brána a DNS – útočník tedy nemusí nic lámat, stačí, když se zapíše jako cesta ven. Od té chvíle mu teče veškerý provoz obětí přes jeho stroj a on si ho může číst nebo měnit. Je to jedna z nejlevnějších cest, jak se dostat doprostřed cizí komunikace, a nepotřebuje k ní žádnou zranitelnost – jen zásuvku.

Krok za krokem

  1. Do sítě přibude cizí DHCP. Většinou ne útokem – stačí domácí router zapojený „kvůli portům“.
  2. Discover je broadcast, takže ho slyší oba servery. Oba můžou nabídnout.
  3. Bližší server je rychlejší a klient bere první nabídku. Vyhrává vzdálenost, ne oprávnění.
  4. V nabídce byla i brána. Od téhle chvíle teče provoz oběti přes útočníka a ten si ho může číst.

Starvation: vysátý rozsah

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKADiscover s vymyšlenou MAC, znovu a znovu

Druhý útok jde na to opačně: nesnaží se odpovídat, ale vyčerpat. Útočník posílá Discover za Discoverem, pokaždé s jinou vymyšlenou MAC adresou, a server na každý poctivě odpoví nabídkou a adresu si odloží. Po chvíli je celý rozsah rozebraný mezi stroje, které vůbec neexistují. Tomu se říká DHCP starvation – vyhladovění. Pro uživatele to vypadá nevinně: nové zařízení se prostě nepřipojí, ostatní jedou dál, protože ta už adresu mají. Proto se to snadno svede na kabel nebo na Wi-Fi. Rozpoznáš to podle toho, že server hlásí plný rozsah, a přitom tolik zařízení v síti fyzicky není. Zákeřné je i pokračování: až rozsah dojde, může útočník nastoupit s vlastním serverem z předchozího modulu – a protože ten pravý už nemá co nabídnout, není s kým soutěžit. Dva útoky, které samostatně obtěžují, dohromady převezmou síť.

Krok za krokem

  1. Útočník posílá Discover za Discoverem, pokaždé s jinou vymyšlenou MAC adresou.
  2. Server nemá důvod nevěřit – na každý Discover odpoví nabídkou a adresu si odloží stranou.
  3. Za chvíli je rozsah plný – rozebraný mezi stroje, které v síti vůbec nejsou.
  4. Nové zařízení se nepřipojí, ostatní jedou dál. Proto se to svede na kabel – a proto se to hledá tak dlouho.

Obrana: snooping a port security

PCSWRDHCPPC-2CIZÍ DHCPPOBOČKAport k serveru: důvěryhodný

Obojí má společnou příčinu: switch nerozlišuje, ze kterého portu co přišlo, a bere všechno stejně. Obrana proto sedí přesně tam – na switchi, a znáš ji z kurzu Switch do hloubky. DHCP snooping rozdělí porty na důvěryhodné a nedůvěryhodné. Důvěryhodný je ten, za kterým opravdu stojí DHCP server nebo cesta k němu; všechny ostatní jsou nedůvěryhodné a switch z nich nabídky prostě zahodí. Cizí server tak může nabízet, co chce – k žádnému klientovi se to nedostane. Proti vyčerpání rozsahu pomáhá port security ze stejného kurzu: omezí, kolik různých MAC adres smí být za jedním portem. Útočník, který jich chce vystřídat stovky, narazí hned u prvních. Zbývá provozní půlka: všímat si. Rozsah, který se plní rychleji než obvykle, nebo zařízení, které dostalo bránu odjinud než zbytek – to jsou přesně ty stopy, kvůli kterým se sbírají logy (kurz Monitoring, logy a detekce).

Krok za krokem

  1. DHCP snooping označí port, za kterým opravdu stojí server (nebo cesta k němu), jako důvěryhodný.
  2. Z nedůvěryhodných portů switch nabídky zahodí. Cizí server může nabízet, ke klientům se to nedostane.
  3. Proti vyčerpání rozsahu pomůže port security: omezí počet MAC adres za portem, takže stovky vymyšlených neprojdou.
  4. A provozní půlka: všímat si. Rychle plnící rozsah nebo stroj s cizí bránou jsou přesně ty stopy z kurzu Monitoring, logy a detekce.

▶ Otevřít v simulátoru