Aistriú port chun peer WireGuard taobh thiar de NAT: DNAT móide SNAT
Seachadann DNAT an t-iarratas, ach tagann an freagra ón seoladh mícheart. Cuir riail SNAT mheaitseála leis agus cuir an dá cheann i bhfeidhm tar éis an tollán a chumrú.
Iarrann brabhsálaí https://203.0.113.10:8443, glacann an seachfhreastalaí leis an gceangal, agus ní fhreagraíonn an tseirbhís ar an peer WireGuard riamh. Tá a chuid oibre á dhéanamh ag riail DNAT; is é an freagra an chuid a theipeann. Lean an paicéad tríd an dá aistriúchán agus éiríonn an riail atá ar iarraidh soiléir. Is é an ceartú ná ráiteas NAT amháin eile sa hook ceart, ní tollán nua.
Lean iarratas amháin ó thús go deireadh
Sroicheann an t-iarratas comhéadan poiblí an tseachfhreastalaí, le seoladh poiblí an chliaint mar fhoinse agus seoladh an tseachfhreastalaí mar cheann scríbe. I nat PREROUTING athscríobhann riail DNAT an ceann scríbe go seoladh tolláin an phiara, 10.90.0.2. Ansin seolann an cinneadh ródaithe an paicéad amach trí wg0, agus tá an cosán seolta ar aghaidh críochnaithe.
Ar an peer, iompraíonn an paicéad anois an seoladh foinse poiblí bunaidh, toisc nach bhfuil aon rud tar éis é a athscríobh. Glacann an tseirbhís leis an gceangal agus seolann a freagra chuig a geata réamhshocraithe féin, is é sin an ródaire baile os comhair an phiara. Níl aon staid ag an ródaire sin do shreabhadh nár chonaic sé riamh agus caitheann sé an paicéad amach nó aistríonn sé chuig a sheoladh poiblí féin é, rud nach nglacfaidh an cliant leis.
Is é an neamhshiméadracht an fhadhb ar fad: téann an t-iarratas tríd an seachfhreastalaí, agus déanann an freagra iarracht dul go díreach. Ní chabhraíonn rianú naisc an tseachfhreastalaí ach amháin má fhilleann an freagra tríd an seachfhreastalaí, agus ní féidir leis filleadh ansin fad a dhíríonn an seoladh foinse fós ar an mbunchliant.
Cuir an t-aistriúchán fillte leis
Athscríobh foinse an tsreabhaidh sheolta ar aghaidh go seoladh tolláin an tseachfhreastalaí sula n-imíonn sé chuig an peer. Ansin freagraíonn an tseirbhís do 10.90.0.1, faigheann an seachfhreastalaí é, agus aisionpaíonn rianú naisc an dá aistriúchán sula bhfillfidh an paicéad ar an gcliant.
iptables -t nat -A PREROUTING -p tcp -m multiport --dports 8080,8443 -j DNAT --to-destination 10.90.0.2
iptables -t nat -A POSTROUTING -d 10.90.0.2 -o wg0 -p tcp -m multiport --dports 8080,8443 -j SNAT --to-source 10.90.0.1Tá riail POSTROUTING cúng d’aon ghnó: meaitseálann sí an ceann scríbe aistrithe agus comhéadan an tolláin, mar sin ní athscríobhann sí trácht neamhghaolmhar a tharlaíonn a bheith ag imeacht trí wg0. Riail masquerade leathan cheiltfeadh sí seoladh an chliaint freisin, ach dhéanfadh sí é do gach sreabhadh agus chuirfeadh sí níos mó deacrachta ar iniúchadh an tábla NAT.
Cuir na rialacha san áit a bhfuil an tollán
Caithfidh rialacha a thagraíonn do sheoladh nó do chomhéadan an tolláin rith tar éis do wg-quick é a chumrú. Cruthaítear an comhéadan roimh PreUp, ach cuirtear seoltaí, MTU, DNS agus róid i bhfeidhm ina dhiaidh sin, agus ritheann PostUp nuair a bhíonn sé sin ar fad in áit. Cuir na breiseanna in PostUp agus na scriosaidh in PreDown.
PostUp = iptables -t nat -A PREROUTING -p tcp -m multiport --dports 8080,8443 -j DNAT --to-destination 10.90.0.2
PostUp = iptables -t nat -A POSTROUTING -d 10.90.0.2 -o wg0 -p tcp -m multiport --dports 8080,8443 -j SNAT --to-source 10.90.0.1
PreDown = iptables -t nat -D PREROUTING -p tcp -m multiport --dports 8080,8443 -j DNAT --to-destination 10.90.0.2
PreDown = iptables -t nat -D POSTROUTING -d 10.90.0.2 -o wg0 -p tcp -m multiport --dports 8080,8443 -j SNAT --to-source 10.90.0.1Caithfidh na scriosaidh teacht leis na breiseanna token ar thoken, lena n-áirítear na meaitseálacha multiport agus comhéadain. Ní dhéanann scriosadh a dhifríonn i meaitseáil amháin aon ní a bhaint, agus cuireann an chéad nasc eile an dara cóip den riail leis. Tar éis roinnt nasc, tá dúbláin sa tábla atá deacair a chur i leith líne cumraíochta.
Seiceáil an toradh le iptables -t nat -S tar éis athnascadh. Má thagann an riail chéanna chun solais faoi dhó, níl líne PreDown ag meaitseáil agus teipeann an glanadh go ciúin.
Seoladh ar aghaidh, scagadh agus an NAT eile
Cumasaigh seoladh IPv4 ar aghaidh go buan, ansin ligean don sreabhadh seolta ar aghaidh sa tábla scagtha. Tarlaíonn DNAT roimh an slabhra FORWARD, mar sin meaitseálann an riail scagtha an ceann scríbe aistrithe seachas an seoladh poiblí. Má tá an balla dóiteáin á bhainistiú ag UFW, cuir an cead in iúl mar riail ródaithe; ní chlúdaíonn riail óstach shimplí trácht a sheoltar ar aghaidh.
Féadann dhá shraith NAT eile an cosán a bhriseadh fós fiú nuair a bhíonn rialacha an tseachfhreastalaí ceart. Ar nasc baile, baineann an seoladh poiblí leis an ródaire, agus ní hionann an port a oscailt ina bhall dóiteáin agus iontráil aistrithe port a chruthú a sheolann an port sin chuig an seachfhreastalaí. Is minic nach bhfuil an mapáil sin go beacht ag port a bhíonn oscailte ón taobh amuigh agus nach bhfreagraíonn aon rud.
Ar VPS NAT, mapálann an soláthraí port poiblí chuig seoladh príobháideach. Caithfidh an mhapáil teacht leis an bport a fhógraíonn tú, agus breathnaíonn neamhréir go beacht cosúil le tollán briste. Deimhnigh mapáil an tsoláthraí sula n-athraíonn tú cumraíocht WireGuard.
Fíoraigh an cosán fillte agus glac leis an gcostas
Ceangail ó líonra nach LAN an tseachfhreastalaí é, ansin scrúdaigh an péire aistriúcháin agus an nasc oscailte:
conntrack -L -p tcp --dport 8080
tcpdump -ni any tcp port 8080Ba cheart go dtaispeánfadh iontráil conntrack an tuple bunaidh, an tuple aistrithe agus treo an fhreagra. Má tá an freagra ar iarraidh, níl an peer ag seoladh tríd an tollán, rud a chiallaíonn de ghnáth nár cuireadh an riail SNAT i bhfeidhm nó gur scaoil balla dóiteáin an phiara féin an sreabhadh.
Atosaigh uair amháin chun a chruthú go gcuireann PostUp na rialacha i bhfeidhm arís, ansin stop an tollán agus deimhnigh gur bhain PreDown iad. Is iad na rialacha marbha a mhaireann tar éis dícheangail an chúis a n-iompraíonn athrú níos déanaí go neamh-intuartha.
Ar deireadh, glac leis an gcostas a bhaineann le SNAT. Feiceann an tseirbhís gach iarratas mar rud a thagann ón seachfhreastalaí, mar sin ní dhéanann logaí rochtana, teorainneacha ráta in aghaidh an chliaint ná liostaí seoladh ceadaithe idirdhealú idir úsáideoirí a thuilleadh. Teastaíonn a aistriúchán foinse féin ón gcás hairpin do chliaint ar LAN an tseachfhreastalaí. Má theastaíonn seoltaí cliant fíora ón peer, is é an rogha eile ród fillte chuig líonra an chliaint, rud a thógann níos mó oibre ach a chaomhnaíonn an fhaisnéis.