×

Membuat Koneksi Secara Persisten dengan Autossh

Membuat Koneksi Secara Persisten dengan Autossh

123 Views

Terkadang kita menginginkan home server yang bisa kita buat dirumah agar bisa diakses secara publik berjalan dengan baik dan tanpa halangan. Seperti pada penjelasan sebelumnya kita menggunakan casa os sebagai home server serta menggunakan teknik reverse SSH sebagai jalur untuk koneksi balik sehingga kita bisa akses home server tersebut secara publik. Bagi kalian yang belum install home server bisa baca Home Server menggunakan CASA OS. Pengaturan ssh login tanpa memasukan password harus kalian lakukan terlebih dahulu agar nanti bisa akses nya berhasil Cara Setting Login SSH Tanpa Password. Pembahasan mengenai teknik reverse ssh bisa dibaca di Remote PC dengan SSH Reverse Port Forward dan Tunneling Melalui via VPS

Pengaturan ssh server juga harus kalian lakukan agar bisa mendukung port forwarding Mencoba Menggunakan VPS untuk Deep Learning

Setelah kalian melakukan 4 kerjaan diatas, kita akan membuat service dengan autossh sebagai backend nya. Sebagai penjelasan

AutoSSH adalah alat open-source yang digunakan untuk menjaga sesi SSH tetap hidup, khususnya sesi yang menggunakan port forwarding atau tunneling. SSH sendiri adalah protokol yang digunakan untuk mengamankan komunikasi antara dua mesin, biasanya melalui jaringan yang tidak aman seperti internet. AutoSSH memperpanjang kegunaan SSH dengan cara memantau koneksi SSH yang telah dibuat, lalu secara otomatis me-restart koneksi tersebut jika terputus.

Fungsi dan Kegunaan AutoSSH

AutoSSH sering digunakan untuk:

  1. Meningkatkan Kestabilan Tunneling SSH: Tunneling SSH sering kali digunakan untuk port forwarding, baik untuk mengakses server yang berada di balik firewall atau untuk mengamankan layanan yang berjalan di port yang tidak aman. Dalam beberapa kasus, koneksi SSH bisa terputus karena gangguan jaringan. AutoSSH akan mendeteksi koneksi yang terputus dan mencoba menghidupkan kembali koneksi tersebut.
  2. Monitoring Koneksi SSH: AutoSSH memonitor kesehatan koneksi SSH dengan cara membuka koneksi dummy (layanan tes) di dalam sesi SSH. Jika koneksi ini terputus, AutoSSH menganggap bahwa sesi SSH utama juga terputus dan akan mencoba untuk memulihkan koneksi.
  3. Penggunaan pada Sistem yang Berjalan Terus Menerus: AutoSSH sangat berguna pada sistem yang membutuhkan koneksi SSH yang terus menerus seperti server, IOT devices, atau sistem cloud. Ketika digunakan dalam lingkungan di mana stabilitas jaringan tidak selalu bisa dijamin, AutoSSH bisa mengurangi beban manajemen dengan menangani pemutusan dan pemulihan koneksi secara otomatis.
See also  Membuat VPN Sendiri dengan OpenVPN

Cara Kerja AutoSSH

AutoSSH bekerja dengan mengelola dan memantau sesi SSH. Untuk melakukan ini, AutoSSH membutuhkan beberapa parameter konfigurasi seperti alamat tujuan SSH, port forwarding yang digunakan, dan interval pemeriksaan koneksi. Secara umum, berikut langkah-langkah kerja AutoSSH:

  1. Memulai Koneksi SSH: AutoSSH akan menjalankan perintah SSH seperti biasanya, dengan menambahkan opsi untuk port forwarding atau tunneling.
  2. Memantau Koneksi Dummy: Selain koneksi SSH utama, AutoSSH akan membuka koneksi SSH tambahan (dummy) yang hanya digunakan untuk memonitor status sesi SSH utama.
  3. Memeriksa Kesehatan Koneksi: Koneksi dummy ini dikonfigurasi untuk mengirimkan paket heartbeat secara berkala. Jika paket-paket ini berhenti, AutoSSH mengasumsikan bahwa sesi SSH utama juga terputus.
  4. Pemulihan Koneksi: Ketika koneksi terputus, AutoSSH akan mencoba menutup sesi SSH yang rusak dan memulai sesi baru.

Contoh Penggunaan AutoSSH

Misalkan Anda ingin menggunakan SSH reverse port forwarding untuk mengakses server lokal di balik NAT dari luar jaringan. Berikut contoh perintah untuk menggunakan AutoSSH:

autossh -M 20000 -N -R 2222:localhost:22 user@remote-server.com

Penjelasan:

  • -M 20000: AutoSSH akan menggunakan port 20000 untuk memantau koneksi SSH.
  • -N: Opsi ini memberitahu SSH untuk tidak menjalankan perintah apapun setelah terkoneksi, hanya membuka tunnel.
  • -R 2222:localhost:22: Ini adalah reverse port forwarding, artinya port 2222 di server remote (remote-server.com) akan diteruskan ke port 22 di localhost (mesin Anda).
  • user@remote-server.com: Alamat dan nama pengguna di server remote yang ingin Anda akses.

Opsi-opsi Penting dalam AutoSSH

  • -M <port>: Opsi ini menentukan port monitoring yang akan digunakan oleh AutoSSH untuk memantau sesi SSH. Tanpa opsi ini, AutoSSH tidak akan melakukan monitoring dan akan bertindak seperti perintah SSH biasa.
  • -f: Opsi ini memungkinkan AutoSSH berjalan di background setelah sesi SSH berhasil dibuka. Ini sangat berguna untuk koneksi yang berjalan dalam jangka waktu panjang tanpa perlu melihat output di terminal.
  • -N: Opsi ini memberitahu SSH untuk tidak menjalankan perintah di remote, hanya membuka sesi tunnel atau port forwarding.
  • -R dan -L: Ini adalah opsi SSH yang digunakan untuk remote dan local port forwarding.
See also  Remote PC dengan SSH Reverse Port Forward dan Tunneling Melalui via VPS

Kapan AutoSSH Diperlukan?

  1. Koneksi Remote yang Tidak Stabil: Ketika jaringan antara mesin lokal dan remote sering terputus, AutoSSH dapat membantu menjaga koneksi tetap berjalan dengan memulai ulang sesi SSH secara otomatis.
  2. Penggunaan Reverse SSH Tunneling: Dalam skenario di mana sebuah server yang tidak dapat diakses langsung melalui internet (di belakang NAT atau firewall), AutoSSH dapat menjaga agar reverse SSH tunnel tetap aktif.
  3. Otomatisasi Server: Server yang membutuhkan SSH tunneling untuk backup data, sinkronisasi file, atau akses remote akan mendapatkan manfaat besar dari AutoSSH.

Membuat script service

Setelah kalian masuk sebagai root, buatlan script service dengan pengaturan sebagai berikut dengan mengetikan perintah

nano /etc/systemd/system/satu.service

isikan dengan script berikut

 

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' root@103.171.229.161
[Install]
WantedBy = multi-user.target

arti script diatas yaitu akan mengakses server local dengan port 80 dengan membuka server VPS pada port 8080. Sehingga nanti di browser dengan mengetikan 103.171.229.161:8080

Untuk menjalankan service kalian bisa mengikuti langkah berikut

systemctl enable satu.service
systemctl daemon-reload
systemctl start satu.service

Nah ketika jalan nanti kita bisa cek dengan perintah

systemctl status satu.service

dengan hasil sebagai berikut

root@amlogic:~# systemctl status satu.service
● satu.service - 'casa os'
     Loaded: loaded (/etc/systemd/system/satu.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-09-27 16:35:43 UTC; 6h ago
   Main PID: 32415 (autossh)
      Tasks: 2 (limit: 1223)
     Memory: 1.1M
        CPU: 1.276s
     CGroup: /system.slice/satu.service
             ├─32415 /usr/lib/autossh/autossh -M 0 -q -N -o ServerAliveInterval 60 -o ServerAliveCountMax 3 -i /root/.ssh/id_rsa -R *:8080:localhost:80 pamun>
             └─32418 /usr/bin/ssh -q -N -o ServerAliveInterval 60 -o ServerAliveCountMax 3 -i /root/.ssh/id_rsa -R *:8080:localhost:80 root@103.171.229.161.>

Warning: journal has been rotated since unit was started, output may be incomplete.
lines 1-12/12 (END)

Mematikan autossh

Jika kalian menggunakan autossh tanpa sebagai service, maka akan sulit dimatikan! seperti contoh berikut

autossh -M 20000 -f -R 8080:localhost:80 root@103.171.229.161

yang berjalan secara background. Salah satu cara yang saya rekomendasikan untuk mematikan proses tersebut dengan kill proses id nya. Gunakan perintah berikut untuk mendapatkan PID nya

ps -aux | grep autossh

setelah mendapatkan PID nya, bisa kita kill

kill no_pid

tapi kalau sebagai service, kalian cukup gunakan perintah berikut untuk mematikan sementara

systemctl stop satu.service

itu hanya mematikan sementara, namun ketika restart komputer akan berjalan di startup, sedangkan untuk restart gunakan perintah

systemctl restart satu.service

nah untuk mematikan secara permanent cukup ketikan

systemctl disable satu.service

 

See also  Fail2Ban untuk melindungi Brute Force Login SSH

kalau menggunakan perintah diatas, kalian wajib ulangi perintah

systemctl enable satu.service 
systemctl daemon-reload 
systemctl start satu.service

Begitulah cara Membuat Koneksi Secara Persisten dengan Autossh, saya terbiasa menggunakan teknik diatas dan diuji coba berhari-hari tanpa ada kendala koneksi yang terputus. Tapi kalau nggak mau ribet nggak perlu sewa VPS ya kalian bisa menggunakan ngrok Membuat Server dirumah untuk diakses Secara Online

Untuk port 80 itu mah gratis namun nanti alamat nya ganti-ganti ketika restart ngrok nya kalau untuk port yang lain harus bebayar lagi! dengan harga sekitar 1.8 jutaan per tahun.

Sedangkan untuk VPS 50 ribu/bulan sudah cukup sebagai server tunneling saja, bebas kalian gunakan untuk beragam port. Untuk VPS yang murah bisa coba Biznet yaitu NEO Lite XS 1.1 dengan spek CPU 1 core, RAM 1 GB dan ssd 60 gb.

You May Have Missed