Az irodai helyi hálózaton a belső név azonnal válaszol. Amint a VPN feláll, működése leáll, az alkalmazás időtúllépést jelez, az alagút pedig panasz nélkül továbbítja a forgalmat. Ami megváltozott, az a feloldó, és ennek a feloldónak van véleménye a privát címekről.

A rebind védelem egy konkrét trükk megállítására létezik. Egy szándékosan közzétett privát név eléggé hasonlónak tűnik, és a védelem elsül.

Előbb a választ olvassa el, csak utána a szabályt

A nevet attól a feloldótól kérdezze meg, amelyet a VPN valóban kioszt, ne attól, amelyet a laptopja otthon használ. Hasonlítsa össze a választ a várt rekorddal, és jegyezze fel, hogy a válasz üres, elutasított, vagy olyan nyilvános címekkel teli, amelyeket senki sem tervezett.

A tünetek átfedik egymást, ezért a válasz alakja dönti el a diagnózist. Az NXDOMAIN hiányzó rekord, a REFUSED hozzáférési szabály, a belső névhez tartozó nyilvános cím szabály- vagy osztott DNS-hiba, a helyes privát cím pedig, amelyet a kliens nem tud használni, egészen más probléma. Az elutasított kapcsolat vagy az elakadt kérés önmagában semmit sem bizonyít, ezért ezekben a jegyekben az első parancsnak lekérdezésnek kell lennie, nem újraindításnak. Írja fel a választ, mielőtt bármit megváltoztat.

Mit állít meg valójában a védelem

A DNS rebinding úgy működik, hogy megváltoztatja, mire oldódik fel egy név, miután a kliens már megbízott benne. Egy oldal egy támadó által irányított névről töltődik be, a válasz privát címre billen, és a böngészőt arra veszik rá, hogy a helyi hálózaton olyasvalamivel beszéljen, amellyel soha nem fogadott volna el közvetlen kapcsolatot. A védelem az, hogy elutasítjuk a privát térbe mutató válaszokat, amikor a feloldót soha nem kérték fel privát névtér kiszolgálására. Az egész támadás ez az aszimmetria.

A dnsmasq pontosan ezt a viselkedést dokumentálja, tartományonkénti kivételekkel együtt. A kézikönyv oldala a rebind-domain-ok beállítást úgy írja le, mint a módot olyan tartományok elnevezésére, amelyek jogszerűen visszaadhatnak ilyen címeket. Ezt annak jelzéseként olvassa, hogy a szándékolt javítás szűkített engedély, nem globális kapcsoló.

Szűkítse a kivételt a névtérre

Először a névteret javítsa, aztán a kivételt. Erősítse meg, hogy a hibás név a szervezet által ellenőrzött tartományhoz tartozik, és hogy a rekordot szándékosan tartják fenn. Az a váratlan cím, amely csak hasonlít egy ismerős helyi hálózati tartományra, gyanút érdemel, nem kivételt, ezért ellenőrizze a zóna tulajdonosát, mielőtt bármilyen engedélyt ír.

# ask the resolver the VPN pushed, and show the full answer
dig +noall +answer db.corp.example @10.40.0.1
dig +short db.corp.example @10.40.0.1

# dnsmasq: what does the running configuration already allow?
grep -R 'rebind' /etc/dnsmasq.d /etc/dnsmasq.conf

Ezután adja hozzá a legszűkebb engedélyt, amely lefedi a szándékolt neveket: egy tartományt vagy egy delegált altartományt abban a feloldó-konfigurációban, amelyet a VPN-kliensek kérdeznek. Ha minden névnél kikapcsolja a védelmet azon a feloldón, egyszerre mindegyiküktől megvonja a védelmet, beleértve azokat a neveket is, amelyeknek soha nem volt rá szükségük.

Az osztott DNS ugyanahhoz a döntéshez tartozik. Ha a privát névtérre csak a belső feloldón kellene válaszolni, tegye közzé ott, és hagyja abba a nyilvános feloldók felé szivárgását, hogy a kivétel egy útvonalat fedjen le minden útvonal helyett.

Tesztelje újra az erőforrást és a védelmet

Kérdezzen újra, majd csatlakozzon a szolgáltatáshoz, és nézze meg, mit lát a kliens. A helyes privát válasz működő munkamenettel azt jelenti, hogy a kivétel érvényesült. A helyes válasz elakadt munkamenettel azt jelenti, hogy a következő gyanúsított az útvonal vagy a szolgáltatás identitása.

# the internal name and the public control should behave differently
dig +short db.corp.example @10.40.0.1
dig +short www.example.com @10.40.0.1

# and the service itself, with the certificate it presents
curl -sS -o /dev/null -w '%{http_code}\n' https://db.corp.example/health

Teszteljen egy nyilvános nevet is ugyanazon a feloldón keresztül. A védelemnek a kivételen kívüli neveknél is működnie kell, és ha ez az ellenőrzés megbukik, a változtatás szélesebb volt a szándékoltnál. A tanúsítvány-ellenőrzést hagyja végig érintetlenül, mert a helyesen feloldódó névnek még mindig meg kell felelnie a szolgáltatás által bemutatott tanúsítványnak.

Jegyezze fel a jegybe az elutasított választ, a tartományt, a feloldót és azt, hogy kié a szabály. Ez a feljegyzés az, ami egy rejtélyes belső kiesést olyan konfigurációváltozássá tesz, amelyet valaki átnézhet.

Kapcsolódó cikkek