Ni trafiki gani ya programu ambayo uelekezaji wa SSH hubeba kweli?
Ganda, uelekezaji wa ndani, SOCKS na hali ya kifaa cha handaki hufichua violesura tofauti. Taja kile ambacho programu yako inaweza kutumia kabla ya kukilinganisha na VPN iliyoelekezwa.
Terminali huunganisha, kidokezo huonekana, na kila mtu anakubali kwamba ufikiaji wa SSH unafanya kazi. Kisha mteja wa hifadhidata kwenye kompyuta ndogo bado hawezi kufikia mwenyeji wa kibinafsi, na kikao kinalaumiwa. Kilichojengwa kilikuwa ganda, na hilo ni mojawapo ya violesura vinne tofauti kabisa ambavyo SSH inaweza kutoa. Taja kiolesura kwanza, kisha jaribu kwamba programu inakitumia kweli. Mpangilio ni muhimu, kwa sababu kila kiolesura hushindwa kwa namna yake.
Taja kiolesura kabla ya kulinganisha kitu chochote
mwongozo wa mteja wa OpenSSH hutofautisha mbinu nne ambazo ni rahisi kuchanganya. Ganda au amri ya mbali hutekelezwa kwenye mwenyeji wa SSH. Uelekezaji wa ndani hufungua soketi ya kusikiliza kwenye mteja na hufanya muunganisho unaofuata kutoka upande wa mbali. Uelekezaji wa mbali hufanya kinyume, ukisikiliza upande wa seva. Uelekezaji unaobadilika hufichua kituo cha mwisho cha SOCKS kwa programu zinazojua kukitumia.
- Ganda: programu huendeshwa kwenye mashine ya mbali, hakuna kinachosikiliza ndani.
- Uelekezaji wa ndani: kompyuta yako ndogo ina lango, mwenyeji wa mbali hufanya muunganisho wa nje.
- Uelekezaji wa mbali: upande wa mbali una lango, trafiki hurudi kwako.
- Unaobadilika: proksi ya SOCKS kwenye mteja, hutumiwa tu na programu zinazoelewa proksi.
Hakuna hata moja ya haya inayoweka njia. Programu inayopuuza mipangilio ya proksi, au inayozungumza UDP, au kutatua majina yenyewe, haiathiriwi na kikao hai cha SSH. Hili si hitilafu katika SSH; hii ni mipaka ya kiolesura ulichochagua.
Uelekezaji wa ndani, wa mbali na unaobadilika hutofautiana kwa nani anasikiliza
Tofauti inayoamua kesi nyingi ni nani anamiliki soketi ya kusikiliza. Katika uelekezaji wa ndani mteja husikiliza na mwisho wa mbali hupiga simu lengwa, ndiyo sababu anwani ya lengwa hutatuliwa kwa mtazamo wa seva. Katika uelekezaji wa mbali seva husikiliza na muunganisho huletwa nyuma upande wako, na hivyo unafichua huduma ya ndani bila kuichapisha moja kwa moja.
ssh -N -L 5432:db.internal.example:5432 [email protected] ssh -N -D 1080 [email protected] ss -ltnp | grep -E '5432|1080'
Amri ya kwanza hufunga lango 5432 kwenye kompyuta ndogo na kulielekeza kwenye hifadhidata kama inavyoonekana kutoka bastion. Ya pili huunda proksi ya SOCKS kwenye lango 1080. Amri ya tatu huthibitisha ni michakato gani inayosikiliza kweli, na hiyo ndiyo ushahidi pekee kwamba uelekezaji upo badala ya kushindwa kimya kwa mgongano wa lango.
Uelekezaji unaobadilika unastahili onyo lake: unashughulikia tu programu zinazoheshimu SOCKS. Kivinjari kinaweza kuelekezwa kwake, chombo cha mstari wa amri kinaweza kuambiwa kukitumia, lakini dereva wa hifadhidata mwenye tabaka lake la muunganisho kwa kawaida hawezi. Kudhani kwamba kila programu kwenye mashine sasa inatumia handaki ni kosa la kawaida zaidi katika eneo hili lote.
Hali ya kifaa cha handaki ndilo pekee la kipekee la kweli la mtandao
OpenSSH pia inaunga mkono uelekezaji wa kifaa cha handaki -w, ambao hupitisha kiolesura cha nukta-hadi-nukta badala ya kisikilizaji cha TCP. Hiyo ni handaki halisi ya mtandao, na husanidiwa kwa makusudi, si athari ya pembeni ya kufungua ganda.
sudo ssh -w 0:0 [email protected] ip addr show tun0
Inahitaji namba za kiolesura zinazofaa zipatikane pande zote mbili, usanidi sahihi kwenye seva na ruhusa za kutosha kwenye mteja ili kuunda kifaa. Inahitaji pia mpango wa anwani na uelekezaji, kwa sababu kiolesura kiwazi hakibebi sera yoyote kuhusu ni maeneo gani yanapaswa kukitumia.
Hata hivyo, handaki huishia kwenye mwenyeji wa mbali. Ulinzi wowote uliotolewa na usafirishaji wa SSH huishia hapo, na muunganisho unaofuata ni mruko tofauti. Lango la VPN lina umbo sawa la mpaka, ndiyo sababu ulinganisho unapaswa kuwa kuhusu wigo na mwisho badala ya chombo gani kilicho na nguvu zaidi. Kutaja mpaka huo kwa sauti pia huamua mzozo kuhusu kama handaki «husimba kila kitu», kwa sababu dhahiri haifanyi hivyo.
Jaribu kwamba programu yako inatumia kiolesura ulichokijenga
Uthibitishaji ni kwa kila programu, si kwa kikao. Uelekezaji unaofanya kazi huthibitisha kwamba lango limefungwa na upande wa mbali unaweza kupiga simu; hauthibitishi kwamba programu unayojali iliunganishwa kupitia hiyo.
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'Amri ya kwanza hutuma ombi kupitia kituo cha mwisho cha SOCKS huku jina la mwenyeji likitatuliwa kwa mbali, na ya pili hujaribu lango la hifadhidata lililoelekezwa huku TLS ikihitajika bado. Endesha majaribio yale yale ukiwa umezimua uelekezaji ili kuthibitisha kwamba yanashindwa, kwa sababu jaribio linalopita kwa njia zote mbili halikuwahi kutumia handaki.
Kisha linganisha na VPN iliyoelekezwa katika vipimo muhimu pekee: ni maeneo gani yanashughulikiwa, ni itifaki gani zinafanya kazi, ulinzi unaishia wapi, na nani anapaswa kuidhinisha ufikiaji. Uelekezaji wa huduma moja unaweza kuwa jibu jembamba na bora, wakati VPN ni umbo sahihi pale programu nyingi zinapohitaji njia moja ya mtandao. Hakuna hata moja inayotoa kila kitu kinachofikiwa kutoka mwisho wake wa mbali.