Ridrejtoni portet mbi SSH

Ndonjëherë kemi nevojë transmetoni të dhëna përmes një fole midis makinerive të ndryshme, të tilla si një lidhje Telnet, një shkarkim skedari FTP, një pyetje SQL ose ndonjë lloj tjetër transmetimi.

Këto të dhëna udhëtojnë të para përmes rrjetit, kështu që I pasigurt, që do të thotë se ato mund të përgjohen nga çdo nyje që është në shtegun midis origjinës dhe destinacionit, domethënë, i vjedhur.

Ne nuk mund të parandalojmë kapjen e këtyre të dhënave, por ajo që mund të parandalojmë është që ato të interpretohen dhe kuptohen nga palë të treta, duke kriptuar komunikimin.

SSH është mjeti që na lejon të bëjmë lidhje të sigurta midis makinerive. Përdorimi i tij më i zakonshëm është lidhja në distancë me një interpretues komande.

Sidoqoftë, ai ofron mundësi të tjera, siç është krijimi tunele të koduara midis makinerive të ndryshme.
Supozoni se duam të telnetojmë nga host1 në host2:

host1$ telnet host2

Ky komunikim është totalisht i hapur dhe mund të jetë kapura. Për ta mbrojtur atë, ne do të ridrejtojmë një port të zgjedhur në mënyrë arbitrare (për shembull 5000) në hostin 1 në portën 23 (telnet) në host2.

Në këtë mënyrë ne do të marrim të gjitha të dhënat e dërguara në portin 5000 të host1 për të udhëtuar të koduar përmes tunelit që hapet ssh përmes portit 22 të host2 dhe pastaj të ridrejtohemi në portin 23 të host2, duke arritur kështu destinacionin e tij përfundimtar.

Për ta bërë këtë, ne duhet të dimë emrin e përdoruesit dhe fjalëkalimin e host2.

Për të hapur tunelin ne shkruajmë:

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

O mirë:

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

Të dy opsionet janë ekuivalente. Për të vendosur lidhjen telnet, ne nuk i referohemi më host2 por portës së zgjedhur në host1:

host1$ telnet localhost 5000

Me këtë ne e bëjmë të sigurt çdo komunikim, qoftë telnet apo ndryshe. Duke hetuar pak më shumë do të shohim se falë fuqisë së SSH Këto ridrejtime mund të bëhen edhe në makineritë e treta, të cilat do të na lejonin që me një pikë të vetme hyrëse të mund të aksesonim në mënyrë të sigurt nga një LAN i tërë në një LAN tjetër.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   nano dijo

    Teoria duket jashtëzakonisht interesante, por do të ishte edhe më shumë nëse do të shihnim një rast praktik.

    Por e vërteta është se, edhe pse isha e shkurtër, unë e pëlqeja artikullin.

    1.    Igual dijo

      mbase duke parë wiki ju frymëzoheni https://wiki.archlinux.org/index.php/Secure_Shell#Forwarding_other_ports
      dhe e njëjta gjë, por seksioni i autossh https://wiki.archlinux.org/index.php/Secure_Shell#Autossh_-_automatically_restarts_SSH_sessions_and_tunnels
      Në të vërtetë, gjithçka që mund të dërgoni me ssh, qoftë streaming, lidhje me hostin. etj. se për x arsye ju doni t'i enkriptoni ato.
      dhe rregullat e safecrt

  2.   Tesla dijo

    Unë ndonjëherë përdor SSH në një nivel shumë themelor. Porti i paracaktuar është 22, apo jo?

    Pra, nëse e kuptoj saktë, kompjuteri im është host 1 dhe ai që unë dua të lidh host2, ky tunel do të krijonte një lidhje midis portit 5000 dhe portës së tij 23, dhe pastaj do të përfundonte në portin 22?

    Pse arsyet për të ndërruar portet? A mund të krijoni një tunel me portin 22?

    Artikull shumë interesant. Ashtu si nano, unë dua më shumë!

    1.    Getafix dijo

      SSH me të vërtetë përdor portin 22 si parazgjedhje (megjithëse mund të ndryshohet). Ky port është ai që do të përdoret nga komunikimi aktual midis dy hostëve. Theshtë ai që duhet të siguroheni që është i hapur dhe asnjë firewall nuk e ndërpret atë. Por për përdoruesit është plotësisht transparente. Ju mund ta harroni atë. Në shembull, ridrejtimi është midis porteve 5000 dhe 23. Ata të dy janë të vetmit për të cilët duhet të shqetësoheni. Përdoruesi do të shohë se gjithçka që ai dërgon në portin 5000 të hostit të tij shfaqet në 23 të hostit të destinacionit.
      Padyshim, çdo përdorues mund të ridrejtojë portet që i konsideron të përshtatshme.

      Faleminderit per komentet tuaja Ky është postimi im i parë dhe mendimet tuaja do t'ju ndihmojnë ta bëni më të mirë një tjetër.

  3.   eliotime3000 dijo

    A mund të bëhet edhe kjo me VPS?

  4.   dhunues dijo

    Ok kjo është çështja ime, PC1 ka qasje në një server, por PC2 nuk ka, të dy lidhen me ssh, unë dua të kem qasje në PC2, por cilën port të PC1 mund ta ridrejtoj? nëse në të vërtetë ajo që dua është të arrij në portin e serverit nga PC2 dhe që paketat të kenë PC1 si burim IP. a kuptoj

    1.    Getafix dijo

      Ju e bëni veten të kuptuar. Në këtë rast ju duhet PC1 për të ridrejtuar një portë të PC2 në portën 22 të serverit:

      PC2 $ ssh -L 5000: Serveri: 22 përdorues PC1 @ PC1

      dhe, duke e mbajtur të hapur këtë lidhje, nga një terminal tjetër:

      PC2 $ ssh userServer @ localhost -p 5000

      dhe ju jeni tashmë brenda.

      1.    dhunues dijo

        Më në fund një zgjidhje funksionale !! Faleminderit Getafix, më ke dhënë një botë mundësish !!

        1.    Getafix dijo

          Gëzohem!

  5.   i gjallë dijo

    Excelente artículo. Bienvenido a DesdeLinux 😀

    Dhe çfarë të bëjmë nëse kemi 22 të bllokuar? LOL ..

    1.    Getafix dijo

      Faleminderit elav.
      Nëse e keni të bllokuar portën 22, mmmm, do të duhet të kërkojmë një alternativë për të krisur XW firewall

    2.    eliotime3000 dijo

      Dhe më e keqja nga të gjitha (hipotetike): që është bllokuar nga ofruesi i VPS.

  6.   IGA dijo

    Sapo bëra një provim disa orë më parë me pyetje në lidhje me të

  7.   Mario dijo

    Unë nuk do të thosha se:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    është ekuivalente me rreshtin tjetër komandues ... ai me -L.
    Meqenëse -R tregon se porta që hapet për lidhje të reja është në anën e largët, domethënë në anën e serverit tuaj ssh; ndërsa -L hap një port në anën Lokale, në anën e klientit për të marrë lidhje të reja.

    Përkthimi i rreshtit:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    Do të ishte diçka si kjo: Të jesh në host1, lidhu me serverin ssh (porti 22) i host2 me përdoruesin tim userhost2 dhe përcjell lidhjet e krijuara në portin e largët 5000 të host2 në portën 23 në host1 (lokali im lokal)

    Nëse jo, më korrigjo! 😉

    -

    Nga ana tjetër ... nëse një server ka bllokuar hyrjen e lidhjeve në portin 22, domethënë, ne nuk mund të lidhemi në distancë me serverin ssh; ajo që mund të bëhet është; që nga serveri (një mik sysadmin prapa firewall-it të sistemit të largët host2) ekzekutohet një rresht komande:

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

    -f shkon në prapavijë
    -N nuk ekzekuton asnjë komandë në telekomandë
    nohup parandalon ekzekutimin e komandës kur ndërpritet

    host1 $ ssh userhost2 @ localhost -p 6000

    Në këtë mënyrë, nga host1 ne gjenerojmë një lidhje me localhost (i njëjti host1) në portin 6000 që do të përcjellë lidhjen në portën 22 të sistemit të largët host2, në të cilin do të futemi me përdoruesin host2.

    Kjo do të lejonte (nuk e provova, por tingëllon sikur funksionon) të futem në një server ssh të bllokuar nga firewal me pak ndihmë nga brenda! 😀

    Këtë të fundit e lexova nga një shpjegim i bërë në revistën The Geek Stuff
    http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

    Më pëlqen shumë publikimi juaj; I lexoj shpesh!
    Përshëndetje.

    1.    Getafix dijo

      Keni të drejtë. Ka një gabim në artikull. Përcjelljet nuk janë ekuivalente. Komanda host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2 kryen ridrejtimin e kundërt, domethënë, ai ridrejton portën e largët 5000 në 23 lokale, e kundërta e asaj që bën komanda me -L.
      Faleminderit për korrigjimin.