Best Practices SSH untuk Production Cloud Server
SSH adalah protokol utama untuk mengelola server jarak jauh. Di lingkungan produksi, konfigurasi SSH default tidak cukup aman. Panduan ini mencakup praktik terbaik yang wajib diterapkan di setiap server Nusa Cloud VPS.
Prasyaratโ
- Server Nusa Cloud VPS dengan OS Ubuntu/Debian
- Akses root melalui SSH atau Console VPS
- Pemahaman dasar command line Linux
1. Buat User Non-Root dengan Sudoโ
Login sebagai root, lalu buat user baru:
adduser namauser
Masukkan password dan isi informasi user (bisa dilewati dengan tekan Enter). Tambahkan user ke grup sudo:
usermod -aG sudo namauser
Verifikasi akses sudo:
su - namauser
sudo whoami
Output harus menampilkan root.
2. Konfigurasi SSH Key-Based Authenticationโ
Buat pasangan SSH key dari mesin lokal Anda:
ssh-keygen -t ed25519 -C "nama-server"
Simpan dengan nama unik, misalnya ~/.ssh/server1_ed25519, dan masukkan passphrase.
Salin public key ke server:
ssh-copy-id -i ~/.ssh/server1_ed25519 namauser@IP_SERVER
Atau manual:
cat ~/.ssh/server1_ed25519.pub | ssh namauser@IP_SERVER "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Verifikasi login tanpa password:
ssh -i ~/.ssh/server1_ed25519 namauser@IP_SERVER
3. Nonaktifkan Root Login dan Password Authenticationโ
Edit file /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Ubah atau pastikan nilai berikut:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Restart SSH:
sudo systemctl restart sshd
โ ๏ธ Warning: Pastikan Anda sudah login dengan SSH key di sesi lain sebelum menutup sesi saat ini. Jika terkunci, gunakan Console VPS dari Client Area.
4. Ubah Port SSH (Opsional)โ
Mengubah port default 22 dapat mengurangi serangan bot otomatis. Tambahkan baris di sshd_config:
Port 2222
Restart SSH, lalu buka port di firewall:
sudo ufw allow 2222/tcp
sudo ufw reload
Jangan lupa tentukan port saat login:
ssh -p 2222 namauser@IP_SERVER
5. Pasang dan Konfigurasi fail2banโ
fail2ban memblokir IP yang mencurigakan setelah gagal login beberapa kali.
sudo apt update
sudo apt install fail2ban -y
Buat file konfigurasi lokal:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Cari bagian [sshd] dan aktifkan:
[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600
findtime = 600
Restart fail2ban:
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
Verifikasiโ
Periksa status SSH:
sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"
Output harus:
permitrootlogin no
passwordauthentication no
Periksa status fail2ban:
sudo fail2ban-client status sshd
Ringkasanโ
| Langkah | Status |
|---|---|
| Non-root user + sudo | โ |
| SSH key authentication | โ |
| Root login disabled | โ |
| Password auth disabled | โ |
| Port non-default (opsional) | โก |
| fail2ban aktif | โ |
Dengan konfigurasi ini, server Nusa Cloud VPS Anda jauh lebih aman dari serangan brute-force dan akses tidak sah.
