Is féidir le ríomhaire glúine taobh thiar de NAT an tsoláthraí fós freastal ar chomhghleacaí, chomh fada agus a fheidhmíonn an freastalaí VPN mar áit chruinnithe. Tagann dhá mheicníocht ann: déanann an cliant diaileadh amach agus iarrann sé ar an bhfreastalaí port éisteachta a choinneáil, nó foilsíonn an freastalaí port agus aistríonn sé isteach sa tollán é. Réitíonn an dá rud an fhadhb inrochtaineachta chéanna agus iompraíonn siad go héagsúil faoi chliseadh, maoirseacht agus logáil. Socraíonn trí choinníoll cé acu a bhaineann le do shocrú.

Dhá chruth, áit chruinnithe amháin

Sa chéad chruth osclaíonn an cliant seisiún SSH amach agus iarrann sé ar an bhfreastalaí éisteacht ar phort roghnaithe, agus seolann sé gach nasc ar ais tríd an seisiún sin. Ní sheoltar aon rud ar aghaidh ar an bhfreastalaí agus ní dhéantar aon aistriú paicéad, mar sin is iad na riachtanais amháin cuntas SSH, aistriú ceadaithe agus riail balla dóiteáin don phort. Fanann an tseirbhís ceangailte le loopback ar an gcliant, rud is gnách a theastaíonn uait.

ssh -N -R 8081:127.0.0.1:8080 -o ExitOnForwardFailure=yes -o ServerAliveInterval=30 [email protected]

Sa dara cruth is leis an bhfreastalaí an port poiblí agus athscríobhann sé gach nasc i dtreo sheoladh tollán an chliaint. Éilíonn sin aistriú IP cumasaithe, aistriú cinn scríbe ar an mbealach isteach agus aistriú foinse ar an mbealach amach, agus oibríonn sé fós nuair nach bhfuil aon seisiún SSH ann. Baineann an port leis an bhfreastalaí seachas le seisiún, agus is í an tréith sin a shocraíonn formhór na gcásanna réadacha.

Níl ceachtar den dá chruth níos sábháilte óna dhéanamh. Nochtann an dá cheann port seirbhíse amháin do gach duine a bhfuil rochtain aige ar sheoladh poiblí an fhreastalaí, agus braitheann an dá cheann fós ar fhíordheimhniú na seirbhíse féin.

Coinníoll a haon: an gcaithfidh an port maireachtáil níos faide ná an seisiún

Maireann aistriú droim ar ais go díreach chomh fada leis an seisiún SSH a chruthaigh é. Nuair a thiteann an nasc, imíonn an t-éisteoir agus feiceann an comhghleacaí nasc diúltaithe seachas cosán mall. Réitíonn maoirseacht an ordaithe le haonad systemd agus le polasaí athluchtaithe é sin, agus déanann ExitOnForwardFailure=yes ceangal teipthe infheicthe láithreach in ionad seisiún gan aistriú a fhágáil.

Maireann port aistrithe trí atosú má choinnítear na rialacha, ach braitheann sé ar an gcliant an seoladh tolláin céanna a choinneáil. Treoraíonn linn dhinimiciúil a thugann seoladh difriúil don ríomhaire glúine tar éis athcheangail an riail go ciúin chuig faic. Cuir seoladh an tolláin in áirithe ar dtús, scríobh an riail ina dhiaidh sin, agus caith leis an dá rud mar aon athrú amháin.

Má tá ar an tseirbhís freagairt ag a trí ar maidin gan éinne ag breathnú, is é an cruth leis an port arna fhoilsiú ag an bhfreastalaí an ceann is lú páirteanna gluaiste, mar is é an tollán féin an t-aon phróiseas a chaithfidh fanacht suas.

Coinníoll a dó: cé leis an balla dóiteáin agus na logaí

Coinníonn an cruth droim ar ais an pholasaí ar fad in dhá áit. Socraíonn sshd trí AllowTcpForwarding an bhfuil aistrithe cianda ceadaithe ar chor ar bith, agus socraíonn GatewayPorts an gceanglaíonn an t-éisteoir le loopback nó le gach seoladh. Leis an réamhshocrú no ní féidir le comhghleacaí lasmuigh den fhreastalaí an port a bhaint amach cé gur éirigh leis an aistriú, agus is cosúil gur tollán briste é nuair is seoladh ceangail atá ann i ndáiríre.

sudo ss -ltn '( sport = :8081 )'
sudo grep -E '^(GatewayPorts|AllowTcpForwarding)' /etc/ssh/sshd_config

Éilíonn an cruth aistrithe aistriú cumasaithe agus dhá riail, agus is í an dara riail an áit a dtéann formhór na n-oideas amú. Ciallaíonn sé an t-aistriú foinse a theorannú do staid conntrack DNAT nach n-athscríobhtar ach na naisc a chruthaigh riail an chinn scríbe, seach gach paicéad a sheolann an freastalaí isteach sa tollán.

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8081 -j DNAT --to-destination 10.88.0.6:8080
sudo iptables -t nat -A POSTROUTING -o tun0 -m conntrack --ctstate DNAT -j SNAT --to-source 10.88.0.1

Scriosann an athscríobh sin an tréithriú freisin. Ina dhiaidh sin feiceann an cliant gach glaoiteoir mar sheoladh tolláin an fhreastalaí, rud a thitann aon teorainn ráta de réir seoltaí isteach in aon bhuicéad amháin agus a cheileann cé a sheol cad. Má tá tábhacht leis an tréithriú, cuir deireadh leis an nasc ar an bhfreastalaí nó coinnigh an cinneadh ceada ann agus cuir féiniúlacht ar aghaidh i gceanntásc a bhfuil muinín ag an tseirbhís as. Braitheann an rogha idir an dá cheartú sin ar cé acu a léann an tseirbhís ceanntásc seachfhreastalaí ar chor ar bith.

Coinníoll a trí: port amháin nó a lán, agus cé leis an ainm

Is é seirbhís amháin ar phort amháin an cás ina mbuaíonn an t-aistriú droim ar ais ar iarracht. Teastaíonn ordú amháin, cuntas amháin agus riail balla dóiteáin amháin uait, agus is é an glanadh an seisiún a mharú. Brúnn seirbhísí iomadúla ar an seoladh poiblí céanna tú i dtreo an chrutha arna fhoilsiú ag an bhfreastalaí, mar teastaíonn a phort freastalaí féin ó gach aistriú droim ar ais agus fásann an tacar le gach seirbhís.

Déanann ainmneacha níos casta é. Is féidir le haistriú droim ar ais suí taobh thiar de sheachfhreastalaí TCP a dhéanann ródú de réir SNI, agus is gnách gur port amháin in aghaidh na seirbhíse é port aistrithe. Má chríochnaíonn an tseirbhís TLS í féin agus má theastaíonn an t-ainm óstaigh bunaidh uaithi, caomhnaíonn cur chuige an tseachfhreastalaí é agus ní chaomhnaíonn cur chuige DNAT é ach amháin má ghlacann an tseirbhís leis an ainm sin ar an bport sin.

Scríobh síos cé acu de na trí choinníoll a shocraigh an cruth. Mura ndéanfaidh tú, athosclóidh an chéad duine eile a chuireann dara seirbhís leis an gcomparáid chéanna le níos lú comhthéacs.

Socraigh, ansin tástáil ón taobh amuigh

Tástáil an cosán ó líonra nach bhfuil aon ród aige chuig an ríomhaire glúine, agus féach ar na háiritheoirí ar an bhfreastalaí agus an t-iarratas ag rith. Ní chruthaíonn tástáil ón bhfreastalaí chuig a sheoladh poiblí féin aon rud anseo, mar cruthaítear an paicéad go háitiúil agus ní shroicheann sé crúca aistrithe an ionchuir riamh, mar sin féadann an tástáil pasáil agus an fíorchosán briste.

sudo iptables -t nat -L PREROUTING -n -v
sudo tcpdump -ni any 'tcp port 8081' -c 20

Ciallaíonn áiritheoirí a fhanann réidh nár shroich an paicéad an riail riamh, rud a threoraíonn chuig an soláthraí nó chuig balla dóiteáin an óstaigh. Treoraíonn áiritheoirí a ghluaiseann agus an tseirbhís ag diúltú chuig balla dóiteáin an chliaint féin nó chuig an seoladh a bhfuil an tseirbhís ag éisteacht air. Is fadhb ródaithe nó cosáin droim ar ais é tollán a iompraíonn an paicéad ach nach dtugann aon rud ar ais, agus níor cheart aon cheann de na trí thoradh sin a dhífhabhtú trí oiriúnóir an chliaint a chur in eagar. Scríobh síos cé acu áiritheoir a bhog sula n-athraíonn tú aon rud, mar teastaíonn an bhunlíne sin ón gcéad tástáil eile.

Nuair a oibríonn an cruth, taifead an port, an t-úinéir agus an modh maoirseachta in aice le cumraíocht an tolláin. Tá ceartú inrochtaineachta nach bhfuil ann ach i stair bhlaoisc duine éigin aon atosú amháin ó eachtra athfhillteach.

Ailt ghaolmhara