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.

ConditionReverse tunnel fitsSomething else is needed
How many services must be reachable?One, or a small fixed set on loopbackAnything that needs many ports or dynamic discovery
Who connects, and how are they authenticated?Named administrators with their own hub accountsThird parties, or anything needing per-flow audit you do not control
Does the device's own LAN need to be reachable?NoYes, 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.

Erlazionatutako artikuluak