Remote PC dengan SSH Reverse Port Forward dan Tunneling Melalui via VPS

By | November 14, 2024
768 Views

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 + Xy, 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.

See also  Cara Setting Login SSH Tanpa Password

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/

https://qbee.io/misc/reverse-ssh-tunneling-the-ultimate-guide/#:~:text=Reverse%20SSH%20tunneling%20is%20a,opposite%20direction%20to%20the%20norm.

 

Bagaimana SSH Reverse Port Forwarding Bekerja?

Untuk memahami cara kerja SSH Reverse Port Forwarding, pertama-tama kita harus memahami konsep dasar dari forwarding port.

  1. 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.

  2. 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:

  1. 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.
  2. 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.
  3. 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:

  1. 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.
  2. 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.
  3. 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.comSekarang, 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.

 

See also  Menjadi Anonim dengan TOR