Ubah hala port melalui SSH

Kadang-kadang kita memerlukan menghantar data melalui soket antara mesin yang berbeza, seperti sambungan Telnet, muat turun fail FTP, pertanyaan SQL atau jenis penghantaran lain.

Data itu berjalan lancar melalui rangkaian, jadi tidak selamat, yang bermaksud bahawa mereka dapat dicegat oleh simpul yang berada di jalan antara asal dan tujuan, yaitu, jubah.

Kami tidak dapat mencegah data ini ditangkap, tetapi yang dapat kami cegah adalah data tersebut ditafsirkan dan difahami oleh pihak ketiga, menyulitkan komunikasi.

SSH adalah alat yang membolehkan kita lakukan sambungan selamat antara mesin. Penggunaannya yang paling biasa adalah untuk menghubungkan jarak jauh dengan jurubahasa perintah.

Namun, ia menawarkan kemungkinan lain, seperti membuat terowong yang disulitkan antara mesin yang berbeza.
Katakan kita mahu telnet dari host1 ke host2:

host1$ telnet host2

Komunikasi ini terbuka sepenuhnya dan boleh dipintas. Untuk melindunginya, kami akan mengalihkan port yang dipilih sewenang-wenangnya (contohnya 5000) pada host 1 ke port 23 (telnet) host2.

Dengan cara ini kita akan mendapatkan semua data yang dihantar ke port 5000 host1 untuk perjalanan yang disulitkan melalui terowong yang ssh dibuka melalui port 22 host2 dan kemudian diarahkan ke port 23 host2, sehingga mencapai tujuan akhir.

Untuk melakukan ini, kita perlu mengetahui nama pengguna dan kata laluan host2.

Untuk membuka terowong kami menulis:

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

Wahai:

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

Kedua-dua pilihan adalah setara. Untuk mewujudkan sambungan telnet, kita tidak lagi merujuk kepada host2 tetapi ke port yang dipilih pada host1:

host1$ telnet localhost 5000

Dengan ini kami membuat komunikasi selamat, sama ada telnet atau sebaliknya. Menyiasat sedikit lagi kita akan melihatnya berkat kekuatan SSH Pengalihan ini juga boleh dibuat ke mesin ketiga, yang memungkinkan kita bahawa dengan satu pintu masuk kita dapat mengakses dengan selamat dari seluruh LAN ke LAN lain.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   nano kata

    Teorinya kelihatan sangat menarik, tetapi akan lebih menarik lagi jika kita melihat kes praktikal.

    Tetapi yang sebenarnya adalah, walaupun saya pendek, saya menyukai artikel itu.

    1.    seperti kata

      mungkin melihat wiki anda mendapat inspirasi https://wiki.archlinux.org/index.php/Secure_Shell#Forwarding_other_ports
      dan sama, tetapi bahagian autossh https://wiki.archlinux.org/index.php/Secure_Shell#Autossh_-_automatically_restarts_SSH_sessions_and_tunnels
      Sebenarnya, apa sahaja yang anda boleh hantar melalui ssh, baik itu streaming, sambungan ke hos. dan lain-lain. bahawa atas sebab x anda mahu menyulitkannya.
      dan peraturan securecrt

  2.   Tesla kata

    Kadang kala saya menggunakan SSH pada tahap yang sangat asas. Port lalai adalah 22, bukan?

    Oleh itu, jika saya faham dengan betul, komputer saya adalah host 1 dan yang saya mahu sambungkan adalah host2, terowong ini akan membuat sambungan antara port 5000 dan portnya 23, dan kemudian berakhir di port 22?

    Mengapa alasan menukar port? Bolehkah anda membuat terowong dengan port 22?

    Artikel yang sangat menarik. Seperti nano, saya mahukan lebih banyak!

    1.    Getafix kata

      SSH memang menggunakan port 22 secara lalai (walaupun boleh diubah). Port ini adalah port yang akan digunakan oleh komunikasi sebenar antara kedua host. Anda mesti memastikannya terbuka dan tidak ada tembok api yang memotongnya. Tetapi bagi pengguna itu benar-benar telus. Anda boleh melupakannya. Contohnya, pengalihan adalah antara port 5000 dan 23. Kedua-duanya adalah satu-satunya yang perlu anda bimbangkan. Pengguna akan melihat bahawa semua yang dia hantar ke port 5000 hostnya muncul di 23 host tujuan.
      Jelas sekali, setiap pengguna dapat mengarahkan semula port yang difikirkannya sesuai.

      Terima kasih atas komen anda. Ini adalah catatan pertama saya dan pendapat anda akan membantu menjadikan yang berikutnya menjadi lebih baik.

  3.   eliotime3000 kata

    Bolehkah itu juga dilakukan dengan VPS?

  4.   penipu kata

    Ok ini adalah kes saya, PC1 mempunyai akses ke pelayan, tetapi PC2 tidak, kedua-duanya bersambung dengan ssh, saya ingin mempunyai akses di PC2, tetapi port PC1 mana yang saya hantar? jika sebenarnya yang saya mahukan adalah mencapai port pelayan dari PC2 dan paket-paket tersebut mempunyai PC1 sebagai IP sumbernya. adakah saya faham?

    1.    Getafix kata

      Anda membuat diri anda difahami. Dalam kes ini, anda memerlukan PC1 untuk mengarahkan port PC2 ke port 22 pelayan:

      PC2 $ ssh -L 5000: Pelayan: 22 pengguna PC1 @ PC1

      dan, menjaga sambungan ini terbuka, dari terminal lain:

      PC2 $ ssh userServer @ localhost -p 5000

      dan anda sudah berada di dalam.

      1.    penipu kata

        Akhirnya penyelesaian berfungsi !! Terima kasih Getafix, anda telah memberi saya banyak kemungkinan !!

        1.    Getafix kata

          Saya gembira!

  5.   meriah kata

    Artikel yang sangat baik. selamat datang ke DesdeLinux ????

    Dan apa yang perlu dilakukan sekiranya kita mempunyai 22 yang disekat? LOL ..

    1.    Getafix kata

      Terima kasih elav.
      Sekiranya anda mempunyai port 22 yang tersekat, mmmm, kita harus mencari alternatif untuk menggodam firewall XD

    2.    eliotime3000 kata

      Dan yang paling teruk (hipotetikal): bahawa ia disekat oleh penyedia VPS.

  6.   IGA kata

    Saya baru sahaja menjalani peperiksaan beberapa jam yang lalu dengan soalan mengenainya 😛

  7.   Mario kata

    Saya tidak akan mengatakan bahawa:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    ia setara dengan baris arahan yang lain ... yang dengan -L.
    Oleh kerana -R menunjukkan bahawa port yang dibuka ke sambungan baru berada di sisi terpencil, iaitu di sisi pelayan ssh anda; sementara -L membuka port di sebelah Local, di sebelah klien untuk menerima sambungan baru.

    Terjemahan baris:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    Ia akan menjadi seperti ini: Berada di host1, sambungkan ke pelayan ssh (port 22) host2 dengan userhost2 pengguna saya dan teruskan sambungan yang dihasilkan di port jauh 5000 host2 ke port 23 di host1 (my localhost)

    Sekiranya tidak, betulkan saya! 😉

    -

    Sebaliknya ... jika pelayan telah menyekat kemasukan sambungan ke port 22, iaitu, kita tidak dapat menyambung dari jauh ke pelayan ssh; apa yang boleh dilakukan adalah; bahawa dari pelayan (rakan sysadmin di belakang firewall sistem host2 jarak jauh) baris arahan dijalankan:

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

    -f menuju ke latar belakang
    -N tidak melaksanakan arahan pada alat kawalan jauh
    nohup menghalang pelaksanaan perintah daripada terganggu semasa log keluar

    host1 $ ssh userhost2 @ localhost -p 6000

    Dengan cara ini, dari host1 kita menjana sambungan ke localhost (host1 yang sama) pada port 6000 yang akan meneruskan sambungan ke port 22 dari host2 sistem jauh, di mana kita akan log masuk dengan host2 pengguna.

    Ini akan membenarkan (saya tidak mencubanya, tetapi sepertinya ia berfungsi) untuk masuk ke pelayan ssh yang disekat oleh firewal dengan sedikit bantuan dari dalam! 😀

    Yang terakhir saya baca dari penjelasan yang dibuat dalam majalah The Geek Stuff
    http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

    Saya sangat menyukai penerbitan anda; Saya sering membacanya!
    Greetings.

    1.    Getafix kata

      Anda betul. Terdapat ralat dalam artikel. Pengalihan tidak setara. Host1 $ ssh -R 5000: localhost arahan: 23 userhost2 @ host2 melakukan pengalihan terbalik, iaitu, ia mengarahkan port jauh 5000 ke 23 lokal, yang bertentangan dengan perintah yang dilakukan oleh -L.
      Terima kasih atas pembetulannya.