Privataj VPN-nomoj fiaskas? DNS-rebind-protekto estas la suspektito
Solvilo, kiu rifuzas respondojn el la privata spaco, rompas internajn nomojn, ne la tunelon. Legu la respondon, limigu la escepton kaj konservu la protekton aliloke.
En la oficeja LAN la interna nomo respondas tuj. En la momento, kiam la VPN ekfunkcias, ĝi ĉesas funkcii, la aplikaĵo raportas tempolimon, kaj la tunelo mem daŭre pasigas trafikon sen plendo. Kio ŝanĝiĝis estas la solvilo, kaj tiu solvilo havas opinion pri privataj adresoj.
Rebind-protekto ekzistas por haltigi unu specifan trukon. Intence publikigita privata nomo aspektas sufiĉe simila, ke la defendo ekagas.
Legu la respondon antaŭ ol legi la politikon
Demandu la nomon ĉe la solvilo, kiun la VPN efektive plusendas, ne ĉe tiu, kiun via tekkomputilo uzas hejme. Komparu la respondon kun la rikordo, kiun vi atendas, kaj notu, ĉu la respondo estas malplena, rifuzita aŭ plena de publikaj adresoj, kiujn neniu planis.
La simptomoj interkovras, do la formo de la respondo decidas la diagnozon. NXDOMAIN estas mankanta rikordo, REFUSED estas alirregularo, publika adreso por interna nomo estas eraro de politiko aŭ de dividita DNS, kaj korekta privata adreso, kiun la kliento ne povas uzi, estas tute alia problemo. Rifuzita konekto aŭ haltinta peto pruvas nenion per si mem, tial la unua komando en iu ajn el tiuj biletoj devus esti serĉo, ne restartigo. Skribu la respondon antaŭ ol ŝanĝi ion ajn.
Kion la defendo efektive haltigas
DNS-rebindado funkcias ŝanĝante, al kio nomo solviĝas post kiam la kliento jam fidis ĝin. Paĝo ŝarĝiĝas de nomo kontrolata de atakanto, la respondo turniĝas al privata adreso, kaj la retumilo estas trompita paroli kun io en la loka reto, kun kio ĝi neniam akceptus rektan konekton. La defendo estas rifuzi respondojn indikantajn en la privatan spacon, kiam la solvilo neniam estis petita servi privatan nomspacon. Ĝuste tiu nesimetrio estas la tuta atako.
dnsmasq dokumentas ĝuste tiun konduton, kune kun esceptoj laŭ domajno. Ĝia manlibra paĝo priskribas rebind-domain-ok kiel la manieron nomi domajnojn, kiuj rajtas laŭleĝe redoni tiajn adresojn. Legu tion kiel signon, ke la celita ripeto estas limigita permeso, ne tutmonda ŝaltilo.
Limigu la escepton al la nomspaco
Unue ripetu la nomspacon, poste la escepton. Konfirmu, ke la fiaskanta nomo apartenas al domajno, kiun la organizo kontrolas, kaj ke la rikordo estas intence prizorgata. Neatendita adreso, kiu nur similas al konata LAN-gamo, meritas suspekton, ne escepton, do kontrolu la posedanton de la zono antaŭ ol skribi ian permeson.
# 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
Poste aldonu la plej mallarĝan permeson, kiu kovras la celitajn nomojn: unu domajnon aŭ unu delegitan subdomajnon, en la agordo de la solvilo, kiun demandas la VPN-klientoj. Malŝalti la protekton por ĉiu nomo en tiu solvilo forigas la defendon por ĉiuj samtempe, inkluzive de la nomoj, kiuj neniam bezonis ĝin.
Dividita DNS apartenas al la sama decido. Se la privata nomspaco devus esti respondata nur ĉe la interna solvilo, publikigu ĝin tie kaj ĉesu liki ĝin al publikaj solviloj, por ke la escepto kovru unu vojon anstataŭ ĉiun vojon.
Retestu la rimedon kaj la defendon
Demandu denove, poste konektiĝu al la servo kaj vidu, kion la kliento vidas. Korekta privata respondo kun funkcianta seanco signifas, ke la escepto sukcesis. Korekta respondo kun haltinta seanco signifas, ke la vojo aŭ la servo-identeco estas la sekva suspektito.
# 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
Testu ankaŭ publikan nomon tra la sama solvilo. La protekto devus daŭre funkcii por nomoj ekster la escepto, kaj se tiu kontrolo fiaskas, la ŝanĝo estis pli larĝa ol celite. Konservu la atestilan validigon netuŝita la tutan tempon, ĉar nomo, kiu solviĝas korekte, ankoraŭ devas kongrui kun la atestilo, kiun la servo prezentas.
Notu en la bileto la rifuzitan respondon, la domajnon, la solvilon kaj kiu posedas la politikon. Tiu rikordo estas tio, kio transformas misteran internan paneon en agordan ŝanĝon, kiun iu povas revizii.