Preusmeritev vrat prek SSH

Včasih potrebujemo prenos podatkov prek vtičnice med različnimi računalniki, na primer povezavo Telnet, prenos datoteke FTP, poizvedbo SQL ali katero koli drugo vrsto prenosa.

Ti podatki potujejo po omrežju neobdelani negotov, kar pomeni, da bi jih lahko prestreglo katero koli vozlišče, ki je na poti med izvorom in ciljem, to je ukradeno.

Teh podatkov ne moremo preprečiti, vendar lahko preprečimo, da jih tretje osebe interpretirajo in razumejo ter šifrirajo komunikacijo.

SSH je orodje, ki nam omogoča varne povezave med stroji. Njegova najpogostejša uporaba je oddaljena povezava s tolmačem ukazov.

Ponuja pa druge možnosti, na primer ustvarjanje šifrirani predori med različnimi stroji.
Recimo, da želimo telnet od gostitelja1 do gostitelja2:

host1$ telnet host2

Ta komunikacija je popolnoma odprta in je lahko prestrezano. Da ga zaščitimo, bomo preusmerili poljubno izbrana vrata (na primer 5000) na gostitelja 1 na vrata 23 (telnet) gostitelja2.

Na ta način bomo dobili vse podatke, poslane v vrata 5000 gostitelja1, da bodo šifrirani skozi tunel, ki se ssh odpre skozi vrata 22 gostitelja2, nato pa bodo preusmerjeni v vrata 23 gostitelja2 in s tem dosegli svoj končni cilj.

Za to moramo poznati uporabniško ime in geslo gostitelja2.

Za odprtje predora pišemo:

host1$ ssh -R 5000:localhost:23 usuariohost2@host2

No dobro:

host1$ ssh -L 5000:host2:23 usuariohost2@host2

Obe možnosti sta enakovredni. Za vzpostavitev telnet povezave se ne sklicujemo več na gostitelja2, temveč na izbrana vrata na gostitelja1:

host1$ telnet localhost 5000

S tem zagotavljamo varnost katere koli komunikacije, naj bo to telnet ali kako drugače. Če bomo še malo raziskali, bomo to videli zahvaljujoč moči SSH Te preusmeritve lahko izvedemo tudi na tretje stroje, kar bi nam omogočilo, da bi z eno samo vstopno točko lahko varno dostopali iz celotnega LAN-a v drug LAN.


15 komentarja, pustite svojega

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   nano je dejal

    Teorija je videti izjemno zanimiva, še bolj zanimiva pa bi bila, če bi videli praktični primer.

    Resnica pa je, da mi je bil članek, čeprav sem bil kratek, všeč.

    1.    enako je dejal

      morda ob pogledu na wiki dobite navdih https://wiki.archlinux.org/index.php/Secure_Shell#Forwarding_other_ports
      in enako, vendar razdelek autossh https://wiki.archlinux.org/index.php/Secure_Shell#Autossh_-_automatically_restarts_SSH_sessions_and_tunnels
      Pravzaprav vse, kar lahko pošljete ssh, naj bo to pretakanje, povezave do gostitelja. itd. da jih želite zaradi x razloga šifrirati.
      in pravila securecrt

  2.   Tesla je dejal

    Včasih uporabljam SSH na zelo osnovni ravni. Privzeta vrata so 22, kajne?

    Torej, če prav razumem, je moj računalnik gostitelj 1, tistega, ki ga želim povezati, pa je gostitelj2, bi ta predor ustvaril povezavo med vrati 5000 in vrati 23 in nato končal na vratih 22?

    Zakaj razlogi za zamenjavo vrat? Ali lahko ustvarite predor z vrati 22?

    Zelo zanimiv članek. Tako kot nano, tudi jaz želim več!

    1.    Getafix je dejal

      SSH privzeto dejansko uporablja vrata 22 (čeprav jih je mogoče spremeniti). Ta vrata bi uporabila dejanska komunikacija med obema gostiteljema. Prepričajte se, da je odprt in ga noben požarni zid ne prekine. Toda za uporabnika je popolnoma pregleden. Lahko pozabiš na to. V primeru je preusmeritev med vrati 5000 in 23. Ta dva sta edina, zaradi česar morate skrbeti. Uporabnik bo videl, da se vse, kar pošlje na vrata 5000 svojega gostitelja, prikaže na 23 ciljnega gostitelja.
      Očitno lahko vsak uporabnik preusmeri vrata, ki se mu zdijo primerna.

      Hvala za vaše komentarje. To je moja prva objava in vaša mnenja bodo pripomogla k izboljšanju naslednje.

  3.   eliotime3000 je dejal

    Ali je to mogoče storiti tudi z VPS?

  4.   dhunter je dejal

    Ok, to je moj primer, PC1 ima dostop do strežnika, PC2 pa ne, oba se povežeta ssh, želim imeti dostop v PC2, toda katera vrata PC1 naj preusmerim? če dejansko želim, da s strežnika PC2 pridem do strežniških vrat in da imajo paketi PC1 kot izvorni ip. ali razumem?

    1.    Getafix je dejal

      Se razumete. V tem primeru potrebujete PC1 za preusmeritev vrat PC2 na vrata 22 strežnika:

      PC2 $ ssh -L 5000: Strežnik: 22 uporabnikov PC1 @ PC1

      in, če imate to povezavo odprto, z drugega terminala:

      PC2 $ ssh userServer @ localhost -p 5000

      in že si notri.

      1.    dhunter je dejal

        Končno funkcionalna rešitev !! Hvala Getafix, dal si mi svet možnosti !!

        1.    Getafix je dejal

          Vesel sem!

  5.   živahno je dejal

    Excelente artículo. Bienvenido a DesdeLinux ????

    In kaj storiti, če imamo 22 blokiranih? LOL ..

    1.    Getafix je dejal

      Hvala elav.
      Če imate vrata 22 blokirana, mmmm, bomo morali poiskati alternativo za vdor požarnega zidu XD

    2.    eliotime3000 je dejal

      In kar je najhuje (hipotetično): da ga blokira ponudnik VPS.

  6.   IGA je dejal

    Ravno pred nekaj urami sem opravil izpit z vprašanji o tem 😛

  7.   Mario je dejal

    Ne bi rekel, da:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    enakovredna je drugi ukazni vrstici ... tisti z -L.
    Ker -R pomeni, da so vrata, ki so odprta za nove povezave, na oddaljeni strani, torej na strani vašega ssh strežnika; medtem ko -L odpre vrata na lokalni strani na odjemalski strani za sprejemanje novih povezav.

    Prevod vrstice:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    To bi bilo nekako takole: Če ste na host1, se povežite s ssh strežnikom (vrata 22) gostitelja2 z mojim uporabnikom userhost2 in posredujte povezave, ustvarjene na oddaljenih vratih 5000 gostitelja2, na vrata 23 na host1 (moj localhost)

    Če ne, me popravite! 😉

    -

    Po drugi strani ... če je strežnik blokiral vstop v povezave do vrat 22, to pomeni, da se s strežnikom ssh ne moremo povezati na daljavo; kaj je mogoče storiti, je; da se iz strežnika (prijateljski sysadmin za požarnim zidom oddaljenega sistema host2) izvede ukazna vrstica:

    host2 $ nohup ssh -fN -R 6000: localhost: 22 userhost1 @ host1

    -f gre v ozadje
    -N ne izvede nobenega ukaza na daljinskem upravljalniku
    nohup preprečuje, da bi se pri odjavi prekinilo izvajanje ukaza

    host1 $ ssh userhost2 @ localhost -p 6000

    Na ta način iz gostitelja1 na vratih 1 ustvarimo povezavo z lokalnim gostiteljem (isti gostitelj6000), ki bo posredoval povezavo na vrata 22 oddaljenega sistemskega gostitelja2, v katerem se bomo prijavili z uporabniškim gostiteljem2.

    To bi omogočilo (nisem poskusil, vendar se sliši, kot da deluje), da se z malo pomoči od znotraj prijavite v strežnik ssh, ki ga blokira požarni požar! 😀

    Slednje sem prebral iz obrazložitve revije The Geek Stuff
    http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

    Zelo mi je všeč vaša publikacija; Pogosto jih berem!
    Lep pozdrav.

    1.    Getafix je dejal

      Prav imaš. V članku je napaka. Preusmeritve niso enakovredne. Ukaz host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2 izvede obratno preusmeritev, to pomeni, da preusmeri oddaljena vrata 5000 na 23 lokalnih, nasprotno od tega, kar počne ukaz z -L.
      Hvala za popravek.