Secure Shell (SSH) adalah protokol jaringan yang memungkinkan pertukaran data secara aman antara dua perangkat melalui jaringan yang tidak aman. SSH digunakan secara luas untuk akses jarak jauh ke server, transfer file yang aman, dan berbagai tugas administrasi jaringan lainnya. Salah satu fitur paling canggih dari SSH adalah kemampuannya untuk melakukan port forwarding, yang memungkinkan data untuk dialihkan melalui koneksi SSH. Dalam artikel ini, kita akan membahas secara mendalam tentang SSH Reverse Port Forwarding, sebuah teknik yang sering digunakan untuk mengatasi keterbatasan jaringan, memungkinkan akses ke layanan di balik firewall atau NAT (Network Address Translation).
Apa Itu SSH Reverse Port Forwarding?
SSH Reverse Port Forwarding adalah teknik di mana Anda membuat koneksi SSH dari klien (misalnya, komputer Anda) ke server, lalu memanfaatkan koneksi tersebut untuk membuka port di server yang kemudian diteruskan kembali ke port di klien. Ini berlawanan dengan Forward Port Forwarding biasa, di mana port di klien diteruskan ke server.
Contoh situasi di mana SSH Reverse Port Forwarding berguna adalah ketika Anda memiliki server yang tidak dapat diakses langsung dari luar jaringan lokalnya, tetapi Anda perlu mengakses layanan pada server tersebut. Dengan menggunakan SSH Reverse Port Forwarding, Anda dapat membuat koneksi dari server ke komputer yang dapat diakses secara publik, dan kemudian meneruskan port dari server ke komputer publik tersebut.
Pengaturan Ijin di VPS
Kita harus mengatur SSH agar mengizinkan akses reverse port forward dari luar server. Edit file /etc/ssh/sshd_config menggunakan text editor seperti Nano:
nano /etc/ssh/sshd_config
Cari kata GatewayPorts, lalu hapus tanda pagar (#) dan ganti kata no menjadi yes. Kemudian, simpan dengan memasukkan Ctrl + X, y, lalu Enter
Restart SSH dengan memasukkan command berikut:
systemctl restart sshd
Remote Komputer via SSH
Pada postingan sebelumnya mengenai NGROK Membuat Server dirumah untuk diakses Secara Online kalian bisa menggunakan nya tapi untuk akses SSH harus berbayar/langganan. Tapi bila kalian tidak ingin pakai NGROK dan sudah punya VPS. Kalian bisa menggunakan VPS sebagai tunneling nya. Melalui teknik SSH Reverse Port Forward. Caranya mudah sekali kok.
Pada local machine PC yang akan diremote ketikan perintah berikut
ssh -R 9000:localhost:22 root@200.10.41.200
nanti akan masuk ssh dan jangan dimatikan, biarkan saja. Kalau di close nanti tidak bisa terhubung local machine nya
Sedangkan untuk melakukan remote PC tersebut secara online, kalian masuk ke server VPS via SSH, dan ketikan perintah berikut
ssh -p 9000 bejopamungkas@localhost
nah melalui server tersebut kalian sudah bisa masuk login via SSH ke local machine PC.
Online WebServer dirumah via SSH Reverse Port Forward
Canggihnya SSH, kita bisa gunakan kok untuk webserver! Perintahnya cukup mudah kok
ssh -NR 9000:@localhost:80 root@200.10.41.200
diterminal tidak terjadi apa-apa! tapi jangan di close ya! karena sedang terhubung ke VPS
Penjelasannya yaitu kita akan online localmachine pada port 80 dan akses port server VPS pada port 9000. Buka browser dan ketikan alamat IP sebagai berikut
200.10.41.200:9000
ref:
https://natvps.id/ssh-reverse-port-forward-nat-vps/
Bagaimana SSH Reverse Port Forwarding Bekerja?
Untuk memahami cara kerja SSH Reverse Port Forwarding, pertama-tama kita harus memahami konsep dasar dari forwarding port.
- Forward Port Forwarding Biasa: Dalam skenario ini, seorang klien membuat koneksi SSH ke server, dan port lokal di klien diteruskan ke port di server. Misalnya:
ssh -L 8080:localhost:80 user@server.com
Perintah ini akan meneruskan port 8080 di komputer lokal ke port 80 di server, sehingga ketika Anda mengakses
localhost:8080
di klien, Anda sebenarnya mengakses port 80 di server. - Reverse Port Forwarding: Dalam skenario Reverse Port Forwarding, perintahnya sedikit berbeda:
ssh -R 8080:localhost:80 user@server.com
Perintah ini membuka port 8080 di server, yang kemudian diteruskan ke port 80 di komputer klien. Artinya, siapapun yang mengakses
server.com:8080
sebenarnya akan terhubung ke port 80 di komputer klien.
Kasus Penggunaan SSH Reverse Port Forwarding
Ada banyak skenario di mana SSH Reverse Port Forwarding sangat berguna, beberapa di antaranya termasuk:
- Akses ke Layanan yang Terisolasi: Misalkan Anda memiliki layanan web yang berjalan di komputer lokal Anda (klien) pada port 80, tetapi komputer Anda berada di balik firewall atau NAT yang mencegah akses langsung dari luar. Dengan SSH Reverse Port Forwarding, Anda dapat membuat port pada server publik yang meneruskan koneksi ke layanan web di komputer Anda.
- Mengatasi Firewall yang Ketat: Beberapa jaringan memiliki firewall yang sangat ketat yang hanya mengizinkan lalu lintas keluar. Dalam kasus ini, Reverse Port Forwarding memungkinkan Anda membuat koneksi keluar yang aman dan kemudian menerima koneksi masuk melalui koneksi tersebut.
- Kolaborasi dan Pengembangan: Pengembang sering menggunakan SSH Reverse Port Forwarding untuk membagikan aplikasi yang sedang dikembangkan dengan tim tanpa harus mengatur server publik.
Keamanan dalam SSH Reverse Port Forwarding
Meski SSH secara umum dianggap aman, ada beberapa pertimbangan keamanan yang perlu diperhatikan saat menggunakan Reverse Port Forwarding:
- Akses Tidak Terautentikasi: Jika port yang diteruskan di server publik tidak dilindungi dengan baik, siapa pun yang mengetahui alamat dan port tersebut dapat mengakses layanan di komputer klien Anda.
- Eksposur Layanan Internal: Menggunakan Reverse Port Forwarding dapat mengekspos layanan yang biasanya hanya tersedia secara lokal di jaringan internal Anda ke internet publik. Pastikan Anda memahami implikasi keamanan dari hal ini.
- Penggunaan Firewalls dan IP Whitelisting: Untuk membatasi siapa yang dapat mengakses port yang diteruskan, Anda bisa menggunakan firewall atau whitelist IP, sehingga hanya IP tertentu yang diizinkan untuk mengakses port tersebut.
Contoh Implementasi SSH Reverse Port Forwarding
Berikut adalah beberapa contoh praktis bagaimana SSH Reverse Port Forwarding dapat diimplementasikan.
Membuat Reverse Port Forwarding Sederhana: Anggap Anda ingin membuat port 8080 di server publik (server.com
) yang meneruskan koneksi ke port 3000 di komputer lokal Anda. Anda bisa menggunakan perintah:
ssh -R 8080:localhost:3000 user@server.com
Sekarang, setiap kali seseorang mengakses server.com:8080
, mereka akan diarahkan ke layanan yang berjalan di localhost:3000
di komputer Anda.
Menggunakan Reverse Port Forwarding dengan Autentikasi Kunci SSH: Untuk mengamankan koneksi, Anda bisa menggunakan kunci SSH alih-alih kata sandi. Misalnya:
ssh -i /path/to/private/key -R 8080:localhost:3000 user@server.com
Menjaga Reverse Port Forwarding Tetap Aktif dengan Autossh: Jika koneksi SSH Anda sering putus, Anda dapat menggunakan autossh
, sebuah alat yang memastikan koneksi SSH tetap aktif. Contohnya:
autossh -M 20000 -R 8080:localhost:3000 user@server.com
Membuat Reserve Port Forwarding Samba. Port samba secara default 445, kita juga bisa alihkan seperti berikut
ssh -R 8085:localhost:445 user@server.com
artinya jika kita ingin akses samba menyebutkan port nya diatas
smb://103.170.221.160:8085/New Volume
sehingga ketika terhubung ke port 8085 di server maka sebenarnya akan terhubung ke port 445 samba di localhost
Autossh dijadikan sebuah service:
Kode nya kita masukan sebagai service yaitu
root@amlogic:~# nano /etc/systemd/system/satu.service [Unit] Description = 'casa os' After = network.target network-online.target sshd.service [Service] ExecStart = /usr/bin/autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -i /root/.ssh/id_rsa -R '*:8080:localhost:80' pamungkas@103.170.221.160 [Install] WantedBy = multi-user.target
https://superuser.com/questions/1278583/autossh-not-working-in-background
Kesimpulan
SSH Reverse Port Forwarding adalah alat yang sangat berguna untuk administrator sistem dan pengembang yang perlu mengatasi keterbatasan jaringan dan firewall. Dengan memahami cara kerja teknik ini dan mengetahui cara mengimplementasikannya dengan aman, Anda dapat memanfaatkan fitur ini untuk berbagai kebutuhan, mulai dari pengujian aplikasi hingga akses jarak jauh yang aman.
Reverse FTP
Untuk mengonline kan server FTP kita, bisa kita lakukan dengan perintah seperti diatas
ssh -fN -R 7010:localhost:23 username@yourMachine-ipaddress.