Preusmjerite priključke preko SSH-a

Ponekad trebamo prenose podatke kroz utičnicu između različitih strojeva, poput veze Telnet, preuzimanja FTP datoteke, SQL upita ili bilo koje druge vrste prijenosa.

Ti podaci putuju sirovom mrežom, pa ja nesigurno, što znači da bi ih mogao presresti bilo koji čvor koji je na putu između ishodišta i odredišta, tj. ukraden.

Ne možemo spriječiti hvatanje ovih podataka, ali ono što možemo spriječiti jest da ih treće strane tumače i razumiju šifrirajući komunikaciju.

SSH je alat koji nam to omogućuje sigurne veze između strojeva. Njegova je najčešća upotreba daljinsko povezivanje s interpretatorom naredbi.

Međutim, nudi i druge mogućnosti, poput stvaranja šifrirani tuneli između različitih strojeva.
Pretpostavimo da želimo telnet od host1 do host2:

host1$ telnet host2

Ova je komunikacija potpuno otvorena i može biti ukršten. Da bismo je zaštitili, preusmjerit ćemo proizvoljno odabrani port (na primjer 5000) na hostu 1 na port 23 (telnet) hosta2.

Na taj ćemo način dobiti sve podatke koji se šalju u port 5000 od host1 za kriptirano putovanje kroz tunel koji se ssh otvara kroz port 22 od host2, a zatim će biti preusmjereni na port 23 od host2, čime ćemo doći do svog konačnog odredišta.

Da bismo to učinili, moramo znati korisničko ime i lozinku host2.

Za otvaranje tunela pišemo:

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

Pa dobro:

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

Obje su opcije jednake. Da bismo uspostavili telnet vezu, više se ne pozivamo na host2, već na port izabran na host1:

host1$ telnet localhost 5000

Ovim činimo bilo kakvu komunikaciju sigurnom, bila ona telnet ili drugačija. Istražujući još malo, vidjet ćemo da zahvaljujući snazi SSH Ta se preusmjeravanja mogu izvršiti i na treće strojeve, što bi nam omogućilo da s jednom ulaznom točkom možemo sigurno pristupiti s cijelog LAN-a na drugi LAN.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   nano dijo

    Teorija izgleda izuzetno zanimljivo, ali bilo bi još i više kad bismo vidjeli praktični slučaj.

    Ali istina je da sam, iako sam bila niska, voljela članak.

    1.    isti dijo

      možda gledajući wiki koji vas inspirira https://wiki.archlinux.org/index.php/Secure_Shell#Forwarding_other_ports
      i isto, ali odjeljak autossh https://wiki.archlinux.org/index.php/Secure_Shell#Autossh_-_automatically_restarts_SSH_sessions_and_tunnels
      Zapravo, sve što možete poslati ssh-om, bilo to streaming, veze s hostom. itd. da ih iz x razloga želite šifrirati.
      i pravila securecrt

  2.   Tesla dijo

    Ponekad koristim SSH na vrlo osnovnoj razini. Zadani port je 22, zar ne?

    Dakle, ako dobro razumijem, moj je računalo domaćin 1, a onaj na kojeg se želim povezati je host2, ovaj bi tunel stvorio vezu između porta 5000 i njegova porta 23, a zatim završio na portu 22?

    Zašto razlozi za prebacivanje portova? Možete li stvoriti tunel s priključkom 22?

    Vrlo zanimljiv članak. Kao nano, želim još!

    1.    Getafix dijo

      SSH doista prema zadanim postavkama koristi port 22 (iako se može promijeniti). Ovaj je port onaj koji bi koristio stvarna komunikacija između dva domaćina. To je onaj za koji morate biti sigurni da je otvoren i da ga nijedan vatrozid ne isključuje. Ali za korisnika je potpuno transparentno. Možete zaboraviti na njega. U primjeru je preusmjeravanje između priključaka 5000 i 23. Ta dva su jedina oko kojih morate brinuti. Korisnik će vidjeti da se sve što pošalje na port 5000 svog domaćina pojavljuje na 23 odredišnog domaćina.
      Očito je da svaki korisnik može preusmjeriti priključke koje smatra odgovarajućim.

      Hvala na komentarima. Ovo je moj prvi post, a vaša će mišljenja pomoći da sljedeći bude bolji.

  3.   eliotime3000 dijo

    Može li se to učiniti i s VPS-om?

  4.   dhunter dijo

    Ok, ovo je moj slučaj, PC1 ima pristup poslužitelju, ali PC2 nema, oba se povezuju ssh-om, želim imati pristup u PC2, ali koji port PC1 preusmjeriti? ako zapravo želim pristupiti poslužiteljskom portu s PC2 i da paketi imaju PC1 kao izvornu IP adresu. razumijem li?

    1.    Getafix dijo

      Postajete razumljivi. U ovom slučaju trebate PC1 za preusmjeravanje porta PC2 na port 22 poslužitelja:

      PC2 $ ssh -L 5000: Poslužitelj: 22 korisnika PC1 @ PC1

      i, držeći ovu vezu otvorenom, s drugog terminala:

      PC2 $ ssh userServer @ localhost -p 5000

      a ti si već unutra.

      1.    dhunter dijo

        Napokon funkcionalno rješenje !! Hvala Getafix, dali ste mi svijet mogućnosti !!

        1.    Getafix dijo

          Drago mi je!

  5.   živo dijo

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

    A što učiniti ako imamo 22 blokirana? LOL..

    1.    Getafix dijo

      Hvala elav.
      Ako imate blokiran port 22, mmmm, morat ćemo potražiti alternativu za hakiranje XD vatrozida

    2.    eliotime3000 dijo

      I što je najgore od svega (hipotetičko): da ga blokira davatelj usluge VPS.

  6.   IGA dijo

    Upravo sam odradio ispit prije nekoliko sati s pitanjima o tome 😛

  7.   Mario dijo

    Ne bih rekao da:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    ekvivalentan je drugom naredbenom retku ... onom s -L.
    Budući da -R ukazuje da je port koji je otvoren za nove veze na udaljenoj strani, odnosno na strani vašeg ssh poslužitelja; dok -L otvara port na lokalnoj strani, na klijentskoj strani za primanje novih veza.

    Prijevod retka:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    Bilo bi otprilike ovako: Nalazeći se na host1, povežite se sa ssh poslužiteljem (port 22) od host2 s mojim korisnikom userhost2 i proslijedite veze generirane na udaljenom portu 5000 od host2 do porta 23 na host1 (moj localhost)

    Ako ne, ispravite me! 😉

    -

    S druge strane ... ako je poslužitelj blokirao ulaz veza na port 22, to jest, ne možemo se daljinski povezati sa ssh poslužiteljem; što se može učiniti je; da se s poslužitelja (sysadmin prijatelja iza vatrozida udaljenog sustava host2) izvršava naredbeni redak:

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

    -f ide u pozadinu
    -N ne izvršava nijednu naredbu na daljinskom upravljaču
    nohup sprječava prekidanje izvršavanja naredbe prilikom odjave

    host1 $ ssh userhost2 @ localhost -p 6000

    Na taj način, od host1 generiramo vezu s localhostom (istim host1) na portu 6000 koji će proslijediti vezu na port 22 udaljenog sustava host2, u kojem ćemo se prijaviti s korisničkim hostom2.

    To bi omogućilo (nisam probao, ali zvuči kao da to djeluje) da se prijavim na ssh poslužitelj blokiran vatrozidom uz malu pomoć iznutra! 😀

    Ovo posljednje pročitao sam iz objašnjenja u časopisu The Geek Stuff
    http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

    Jako mi se sviđa vaša publikacija; Čitam ih često!
    Pozdrav.

    1.    Getafix dijo

      U pravu si. U članku postoji pogreška. Preusmjeravanja nisu jednaka. Naredba host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2 izvodi obrnuto preusmjeravanje, odnosno preusmjerava udaljeni port 5000 na 23 lokalna, suprotno onome što radi naredba s -L.
      Zahvaljujem na ispravku.