SSH klients pieslēdzas Secure Shell serverim, kas ļauj palaist komandas tā, it kā jūs sēdētu cita datora priekšā. Bet SSH klients arī ļauj jums "tuneļot" portu starp jūsu vietējo sistēmu un attālo SSH serveri.
Ir trīs dažādi SSH tuneļu veidi, un tos visus izmanto dažādiem mērķiem. Katrā no tām ir jāizmanto SSH serveris, lai novirzītu datplūsmu no viena tīkla portāla uz otru. Satiksme tiek nosūtīta pa šifrētu SSH savienojumu, tāpēc to nevar pārraudzīt vai mainīt, veicot tranzītu.
To var izdarīt ar ssh
komanda iekļauta Linux, macOS un citās UNIX līdzīgās operētājsistēmās. Uz Windows, kurā nav iebūvēta ssh komandas, mēs iesakām bezmaksas rīku PuTTY izveidot savienojumu ar SSH serveriem. Tā atbalsta arī SSH tuneli.
"Vietējā portu pāradresācija" ļauj piekļūt lokālajiem tīkla resursiem, kas nav pakļauti internetam. Piemēram, pieņemsim, ka jūs vēlaties piekļūt datu bāzes serverim savā birojā no mājām. Drošības apsvērumu dēļ šis datu bāzes serveris ir konfigurēts tikai, lai pieņemtu savienojumus no vietējā biroja tīkla. Bet, ja jums ir piekļuve SSH serverim birojā un ka SSH serveris ļauj pieslēgties ārpus biroja tīkla, tad jūs varat izveidot savienojumu ar šo SSH serveri no mājām un piekļūt datu bāzes serverim tā, it kā jūs būtu birojā. Tas bieži notiek, jo vieglāk ir nodrošināt vienu SSH serveri pret uzbrukumiem, nevis nodrošināt dažādus tīkla resursus.
Lai to izdarītu, jūs izveidojat SSH savienojumu ar SSH serveri un dariet klientiem zināmu portu no sava vietējā datora - piemēram, 1234. pa tālruni - uz datnes servera adresi un tā portu biroja tīklā. Tātad, mēģinot piekļūt datu bāzes serverim 1234. porta pašreizējā datorā, "localhost", šī datplūsma tiek automātiski "noskaņota" pār SSH savienojumu un tiek nosūtīta uz datu bāzes serveri. SSH serveris atrodas vidū, pārsūta satiksmi uz priekšu un atpakaļ. Jūs varat izmantot jebkuru komandrindu vai grafisko rīku, lai piekļūtu datu bāzes serverim tā, it kā tas darbotos jūsu vietējā datorā.
Lai izmantotu vietējo pārsūtīšanu, parasti pieslēdzieties SSH serverim, bet arī piegādājiet to -L
arguments. Sintakse ir:
ssh -L local_port: remote_address: remote_port [email protected]
Piemēram, pieņemsim, ka jūsu biroja datu bāzes serveris atrodas biroja tīklā 192.168.1.111. Jums ir piekļuve biroja SSH serverim pie ssh.youroffice.com
, un jūsu SSH servera lietotāja konts ir bobs
. Tādā gadījumā jūsu komanda izskatās šādi:
ssh -L 8888: 192.168.1.111: 1234 [email protected]
Pēc šīs komandas izpildīšanas jūs varēsiet piekļūt datu bāzes serverim portam 8888 vietējā serverī. Tātad, ja datu bāzes serveris piedāvā piekļuvi internetam, varat to savā tīmekļa pārlūkprogrammā piekļūt http: // localhost: 8888, lai piekļūtu tai. Ja jums bija komandrindas rīks, kuram nepieciešama datu bāzes tīkla adrese, norādiet to vietējā vietnē: 8888. Visas datnes, kas tiek nosūtītas uz datora 8888, tiks nostiprinātas jūsu biroja tīklā līdz 192.168.1.111:1234.
Tas ir mazliet vairāk neskaidrs, ja vēlaties izveidot savienojumu ar servera lietojumprogrammu, kas darbojas tajā pašā sistēmā kā pats SSH serveris. Piemēram, pieņemsim, ka jūsu biroja datorā darbojas portāls 22, bet tajā pašā adresē ir arī datu bāzes serveris, kas darbojas tajā pašā sistēmā 1234. punktā. Jūs vēlaties piekļūt datu bāzes serverim no mājām, taču sistēma pieņem SSH savienojumus tikai 22. ostā, un tā ugunsmūris neatļauj citus ārējos savienojumus.
Šajā gadījumā jūs varētu palaist komandu, piemēram, šādu:
ssh -L 8888: localhost: 1234 [email protected]
Kad jūs pašreizējā datorā mēģināsiet piekļūt datu bāzes serverim port 8888, satiksme tiks nosūtīta pa SSH savienojumu. Kad tas nonāk sistēmā, kurā darbojas SSH serveris, SSH serveris to nosūta 1234. lappusē vietējā serverī, kas ir tas pats dators, kurā darbojas pats SSH serveris. Tātad "localhost" iepriekš aprakstītajā komandā nozīmē "localhost" no attālā servera perspektīvas.
Lai to izdarītu PuTTY lietojumprogrammā operētājsistēmā Windows, atlasiet Savienojums> SSH> Tuneļi. Atlasiet opciju "Vietējais". Par "avota portu" ievadiet vietējo portu. Par "Destination" ievadiet galamērķa adresi un portu formā remote_address: remote_port.
Piemēram, ja vēlaties iestatīt to pašu SSH tuneļu, kā norādīts iepriekš, ievadiet 8888
kā avota osta un localhost: 1234
kā galamērķi. Pēc tam noklikšķiniet uz "Pievienot" un pēc tam noklikšķiniet uz "Atvērt", lai atvērtu SSH savienojumu. Protams, pirms sākat savienojumu, jums arī būs jāievada SSH servera adrese un ports galvenajā ekrānā "Sesija".
"Attālināto portu pāradresācija" ir pretstats vietējai pāradresācijai un netiek izmantota tik bieži. Tas ļauj jums izveidot resursu vietējā datorā, kas pieejams SSH serverī. Piemēram, pieņemsim, ka jūs izmantojat vietējā datora tīmekļa serveri, kuru jūs sēdējat priekšā. Bet jūsu dators atrodas aiz ugunsmūra, kas neļauj ienākt datplūsmu uz servera programmatūru.
Pieņemot, ka varat piekļūt attālajam SSH serverim, varat izveidot savienojumu ar šo SSH serveri un izmantot attālo portu pāradresāciju. Jūsu SSH klients pateiks serverim pārsūtīt konkrētu portu-sakot, 1234. portu - uz SSH servera uz konkrētu jūsu pašreizējā datora vai vietējā tīkla adresi un portu.Kad kāds piekļūst SSH servera 1234. ostam, šī satiksme automātiski tiks "noskaņota" pār SSH savienojumu. Ikviens, kam ir piekļuve SSH serverim, varēs piekļūt jūsu datorā darbinātajam tīmekļa serverim. Tas ir efektīvs veids, kā tuneļu caur ugunsmūrus.
Lai izmantotu attālo pārsūtīšanu, izmantojiet ssh
komandu ar -R
arguments. Sintakse ir lielā mērā tāda pati kā vietējā pārsūtīšana:
ssh -R remote_port: local_address: local_port [email protected]
Pieņemsim, ka vēlaties, lai servera lietojumprogramma klausītos vietējā datora 1234. numurā, kas pieejams tālvadības SSH serverī 8888. SSH servera adrese ir ssh.youroffice.com
un jūsu SSH servera lietotājvārds ir bobs. Jūs palaidāt šādu komandu:
ssh -R 8888: localhost: 1234 [email protected]
Pēc tam kāds varēja izveidot savienojumu ar SSH serveri, izmantojot portu 8888, un šis pieslēgums tiks noskaņots uz servera lietojumprogrammu, kas darbojas vietējā datorā, no kura izveidojāt savienojumu, 1234. ostā.
Lai to izdarītu PuTTY sistēmā Windows, atlasiet Savienojums> SSH> Tuneļi. Atlasiet opciju "Attālums". Par "avota portu" ievadiet attālo portu. Par "Galamērķi" ievadiet galamērķa adresi un portu formā local_address: local_port.
Piemēram, ja vēlaties iestatīt iepriekš minēto piemēru, ievadiet 8888
kā avota osta un localhost: 1234
kā galamērķi. Pēc tam noklikšķiniet uz "Pievienot" un pēc tam noklikšķiniet uz "Atvērt", lai atvērtu SSH savienojumu. Protams, pirms sākat savienojumu, jums arī būs jāievada SSH servera adrese un ports galvenajā ekrānā "Sesija".
Pēc tam cilvēki varētu pieslēgties portam 8888 SSH serverī, un to trafiks tiks noskaņots uz 1234. Jūsu vietējā sistēmā.
Pēc noklusējuma attālinātais SSH serveris klausās tikai savienojumus no vienas saimniekdatora. Citiem vārdiem sakot, tikai tie cilvēki, kuri ir vienā sistēmā ar SSH serveri, varēs pieslēgties. Tas ir drošības apsvērumu dēļ. Ja vēlaties ignorēt šo uzvedību, tālrunī SSH serverim ir jāiespējo opcija "GatewayPorts" sshd_config.
Pastāv arī "dinamiskā pāradresācija", kas darbojas līdzīgi kā starpniekserveri vai VPN. SSH klients izveidos SOCKS starpniekserveri, kurā jūs varat konfigurēt lietojumprogrammas, kuras to izmantot. Visu datplūsmu, kas nosūtīta caur starpniekserveri, nosūtīs, izmantojot SSH serveri. Tas ir līdzīgs vietējai pāradresācijai - vietējā datplūsma tiek nosūtīta uz konkrētu jūsu datora portu un tiek nosūtīta pa SSH savienojumu attālā vietā.
Piemēram, pieņemsim, ka izmantojat publisku Wi-Fi tīklu. Jūs vēlaties droši pārlūkot, nepārbaudot to. Ja jums ir piekļuve SSH serverim mājās, varat izveidot savienojumu ar to un izmantot dinamisko portu pāradresāciju. SSH klients savā datorā izveidos SOCKS starpniekserveri. Visa satiksme, kas nosūtīta uz šo starpniekserveri, tiks nosūtīta, izmantojot SSH servera savienojumu. Neviens, kurš pārrauga publisko Wi-Fi tīklu, varēs pārraudzīt jūsu pārlūkošanu vai cenzēt tīmekļa vietnes, kurām varat piekļūt. No jebkuras jūsu apmeklēto vietņu perspektīvas tā būs tā, it kā jūs sēdētu pie sava datora mājās. Tas arī nozīmē, ka jūs varētu izmantot šo triku, lai piekļūtu ASV tikai vietnēm, bet ārpus ASV - pieņemot, ka jums ir piekļuve SSH serverim ASV, protams.
Kā citu piemēru, iespējams, vēlēsities piekļūt multivides servera lietojumprogrammai, kas pieejama jūsu mājas tīklā. Drošības apsvērumu dēļ jums var būt tikai SSH serveris, kas ir pakļauts internetam. Jūs neatļaujiet ienākošos savienojumus no interneta uz jūsu multivides servera lietojumprogrammu. Varat iestatīt dinamisko porta pāradresāciju, konfigurēt pārlūkprogrammu, lai izmantotu SOCKS starpniekserveri, un pēc tam piekļūt serveriem, kas darbojas jūsu mājas tīklā, izmantojot tīmekļa pārlūku, it kā jūs sēdētu pie savas SSH sistēmas mājās. Piemēram, ja jūsu multivides serveris atrodas jūsu mājas tīklā 192.168.1.123, jūs varat pievienot adresi 192.168.1.123
izmantojot jebkuru lietojumprogrammu, izmantojot SOCKS starpniekserveri, un jūs vēlaties piekļūt multivides serverim tā, it kā jūs būtu savā mājas tīklā.
Lai izmantotu dinamisko pārsūtīšanu, palaidiet ssh komandu ar -D
arguments tāpat:
ssh -D local_port [email protected]
Piemēram, pieņemsim, ka jums ir piekļuve SSH serverim pie ssh.yourhome.com
un jūsu SSH servera lietotājvārds ir bobs
. Jūs vēlaties izmantot dinamisko pārsūtīšanu, lai pašreizējā datorā atvērtu SOCKS starpniekserveri porcijā 8888. Jūs palaidāt šādu komandu:
ssh -d 8888 [email protected]
Pēc tam jūs varētu konfigurēt tīmekļa pārlūkprogrammu vai citu lietojumprogrammu, lai izmantotu vietējo IP adresi (127.0.01) un portu 8888. Visa trafika no šī lietojumprogramma tiks novirzīta caur tuneli.
Lai to izdarītu PuTTY sistēmā Windows, atlasiet Savienojums> SSH> Tuneļi. Atlasiet opciju "Dinamiskā". Par "avota portu" ievadiet vietējo portu.
Piemēram, ja jūs vēlaties izveidot SOCKS starpniekserveri portā 8888, ievadiet 8888
kā avota osta. Pēc tam noklikšķiniet uz "Pievienot" un pēc tam noklikšķiniet uz "Atvērt", lai atvērtu SSH savienojumu. Protams, pirms sākat savienojumu, jums arī būs jāievada SSH servera adrese un ports galvenajā ekrānā "Sesija".
Pēc tam jūs varētu konfigurēt programmu, lai piekļūtu SOCKS starpniekserverim jūsu vietējā datorā (ti, IP adrese 127.0.0.1, kas norāda uz jūsu vietējo datoru) un norādītu pareizo portu.
Piemēram, varat konfigurēt Firefox, lai izmantotu SOCKS starpniekserveri. Tas ir īpaši noderīgi, jo Firefox var būt savi starpniekservera iestatījumi, un tai nav jāizmanto visas sistēmas starpniekservera iestatījumi.Firefox nosūta savu datplūsmu caur SSH tuneli, bet citas lietojumprogrammas parasti izmantos jūsu interneta pieslēgumu.
To darot Firefox, izvēlieties "Manuāla starpniekservera konfigurācija", ievadiet "127.0.0.1" SOCKS resursdatoru lodziņā un lodziņā "Port" ievadiet dinamisko portu. Atstājiet HTTP starpniekserveri, SSL starpniekserveri un FTP starpniekserveri tukšus.
Tuneļa paliks aktīvs un atvērts tik ilgi, kamēr atvērts SSH sesijas savienojums. Kad jūs pārtraucat savu SSH sesiju un atvienosit no servera, tunelis būs arī slēgts. Vienkārši atkārtoti pieslēdzieties ar atbilstošo komandu (vai atbilstošās opcijas PuTTY), lai atkārtoti atvērtu tuneļu.