8. modul · 8.1
A DNSSEC közérthetően
8. modul: Biztonság és hibaelhárítás · Olvasási idő: 11 perc
Tanulási cél: Ennek a leckének a végén közérthetően el tudja magyarázni, mit véd a DNSSEC, hogyan működik a bizalmi lánc, és miért romolhat el domainátvitelkor.
Kulcsfogalmak: DNSSEC, aláírás (RRSIG), kulcs (DNSKEY), DS-rekord, bizalmi lánc, validáló resolver, SERVFAIL
A probléma: honnan tudja, hogy egy válasz valódi?
Az 1. modulban láthatta, hogy a resolver egy sor kérdést tesz fel: a rootnak, a TLD-szervernek és az autoritatív névszervernek. A visszaérkező választ elhisszük, és bekerül a cache-be. A hagyományos DNS azonban nem ellenőrzi, hogy az adott válasz valóban a megfelelő névszervertől érkezett-e. Egy támadó, aki egy hamis választ el tud juttatni, mielőtt a valódi válasz megérkezne, elérheti, hogy a resolver azt higgye, az example.com a 203.0.113.66 címen található a 192.0.2.10 helyett. Ezt hívják cache poisoningnak: a cache "megmérgeződik", és mindenki, aki az adott resolvert használja, a rossz szerverhez jut el.
A DNSSEC (DNS Security Extensions) ezt a problémát a válaszok aláírásával oldja meg. A resolver ezáltal ellenőrizni tudja, hogy egy válasz valódi, és útközben nem változott meg.
Mit tesz, és mit nem tesz a DNSSEC
Ez a legfontosabb, amit meg kell jegyezni:
| A DNSSEC ezt teszi | A DNSSEC ezt nem teszi |
|---|---|
| Bizonyítja, hogy egy válasz a zóna valódi kezelőjétől érkezik | Titkosítja a DNS-forgalmat (mindenki láthatja, hogy mit kérdez le) |
| Bizonyítja, hogy a válasz útközben nem változott meg | Biztosítja a weboldalát vagy az e-mailjét (erre a https és az SPF/DKIM/DMARC szolgál) |
| Bizonyítja, hogy egy név valóban nem létezik | Megelőzi a saját rekordjaiban lévő hibákat: egy helytelenül aláírt rekord továbbra is helytelen |
Az aláírás úgy működik, mint a pecsét egy borítékon: mindenki elolvashatja a levelet, de azonnal látja, ha valaki felbontotta.
A három összetevő
A DNSSEC néhány rekordtípust ad hozzá. Ezeket nem Önnek kell létrehoznia (ezt a DNS-kezelő vagy a vezérlőpult teszi), de találkozhat velük:
- DNSKEY: a zóna nyilvános kulcsa. Ezzel bárki ellenőrizheti az aláírásokat.
- RRSIG: egy rekordcsoporthoz tartozó aláírás. Minden A-, MX- vagy TXT-válasz kap egy RRSIG-et. Egy aláírásnak van kezdő- és végdátuma: a zónát tehát rendszeresen újra alá kell írni.
- DS (Delegation Signer): a zóna kulcsának rövid "ujjlenyomata". Ez nem a saját zónájában, hanem a szülő zónában található: az
example.comesetében tehát a .com registrynél (Verisign), egy.nl-domain esetében pedig a SIDN-nél (a holland .nl nyilvántartója).
Így néz ki egy aláírt válasz (rövidítve):
$ dig example.com A +dnssec +noall +answer
example.com. 3600 IN A 192.0.2.10
example.com. 3600 IN RRSIG A 13 2 3600 20261119000000 20261029000000 30794 example.com. s7yJ5o...Az RRSIG-ben többek között az algoritmust (13 = ECDSA P-256 SHA-256-tal), a végdátumot (2026. november 19.), a kezdődátumot és a kulcs számát (30794) láthatja.
A bizalmi lánc
Miért a szülő zónában található a DS? Mert a saját zónájában lévő kulcs önmagában semmit sem bizonyít: egy támadó is küldhetne saját kulcsot. Ezért az ellenőrzés felülről lefelé halad:
- A resolver megbízik a root kulcsában. Ez be van építve minden validáló resolverbe (ez a trust anchor, azaz megbízhatósági horgony).
- A root rendelkezik egy DS-sel a .com számára, amelyet a root kulcsával írtak alá. Ebből tudja a resolver, milyen kulcsa kellene legyen a .com-nak.
- A .com zóna rendelkezik egy DS-sel az example.com számára, amelyet a .com kulcsával írtak alá.
- Az example.com zónának van egy DNSKEY-je, amely illeszkedik ehhez a DS-hez, és ezzel minden RRSIG ellenőrizhető.
Minden láncszem bizonyítja a következőt. Ha egy láncszem elszakad, az egész lánc megbízhatatlanná válik.
Egy validáló resolver (a legtöbb nagy nyilvános resolver, és egyre több szolgáltató) végigjárja ezt a láncot. Ha minden rendben van, megkapja a választ. Ha nem, a resolver nem ad választ, hanem a SERVFAIL hibaállapotot küldi vissza. A látogató számára ilyenkor úgy tűnik, mintha az oldal "nem is létezne", pedig a rekordok talán teljesen rendben vannak.
Ezt saját maga is megnézheti egy szándékosan elrontott domainnel:
$ dig dnssec-failed.org A @1.1.1.1
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL
; EDE: 9 (DNSKEY Missing): (no SEP matching the DS found for dnssec-failed.org.)A +cd ("checking disabled") kapcsolóval arra kéri a resolvert, hogy hagyja ki az ellenőrzést. Ha ekkor mégis választ kap, biztos lehet benne, hogy a probléma a DNSSEC-ben van:
$ dig +cd dnssec-failed.org A @1.1.1.1 +short
96.99.227.255Egy olyan domain, amely nem használ DNSSEC-et (nincs DS a szülő zónában), nem ad SERVFAIL-t: egyszerűen nincs aláírva, és "nem biztonságosként" engedik át.
Ahol elromlik: domainátvitel és kulcscsere
A DNSSEC önmagában szinte soha nem romlik el. A probléma akkor merül fel, ha a registrynél tárolt DS már nem illeszkedik a zónában lévő kulcshoz. Ez elsősorban a következő esetekben fordul elő:
- Névszerver- vagy DNS-szolgáltató-váltáskor. Az új szolgáltató saját kulccsal írja alá a zónát, de a registrynél még a régi szolgáltató DS-e szerepel. Ennek következménye: SERVFAIL mindenkinek, aki validáló resolvert használ. Ez a klasszikus hiba domainátvitel után.
- Kulcscserekor, amikor az új DS-t nem (időben) küldték el a registrynek.
- Amikor az aláírások lejárnak, mert a zónát már nem írják alá újra.
A biztonságos sorrend domainátvitelkor tehát:
- Távolítsa el a DS-t a registrynél (vagy kérje meg az új szolgáltatót, hogy adjon DS-t, amelyet beállít).
- Várjon, amíg a régi DS TTL-ideje lejár.
- Váltsa le a névszervereket.
- Kapcsolja be a DNSSEC-et az új szolgáltatónál, és helyeztesse el az új DS-t a registrynél.
Sok regisztrátor és vezérlőpult manapság automatikusan elintézi ezt, amíg a domain és a DNS ugyanannál a szolgáltatónál van. Ha ezek két különböző szolgáltatónál vannak, akkor Önnek magának kell átvinnie a DS-t.
Önálló ellenőrzés: DNSViz, Zonemaster és internet.nl
A láncot nem kell dig segítségével végignéznie. Léteznek ingyenes eszközök, amelyek ezt elvégzik Ön helyett, és megmutatják az eredményt.
A DNSViz (https://dnsviz.net/) az egész láncot ábraként rajzolja meg. Így használhatja:
- Írja be a kezdőlapon a domainnevet a keresőmezőbe (csak a nevet,
https://éswwwnélkül), és kattintson a Go gombra. - A DNSViz megmutatja a legutóbbi elemzést. Ha ez régi, vagy épp most változtatott valamin, kattintson az Update now gombra. Néhány másodperc múlva megjelenik az ábra.
- Olvassa az ábrát felülről lefelé: legfelül a root (
.), alatta a TLD (példáulhu), legalul az Ön domainje. Minden zóna egy keretben szerepel.
Amit az ábrán láthat:
| Az ábrán | Jelentés |
|---|---|
| Ovális, DNSKEY felirattal | A zóna egyik kulcsa. A szürkével kitöltött ovális az a kulcs, amely a többi kulcsot aláírja (a KSK, a SEP-jelzéssel); a fehér ovális rendszerint a hagyományos rekordokhoz tartozó kulcs (a ZSK) |
| Négyzet, DS felirattal, a fölötte lévő zónában | A szülő zónánál található ujjlenyomat. A DS-ből induló nyíl ahhoz a DNSKEY-hez mutat, amelyhez tartozik |
Lekerekített téglalap, például example.com/A | Egy hagyományos rekordcsoport. Az ide mutató nyíl attól a kulcstól indul, amely az aláírást (RRSIG) elhelyezte |
| Vonal két zóna között | A delegálás a szülőtől a gyermek felé |
A láncot így követheti: a DS (a szülő zónában) a DNSKEY-re mutat (az Ön zónájában), ez a DNSKEY pedig egy RRSIG-gel írja alá a rekordokat. Ez pontosan az a lánc, amelyet ebben a leckében megismert, csak lerajzolva.
A színek megmutatják, hogy minden rendben van-e:
- Kék: biztonságos (secure). A lánc megszakítás nélkül húzódik a roottól eddig az összetevőig.
- Fekete: nincs aláírva (insecure). Nincs DS, tehát nincs mit ellenőrizni. Ez nem hiba, a domain egyszerűen nem használ DNSSEC-et.
- Piros: hibás (bogus). Egy DS nem illeszkedik egy kulcshoz, vagy egy aláírás nem megfelelő. Ilyenkor egy validáló resolver SERVFAIL-t ad.
- Lila (egy aláírásnál): az aláírás lejárt, vagy még nem érvényes. A zónát már nem írják alá újra.
- Sárga: figyelmeztetés, például egy névszerver, amely nem válaszol megfelelően, vagy egy algoritmus, amelyet az eszköz nem ismer.
- Szürke és pontozott: egy olyan kulcsra hivatkozik, amely nem létezik. Ha egy pontozott DNSKEY-t lát egy DS alatt, akkor a szülő zónánál még egy régi kulcs DS-e szerepel: ez a klasszikus hiba domainátvitel után.
Egy összetevő mellett megjelenhet egy háromszög (figyelmeztetés) vagy egy kerek hibajel. Vigye a kurzort fölé, vagy nézze meg az ábra alatti listát: ott szövegesen is olvasható, mi a probléma.
Próbálja ki a sidn.nl domainnel (minden kék) és a dnssec-failed.org domainnel (piros, egy pontozott kulccsal a DS alatt).
Más eszközök, amelyek ugyanezt más szemszögből vizsgálják:
- Zonemaster (
https://zonemaster.net/): ellenőrzi a teljes zónáját úgy, ahogyan egy registry tenné, ideértve a DNSSEC-et is. Az eredmény egy lista zöld (rendben), narancssárga (figyelmeztetés) és piros (hiba) jelölésekkel. - internet.nl (
https://internet.nl/): a weboldal- és e-mail-teszt többek között megmutatja, hogy a DNSSEC rendben van-e az Ön domainjéhez és levelezőszervereihez, zöld pipákkal vagy piros keresztekkel. - Verisign DNSSEC Debugger (
https://dnssec-debugger.verisignlabs.com/): lépésről lépésre végigjárja a láncot, és minden lépésnél zöld pipát vagy piros keresztet helyez el. Hasznos, ha egy konkrét hibát keres.
Használja ezeket az eszközöket minden DNSSEC-módosítás után, és különösen a domainátvitel előtt és után. Hagyja, hogy az eszköz nyugodtan újra elemezzen: ezek az eszközök is cache-ekkel és TTL-ekkel dolgoznak.
A gyakorlatban: így néz ki egy vezérlőpulton
A Fiókomban a DNSSEC/DANE menüpont alatt kapcsolhatja be a DNSSEC-et egy domainnél; a vezérlőpult létrehozza a kulcsokat, és elküldi a DS-t a registrynek. A DirectAdminben és külső szolgáltatóknál, mint a Cloudflare, ez általában "DNSSEC bekapcsolása" néven szerepel; a Cloudflare ilyenkor megjelenít egy DS-rekordot, amelyet Önnek kell beállítania a regisztrátoránál. Más vezérlőpultok hasonlóan működnek: mindig van egy "kulcsok létrehozása" lépés (a DNS-szolgáltatónál) és egy "DS a registrynél" lépés (a regisztrátornál).
Összefoglalás
- A DNSSEC aláírja a DNS-válaszokat, így a resolver ellenőrizni tudja, hogy valódiak. Semmit nem titkosít.
- A DNSKEY a kulcs, az RRSIG az aláírás, a DS a szülő zónában lévő ujjlenyomat.
- Az ellenőrzés láncként halad a roottól az Ön domainje felé. Ha egy láncszem elszakad, a validáló resolver SERVFAIL-t ad.
- Szinte minden probléma abból adódik, hogy a registrynél lévő DS már nem illeszkedik, gyakran domainátvitel után.
- A
dig +cdparanccsal megállapíthatja, hogy egy probléma a DNSSEC miatt áll-e fenn. - A DNSViz megrajzolja a láncot: kék a biztonságos, fekete a nem aláírt, piros a hibás. A Zonemaster, az internet.nl és a Verisign DNSSEC Debugger jó második véleményt adnak.
Kvíz
Feladat
Z8.1 feladat: a DNSSEC megtekintése. Derítse ki, hogy a két domain közül melyiknél működik rendesen a DNSSEC, és melyiket rontották el szándékosan: sidn.nl és dnssec-failed.org. Kérdezze le mindkettőnél a DS-rekordot és az A-rekordot egy validáló resolveren keresztül (például 1.1.1.1 vagy 9.9.9.9), dig vagy egy online eszköz segítségével. Töltse ki: a sidn.nl DS-ének kulcsszámát (key tag, az első szám), és azt az állapotot, amelyet a dnssec-failed.org esetében kap.
Z8.1b feladat: a DNSViz olvasása. Elemezze az nlnetlabs.nl domaint a DNSViz-ben (https://dnsviz.net/, írja be a nevet, és kattintson a Go gombra; kattintson az Update now gombra, ha az elemzés elavult). Olvassa el az ábrát, és töltse ki: (1) az nlnetlabs.nl állapotát (biztonságos, nem aláírt vagy hibás), (2) a DNSKEY-rekordok algoritmusszámát (minden ovális tartalmazza alg= formában), (3) hány DNSKEY-ovális található az nlnetlabs.nl zónájában, (4) annak a szürkével kitöltött DNSKEY-nek a kulcsszámát (id=), amelyre a DS mutat, és (5) azt az állapotot, amelyet a DNSViz a dnssec-failed.org esetében mutat. Az ellenőrzés élőben kéri le ugyanezeket az adatokat.
O8.1 feladat: három DNSSEC-demózóna értékelése. Három demózónát készítettünk elő: signed-demo.dnspractice.com (megfelelő lánc), broken-demo.dnspractice.com (szándékosan elrontott) és unsigned-demo.dnspractice.com (nincs aláírva). Derítse ki zónánként, hogy biztonságos, hibás vagy nem aláírt, például a DNSViz vagy a dig +dnssec segítségével (figyeljen az AD-jelzőre, és SERVFAIL esetén próbálja ki a +cd kapcsolót is). Válassza ki az alábbiakban zónánként a válaszát.
További olvasnivaló
Ezek a cikkek a WebOké vezérlőpultjaiban leírt lépéseket mutatják be; más szolgáltatóknál a gombok más néven szerepelhetnek.
