Pa draffig ap mae anfon ymlaen SSH yn ei gario go iawn?
Mae plisgyn, anfoniad lleol, SOCKS a modd dyfais twnnel yn datgelu rhyngwynebau gwahanol. Enwch yr un y gall eich ap ei ddefnyddio cyn ei gymharu â VPN a lwybrwyd.
Mae’r terfynell yn cysylltu, mae’r anogwr yn ymddangos, ac mae pawb yn cytuno bod y mynediad SSH yn gweithio. Yna ni all cleient cronfa ddata ar y gliniadur gyrraedd y gwesteiwr preifat o hyd, a beïwyd y sesiwn. Yr hyn a adeiladwyd oedd plisgyn, sef un o bedwar rhyngwyneb tra gwahanol y gall SSH eu cynnig. Enwch y rhyngwyneb yn gyntaf, yna profwch fod yr ap yn ei ddefnyddio mewn gwirionedd. Mae’r drefn yn bwysig, oherwydd mae pob rhyngwyneb yn methu yn ei ffordd ei hun.
Enwch y rhyngwyneb cyn cymharu unrhyw beth
Mae llawlyfr cleient OpenSSH yn gwahaniaethu pedwar mecanwaith sy’n hawdd eu cymysgu. Mae plisgyn neu orchymyn o bell yn gweithredu ar westeiwr SSH. Mae anfoniad lleol yn agor soced gwrando ar y cleient ac yn gwneud y cysylltiad ymlaen o’r ochr bell. Mae anfoniad o bell yn gwneud y gwrthwyneb, gan wrando ar ochr y gweinydd. Mae anfon dinamig yn datgelu pendraw SOCKS ar gyfer rhaglenni sy’n gwybod sut i’w ddefnyddio.
- Plisgyn: mae’r rhaglen yn rhedeg ar y peiriant pell, nid oes unrhyw beth yn gwrando’n lleol.
- Anfoniad lleol: mae gan eich gliniadur borth, mae’r gwesteiwr pell yn gwneud y cysylltiad allan.
- Anfoniad o bell: mae gan yr ochr bell borth, mae’r traffig yn dod yn ôl tuag atoch.
- Dinamig: dirprwy SOCKS ar y cleient, a ddefnyddir yn unig gan apiau sy’n ymwybodol o ddirprwyon.
Nid oes unrhyw un o’r rhain yn gosod llwybr. Rhaglen sy’n anwybyddu gosodiadau dirprwy, neu’n siarad UDP, neu’n datrys enwau ei hun, ni chaiff ei heffeithio gan sesiwn SSH weithredol. Nid yw hynny’n nam yn SSH; cwmpas y rhyngwyneb a ddewiswyd gennych yw hynny.
Mae anfoniadau lleol, pell a dinamig yn wahanol o ran pwy sy’n gwrando
Y gwahaniaeth sy’n penderfynu’r rhan fwyaf o achosion yw pwy sy’n berchen ar y soced gwrando. Gydag anfoniad lleol, y cleient sy’n gwrando ac mae’r pen pell yn deialu’r cyrchfan, a dyna pam mae cyfeiriad y gyrchfan yn cael ei ddatrys o safbwynt y gweinydd. Gydag anfoniad o bell, y gweinydd sy’n gwrando ac mae’r cysylltiad yn cael ei gludo’n ôl i’ch ochr chi, a dyna sut rydych yn datgelu gwasanaeth lleol heb ei gyhoeddi’n uniongyrchol.
ssh -N -L 5432:db.internal.example:5432 [email protected] ssh -N -D 1080 [email protected] ss -ltnp | grep -E '5432|1080'
Mae’r gorchymyn cyntaf yn rhwymo porth 5432 ar y gliniadur ac yn ei anfon ymlaen i’r gronfa ddata fel y’i gwelir o’r bastywn. Mae’r ail yn creu dirprwy SOCKS ar borth 1080. Mae’r trydydd gorchymyn yn cadarnhau pa brosesau sy’n gwrando mewn gwirionedd, a hwnnw yw’r unig brawf bod yr anfoniad yn bodoli yn hytrach na bod wedi methu’n dawel ar wrthdaro porth.
Mae anfon dinamig yn haeddu rhybudd ei hun: dim ond apiau sy’n parchu SOCKS y mae’n eu cynnwys. Gellir pwyntio porwr ato, gellir dweud wrth declyn llinell orchymyn i’w ddefnyddio, ac yn gyffredin ni all gyrrwr cronfa ddata sydd â’i stac cysylltiad ei hun. Tybio bod pob rhaglen ar y peiriant bellach yn defnyddio’r twnnel yw’r camgymeriad mwyaf cyffredin yn y maes hwn i gyd.
Modd dyfais twnnel yw’r unig eithriad rhwydwaith go iawn
Mae OpenSSH hefyd yn cefnogi anfon dyfais twnnel -w, sy’n trosglwyddo rhyngwyneb pwynt i bwynt yn hytrach na gwrandäwr TCP. Twnnel rhwydwaith gwirioneddol yw hwnnw, ac mae’n cael ei ffurfweddu’n fwriadol, nid yn sgil-effaith agor plisgyn.
sudo ssh -w 0:0 [email protected] ip addr show tun0
Mae angen y niferoedd rhyngwyneb cyfatebol ar gael ar y ddau ben, y ffurfweddiad cywir ar y gweinydd, a digon o fraint ar y cleient i greu’r ddyfais. Mae angen cynllun cyfeiriannu a llwybro hefyd, oherwydd nid yw rhyngwyneb noeth yn cario unrhyw bolisi ynghylch pa gyrchfannau ddylai ei ddefnyddio.
Hyd yn oed wedyn, mae’r twnnel yn gorffen yn y gwesteiwr pell. Bydd unrhyw amddiffyniad a roddodd y clud SSH yn dod i ben yno, ac mae’r cysylltiad ymlaen yn gam ar wahân. Mae gan borth VPN yr un siâp ffin, a dyna pam y dylai’r gymhariaeth fod am gwmpas a therfyniad yn hytrach nag am ba declyn sy’n gryfach. Mae enwi’r ffin honno’n uchel hefyd yn setlo’r ddadl ynghylch a yw twnnel yn «amgryptio popeth», oherwydd yn amlwg nid yw.
Profwch fod eich ap yn defnyddio’r rhyngwyneb a adeiladwyd gennych
Mae gwirio fesul ap, nid fesul sesiwn. Mae anfoniad sy’n gweithio yn profi bod y porth wedi’i rwymo a bod y pen pell yn gallu deialu; nid yw’n profi bod y rhaglen sy’n bwysig i chi wedi cysylltu drwyddo.
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'Mae’r gorchymyn cyntaf yn anfon cais drwy bendraw SOCKS gyda’r enw gwesteiwr wedi’i ddatrys o bell, ac mae’r ail yn arfer y porth cronfa ddata a anfonwyd ymlaen gyda TLS yn dal yn ofynnol. Rhedwch yr un profion gyda’r anfoniad wedi’i stopio i gadarnhau eu bod yn methu, oherwydd ni ddefnyddiodd prawf sy’n llwyddo’r ddwy ffordd y twnnel erioed.
Yna cymharwch â VPN a lwybrwyd yn unig ar y dimensiynau sy’n bwysig: pa gyrchfannau a gwmpesir, pa brotocolau sy’n gweithio, ble mae amddiffyniad yn gorffen, a phwy sy’n gorfod cymeradwyo’r mynediad. Gall anfoniad un gwasanaeth fod yn ateb culach a gwell, tra bod VPN yn siâp cywir pan fo llawer o apiau angen yr un llwybr rhwydwaith. Nid yw’r naill na’r llall yn caniatáu popeth y gellir ei gyrraedd o’i bendraw pell.