Linux : Mengamankan SSH Server dengan Port Custom

Revision as of 07:38, 10 July 2026 by Maintenance script (talk | contribs) (Artikel Linux: mengamankan SSH server dengan port custom)
(diff) ← Older revision | Latest revision (diff) | Newer revision β†’ (diff)

Linux : Mengamankan SSH Server dengan Port Custom

🎯 Tujuan

Materi ini membantu pembaca memahami cara mengganti port SSH di server Linux secara aman, terutama pada Debian dan Ubuntu Server. Fokusnya bukan sekadar mengganti angka port, tetapi memastikan akses admin tetap bisa masuk, firewall tidak salah konfigurasi, dan perubahan bisa diverifikasi sebelum sesi lama ditutup.

🌍 Konteks nyata

SSH adalah pintu utama administrator untuk masuk ke server. Karena itu, perubahan kecil pada konfigurasi SSH bisa berdampak besar. Salah mengetik port, lupa membuka firewall, atau langsung menutup sesi lama sebelum uji koneksi dapat membuat admin terkunci dari server sendiri.

Mengubah port SSH bukan pengganti keamanan utama seperti password kuat, key login, pembatasan user, dan update sistem. Namun port custom bisa membantu mengurangi noise dari scan otomatis di internet dan membuat administrasi server lebih tertib jika dikerjakan dengan prosedur yang benar.

Contoh pada materi ini memakai port `2290`. Silakan sesuaikan dengan kebijakan masing-masing server.

🧰 Kebutuhan awal

  • server Debian/Ubuntu yang sudah terpasang OpenSSH Server
  • akses user yang bisa memakai `sudo`
  • koneksi SSH aktif yang jangan ditutup sebelum pengujian selesai
  • akses firewall server jika firewall aktif

πŸ›  Langkah 1 - Cek service SSH yang sedang berjalan

Jalankan:

systemctl status ssh

atau pada beberapa sistem:

systemctl status sshd

Maknanya: sebelum mengubah konfigurasi, pastikan service SSH memang aktif dan namanya diketahui. Di Debian/Ubuntu, service umumnya bernama `ssh`.

πŸ›  Langkah 2 - Cek port SSH yang sedang listen

Jalankan:

ss -tlnp | grep ssh

Contoh output:

LISTEN 0 128 0.0.0.0:22   0.0.0.0:* users:(("sshd",pid=1234,fd=3))

Jika SSH sudah memakai port custom, output bisa terlihat seperti:

LISTEN 0 128 0.0.0.0:2290 0.0.0.0:* users:(("sshd",pid=1234,fd=3))

Maknanya: command ini membantu memastikan port mana yang benar-benar dibuka oleh SSH, bukan hanya membaca asumsi dari catatan konfigurasi.

πŸ›  Langkah 3 - Backup konfigurasi SSH

Sebelum mengubah file konfigurasi, buat backup:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%Y%m%d-%H%M%S)

Maknanya: jika konfigurasi baru bermasalah, file backup bisa dipakai untuk rollback.

πŸ›  Langkah 4 - Edit port SSH

Buka konfigurasi:

sudo nano /etc/ssh/sshd_config

Cari baris:

#Port 22

Ubah menjadi:

Port 2290

Catatan:

  • hapus tanda `#` di awal baris agar setting aktif
  • gunakan port yang belum dipakai service lain
  • hindari port umum seperti `80`, `443`, `3306`, atau port aplikasi yang sudah berjalan

πŸ›  Langkah 5 - Validasi konfigurasi sebelum restart

Jalankan:

sudo sshd -t

Jika tidak ada output, biasanya konfigurasi valid.

Jika ada error, jangan restart SSH dulu. Perbaiki pesan error tersebut sampai `sudo sshd -t` bersih.

Maknanya: langkah ini penting karena restart service dengan konfigurasi rusak bisa membuat SSH gagal aktif.

πŸ›  Langkah 6 - Buka firewall untuk port baru

Jika memakai UFW, jalankan:

sudo ufw allow 2290/tcp
sudo ufw status

Jika memakai firewall lain, prinsipnya sama: pastikan port baru diizinkan sebelum service SSH direload.

Untuk server yang berada di belakang router atau NAT, pastikan port forwarding juga mengarah ke port yang benar.

πŸ›  Langkah 7 - Reload service SSH

Setelah konfigurasi valid dan firewall siap, jalankan:

sudo systemctl reload ssh

Jika reload tidak cukup atau service perlu restart:

sudo systemctl restart ssh

Penting: jangan tutup sesi SSH lama sebelum berhasil login dari terminal baru.

πŸ›  Langkah 8 - Uji koneksi dari terminal baru

Dari komputer client, coba masuk dengan port baru:

ssh -p 2290 user@alamat-server

Contoh:

ssh -p 2290 server@192.168.100.240

Jika berhasil login, baru sesi lama boleh ditutup.

βœ… Verifikasi

Gunakan checklist berikut:

  • `sudo sshd -t` tidak menampilkan error
  • `ss -tlnp | grep ssh` menunjukkan port baru
  • firewall mengizinkan port baru
  • login dari terminal baru berhasil memakai `ssh -p 2290`
  • sesi lama belum ditutup sebelum pengujian berhasil

⚠ Catatan keamanan

Mengganti port SSH hanya mengurangi gangguan scan otomatis. Ini bukan pengganti hardening.

Untuk keamanan yang lebih kuat, pertimbangkan:

  • memakai SSH key
  • menonaktifkan login root langsung
  • membatasi user yang boleh SSH
  • memakai password yang kuat jika password login masih digunakan
  • memasang fail2ban atau mekanisme rate limit
  • rutin update sistem

Contoh konfigurasi tambahan yang sering dipakai:

PermitRootLogin no
PasswordAuthentication no

Namun jangan mengaktifkan `PasswordAuthentication no` sebelum SSH key benar-benar diuji. Jika belum siap, admin bisa terkunci dari server.

🧩 Troubleshooting singkat

Jika koneksi ke port baru refused:

  • cek apakah SSH benar-benar listen dengan `ss -tlnp | grep ssh`
  • cek status service dengan `systemctl status ssh`
  • cek apakah firewall membuka port baru

Jika koneksi timeout:

  • kemungkinan firewall, router, NAT, atau security group memblokir akses
  • cek jalur jaringan dari client ke server

Jika password selalu ditolak:

  • masalahnya bukan port, tetapi autentikasi user/password/key
  • cek apakah user benar dan masih diizinkan login SSH

Jika salah konfigurasi dan masih punya sesi lama: rollback dari backup:

sudo cp /etc/ssh/sshd_config.bak.NAMABACKUP /etc/ssh/sshd_config
sudo sshd -t
sudo systemctl reload ssh

πŸ“ Kesimpulan

Mengubah port SSH harus dilakukan dengan urutan yang aman: cek kondisi awal, backup konfigurasi, edit port, validasi dengan `sshd -t`, buka firewall, reload service, lalu uji login dari terminal baru.

Kunci utamanya adalah jangan menutup sesi lama sebelum akses baru terbukti berhasil. Dengan prosedur ini, admin bisa mengurangi risiko terkunci dari server saat melakukan perubahan SSH.