Cara Mengganti Port 22 SSH VPS ke Port Custom agar Lebih Aman

Cara Mengganti Port 22 SSH VPS ke Port Custom agar Lebih Aman

Mengganti port SSH bawaan ke port custom dapat membantu mengurangi percobaan login otomatis dari bot yang menargetkan port standar. Langkah ini juga membuat akses administrasi VPS tidak langsung tersedia pada port yang paling umum digunakan.

Namun, port custom tetap bisa ditemukan melalui pemindaian. Karena itu, gunakan juga SSH key, pembatasan akses firewall, dan pembaruan sistem untuk meningkatkan keamanan VPS.

Panduan berikut menggunakan VPS Ubuntu dengan systemd.

Berapa Nomor Port SSH yang Bisa Digunakan?

Nomor port TCP berada dalam rentang 0–65535, tetapi port 0 tidak digunakan sebagai port tujuan login SSH. Untuk port SSH custom, pilih port yang belum digunakan layanan lain.

Pembagian rentangnya:

Rentang portKeterangan
1–1023Port sistem dan layanan umum, seperti SSH, HTTP, dan HTTPS
1024–49151Port terdaftar; sebagian digunakan aplikasi tertentu
49152–65535Port dinamis atau privat, juga sering digunakan sebagai port sementara untuk koneksi keluar

Nomor port maksimal adalah 65535, bukan batas jumlah koneksi SSH. Satu port SSH dapat melayani banyak koneksi.

Contoh nomor port custom adalah 48327, 37189, atau 42673. Angka tersebut hanya contoh, bukan port yang dijamin kosong atau lebih aman.

Pada panduan ini, kita menggunakan 48327. Anda boleh menggantinya dengan nomor lain, tetapi sesuaikan seluruh perintah secara konsisten.

1. Persiapkan Akses dan Cadangan Konfigurasi

Jangan tutup sesi SSH yang sedang digunakan sampai login melalui port baru berhasil. Pastikan juga tersedia akses console melalui panel penyedia VPS untuk pemulihan jika diperlukan.

Seluruh perintah konfigurasi berikut dijalankan sebagai root. Jika menggunakan akun sudo, jalankan:

sudo -i

Cadangkan konfigurasi SSH:

cp -a /etc/ssh "/root/ssh-backup-$(date +%Y%m%d-%H%M%S)"

Periksa apakah port contoh sudah digunakan:

ss -lntp 'sport = :48327'

Jika ada baris LISTEN, periksa layanan yang menggunakannya dan pilih port lain. Jika tidak ada listener, lanjutkan.

2. Izinkan Port Custom pada Firewall

Jika menggunakan UFW, periksa statusnya:

ufw status

Jika aktif, buka port custom menggunakan protokol TCP:

ufw allow 48327/tcp

Jika UFW tidak aktif, tidak perlu mengaktifkannya hanya untuk mengganti port SSH.

Periksa juga firewall pada panel VPS atau security group. Pastikan TCP 48327 diizinkan masuk, idealnya hanya dari IP administrator.

Jangan menutup akses port lama sebelum port baru berhasil diuji.

3. Periksa Apakah VPS Menggunakan SSH Socket

Jalankan:

systemctl is-active ssh.socket

Pilih metode sesuai hasilnya:

  • active: gunakan metode A.
  • inactive atau unit tidak ditemukan: gunakan metode B jika SSH berjalan melalui ssh.service.

Metode A — VPS Menggunakan ssh.socket

Pada sistem ini, port SSH dikelola melalui socket systemd. Mengubah sshd_config saja belum tentu langsung mengubah listener aktif.

Buat direktori konfigurasi dan cadangannya:

mkdir -p /etc/systemd/system/ssh.socket.d
cp -a /etc/systemd/system/ssh.socket.d \
"/root/ssh-socket-backup-$(date +%Y%m%d-%H%M%S)"

Aktifkan port custom sambil mempertahankan port bawaan selama pengujian:

cat > /etc/systemd/system/ssh.socket.d/zz-port.conf <<'EOF'
[Socket]
ListenStream=
ListenStream=0.0.0.0:22
ListenStream=0.0.0.0:48327
EOF

Konfigurasi ini menggunakan IPv4. Baris ListenStream= yang kosong menghapus daftar listener sebelumnya, termasuk listener IPv6. Jika akses administrasi Anda menggunakan IPv6, sesuaikan alamat listener sebelum menerapkannya.

Terapkan konfigurasi:

if sshd -t; then
    systemctl daemon-reload
    systemctl restart ssh.socket && systemctl restart ssh.service
fi

Jika muncul error, periksa penyebabnya sebelum melanjutkan.

Metode B — VPS Menggunakan ssh.service Biasa

Buka konfigurasi SSH:

nano /etc/ssh/sshd_config

Tambahkan atau sesuaikan baris berikut pada bagian global, sebelum blok Match jika ada:

Port 22
Port 48327

Dua port diaktifkan sementara agar akses lama masih tersedia selama pengujian. Pastikan baris tersebut tidak diawali tanda #.

Simpan dengan Ctrl+O, tekan Enter, lalu keluar dengan Ctrl+X.

Periksa pengaturan tambahan:

grep -RnsE '^[[:space:]]*(Port|ListenAddress|Include)[[:space:]]' \
/etc/ssh/sshd_config /etc/ssh/sshd_config.d/

Jika ada ListenAddress yang secara eksplisit membatasi SSH ke port lama, sesuaikan juga pengaturan tersebut.

Validasi konfigurasi dan restart SSH:

sshd -t && systemctl restart ssh.service

4. Coba Login Menggunakan Port Custom

Periksa listener pada VPS:

ss -lntp '( sport = :22 or sport = :48327 )'

Pastikan port 48327 muncul dengan status LISTEN.

Selanjutnya, buka terminal baru di komputer Anda, lalu jalankan:

ssh -p 48327 USER_VPS@IP_SERVER

Ganti USER_VPS dengan username SSH dan IP_SERVER dengan IP VPS.

Jika menggunakan PuTTY:

  • Host Name: IP VPS.
  • Port: 48327.
  • Connection type: SSH.

Jangan lanjut ke penutupan port lama sampai Anda berhasil masuk melalui koneksi baru ini.

5. Nonaktifkan Port SSH Bawaan

Setelah login melalui port custom berhasil, jalankan tahap berikut dari sesi baru tersebut.

Jika Menggunakan Metode A

Ubah konfigurasi socket agar hanya menggunakan port custom:

cat > /etc/systemd/system/ssh.socket.d/zz-port.conf <<'EOF'
[Socket]
ListenStream=
ListenStream=0.0.0.0:48327
EOF
if sshd -t; then
    systemctl daemon-reload
    systemctl restart ssh.socket && systemctl restart ssh.service
fi

Selama konfigurasi ini digunakan, perubahan port berikutnya dilakukan pada file:

/etc/systemd/system/ssh.socket.d/zz-port.conf

Jika Menggunakan Metode B

Buka kembali konfigurasi:

nano /etc/ssh/sshd_config

Hapus baris aktif Port 22 dan pertahankan:

Port 48327

Pastikan file konfigurasi tambahan yang dimuat melalui Include tidak masih mengaktifkan port lama.

Terapkan perubahan:

sshd -t && systemctl restart ssh.service

6. Pastikan Hanya Port Custom yang Aktif

Jalankan:

ss -lntp '( sport = :22 or sport = :48327 )'

Hasil yang diharapkan adalah listener port 48327, tanpa listener port 22, baik pada IPv4 maupun IPv6.

Coba login sekali lagi dari terminal baru:

ssh -p 48327 USER_VPS@IP_SERVER

Setelah berhasil, hapus aturan izin port lama pada firewall VPS dan panel penyedia jika sudah tidak diperlukan.

Perbarui juga pengaturan port pada aplikasi SFTP, skrip deployment, backup, dan monitoring.

Mengatasi Port SSH Custom yang Tidak Bisa Diakses

Pesan atau kondisiHal yang perlu diperiksa
Connection timed outIP tujuan, firewall VPS, security group, dan koneksi jaringan
Connection refusedListener SSH pada port custom atau firewall yang menolak koneksi
Permission deniedUsername, password, SSH key, dan izin login
Port lama masih aktifKonfigurasi tambahan serta restart service atau socket

Untuk melihat status dan log:

systemctl status ssh.service ssh.socket --no-pager -l
journalctl -u ssh.service -u ssh.socket -n 50 --no-pager

Jika kehilangan akses SSH, gunakan console dari panel VPS untuk mengembalikan konfigurasi sebelumnya dan membuka kembali akses firewall yang diperlukan.

Tips agar Akses SSH Lebih Aman

Port custom membantu mengurangi gangguan bot pada port bawaan, tetapi tidak menggantikan pengamanan utama. Gunakan SSH key, batasi akses melalui IP administrator atau VPN, serta perbarui sistem secara berkala.

Jika ingin menonaktifkan login menggunakan password, pastikan login menggunakan SSH key sudah berhasil terlebih dahulu.

#SSH#VPS#Port SSH#Ubuntu#Keamanan VPS#Linux
Ditulis olehHyperCloudHost

Panduan hosting, domain, dan pengembangan website untuk langkah digital Anda.

Kembali ke semua artikel