Skjárinn tengist, kvaðningin birtist og allir eru sammála um að SSH-aðgangurinn virki. Þá kemst gagnagrunnsbiðlari á fartölvunni enn ekki að einkahýsinum, og lotunni er kennt um. Það sem var byggt var skel, og hún er eitt af fjórum nokkuð ólíkum viðmótum sem SSH getur boðið. Nefndu viðmótið fyrst og prófaðu síðan að forritið noti það í raun. Röðin skiptir máli, því hvert viðmót bregst á sinn hátt.

Nefndu viðmótið áður en þú berð eitthvað saman

handbók OpenSSH-biðlarans greinir fjórar aðferðir sem auðvelt er að rugla saman. Skel eða fjarstýrð skipun keyrir á SSH-hýsinum. Staðbundin framsending opnar hlustandi sökkul á biðlaranum og gerir næstu tengingu frá fjarlægu hliðinni. Fjarlæg framsending gerir hið gagnstæða og hlustar á þjónshliðinni. Kvik framsending sýnir SOCKS-endapunkt fyrir forrit sem vita hvernig á að nota hann.

  • Skel: forritið keyrir á fjarlægu vélinni, ekkert hlustar staðbundið.
  • Staðbundin framsending: fartölvan þín hefur port, fjarlæga hýsið gerir útleiðandi tenginguna.
  • Fjarlæg framsending: fjarlæga hliðin hefur port, umferðin kemur til baka til þín.
  • Kvikt: SOCKS milliþjónn á biðlaranum, notaður aðeins af forritum sem skilja milliþjón.

Ekkert þessara setur upp leið. Forrit sem hunsar milliþjónsstillingar, eða talar UDP, eða leysir nöfn sjálft, verður ekki fyrir áhrifum af virkri SSH-lotu. Það er ekki villa í SSH; það er umfang viðmótsins sem þú valdir.

Staðbundin, fjarlæg og kvik framsending eru ólík að því hver hlustar

Sá greinarmunur sem ræður flestum tilvikum er hver á hlustandi sökkulinn. Með staðbundinni framsendingu hlustar biðlarinn og fjarlægi endinn hringir í áfangastaðinn, þess vegna er áfangastaðarfnangið leyst út frá sjónarhorni þjónsins. Með fjarlægri framsendingu hlustar þjónninn og tengingin er borin til baka til þinnar hliðar, og þannig afhjúpar þú staðbundna þjónustu án þess að birta hana beint.

ssh -N -L 5432:db.internal.example:5432 [email protected]
ssh -N -D 1080 [email protected]
ss -ltnp | grep -E '5432|1080'

Fyrsta skipunin bindur port 5432 á fartölvunni og sendir það áfram til gagnagrunnsins eins og hann sést frá bastíóninum. Önnur býr til SOCKS milliþjón á porti 1080. Þriðja skipunin staðfestir hvaða ferli hlustar í raun, og það er eina sönnunin fyrir því að framsendingin sé til staðar frekar en að hafa mistekist hljóðlega vegna portárekstra.

Kvik framsending á skilið sitt eigið viðvörun: hún nær aðeins yfir forrit sem virða SOCKS. Hægt er að beina vafra að henni, hægt er að segja skipanalínutóli að nota hana, en gagnagrunnsrekill með eigin tengistöflum getur það yfirleitt ekki. Sú forsenda að hvert forrit á vélinni noti nú túlið er algengasta mistökin á öllu þessu sviði.

Túl-tækjamáti er eina raunverulega netundantekningin

OpenSSH styður líka -w túl-tækjaframsendingu, sem sendir punkt-til-punkts viðmót í stað TCP-hlustara. Það er raunverulegt nettúl, og það er stillt viljandi, ekki aukaverkun þess að opna skel.

sudo ssh -w 0:0 [email protected]
ip addr show tun0

Það krefst samsvarandi viðmótsnúmera á báðum endum, réttrar stillingar á þjóninum og nægra réttinda á biðlaranum til að búa til tækið. Það krefst líka áætlunar um vistföng og beiningar, því bert viðmót ber enga stefnu um hvaða áfangastaðir eigi að nota það.

Jafnvel þá endar túlið á fjarlæga hýsinu. Hver sú vörn sem SSH-flutningurinn veitti endar þar, og næsta tenging er sérstakt stökk. VPN-gátt hefur sömu lögun landamæra, þess vegna ætti samanburðurinn að snúast um umfang og endi en ekki um hvaða tól er sterkara. Að nefna þessi landamæri upphátt leysir líka deiluna um hvort túl «dulkóði allt», því það gerir það augljóslega ekki.

Prófaðu að forritið þitt noti viðmótið sem þú byggðir

Sannprófun er fyrir hvert forrit, ekki fyrir lotuna. Virk framsending sannar að portið sé bundið og fjarlæga hliðin geti hringt; hún sannar ekki að forritið sem þér þykir vænt um hafi tengst í gegnum hana.

curl -sS --socks5-hostname 127.0.0.1:1080 -o /dev/null -w '%{http_code}\n' https://app.internal.example/health
psql "host=127.0.0.1 port=5432 dbname=app sslmode=require" -c 'select 1'

Fyrsta skipunin sendir beiðni í gegnum SOCKS-endapunktinn með hýsisnafnið leyst fjarlægt, og önnur æfir framsenda gagnagrunnsportið með TLS enn krafist. Keyrðu sömu prófin með framsendinguna stöðvaða til að staðfesta að þau mistakist, því próf sem stenst báðar leiðir notaði aldrei túlið.

Berðu það síðan saman við beitt VPN aðeins á þeim víddum sem skipta máli: hvaða áfangastaðir eru þaktir, hvaða samskiptareglur virka, hvar vörnin endar og hver þarf að samþykkja aðganginn. Framsending fyrir eina þjónustu getur verið þrengra og betra svar, á meðan VPN er rétta formið þegar mörg forrit þurfa sömu netleið. Hvorugt veitir allt sem er aðgengilegt frá fjarlæga endapunktinum.

Tengdir greinar