GNU/Linux >> Belajar Linux >  >> Linux

Cara Menggunakan Tunneling SSH untuk Mengakses Server yang Dibatasi

Selain mengirim data ssh, protokol ssh dapat menyalurkan lalu lintas lain antara dua host. Terowongan ssh yang paling umum adalah remote dan lokal.

SSH tunneling atau SSH port forwarding adalah metode untuk membuat koneksi SSH terenkripsi antara klien dan mesin server yang melaluinya port layanan dapat direlai.

Terowongan SSH Lokal dengan Penerusan Port

Anda dapat menggunakan terowongan ssh lokal ketika Anda ingin mendapatkan sumber daya yang tidak dapat Anda akses secara langsung, tetapi server ssh yang dapat Anda akses dapat melakukannya. Berikut beberapa skenarionya.

Proksi ke Server Jarak Jauh

Pada gambar di atas, host biru tidak dapat menjangkau http://192.168.0.3 tapi bisa ssh ke 192.168.0.2. Perintah ssh berikut dijalankan pada host biru akan memungkinkan host biru mencapai host merah.

ssh -L 8080:192.168.0.3:80 [email protected]

Sekarang host biru dapat membuka browser, buka http://localhost:8080 , dan disajikan dengan halaman web yang dihosting di 192.168.0.3.

Penerusan Port Lokal

Pada gambar di atas, host biru ingin terhubung ke host merah pada port 80 tetapi ada firewall di antaranya yang menyangkal hal ini. Karena host biru dapat ssh ke host merah, kita dapat membuat terowongan ssh penerusan port lokal untuk mengakses port tersebut.

Perintah pada host biru adalah:

ssh -L 8080:192.168.0.2:80 [email protected]

Sekarang ketika host biru membuka browser dan membuka http://localhost:8080 mereka akan dapat melihat apa pun yang dimiliki server merah di port 80.

Sintaks Penerusan Port Lokal

Sintaks ini untuk membuat terowongan penerusan port ssh lokal adalah ini:

ssh -L <LPORT>:<RHOST>:<RPORT> <GATEWAY>

Terowongan SSH Jarak Jauh dengan Penerusan Port

Dalam skenario ini, kami membuat terowongan ssh terbalik. Di sini kita dapat memulai terowongan ssh dalam satu arah, kemudian menggunakan terowongan itu untuk membuat terowongan ssh kembali ke arah lain. Ini mungkin berguna ketika Anda menjatuhkan komputer drone ke dalam jaringan dan menginginkannya untuk "menelepon ke rumah". Kemudian ketika telepon rumah, Anda dapat menghubungkannya melalui terowongan ssh yang telah dibuat.

Kami berada di host hijau dan ingin ssh ke host biru. Namun, firewall memblokir koneksi ini secara langsung. Karena host biru dapat melakukan ssh ke host hijau, kita dapat terhubung menggunakan itu, dan ketika host hijau ingin melakukan ssh kembali ke host biru, ia dapat melewati terowongan yang telah dibuat sebelumnya.

Host biru memulai terowongan ssh seperti ini:

ssh -R 2222:localhost:22 [email protected]

Ini membuka port 2222 pada host hijau, yang kemudian meneruskan port tersebut ke port 22 pada host biru. Jadi jika host hijau melakukan ssh ke dirinya sendiri pada port 2222, host tersebut akan mencapai host biru.

Host hijau sekarang dapat ssh ke host biru seperti ini:

ssh -p 2222 [email protected]

Menggunakan Opsi -N

Saat menggunakan ssh, Anda dapat menentukan -N flag yang memberi tahu ssh bahwa Anda tidak perlu mengirim perintah apa pun melalui koneksi ssh saat koneksi dibuat. Opsi ini sering digunakan saat membuat tunnel karena seringkali kita tidak perlu benar-benar mendapatkan prompt.

Autossh

autossh perintah digunakan untuk menambahkan ketekunan ke terowongan Anda. Tugasnya adalah memverifikasi koneksi ssh Anda, dan jika tidak, buatlah.

Berikut adalah perintah autossh yang mungkin Anda kenali.

autossh -N -i /home/blueuser/.ssh/id_rsa -R 2222:localhost:22 [email protected]

 -i /home/blueuser/.ssh/id_rsa opsi mengatakan untuk menggunakan sertifikat untuk mengautentikasi koneksi ssh ini.

Sekarang ketika terowongan Anda turun maka secara otomatis akan mencoba untuk menyambung kembali dan terus mencoba sampai berhasil. Untuk membuatnya persisten melalui reboot, tambahkan perintah ssh sebagai tugas cron.


Linux
  1. Cara menggunakan protokol SSH dan SFTP di jaringan rumah Anda

  2. Bagaimana saya bisa menggunakan SSH dengan proxy SOCKS 5?

  3. ssh tunneling hanya akses

  1. Cara Mengonfigurasi Koneksi SSH Khusus untuk Menyederhanakan Akses Jarak Jauh

  2. Cara Mengatur Tunneling SSH

  3. Ssh – Bagaimana Menghindari Ssh Meminta Izin?

  1. Bagaimana Cara Membuat Pengguna Baru Dengan Akses Ssh?

  2. Bagaimana cara mengetahui apakah koneksi ssh ControlMaster sedang digunakan

  3. Gunakan scp untuk menyalin file ke server yang berbeda