Pendahuluan
VPS baru yang baru saja dibuat sudah langsung diintip oleh bot scanner. Mereka mencoba ribuan kombinasi username dan password setiap menit.
Tanpa hardening, satu kelemahan kecil bisa membuat server diambil alih sepenuhnya. Artikel ini membahas tiga lapisan perlindungan wajib:
- SSH Key Authentication — tidak perlu password lagi
- Disable Root Login — eliminasi target utama penyerang
- 2FA Google Authenticator — lapisan kedua jika key dicuri
Kenapa Hardening Itu Penting?
Setiap VPS yang terekspos ke internet adalah target. Bukan karena ada orang yang sengaja menargetkan kamu — tapi karena bot scanner bekerja 24 jam tanpa henti.
- Port 22 (SSH) adalah target paling umum
- Default password mudah ditebak
- Login root langsung memberi akses penuh
- Brute force modern bisa coba jutaan kombinasi per jam
Fail2Ban membantu, tapi pencegahan lebih baik dari pemblokiran.
Step 1: Setup SSH Key Authentication
Generate SSH key di komputer lokal kamu (bukan di VPS):
ssh-keygen -t ed25519 -C "[email protected]"
Tekan Enter untuk semua opsi default. Key tersimpan di ~/.ssh/id_ed25519.
Copy public key ke VPS:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@IP_VPS_KAMU
Atau manual jika ssh-copy-id tidak tersedia (Windows):
# Di VPS:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ISI_PUBLIC_KEY_KAMU" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Test login dengan key sebelum melanjutkan:
ssh -i ~/.ssh/id_ed25519 user@IP_VPS_KAMU
Jangan tutup session ini sampai semua konfigurasi selesai dan ditest.
Step 2: Disable Root Login & Password Auth
Edit konfigurasi SSH server:
sudo nano /etc/ssh/sshd_config
Ubah atau tambahkan baris berikut:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Restart SSH service:
sudo systemctl restart ssh
Step 3: Aktifkan 2FA dengan Google Authenticator
Install PAM module untuk Google Authenticator:
sudo apt update
sudo apt install libpam-google-authenticator -y
Jalankan setup untuk user kamu:
google-authenticator
Ikuti instruksi: scan QR code dengan Google Authenticator atau Authy di smartphone kamu. Simpan emergency codes di tempat aman.
Edit PAM SSH config:
sudo nano /etc/pam.d/sshd
Tambahkan di baris paling atas:
auth required pam_google_authenticator.so
Edit /etc/ssh/sshd_config lagi:
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
Restart SSH:
sudo systemctl restart ssh
Sekarang login membutuhkan SSH key + kode TOTP dari smartphone. Dua faktor yang sangat sulit ditembus.
Hardening Lanjutan yang Direkomendasikan
- Ganti port SSH dari 22 ke port custom (misal 2222)
- Install Fail2Ban untuk blokir IP yang gagal login berulang
- Setup UFW — hanya buka port yang dibutuhkan
- Nonaktifkan protokol lama: hapus
Protocol 1dari SSH config - Set idle timeout: tambahkan
ClientAliveInterval 300di sshd_config
# Minimal firewall setup
sudo ufw allow 2222/tcp # port SSH baru
sudo ufw allow 80,443/tcp
sudo ufw enable
Kenapa VPS SufaNet Cocok untuk Server Aman?
- KVM virtualisasi — isolasi penuh antar VPS
- IP dedicated bersih, tidak masuk blacklist
- Support aktif jika ada kendala konfigurasi
- Bisa pilih lokasi Singapore atau Indonesia
Server aman dimulai dari fondasi yang benar
Hardening terbaik tidak akan membantu jika VPS-nya sendiri sudah lemah dari dalam.
🚀 Lihat VPS Singapore SufaNetFAQ
Bagaimana jika saya kehilangan SSH key?
Gunakan akses VNC/Console dari panel VPS kamu untuk login dan tambahkan key baru. Itulah kenapa backup key di tempat aman itu penting.
Apakah 2FA bisa dinonaktifkan sementara?
Bisa. Edit /etc/ssh/sshd_config, ubah AuthenticationMethods kembali ke publickey, lalu restart SSH.
SSH key vs password, mana yang lebih aman?
SSH key jauh lebih aman. Key kriptografi 256-bit praktis tidak bisa di-brute force dengan teknologi saat ini.
Kesimpulan
Hardening VPS bukan paranoia. Itu standar minimum yang seharusnya dilakukan pada semua server yang terekspos internet.
Tiga langkah ini — SSH key, disable root, 2FA — sudah mengeliminasi 99% serangan otomatis. Lakukan sekali, dan server kamu jauh lebih tenang.