Cara Membuat SSH Tunneling atau Port Forwarding di Linux


Penerusan port SSH (juga disebut sebagai penerusan port SSH) hanyalah merutekan lalu lintas jaringan lokal melalui SSH ke host jarak jauh. Ini menyiratkan bahwa semua koneksi Anda diamankan menggunakan enkripsi. Ini memberikan cara mudah untuk menyiapkan VPN (Virtual Private Network) dasar, yang berguna untuk menyambung ke jaringan pribadi melalui jaringan publik yang tidak aman seperti Internet.

Anda juga dapat digunakan untuk mengekspos server lokal di belakang NAT dan firewall ke Internet melalui terowongan aman, seperti yang diterapkan di ngrok.

Sesi SSH mengizinkan penerowongan koneksi jaringan secara default dan ada tiga jenis penerusan port SSH: lokal, jarak jauh dan dinamis penerusan porta.

Pada artikel ini, kami akan menunjukkan cara cepat dan mudah mengatur terowongan SSH atau berbagai jenis penerusan porta di Linux.

Lingkungan Pengujian:

Untuk tujuan artikel ini, kami menggunakan pengaturan berikut:

  1. Host Lokal: 192.168.43.31
  2. Host Jarak Jauh: VPS Linode CentOS 7 dengan nama host server1.example.com.

Biasanya, Anda dapat terhubung dengan aman ke server jarak jauh menggunakan SSH sebagai berikut. Dalam contoh ini, saya telah mengkonfigurasi login SSH tanpa kata sandi antara host lokal dan jarak jauh, sehingga tidak meminta kata sandi admin pengguna.

ssh [email   

Penerusan Port SSH Lokal

Jenis penerusan port ini memungkinkan Anda terhubung dari komputer lokal ke server jarak jauh. Dengan asumsi Anda berada di belakang firewall yang membatasi atau diblokir oleh firewall keluar dari mengakses aplikasi yang berjalan pada port 3000 di server jarak jauh Anda.

Anda dapat meneruskan port lokal (misalnya 8080) yang kemudian dapat Anda gunakan untuk mengakses aplikasi secara lokal sebagai berikut. Flag -L mendefinisikan port yang diteruskan ke host jarak jauh dan port jarak jauh.

ssh [email  -L 8080:server1.example.com:3000

Menambahkan tanda -N berarti jangan menjalankan perintah jarak jauh, Anda tidak akan mendapatkan shell dalam kasus ini.

ssh -N [email  -L 8080:server1.example.com:3000

Sakelar -f memerintahkan ssh untuk berjalan di latar belakang.

ssh -f -N [email  -L 8080:server1.example.com:3000

Sekarang, di mesin lokal Anda, buka browser, daripada mengakses aplikasi jarak jauh menggunakan alamat server1.example.com:3000, Anda cukup menggunakan localhost:8080 atau 192.168.43.31:8080, seperti yang ditunjukkan pada gambar di bawah.

Penerusan Port SSH Jarak Jauh

Penerusan port jarak jauh memungkinkan Anda terhubung dari mesin jarak jauh ke komputer lokal. Secara default, SSH tidak mengizinkan penerusan port jarak jauh. Anda dapat mengaktifkannya menggunakan direktif GatewayPorts di file konfigurasi utama SSHD Anda /etc/ssh/sshd_config pada host jarak jauh.

Buka file untuk diedit menggunakan editor baris perintah favorit Anda.

sudo vim /etc/ssh/sshd_config 

Cari direktif yang diperlukan, batalkan komentar, dan tetapkan nilainya menjadi yes, seperti yang ditunjukkan pada tangkapan layar.

GatewayPorts yes

Simpan perubahan dan keluar. Selanjutnya, Anda perlu memulai ulang sshd untuk menerapkan perubahan terbaru yang Anda buat.

sudo systemctl restart sshd
OR
sudo service sshd restart 

Selanjutnya jalankan perintah berikut untuk meneruskan port 5000 pada mesin jarak jauh ke port 3000 pada mesin lokal.

ssh -f -N [email  -R 5000:localhost:3000

Setelah Anda memahami metode penerowongan ini, Anda dapat dengan mudah dan aman mengekspos server pengembangan lokal, terutama di belakang NAT dan firewall ke Internet melalui terowongan yang aman. Terowongan seperti Ngrok, pagekite, localtunnel, dan banyak lainnya bekerja dengan cara serupa.

Penerusan Port SSH Dinamis

Ini adalah jenis penerusan port ketiga. Tidak seperti penerusan port lokal dan jarak jauh yang memungkinkan komunikasi dengan satu port, penerusan port ini memungkinkan jangkauan penuh komunikasi TCP di berbagai port. Penerusan port dinamis menyiapkan mesin Anda sebagai server proxy SOCKS yang mendengarkan pada port 1080, secara default.

Sebagai permulaan, SOCKS adalah protokol Internet yang mendefinisikan bagaimana klien dapat terhubung ke server melalui server proxy (dalam hal ini SSH). Anda dapat mengaktifkan penerusan port dinamis menggunakan opsi -D.

Perintah berikut akan memulai proksi SOCKS pada port 1080 yang memungkinkan Anda terhubung ke host jarak jauh.

ssh -f -N -D 1080 [email 

Mulai sekarang, Anda dapat membuat aplikasi di mesin Anda menggunakan server proxy SSH ini dengan mengedit pengaturannya dan mengonfigurasinya agar menggunakannya, untuk terhubung ke server jarak jauh Anda. Perhatikan bahwa proxy SOCKS akan berhenti berfungsi setelah Anda menutup sesi SSH Anda.

Baca Juga: 5 Cara Menjaga Sesi SSH Jarak Jauh Tetap Berjalan Setelah Menutup SSH

Ringkasan

Pada artikel ini, kami menjelaskan berbagai jenis penerusan port dari satu mesin ke mesin lainnya, untuk menyalurkan lalu lintas melalui koneksi SSH yang aman. Ini adalah salah satu dari sekian banyak kegunaan SSH. Anda dapat menambahkan suara Anda ke panduan ini melalui formulir umpan balik di bawah.

Perhatian: Penerusan port SSH memiliki beberapa kelemahan besar, dan dapat disalahgunakan: dapat digunakan untuk melewati pemantauan jaringan dan program pemfilteran lalu lintas (atau firewall). Penyerang dapat menggunakannya untuk aktivitas jahat. Pada artikel kami berikutnya, kami akan menunjukkan cara menonaktifkan penerusan port lokal SSH. Tetap terhubung!