SSH alderantzizkoa gailu bakarrerako: loopback entzulea edo bideratutako VPNa?
Kudeaketa ataka bakarra kanpora bakarrik deitu dezakeen gailu baterako. Hiru baldintzek erabakitzen dute alderantzizko tunela nahikoa den edo benetako bide bideratua behar duzun.
Zure gailua operadorearen NAT atzean dago, irteerako konexioak ireki ditzake eta inork iris ezin dezakeen SSH zerbitzari bat exekutatzen du. Iristen den eskaera normalean "eman VPN bat" gisa formulatzen da, eta hori erantzun bat da beste batzuen artean. Onartu aurretik, erabaki administrazio TCP ataka bakarra behar duzun edo azpisare oso baterako bide bideratua, zeren proiektu ezberdinak baitira esposizio ezberdinekoak.
Alderantzizko tunelak ondo erantzuten dio bertsio estuari. Gailuak zure hub-era deitzen du, hub-ari loopback ataka batean entzuteko eskatzen dio, eta ataka hori bere SSH zerbitzura birbidaltzen du. Ondoren administratzaileak hub-aren bidez iristen dira entzulera, ez internet publikoaren bidez.
Aukera erabakitzen duten hiru baldintza
Idatzi itzazu edozein konfigurazio baino lehen. Kudeaketa sarrera mugatuaren eta sare hedapenaren arteko muga dira, eta haiek nahastea bost lerroko tunel bat jabe gabeko sare lau bihurtzeko bidea da.
| 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 |
Hirugarren ilara da jendeak eztabaidatzen duena. Gailu baten SSH atakara doan tunelak ez ditu bere bizilagunak zure sarean jartzen, eta ez luke hala egiten duenik erakutsi behar gehiagoko birbidalketen kate baten bidez. Baldintza benetan LANa bada, esan eta diseinatu hura horren ordez.
Hub aldea: errele kontu mugatua
Eman gailu bakoitzari bere errele kontua gako publikoko autentifikazioarekin eta saio interaktiborik gabe. Match blokeak kontu horretara mugatuta baimena txiki mantentzen du, eta gako pribatua gailuan geratzen da, dagokion lekuan.
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 da lerro interesgarria. Shell eta azpisistema saioak ukatzen ditu, gailuak behar duen birbidalketa baimenduz oraindik, beraz lapurtutako gako bat ezin da saio-hasiera interaktibo bihurtu. PermitListen hub aldeko entzulearen helbidea eta ataka finkatzen ditu, eta GatewayPorts no loopback-en mantentzen du, hub-a dagoen sarera ireki beharrean.
Probatu konfigurazio eraginkorra birkargatu aurretik, eta mantendu bigarren saio bat irekita hori egiten duzun bitartean. Match blokeak ustekabean guztiei aplikatzen badie, edo aukera baten izenean tipografia errore bat badago, gogortzen ari zaren makina kanpoan uzteko modu klasikoa da. Bota exekuzioan dagoen konfigurazioa eta irakurri aukerak berriro, idatzi berri duzun fitxategian fidatu beharrean. Kontuan izan aukeren laguntza aldatu egiten dela bertsioen artean, beraz zerbitzari berriago batek onartutako lerro bat zaharrenak erraz jaramonik egin gabe utz dezake.
Gailu aldea: ozen huts egiten duen birbidalketa
Gailuak konexioa irekitzen du eta entzulera eskatzen du. Argumentuko bi helbideek -R gauza desberdinak esan nahi dituzte, eta ezkerretik eskuinera irakurtzea azkarrena da zein den zein gogoratzeko.
ssh -NT \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-o ServerAliveCountMax=3 \
-R 127.0.0.1:21022:127.0.0.1:22 \
[email protected]
Ezkerreko bikotea hub-ak non entzun behar duen da. Eskuineko bikotea gailuak eskaera bat iristen denean konektatzen duena da, gailuaren beraren aldetik ebatzita. Haiek trukatzeak garbi igotzen den eta toki okerrean birbidaltzen duen tunel bat sortzen du, huts egitea baino okerragoa dena.
ExitOnForwardFailure=yes komandoak irtetea eragiten du eskatutako entzulera ezin denean ezarri, beraz berrabiarazte begizta batek egia esaten dizu erdi funtzionatzen duen saio bat utzi beharrean. Ez du ezer esaten SSH zerbitzu lokala geroago osasuntsu dagoen ala ez, beraz konbinatu prozesu kudeatzaile batekin eta noizean behineko benetako konexio proba batekin.
Inoiz ez ordeztu loopback entzute helbidea komodin batekin jauzi gehigarri bat saihesteko. Aldaketa bakar hori kudeaketa bide baten eta publikoki irisgarri den ataka baten arteko aldea da, eta normalean arazketa garaian gertatzen da eta gero geratzen da. Lankide batek atakara hub-aren bidez iritsi ezin bada, konpondu jauziaren konfigurazioa bind-a zabaldu beharrean. Loopback diseinu honen segurtasun argudio osoa da.
Administratzaile sarbidea hub-aren bidez
Hub-ean kontu arrunta duen administratzaile batek harekin jauzi egin dezake birbidalitako atakara. Errele kontua ez da horretarako erabiltzen, eta horixe da haiek bereizita mantentzearen kontua.
ssh -J [email protected] -o HostKeyAlias=device-7 \
-p 21022 [email protected]
Egiaztatu gailuaren ostalari gakoa aukeratu duzun aliaspean, gako horrek katearen amaieran gailua identifikatzen duelako eta tunela garraio hutsa delako. Muturretik muturrerako saio-hasierak bi muturrak autentifikatzen jarraitzen du; hub partekatu batean amaitzen den tunelak ez du berez bide fidagarri bihurtzen.
Hartu bizitza zikloaren jabetza
Exekutatu gailuaren komandoa prozesu kudeatzaile baten pean instantzia aktibo bakar batekin eta nahita aukeratu duzun berrabiarazte politika batekin. Keepalive aukerek bikote hila hautematen dute; irten den prozesu bat ez dute berpizten.
Ondoren idatzi kentze prozedura. Gailu bakoitzak bere entzulea eta bere gakoa ditu, beraz desmuntatzeak kontu hori baliogabetzea eta gako hori kentzea esan nahi du, ez flota osoak partekatzen duen sekretu bat biratzea.
Azkenik, gogoratu loopback-ek zer ematen dizun. Sarearen esposizioa mugatzen du eta ez du ezer egiten hub partekatu bateko beste erabiltzaile lokal batzuekin, beraz hub-aren beraren sarbide politikak zuzena izan behar du oraindik. sshd_config erreferentzia goiko aukera bakoitza dokumentatzen du, eta merezi du birbidalketa atalak oso-osorik irakurtzea horietako edozein zabaldu aurretik.