WireGuard DNS DNAT: haltu svarleiðinni gangandi
DNAT endurskrifar áfangastaðinn, ekki upprunann. Ákveddu hvernig uppstreymisuppflettirinn getur svarað áður en þú bætir reglunni við, og haltu hverri samsvörun þröngri.
Að beina DNS-fyrirspurn WireGuard-biðlara að öðrum uppfletti lítur út eins og ein regla og hagar sér eins og þrjár ákvarðanir. Endurskrifa þarf áfangastaðinn, senda þarf pakkann áfram, og svarið þarf að finna leið sína til baka í gegnum umbreytingarástandið sem gáttin bjó til. Slepptu þriðja og fyrirspurnin fer hrein út á meðan biðlarinn bíður að eilífu.
Taktu dæmið um heimilaða biðlara í 10.77.0.0/24 sem koma í gegnum wg0, spyrja að tilkynnta vistfanginu 10.77.0.1 og þurfa uppfletti á 203.0.113.53. Uppstreymisvistfangið er staðgengill í skjölun, ekki virk þjónusta.
Að vísa fyrirspurn á aðra slóð breytir aðeins áfangastað hennar
Regla um áfangastaðar-NAT í PREROUTING endurskrifar vistfangið áður en leiðarákvörðunin er tekin, svo pakkanum er síðan beint að nýja áfangastaðnum í stað þess gamla. Upprunavistfang biðlarans er ósnortið af þeirri aðgerð. Þess vegna getur regla sem virðist fullkomin enn framleitt þögn: beiðnin fer nú til uppflettis sem hefur aldrei heyrt um einkasvið biðlarans. Gáttin þýddi eitt svæði og erfði annað vandamál.
Báðar DNS-flutningaleiðir þurfa samsvarandi reglur, því biðlari fellur aftur á TCP þegar svari er stytt.
Reglurnar hér að neðan velja eitt innkomandi viðmót, eitt svið biðlara og eitt upprunalegt áfangastaðarvistfang. Ekkert annað á gáttinni verður fyrir áhrifum, og fyrirspurn frá gáttinni sjálfri passar alls ekki.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i wg0 -s 10.77.0.0/24 -d 10.77.0.1 -p udp --dport 53 -j DNAT --to-destination 203.0.113.53:53
iptables -t nat -A PREROUTING -i wg0 -s 10.77.0.0/24 -d 10.77.0.1 -p tcp --dport 53 -j DNAT --to-destination 203.0.113.53:53
Svarleiðin er sérstök ákvörðun
Tvær ráðstafanir leyfa svarinu að koma til baka, og að velja aðra snemma sparar eina kembileiðréttingarlotu. Annaðhvort hefur uppstreymisuppflettirinn leið til baka í 10.77.0.0/24 í gegnum þessa gátt, eða gáttin þýðir upprunann á útleið svo svarið berist á vistfang sem uppstreymið þekkir nú þegar. Bæði virka; aðeins annað passar við það vald sem þú hefur yfir uppstreyminu.
Leiðsögn á skilið fyrstu tilraunina, því hún heldur vistfangi biðlarans sýnilegu fyrir uppflettinn og kemur í veg fyrir annað þýðingarlag. Þegar uppstreymið er utan þíns valds er þýðing upprunans á tilteknu útleiðarviðmóti hagnýti kosturinn.
Takmarkaðu þessa þýðingu jafn þröngt og tilvísunina, annars verður reglan almenn NAT fyrir hvað sem er sem hendir sér að passa við hana:
iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -d 203.0.113.53 -o eth0 -p udp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -d 203.0.113.53 -o eth0 -p tcp --dport 53 -j MASQUERADE
Tengingarakning heldur vörpuninni samstilltri, svo svarið er endurskrifað aftur í upprunalegu tvennd biðlarans á leiðinni inn. Án útleiðarreglunnar sendir uppflettirinn svar sitt á einkavistfang sem hann kemst ekki að, og biðlarinn sér tímanorn í stað villu.
Skrifaðu reglurnar þrengri en verkefnið virðist
Framleiðsluheimild tilheyrir sama sviði. Leyfðu flæðið frá biðlara til uppflettis og bakflæðið sem conntrack þekkir nú þegar, í stað þess að samþykkja hverja DNAT-tengingu á vélinni. Almenn samþykkt heimilar líka framsendingu portra sem hafa ekkert með DNS að gera.
Uppflettir gáttarinnar sjálfrar er önnur kóðaleið. Fyrirspurn sem gefin er út á staðnum fer í gegnum OUTPUT, svo prófun úr skel gáttarinnar þjálfar hvorki PREROUTING-regluna né framsendingarstefnuna. Þess vegna getur staðbundið próf staðist á meðan hver biðlari mistekst, og hið gagnstæða er jafn algengt.
Ekkert hér nær yfir DNS yfir HTTPS á porti 443 eða DNS yfir TLS á porti 853, og ekkert nær yfir IPv6. Biðlari með uppsettum IPv6-uppfletti mun fúslega hunsa alla ráðstöfunina.
Hvað sannar ný fyrirspurn
Tengingarakning man fyrri varpanir, svo fyrirspurn sem send var fyrir reglubreytingu getur verið svarað úr gamla ástandinu og látið nýju regluna virðast brotna. Byrjaðu á nýju upprunaportsnúmeri og, þar sem biðlarinn skyggir svör, á nýju nafni.
dig @10.77.0.1 example.com A +short
conntrack -L -p udp --dport 53 | head
Fyrsta skipunin sýnir hvort leið biðlarans leysist yfir höfuð, og sú seinni sýnir þýðinguna sem gáttin raunverulega setti upp, þar á meðal báðar áttir tvenndarinnar. Vörpun sem bendir á rétta uppflettinn með svarateljarann fastan á núlli er vandamál í bakleiðinni en ekki síunar.
Staðfestu að uppflettirinn þekki nöfnin sem þú býst við áður en þú beinir einhverju á annan stað. Staðgengill sem svarar opinberum nöfnum en ekki einkasvæðinu þínu breytir virkri leit í NXDOMAIN sem lítur út eins og brotin göng. Prófaðu uppflettinn beint, frá gáttinni, áður en leið biðlarans kemur við sögu. Og tilvísun í iptables-viðbætur skjalfestir merkingu DNAT og masquerade sem þessar reglur byggja á.