Linux : Mengamankan SSH Server dengan Port Custom: Difference between revisions
Artikel Linux: mengamankan SSH server dengan port custom |
m Protected "Linux : Mengamankan SSH Server dengan Port Custom": Protect artikel editorial WIKI TKJ ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) |
(No difference)
| |
Latest revision as of 07:39, 10 July 2026
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.