Cara Membuat SSH Tunneling atau Port Forwarding di Linux

Cara Membuat SSH Tunneling atau Port Forwarding di Linux – Terowongan SSH (juga disebut sebagai penerusan port SSH) hanya merutekan lalu lintas jaringan lokal melalui SSH ke host jarak jauh. Ini menyiratkan bahwa semua koneksi Anda diamankan menggunakan enkripsi. Ini menyediakan cara mudah untuk mengatur VPN dasar ( Virtual Private Network ), berguna untuk menghubungkan 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 yang aman, seperti yang diterapkan dalam ngrok .

Sesi SSH memungkinkan koneksi jaringan tunneling secara default dan ada tiga jenis penerusan port SSH: penerusan port lokal , jarak jauh dan dinamis .

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

Untuk tujuan artikel ini, kami menggunakan pengaturan berikut:

Tuan Rumah Lokal : 192.168.43.31
Remote Host : Linode CentOS 7 VPS dengan hostname server1.example.com .
Biasanya, Anda dapat terhubung dengan aman ke server jauh menggunakan SSH sebagai berikut. Dalam contoh ini, saya telah mengonfigurasi login SSH tanpa kata sandi antara host lokal dan remote saya, sehingga belum meminta kata sandi admin pengguna.

Penerusan Port SSH Lokal

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

Anda dapat meneruskan port lokal (mis. 8080 ) yang kemudian dapat Anda gunakan untuk mengakses aplikasi secara lokal sebagai berikut. The -Lbendera mendefinisikan port diteruskan ke remote host dan port remote.

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

Menambahkan -Nbendera berarti tidak menjalankan perintah jarak jauh, Anda tidak akan mendapatkan shell dalam hal ini.

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

The -fmenginstruksikan beralih ssh ke berjalan di latar belakang.

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

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

Remote SSH Port Forwarding

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 mengaktifkan ini 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 arahan yang diperlukan, batalkan komentar dan atur nilainya yes, seperti yang ditunjukkan pada tangkapan layar.

GatewayPort ya
Aktifkan Penerusan Port SSH Jarak Jauh
Aktifkan Penerusan Port SSH Jarak Jauh

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

$ sudo systemctl restart sshd
ATAU
$ 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 protected] -R 5000: localhost: 3000
Setelah Anda memahami metode tunneling 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 yang sama.

Penerusan Port SSH Dinamis
Ini adalah jenis port forwarding ketiga. Tidak seperti penerusan port lokal dan jarak jauh yang memungkinkan komunikasi dengan satu port, itu memungkinkan, berbagai komunikasi TCP melintasi berbagai port. Penerusan port dinamis mengatur 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 (SSH dalam kasus ini). Anda dapat mengaktifkan penerusan port dinamis menggunakan opsi -D .

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

$ ssh -f -N -D 1080 [email protected]
Mulai sekarang, Anda dapat membuat aplikasi pada mesin Anda menggunakan server proxy SSH ini dengan mengedit pengaturannya dan mengonfigurasinya untuk menggunakannya, untuk terhubung ke server jauh Anda. Perhatikan bahwa proksi SOCKS akan berhenti bekerja setelah Anda menutup sesi SSH Anda.

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

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

Perhatian : penerusan port SSH memiliki beberapa kelemahan yang besar, dapat disalahgunakan: dapat digunakan untuk mem-by-pass pemantauan jaringan dan program penyaringan lalu lintas (atau firewall). Penyerang dapat menggunakannya untuk kegiatan jahat. Pada artikel kami berikutnya, kami akan menunjukkan cara menonaktifkan penerusan port lokal SSH. Tetap terhubung!