Hardening VPS Linux:
SSH Key, Disable Root & 2FA

Tiga langkah yang mengubah VPS biasa menjadi server yang sulit ditembus.

± 20 menit baca SufaNet
Hardening VPS Linux SSH Key 2FA

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
⚠️ Peringatan: Pastikan kamu sudah bisa login dengan SSH key SEBELUM menonaktifkan password authentication. Jika tidak, kamu akan terkunci dari VPS sendiri.

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 1 dari SSH config
  • Set idle timeout: tambahkan ClientAliveInterval 300 di 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 SufaNet

FAQ

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.