SSH í öfuga átt fyrir eitt tæki: loopback-hlustunaraðili eða VPN með leiðsendingu?
Eitt stjórnport fyrir tæki sem getur aðeins hringt út. Þrjú skilyrði ráða því hvort öfug göng eru næg eða hvort þú þarft raunverulega leiðsenda slóð.
Tækið þitt er á bak við NAT hjá þjónustuveitanda, getur opnað útleiðartengingar og keyrir SSH-þjón sem enginn nær í. Beiðnin sem berst er venjulega orðuð sem "gefðu því VPN", sem er eitt svar af nokkrum. Áður en þú samþykkir hana skaltu ákveða hvort þú þarft eitt stjórnunarlegt TCP-port eða leiðsenda slóð að heilu undirneti, því þetta eru mismunandi verkefni með mismunandi útsetningu.
Öfug göng svara þröngu útgáfunni vel. Tækið hringir í hubinn þinn, biður hubinn að hlusta á loopback-port og sendir það port til baka í eigin SSH-þjónustu. Eftir það ná stjórnendur í hlustunaraðilann gegnum hubinn, ekki gegnum hið opinbera internet.
Þrjú skilyrði sem ráða valinu
Skrifaðu þau niður fyrir hvaða stillingu sem er. Þau eru mörkin milli afmarkaðrar stjórnunarinnkomu og netkerfisútvíkkunar, og að rugla þeim saman er leiðin sem fimm lína göng verða að flötu neti án eiganda.
| Condition | Reverse tunnel fits | Something else is needed |
|---|---|---|
| How many services must be reachable? | One, or a small fixed set on loopback | Anything that needs many ports or dynamic discovery |
| Who connects, and how are they authenticated? | Named administrators with their own hub accounts | Third parties, or anything needing per-flow audit you do not control |
| Does the device's own LAN need to be reachable? | No | Yes, so a routed VPN or a managed platform is the honest answer |
Þriðja röðin er sú sem fólk deilir um. Göng að SSH-porti tækis setja nágranna þess ekki á netið þitt, og ekki á að láta það líta svo út með keðju frekari framsendinga. Ef krafan er í raun LAN, segðu það og hannaðu það í staðinn.
Hubhlið: afmarkaður endurvarpsreikningur
Gefðu hverju tæki sinn eigin endurvarpsreikning með auðkennisvottun með opinberum lykli og án gagnvirkrar lotu. Match blokk sem er afmörkuð við þann reikning heldur heimildinni lítilli, og einkalykillinn er áfram í tækinu þar sem hann á heima.
Match User relay-dev-7
AuthenticationMethods publickey
PubkeyAuthentication yes
AllowTcpForwarding remote
PermitListen 127.0.0.1:21022
GatewayPorts no
MaxSessions 0
PermitTTY no
X11Forwarding no
AllowAgentForwarding no
MaxSessions 0 er áhugaverða línan. Hún synjar skeljar- og undirkerfislotum en leyfir samt framsendinguna sem tækið þarf, svo stolinn lykill er ekki hægt að breyta í gagnvirka innskráningu. PermitListen festir slóð og port hlustunaraðilans á hubhlið, og GatewayPorts no heldur því á loopback í stað þess að opna það fyrir netinu sem hubinn er á.
Prófaðu virku stillinguna áður en þú endurhleður, og hafðu aðra lotu opna á meðan. Match blokk sem á sér stað fyrir slysni við alla, eða innsláttarvilla í heiti valmöguleika, er klassíska leiðin til að læsa þig úti frá kassanum sem þú ert að herða. Tæmdu stillinguna sem er í gangi og lestu valmöguleikana aftur í stað þess að treysta skránni sem þú varst að skrifa. Athugaðu að stuðningur valmöguleika er mismunandi milli útgáfa, svo lína sem er samþykkt í nýrri þjóni getur einfaldlega verið hunsuð í eldri.
Tækishlið: framsending sem mistekst hljóðlega
Tækið opnar tenginguna og biður um hlustunaraðilann. Slóðirnar tvær í viðfanginu -R þýða mismunandi hluti, og að lesa þær frá vinstri til hægri er fljótlegasta leiðin til að muna hvort er hvort.
ssh -NT \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-R 127.0.0.1:21022:127.0.0.1:22 \
[email protected]
Vinstri parið er þar sem hubinn á að hlusta. Hægra parið er það sem tækið tengist þegar beiðni berst, leyst frá eigin hlið tækisins. Að skipta þeim framleiðir göng sem koma hrein upp og senda á rangann stað, sem er verra en mistök.
ExitOnForwardFailure=yes lætur skipunina hætta þegar ekki er hægt að koma upp umbeðnum hlustunaraðila, svo endurræsingarlykkja segir þér sannleikann í stað þess að skilja eftir hálfvirka lotu. Hún segir ekkert um hvort staðbundin SSH-þjónusta sé heilbrigð síðar, svo paraðu hana við ferlisstjórnanda og stöku raunverulega tengiprófun.
Skiptu aldrei út loopback-hlustunarslóðinni fyrir villimerki til að sleppa auka hoppi. Þessi eina breyting er munurinn á stjórnunarslóð og porti sem almenningur nær í, og hún gerist venjulega við kembiforritun og verður svo eftir. Ef samstarfsmaður nær ekki portinu gegnum hubinn, lagaðu stökkstillinguna í stað þess að víkka bindingu. Loopback er öll öryggisrökfræðin að baki þessari hönnun.
Aðgangur stjórnanda gegnum hubinn
Stjórnandi með venjulegan reikning á hubnum getur stokkið gegnum hann að framsendu portinu. Endurvarpsreikningurinn er ekki notaður fyrir þetta, og það er einmitt tilgangurinn með að halda þeim aðskildum.
ssh -J [email protected] -o HostKeyAlias=device-7 \
-p 21022 [email protected]
Staðfestu hýsilinnlykil tækisins undir samnefninu sem þú valdir, því sá lykill auðkennir tækið við enda keðjunnar og göngin eru aðeins flutningur. Innskráning enda til enda auðkennir samt báða enda; göng sem enda á sameiginlegum hub gera það ekki sjálf að traustri slóð.
Taktu eignarhald á lífsferlinum
Keyrðu skipun tækisins undir ferlisstjórnanda með nákvæmlega einu virku tilviki og endurræsingarstefnu sem þú valdir viljandi. Keepalive-valmöguleikarnir greina dauðan mótaðila; þeir vekja ekki ferli sem er hætt.
Skrifaðu síðan niðurlagningarferlið. Hvert tæki fær sinn eigin hlustunaraðila og sinn eigin lykil, svo niðurlagning þýðir að afturkalla þann reikning og fjarlægja þann lykil, ekki að snúa leyndarmáli sem öll flotinn deilir.
Að lokum, mundu hvað loopback gefur þér. Það takmarkar netútsetningu og gerir ekkert varðandi aðra staðbundna notendur á sameiginlegum hub, svo aðgangsstefna hubsins sjálfs verður að vera rétt áfram. sshd_config tilvísun skjalfestir hvern þeirra valmöguleika sem notaðir eru hér að ofan, og það er þess virði að lesa framsendingarkaflana í heild áður en þú víkkar einhvern þeirra.