Op die kantoor-LAN antwoord die interne naam onmiddellik. Die oomblik wanneer die VPN op is, hou dit op werk, die toepassing rapporteer ’n tydsverloop, en die tonnel self stuur verkeer sonder klagte. Wat verander het, is die resolver, en daardie resolver het ’n mening oor privaat adresse.

Herbindbeskerming bestaan om een spesifieke truuk te stop. ’n Doelbewus gepubliseerde privaat naam lyk soortgelyk genoeg dat die verdediging afvuur.

Lees die antwoord voordat jy die beleid lees

Vra die naam by die resolver wat die VPN werklik stuur, nie die een wat jou skootrekenaar by die huis gebruik nie. Vergelyk die antwoord met die rekord wat jy verwag, en let op of die antwoord leeg is, geweier word of vol openbare adresse is wat niemand beplan het nie.

Die simptome oorvleuel, so die vorm van die antwoord bepaal die diagnose. ’n NXDOMAIN is ’n ontbrekende rekord, ’n REFUSED is ’n toegangsreël, ’n openbare adres vir ’n interne naam is ’n beleids- of split-DNS-fout, en ’n korrekte privaat adres wat die kliënt nie kan gebruik nie is heeltemal ’n ander probleem. ’n Geweierde verbinding of ’n gestolde versoek bewys niks op sigself nie, daarom moet die eerste opdrag in enige van hierdie kaartjies ’n opsoek wees eerder as ’n herbegin. Skryf die antwoord neer voordat jy iets verander.

Wat die verdediging werklik stop

DNS-herbinding werk deur te verander waarna ’n naam oplos nadat die kliënt dit reeds vertrou het. ’n Bladsy laai van ’n naam wat deur die aanvaller beheer word, die antwoord skakel na ’n privaat adres, en die blaaier word verlei om met iets op die plaaslike netwerk te praat waarmee dit nooit ’n direkte verbinding sou aanvaar het nie. Die verdediging is om antwoorde te weier wat in privaat ruimte wys wanneer die resolver nooit gevra is om ’n privaat naamruimte te bedien nie. Daardie asimmetrie is die hele aanval.

dnsmasq dokumenteer presies daardie gedrag, saam met uitsonderings per domein. Sy handboekblad beskryf rebind-domain-ok as die manier om domeine te noem wat sulke adresse wettig kan teruggee. Lees dit as ’n sein dat die bedoelde oplossing ’n beperkte toelating is, nie ’n globale skakelaar nie.

Beperk die uitsondering tot die naamruimte

Maak eers die naamruimte reg, dan die uitsondering. Bevestig dat die falende naam aan ’n domein behoort wat die organisasie beheer en dat die rekord doelbewus onderhou word. ’n Onverwagte adres wat net soos ’n bekende LAN-reeks lyk, verdien agterdog, nie ’n uitsondering nie, so kyk eers wie die sone besit voordat jy enige toelating skryf.

# 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

Voeg dan die nouste toelating by wat die bedoelde name dek: een domein, of een gedelegeerde subdomein, in die resolver-konfigurasie wat die VPN-kliënte vra. Om die beskerming vir elke naam op daardie resolver af te skakel, verwyder die verdediging vir almal gelyktydig, insluitend die name wat dit nooit nodig gehad het nie.

Split-DNS hoort by dieselfde besluit. As die privaat naamruimte net op die interne resolver geantwoord moet word, publiseer dit daar en stop om dit na openbare resolvers te lek, sodat die uitsondering een pad dek in plaas van elke pad.

Toets die hulpbron en die verdediging weer

Vra weer, koppel dan aan die diens en kyk wat die kliënt sien. ’n Korrekte privaat antwoord met ’n werkende sessie beteken die uitsondering het geland. ’n Korrekte antwoord met ’n gestolde sessie beteken die roete of die diensidentiteit is die volgende verdagte.

# 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

Toets ook ’n openbare naam deur dieselfde resolver. Die beskerming moet steeds werk vir name buite die uitsondering, en as daardie toets faal, was die verandering wyer as bedoel. Hou sertifikaatvalidering deurentyd ongeraak, want ’n naam wat korrek oplos, moet steeds pas by die sertifikaat wat die diens aanbied.

Teken die verwerpte antwoord, die domein, die resolver en wie die beleid besit in die kaartjie aan. Dit is daardie rekord wat ’n geheimsinnige interne onderbreking omskep in ’n konfigurasieverandering wat iemand kan nasien.

Verwante artikels