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.
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.
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
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š!
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.
Može li se to učiniti i s VPS-om?
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?
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.
Napokon funkcionalno rješenje !! Hvala Getafix, dali ste mi svijet mogućnosti !!
Drago mi je!
Excelente artículo. Bienvenido a DesdeLinux ????
A što učiniti ako imamo 22 blokirana? LOL..
Hvala elav.
Ako imate blokiran port 22, mmmm, morat ćemo potražiti alternativu za hakiranje XD vatrozida
I što je najgore od svega (hipotetičko): da ga blokira davatelj usluge VPS.
Upravo sam odradio ispit prije nekoliko sati s pitanjima o tome 😛
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.
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.