Dažreiz mums vajag pārsūtīt datus caur kontaktligzdu starp dažādām mašīnām, piemēram, Telnet savienojumu, FTP failu lejupielādi, SQL vaicājumu vai jebkura cita veida pārraidi.
Šie dati caur tīklu pārvietojas neapstrādāti, tātad nedrošs, kas nozīmē, ka tos varētu pārtvert jebkurš mezgls, kas atrodas ceļā starp sākumpunktu un galamērķi, tas ir, nozagts.
Mēs nevaram novērst šo datu tveršanu, bet mēs varam novērst to, ka tos interpretē un saprot trešās puses, šifrējot saziņu.
SSH ir rīks, kas ļauj mums to izdarīt drošus savienojumus starp mašīnām. Visizplatītākā tā ir attālināta savienošana ar komandu tulku.
Tomēr tas piedāvā citas iespējas, piemēram, radīšanu šifrēti tuneļi starp dažādām mašīnām.
Pieņemsim, ka mēs vēlamies telnet no host1 uz host2:
host1$ telnet host2
Šī komunikācija ir pilnīgi atvērta un var būt pārtverta. Lai to aizsargātu, mēs novirzīsim patvaļīgi izvēlētu portu (piemēram, 5000) 1. resursdatorā uz 23. resursdatora 2. portu (telnet).
Tādā veidā mēs saņemsim visus datus, kas nosūtīti uz host5000 1 portu, lai pārvietotos šifrēti caur tuneli, kas ssh tiek atvērts caur host22 portu un pēc tam tiek novirzīts uz host2 portu 23, tādējādi sasniedzot galamērķi.
Lai to izdarītu, mums jāzina host2 lietotājvārds un parole.
Lai atvērtu tuneli, mēs rakstām:
host1$ ssh -R 5000:localhost:23 usuariohost2@host2
O labi:
host1$ ssh -L 5000:host2:23 usuariohost2@host2
Abas iespējas ir līdzvērtīgas. Lai izveidotu telnet savienojumu, mēs vairs neattiecamies uz 2. resursdatoru, bet uz izvēlēto resursdatora1 portu:
host1$ telnet localhost 5000
Tādējādi mēs padarām jebkuru saziņu drošu, vai tā būtu telnet, vai kā citādi. Vēl nedaudz izpētot, mēs to redzēsim, pateicoties SSH Šīs novirzīšanas var veikt arī uz trešajām mašīnām, kas ļautu mums ar vienu ieejas punktu droši piekļūt no visa LAN uz citu LAN.
Teorija izskatās ārkārtīgi interesanta, taču tas būtu vēl jo vairāk, ja mēs redzētu praktisku gadījumu.
Bet patiesība ir tāda, ka, lai arī man bija maza auguma, raksts man patika.
varbūt apskatot wiki, kas jums iedvesmojas https://wiki.archlinux.org/index.php/Secure_Shell#Forwarding_other_ports
un tas pats, bet autossh sadaļa https://wiki.archlinux.org/index.php/Secure_Shell#Autossh_-_automatically_restarts_SSH_sessions_and_tunnels
Faktiski viss, ko jūs varat nosūtīt, izmantojot ssh, neatkarīgi no tā, vai tas ir straumēšana, savienojumi ar resursdatoru. utt. ka x iemesla dēļ vēlaties tos šifrēt.
un securecrt noteikumi
Es dažreiz izmantoju SSH ļoti pamata līmenī. Noklusējuma ports ir 22, vai ne?
Tātad, ja es pareizi saprotu, mans dators ir 1. resursdators un tas, ar kuru es vēlos izveidot savienojumu, ir resursdators2, šis tunelis izveidotu savienojumu starp 5000. portu un tā 23. portu un pēc tam nonāktu 22. portā?
Kāpēc jāmaina porti? Vai jūs varat izveidot tuneli ar 22. ostu?
Ļoti interesants raksts. Tāpat kā nano, arī es vēlos vēlēties vairāk!
SSH patiešām izmanto 22. portu pēc noklusējuma (lai gan to var mainīt). Šis ports ir tas, kuru izmantotu faktiskā saziņa starp abiem saimniekiem. Jums jāpārliecinās, ka tas ir atvērts un neviens ugunsmūris to negriež. Bet lietotājam tas ir pilnīgi pārredzams. Jūs varat aizmirst par viņu. Šajā piemērā novirzīšana notiek starp 5000 un 23. pieslēgvietām. Šīs divas ir vienīgās, par kurām jums jāuztraucas. Lietotājs redzēs, ka viss, ko viņš sūta sava resursdatora 5000 ostai, parādās galamērķa resursdatora 23. vietā.
Acīmredzot katrs lietotājs var novirzīt portus, kurus viņš uzskata par piemērotiem.
Paldies par jūsu komentāriem. Šis ir mans pirmais ieraksts, un jūsu viedokļi palīdzēs padarīt nākamo labāku.
Vai to var izdarīt arī ar VPS?
Labi, tas ir mans gadījums, PC1 ir piekļuve serverim, bet PC2 nav, abi savienojas ar ssh, es gribu piekļūt PC2, bet kuru PC1 portu es novirzīšu? ja patiesībā es vēlos sasniegt servera portu no PC2 un ka pakešu avots ir PC1. vai es saprotu?
Jūs darāt sevi saprotamu. Šajā gadījumā jums ir nepieciešams PC1, lai novirzītu PC2 portu uz servera 22. portu:
PC2 $ ssh -L 5000: Serveris: 22 lietotāju PC1 @ PC1
un, turot šo savienojumu atvērtu, no cita termināļa:
PC2 $ ssh userServer @ localhost -p 5000
un tu jau esi iekšā.
Beidzot funkcionāls risinājums !! Paldies Getafix, tu man esi devis iespēju pasauli !!
Esmu priecīgs!
Izcils raksts. laipni lūdzam DesdeLinux ????
Un ko darīt, ja mums ir bloķēti 22? LOL ..
Paldies elav.
Ja jums ir bloķēts 22. ports, mmmm, mums būs jāmeklē alternatīva XD ugunsmūra uzlaušanai
Un vissliktākais (hipotētisks): ka to bloķē VPS nodrošinātājs.
Tikko pirms dažām stundām veicu eksāmenu ar jautājumiem par to 😛
Es neteiktu, ka:
host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
tas ir līdzvērtīgs otrai komandrindai ... tai, kurai ir -L.
Tā kā -R norāda, ka ports, kas tiek atvērts jauniem savienojumiem, atrodas attālajā pusē, tas ir, jūsu ssh servera pusē; kamēr -L atver portu lokālajā pusē, klienta pusē, lai saņemtu jaunus savienojumus.
Rindas tulkojums:
host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
Tas būtu apmēram šādi: atrodoties host1, izveidojiet savienojumu ar host22 ssh serveri (ports 2) ar savu lietotāju userhost2 un pārsūtiet savienojumus, kas izveidoti resursdatora5000 attālajā portā 2, uz portu 23 host1 (mans localhost)
Ja nē, izlabojiet mani! 😉
-
No otras puses ... ja serveris ir bloķējis savienojumu ievadi ar 22. portu, tas ir, mēs nevaram attālināti izveidot savienojumu ar ssh serveri; ko var izdarīt, ir; ka no servera (drauga sysadmin aiz attālās host2 sistēmas ugunsmūra) tiek izpildīta komandrinda:
host2 $ nohup ssh -fN -R 6000: localhost: 22 userhost1 @ host1
-f iet uz fona
-N neizpilda nevienu komandu tālvadības pultī
nohup novērš komandas izpildes pārtraukšanu, kad izrakstāties
resursdators1 $ ssh userhost2 @ localhost -p 6000
Tādā veidā no resursdatora1 mēs izveidojam savienojumu ar localhost (to pašu resursdatoru1) portā 6000, kas pārsūtīs savienojumu ar attālās sistēmas resursdatora22 portu 2, kurā mēs pieteiksimies ar lietotāja resursdatoru2.
Tas ļautu (es to nepārbaudīju, bet izklausās, ka tas darbojas) ar nelielu palīdzību no iekšienes pieteikties ssh serverī, kuru bloķējis ugunsmūris! 😀
Pēdējo es izlasīju no paskaidrojuma, kas sniegts žurnālā The Geek Stuff
http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/
Man ļoti patīk jūsu publikācija; Es tos bieži lasu!
Sveicieni.
Tev ir taisnība. Rakstā ir kļūda. Novirzīšana nav līdzvērtīga. Komanda host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2 veic reverso novirzīšanu, tas ir, novirza attālo portu 5000 uz 23 lokālo, pretēji tam, ko dara komanda ar -L.
Paldies par labojumu.