Internet itu keras.
Begitu VPS kamu punya public IP, dalam hitungan menit sudah ada bot yang mencoba login ke server kamu. Serius — bahkan sebelum kamu setup apa pun.
Bot-bot otomatis ini terus melakukan scanning ke seluruh range IP publik. Begitu mereka temukan port 22 terbuka, mereka mulai brute force dengan database jutaan kombinasi username dan password.
Di artikel ini kita akan hardening VPS OpenCloudOS langkah demi langkah:
Update sistem
Buat user non-root
Login pakai SSH Key
Ganti port SSH dari 22
Konfigurasi firewall
Install sshguard
⚠️ PENTING: Ikuti urutannya. Kalau loncat-loncat, kamu bisa terkunci dari VPS sendiri.
Kenapa VPS Selalu Diserang Bot?
VPS baru itu seperti rumah baru tanpa pagar, tanpa pintu, langsung menghadap jalan raya internet. Bot tidak memilih korban — mereka menyerang semua IP secara otomatis.
Mereka mencoba username-username populer seperti root, admin, ubuntu, test, and ribuan password dari database yang mereka punya.
Kalau VPS kamu masih pakai:
Login
rootlangsungPassword authentication
...maka satu tebakan yang tepat sudah cukup untuk masuk. Makanya kita mulai hardening sekarang.
Langkah 1 — Update Sistem
Langkah pertama selalu sama di setiap server: update sistem. Banyak serangan terjadi hanya karena software lama yang belum dipatch. Patch keamanan terbaru biasanya sudah menutup bug yang bisa dieksploitasi.
Login ke VPS, lalu jalankan:
dnf update -yPerintah ini akan update kernel, memperbarui library sistem, dan memasang patch security terbaru. Biasanya butuh beberapa menit tergantung koneksi VPS.
Langkah 2 — Buat User Non-Root
Kesalahan paling umum yang dilakukan pemula: selalu login sebagai root.
Root adalah akun super admin dengan akses penuh ke seluruh sistem. Kalau berhasil ditembus, attacker bisa melakukan apa pun tanpa batasan.
Solusinya: buat user biasa yang punya akses sudo. Di OpenCloudOS, grup wheel setara dengan grup sudo.
useradd -m namauser
passwd namauser
usermod -aG wheel namauserGanti namauser dengan nama yang kamu mau. Setelah ini, kita tidak akan pernah login langsung sebagai root lagi.
Langkah 3 — Generate SSH Key di Windows
Sekarang kita ganti metode login dari password ke SSH Key.
SSH Key bekerja seperti gembok dan kunci: public key dipasang di server, private key disimpan di laptop kamu. Tanpa private key yang cocok, tidak ada yang bisa masuk — termasuk bot.
Di Windows, buka PowerShell lalu jalankan:
ssh-keygen -t ed25519 -C "vps-openclaw" -f "$env:USERPROFILE\.ssh\id_ed25519_openclaw"Penjelasan parameter:
-t ed25519— algoritma enkripsi modern, lebih cepat dan aman dari RSA-C— label/komentar, bebas diisi apa saja-f— nama file key yang akan dibuat
Kamu akan diminta passphrase. Untuk belajar boleh dikosongkan, untuk production sangat disarankan diisi.
Hasilnya, dua file akan terbuat di folder .ssh:
Private key — jangan pernah dibagikan ke siapapun
Public key — ini yang akan kita kirim ke VPS
Langkah 4 — Copy SSH Key ke VPS
Kirim public key ke VPS dengan satu perintah dari PowerShell:
type $env:USERPROFILE\.ssh\id_ed25519_openclaw.pub | ssh namauser@ip-vps "mkdir -p /home/namauser/.ssh && cat >> /home/namauser/.ssh/authorized_keys"Ganti namauser dan ip-vps dengan punya kamu. Perintah ini sekaligus membuat folder .ssh di VPS dan menyalin public key.
Setelah selesai, test login pakai SSH key dari PowerShell baru:
ssh -i ~/.ssh/id_ed25519_openclaw namauser@ip-vps⚠️ Ini langkah kritis — pastikan kamu berhasil login dulu sebelum lanjut. Kalau gagal, jangan matikan password authentication.
Satu hal menarik: file authorized_keys bisa berisi banyak public key. Jadi kalau kamu punya beberapa device, tinggal tambahkan key masing-masing di file yang sama.
Langkah 5 — Harden Konfigurasi SSH
SSH key sudah berhasil. Sekarang kita hardening konfigurasi SSH-nya.
Edit file config:
vim /etc/ssh/sshd_configUbah atau tambahkan baris berikut:
Port 2222
PermitRootLogin no
MaxAuthTries 5
PasswordAuthentication noArtinya:
Port SSH diganti ke
2222— bot umumnya hanya scan port 22Root tidak bisa login langsung
Maksimal 5 percobaan login sebelum disconnect
Password authentication dimatikan sepenuhnya
⚠️ Jangan restart SSH dulu sekarang. Kita perlu buka port 2222 di firewall terlebih dahulu. Kalau restart sekarang, kamu bisa langsung terkunci keluar dari VPS.
Langkah 6 — Konfigurasi Firewall
OpenCloudOS menggunakan firewalld. Anggap firewall sebagai satpam server — dia yang menentukan port mana yang boleh diakses dari luar.
Install dan aktifkan:
dnf install firewalld -y
systemctl start firewalld
systemctl enable firewalldBuka port SSH baru dan tutup port 22:
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reloadSekarang baru restart SSH:
systemctl restart sshdLangsung buka terminal baru di Windows dan test koneksi:
ssh -p 2222 -i ~/.ssh/id_ed25519_openclaw namauser@ip-vps⚠️ Jangan tutup sesi lama sampai kamu berhasil masuk dari terminal baru.
Langkah 7 — Install sshguard
Sekarang kita pasang sshguard — tool yang otomatis memblokir IP yang terlalu banyak gagal login.
Kenapa sshguard, bukan Fail2Ban?
sshguard punya sistem ban bertingkat. Makin sering IP yang sama kena ban, makin lama durasi ban-nya — jauh lebih cerdas dari Fail2Ban yang durasi ban-nya flat.
Install dan aktifkan:
sudo dnf install sshguard -y
sudo systemctl enable --now sshguardCara kerja sistem ban sshguard:
Ban ke-1 = 2 menit
Ban ke-2 = 4 menit
Ban ke-3 = 8 menit
... dan seterusnya naik 2x lipatBot yang terus mencoba akan makin lama kena ban secara otomatis — tanpa perlu konfigurasi tambahan.
Untuk cek status dan lihat IP yang diblokir:
sudo systemctl status sshguard
sudo firewall-cmd --ipset=sshguard4 --get-entriesBonus — SSH Config Shortcut
Supaya koneksi lebih praktis, buat SSH config shortcut. Buka file .ssh\config di Windows:
C:\Users\NamaKamu\.ssh\configIsi dengan:
Host openclaw
HostName ip-vps
User namauser
Port 2222
IdentityFile ~/.ssh/id_ed25519_openclawSetelah itu, cukup ketik ssh openclaw — dan kamu langsung masuk tanpa perlu ingat IP, port, atau path key.
Hasil Setelah Hardening
Setelah semua langkah ini, server kamu sekarang punya:
✅ Login berbasis SSH key — tidak bisa ditebak oleh bot
✅ Root login dimatikan
✅ Port SSH non-standar
✅ Auto-ban IP yang mencoba brute force
Log yang tadinya penuh Failed password biasanya turun drastis setelah konfigurasi ini.
Security server bukan cuma urusan perusahaan besar. VPS kecil sekalipun jadi target bot setiap hari. Dengan konfigurasi di atas, server kamu sudah selangkah lebih jauh dari kebanyakan VPS di luar sana.
Tutorial ini menggunakan OpenCloudOS / CentOS. Perintah mungkin sedikit berbeda untuk distro lain seperti Ubuntu (gunakan apt dan grup sudo menggantikan dnf serta wheel).
