LAN-biðlarinn nær rétt í VPN-ið sitt og samt birtast DNS-fyrirspurnir hans á röngu uppstreymistenginu. Þetta er ekki leki í venjulegri merkingu; þetta er það sem gerist þegar beinisinn hættir að senda fyrirspurn áfram og svarar henni sjálfur. Afskiptin endurskrifa áfangastaðinn í staðbundið socket, og þá opnar hólfið annað, ótengt samtal með eigin upprunaaðsetri og eigin leiðarvali. Merkin sem sett eru á flæði biðlarans lýsa fyrra samtalinu og alls ekki neinu um það síðara.

Merkið fer ekki með fyrirspurninni

Pakkamerki lifa á conntrack-færslu og á pakkanum sem er á leið. REDIRECT-regla endar þá ferð: farmurinn er afhentur staðbundnu socketi og upprunalega færslan hefur gert sitt. Það sem fer út úr beinisnum eftir það er nýtt socket sem ferli hólfsins bjó til, með aðsetur beinisins sjálfs sem uppruna.

Þess vegna passar stefnuleið sem er bundin við aðsetur LAN-biðlarans aldrei við uppstreymisfyrirspurnina. Nýja socketið tilheyrir dnsmasq frekar en biðlaranum, og kjarninn metur leiðina fyrir eigin umferð beinisins. Upprunareglur, viðmótsreglur og merkisreglur sjá allar aðra tuple. Að gera ráð fyrir að merkið berist er algengasta mistökið í þessari uppsetningu, og það er ósýnilegt í upptöku á hlið biðlarans.

Samtölin tvö deila nafni og tímasetningu, og það er það sem lætur þau líta út sem eitt flæði þegar maður flettir hratt í gegnum upptöku.

Hvar áframhald breytist í staðbundna upplausn

Byrjaðu á að finna út hvort port 53 er endurbeint, þýtt yfir á annan hýsil eða látið í friði, því málunum þremur er mismunandi farið. Endurbeining á staðbundið port endar áframhaldið, en þýðing yfir á aðra vél heldur pakkanum á hreyfingu og heldur tuple biðlarans merkingarbæru.

Líttu á bæði samskiptareglurnar. Hólf sem er aðgengilegt um UDP og TCP verður prófað á báðum, og reglusafn sem nær aðeins yfir UDP skilur eftir hljóðláta holu fyrir stór svör. Reglur sem skrásetjari beinisins sjálfs býr til teljast líka, og að breyta skrá sem er búin til tapar venjulega fyrir næstu endurhleðslu.

sudo nft list ruleset | grep -n -B2 -A4 'dport 53'
sudo iptables -t nat -L -n -v | grep -E ':53|dns'
sudo ss -lunp | grep ':53'

Þessi úttak svara þremur spurningum í röð: hvað endurskrifar fyrirspurnina, hvað tekur við henni og hvaða ferli á hlustaða socketið. Þegar eigandinn er þekktur hefur stefnan gagnvart uppstreyminu stað til að vera á.

Gefðu hólfinu eigin útstreymisstefnu

Uppstreymi sem er sértækt fyrir lén er hreinasta verkfærið þegar aðeins sum nöfn þurfa göngin. dnsmasq tekur server-línu sem er takmörkuð við lén, með valfrjálsu viðmóti eða upprunaaðsetri sem stýrir fyrirspurninni út úr völdu tæki. Þessi stýring er það sem lætur seinna samtalið fylgja VPN-inu.

server=/corp.example/10.30.0.53@tun_work
log-queries

Lénið, aðsetrið og viðmótið hér að ofan eru staðgenglar fyrir þín eigin gildi. Lénsval og stjórn útstreymis eru áfram aðskildar ákvarðanir: leiðin verður að vera til, upprunaaðsetrið verður að vera leyft af uppstreymishólfinu og eldveggurinn verður að leyfa svarið. Stýring eingöngu um viðmót er ekki fail-closed, því horfið göng geta látið hólfið falla á aðra leið. Haltu hverri opinberri varaleið fjarri nafnrými sem verður að vera einkarekið.

Settu línuna hjá þeim eiganda stillinganna sem beinisinn styður en ekki í skrá sem er búin til, annars þurrkar næsta endurhleðsla út lagfæringuna.

Hvað sameiginlegt skyndiminni getur ekki varðveitt

Einn áframsendir með einu skyndiminni þjónar hverjum LAN-biðlara, og það hrundar aðgreiningu sem sum net þurfa. Ef tveir biðlarar verða að leysa sama nafn á mismunandi hátt hefur sameiginlega socketið enga leið til að endurheimta hvaða biðlari spurði. Stefna fyrir hvern biðlara verður að lifa í aðskildum tilvikum hólfsins eða í áframhaldsaðgerð sem varðveitir auðkennið.

Skyndiminnið svar er heldur ekki sönnun um nýju leiðina. Svarið getur komið úr minni á meðan uppstreymisleiðin er áfram brotin.

Reglur um port 53 segja ekkert um forrit sem tala DNS yfir HTTPS eða yfir TLS. Þessar fyrirspurnir ná aldrei til endurbeiningarinnar, svo stefna sem er byggð eingöngu á port 53 lýsir undirmengi umferðarinnar og ætti að skjalfesta sem undirmengi.

Staðfestu seinna samtalið, ekki það fyrra

Prófaðu með einu nafni sem þú stýrir og fylgstu með báðum hliðum. Upptaka á hlið biðlarans sannar að fyrirspurnin hafi farið af LAN-inu; aðeins hlið beinisins sannar hvert hún fór næst.

sudo tcpdump -ni tun_work udp port 53
ip route get 10.30.0.53
dig +short corp.example @10.30.0.53

Tæmdu skyndiminnið fyrir hverja tilraun, því heitt svar felur brotið uppstreymi. Endurtaktu um TCP og endurtaktu svo með göngin niðri til að sjá hvað hólfið gerir þegar ákjósanleg leið þess er farin. Sú hegðun síðasta ræður því hvort hönnunin er fail-closed eða bara heppin.

Tengdir greinar