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:
- Host Lokal: 192.168.43.31
- 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!