Anke laptop wara n-NAT tal-fornitur jista' jaqdi lil kollega, sakemm is-server VPN jaġixxi bħala l-punt tal-laqgħa. Żewġ mekkaniżmi jaslu hemm: il-klijent iċempel 'il barra u jitlob lis-server iżomm port li jisma', jew is-server jippubblika port u jittraduċih fit-tunnel. It-tnejn jsolvu l-istess problema ta' aċċessabbiltà u jġibu ruħhom b'mod differenti waqt ħsara, superviżjoni u reġistrazzjoni. Tliet kundizzjonijiet jiddeċiedu liema waħda tappartjeni għall-konfigurazzjoni tiegħek.

Żewġ forom, punt tal-laqgħa wieħed

Fl-ewwel forma l-klijent jiftaħ sessjoni SSH 'il barra u jitlob lis-server jisma' fuq port magħżul, filwaqt li jibgħat kull konnessjoni lura minn dik is-sessjoni. Fuq is-server xejn ma jiġi mgħoddi 'l quddiem u ma ssir l-ebda traduzzjoni ta' pakketti, għalhekk l-uniċi rekwiżiti huma kont SSH, qbiż permess u regola tal-ħajt tan-nar għall-port. Is-servizz jibqa' marbut mal-loopback fuq il-klijent, li normalment huwa dak li trid.

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

Fit-tieni forma s-server jippossjedi l-port pubbliku u jikteb mill-ġdid kull konnessjoni lejn l-indirizz tat-tunnel tal-klijent. Dan jeħtieġ qbiż tal-IP attivat, traduzzjoni tad-destinazzjoni fid-dħul u traduzzjoni tas-sors fil-ħruġ, u jkompli jaħdem meta ma jkunx hemm sessjoni SSH. Il-port jappartjeni lis-server u mhux lil sessjoni, u dik il-proprjetà tiddeċiedi l-biċċa l-kbira tal-każijiet reali.

L-ebda waħda mill-forom mhija aktar sigura minn oħra min-natura tagħha. It-tnejn jispiċċaw jesponu port wieħed tas-servizz lil kull min jista' jilħaq l-indirizz pubbliku tas-server, u t-tnejn għadhom jiddependu fuq l-awtentikazzjoni tas-servizz stess.

Kundizzjoni waħda: il-port jrid jgħix aktar mis-sessjoni

Qbiż maqlub jgħix eżattament kemm iddum is-sessjoni SSH li ħolqotuh. Meta l-konnessjoni taqa', is-semmiegħ jgħib u l-kollega jara konnessjoni miċħuda minflok mogħdija bil-mod. Is-superviżjoni tal-kmand b'unità systemd u politika ta' restart issolviha, u ExitOnForwardFailure=yes jagħmel marbut fallut viżibbli minnufih minflok ma jħalli sessjoni taħdem mingħajr qbiż.

Port tradott jgħaddi minn restarts jekk ir-regoli jinżammu, iżda jiddependi mill-klijent li jżomm l-istess indirizz tat-tunnel. Ġabra dinamika li tagħti lill-laptop indirizz ieħor wara li jerġa' jikkonnettja ddawwar ir-regola b'sikta lejn xejn. Irriżerva l-indirizz tat-tunnel l-ewwel, imbagħad ikteb ir-regola, u ittratta t-tnejn bħala bidla waħda.

Jekk is-servizz irid iwieġeb fit-tlieta ta' filgħodu mingħajr ħadd ma jhares, il-forma bil-port ippubblikat mis-server għandha inqas partijiet li jiċċaqilqu, għax l-uniku proċess li jrid jibqa' għaddej huwa t-tunnel innifsu.

Kundizzjoni tnejn: ta' min huma l-ħajt tan-nar u r-reġistri

Il-forma maqluba żżomm il-politika kollha f'żewġ postijiet. sshd jiddeċiedi permezz ta' AllowTcpForwarding jekk il-qbiż mill-bogħod huwiex permess xejn, u GatewayPorts jiddeċiedi jekk is-semmiegħ jorbotx mal-loopback jew ma' kull indirizz. Bl-valur prestabbilit no kollega barra mis-server ma jistax jilħaq il-port anke jekk il-qbiż irnexxa, u dan jidher bħala tunnel miksur meta fil-verità huwa indirizz ta' rabta.

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

Il-forma tradotta teħtieġ qbiż attivat u żewġ regoli, u t-tieni regola hija fejn il-biċċa l-kbira tar-riċetti jiżbaljaw. Li tillimita t-traduzzjoni tas-sors għall-istat conntrack DNAT ifisser li jiġu miktuba mill-ġdid biss il-konnessjonijiet li ħolqot ir-regola tad-destinazzjoni, minflok kull pakkett li s-server jibgħat fit-tunnel.

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

Dik il-kitba mill-ġdid teqred ukoll l-attribuzzjoni. Wara, il-klijent jara kull min iċempel bħala l-indirizz tat-tunnel tas-server, li jġib kull limitu ta' rata għal kull indirizz f'waret wieħed u jaħbi min bagħat xiex. Jekk l-attribuzzjoni hija importanti, ittermina l-konnessjoni fuq is-server jew żomm id-deċiżjoni tal-permess hemm u għaddi identità f'intestatura li s-servizz jafdha. L-għażla bejn dawn iż-żewġ tiswijiet tiddependi minn jekk is-servizz jaqrax intestatura tal-proxy xejn.

Kundizzjoni tlieta: port wieħed jew ħafna, u ta' min huwa l-isem

Servizz wieħed fuq port wieħed huwa l-każ fejn il-qbiż maqlub jirbaħ fl-isforz. Trid kmand wieħed, kont wieħed u regola waħda tal-ħajt tan-nar, u t-tindif huwa li toqtol is-sessjoni. Diversi servizzi fuq l-istess indirizz pubbliku jimbuttawk lejn il-forma ppubblikata mis-server, għax kull qbiż maqlub jeħtieġ il-port tas-server tiegħu u s-sett jikber ma' kull servizz.

L-ismijiet jagħmluha aktar kumplessa. Qbiż maqlub jista' jkun wara proxy TCP li jmexxi skont is-SNI, filwaqt li port tradott normalment huwa port wieħed għal kull servizz. Jekk is-servizz jtemm it-TLS huwa stess u jeħtieġ l-isem tal-host oriġinali, l-approċċ tal-proxy jżommu u l-approċċ DNAT iżommu biss jekk is-servizz jaċċetta dak l-isem fuq dak il-port.

Innota liema mit-tliet kundizzjonijiet iddeċidiet il-forma. Inkella l-persuna li jmiss li żżid it-tieni servizz terġa' tiftaħ l-istess tqabbil b'inqas kuntest.

Iddeċiedi, imbagħad ittestja minn barra

Ittestja l-mogħdija minn netwerk li m'għandux rotta lejn il-laptop, u osserva l-kontaturi fuq is-server waqt li titħaddem it-talba. L-ittestjar mis-server lejn l-indirizz pubbliku tiegħu stess ma jipprova xejn hawn, għax il-pakkett jinħoloq b'mod lokali u qatt ma jilħaq il-ganċ tat-traduzzjoni tad-dħul, għalhekk it-test jista' jgħaddi filwaqt li l-mogħdija vera tkun miksur.

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

Kontaturi li jibqgħu ċatti jfissru li l-pakkett qatt ma wasal għar-regola, li jindika lejn il-fornitur jew il-ħajt tan-nar tal-host. Kontaturi li jiċċaqilqu waqt li s-servizz joqgħod għall-ma jindikaw lejn il-ħajt tan-nar tal-klijent stess jew l-indirizz li fuqu jisma' s-servizz. Tunnel li jġorr il-pakkett iżda ma jroġġax lura xejn hija problema ta' rotta jew ta' mogħdija maqluba, u l-ebda waħda minn dawn it-tliet riżultati m'għandha tiġi ddebbuggjata billi tiġi editjata l-adapter tal-klijent. Innota liema kontatur ċċaqlaq qabel ma tbiddel xejn, għax it-test li jmiss jeħtieġ dik il-linja bażi.

Meta l-forma taħdem, irreġistra l-port, is-sid u l-metodu ta' superviżjoni ħdejn il-konfigurazzjoni tat-tunnel. Tiswija tal-aċċessabbiltà li teżisti biss fl-istorja tal-shell ta' xi ħadd hija restart wieħed 'il bogħod minn inċident ripetut.

Artikli relatati