Għaliex it-talbiet dnsmasq joħorġu mill-VPN wara ridirezzjoni DNS
REDIRECT fuq in-naħa tar-router ibiddel talba DNS tal-LAN f’socket ġdid tar-resolver. Il-marki fuq il-fluss tal-klijent qatt ma jaslu għalih, għalhekk issettja l-ħruġ tal-upstream direttament.
Il-klijent tal-LAN jilħaq il-VPN tiegħu kif suppost u xorta t-talbiet DNS tiegħu jidhru fuq il-link ta’ fuq ħażin. Dan mhuwiex tnixxija fis-sens tas-soltu; huwa dak li jiġri meta r-router jieqaf jgħaddi talba u jwieġeb huwa stess. L-interċettazzjoni terġa’ tikteb id-destinazzjoni f’socket lokali, u mbagħad ir-resolver jiftaħ konverżazzjoni oħra, mhux relatata, bl-indirizz sors tiegħu stess u bid-deċiżjoni tiegħu stess dwar ir-routing. Il-marki applikati fuq il-fluss tal-klijent jiddeskrivu l-ewwel konverżazzjoni u xejn dwar it-tieni waħda.
Il-marka ma tivvjaġġax mat-talba
Il-marki tal-pakkett jgħixu fuq entry conntrack u fuq il-pakkett waqt it-titjira. Regola REDIRECT ittemm dik it-titjira: il-payload jingħata lil socket lokali, u l-entry oriġinali tkun għamlet xogħolha. Dak li jħalli r-router wara huwa socket ġdid maħluq mill-proċess tar-resolver, bl-indirizz tar-router stess bħala sors.
Huwa għalhekk li rotta ta’ politika mqiegħda fuq l-indirizz tal-klijent tal-LAN qatt ma taqbel mat-talba tal-upstream. Is-socket il-ġdid jappartjeni lil dnsmasq u mhux lill-klijent, u l-kernel jevalwa r-rotta għat-traffiku tar-router stess. Ir-regoli tas-sors, ir-regoli tal-interface u r-regoli tal-marki kollha jaraw tuple differenti. Li wieħed jassumi li l-marka tinfirex huwa l-iżball l-aktar komuni f’dan is-setup, u huwa inviżibbli f’qabda fuq in-naħa tal-klijent.
Iż-żewġ konverżazzjonijiet tabilħaqq jaqsmu isem u ħin, u huwa dan li jagħmilhom jidhru bħala fluss wieħed meta tgħaddi malajr minn qabda.
Fejn il-passaġġ isir soluzzjoni lokali
Ibda billi ssir taf jekk il-port 53 huwiex ridirett, tradott għal host ieħor, jew tħalla kif inhu, għax it-tliet każijiet iġibu ruħhom differentement. Ridirezzjoni għal port lokali ttemm il-passaġġ, filwaqt li traduzzjoni għal magna oħra żżomm il-pakkett miexi u żżomm it-tuple tal-klijent sinifikanti.
Ħares lejn iż-żewġ protokolli. Resolver li jintlaħaq fuq UDP u TCP jiġi ttestjat fuq it-tnejn, u sett ta’ regoli li jkopri biss UDP iħalli toqba kwieta għat-tweġibiet il-kbar. L-istess jgħodd għar-regoli li jiġġenera l-maniġer tal-konfigurazzjoni tar-router stess, u l-editjar ta’ fajl iġġenerat normalment jitlef kontra t-tagħbija mill-ġdid li jmiss.
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'
Dawk il-ħruġ iwieġbu tliet mistoqsijiet fl-ordni: x’jerġa’ jikteb it-talba, x’jirċeviha, u liema proċess jippossjedi s-socket li qed jisma’. Ladarba l-proprjetarju jkun magħruf, il-politika tal-upstream għandha fejn tgħix.
Agħti lir-resolver il-politika tal-ħruġ tiegħu stess
Upstream speċifiku għad-dominju huwa l-aktar għodda nadifa meta jkunu biss xi ismijiet li jeħtieġu t-tunnel. dnsmasq jaċċetta linja server limitata għal dominju, b’interface jew indirizz sors fakultattiv li jwassal it-talba barra minn apparat magħżul. Dak l-iggwidar huwa dak li jagħmel it-tieni konverżazzjoni ssegwi l-VPN.
server=/corp.example/10.30.0.53@tun_work
log-queries
Id-dominju, l-indirizz u l-interface hawn fuq huma sostituti għall-valuri tiegħek stess. L-għażla tad-dominju u l-kontroll tal-ħruġ jibqgħu deċiżjonijiet separati: ir-rotta trid teżisti, l-indirizz sors irid ikun permess mir-resolver tal-upstream, u l-firewall trid tippermetti t-tweġiba. L-iggwidar biss bl-interface mhuwiex fail-closed, għax tunnel li jinqered jista’ jħalli r-resolver jaqa’ fuq triq oħra. Żomm kwalunkwe rikors pubbliku ’l bogħod minn spazju tal-ismijiet li għandu jibqa’ privat.
Poġġi l-linja fil-proprjetarju tal-konfigurazzjoni li jappoġġja r-router u mhux f’fajl iġġenerat, inkella t-tagħbija mill-ġdid li jmiss iħassar il-korrezzjoni.
X’ma tistax tippreserva cache maqsuma
Forwarder wieħed b’cache waħda jaqdi kull klijent tal-LAN, u dan iġarraf distinzjoni li xi netwerks jeħtieġu. Jekk żewġ klijenti jridu jsolvu l-istess isem b’mod differenti, is-socket maqsum m’għandu l-ebda mod kif jirkupra liema klijent staqsa. Il-politika għal kull klijent trid tgħix f’istanzi tar-resolver separati jew f’karatteristika tal-passaġġ li żżomm l-identità.
Tweġiba fil-cache lanqas hija prova dwar it-triq il-ġdida. It-tweġiba tista’ tasal mill-memorja waqt li r-rotta tal-upstream tibqa’ miksura.
Ir-regoli tal-port 53 ma jgħidu xejn dwar applikazzjonijiet li jitkellmu DNS fuq HTTPS jew fuq TLS. Dawk it-talbiet qatt ma jaslu għar-ridirezzjoni, għalhekk politika mibnija biss fuq il-port 53 tiddeskrivi sottoinsiemi tat-traffiku u għandha tiġi dokumentata bħala sottoinsiemi.
Ivverifika t-tieni konverżazzjoni, mhux l-ewwel waħda
Ittestja b’isem wieħed li tikkontrolla u ħares lejn iż-żewġ naħat. Qabda fuq in-naħa tal-klijent turi li t-talba ħalliet il-LAN; in-naħa tar-router biss turi fejn marret wara.
sudo tcpdump -ni tun_work udp port 53
ip route get 10.30.0.53
dig +short corp.example @10.30.0.53
Żvojta l-cache qabel kull attentat, għax tweġiba sħuna taħbi upstream miksur. Errepeti fuq TCP, imbagħad errepeti bit-tunnel mitfi biex tara x’jagħmel ir-resolver meta t-triq preferuta tiegħu tkun marret. Dak l-aġir l-aħħar huwa dak li jiddeċiedi jekk id-disinn huwiex fail-closed jew sempliċiment xortih.