VPS baru sudah menjadi sasaran serangan otomatis hanya dalam hitungan menit setelah online — checklist ini memandu Anda melalui satu jam pertama hardening yang membuat server itu tetap milik Anda.
Setiap server baru memulai hidupnya dengan kelemahan yang sama: login root default, pintu SSH yang hanya dilindungi password, firewall yang terbuka lebar, dan tanpa patching otomatis. Bot memindai seluruh ruang IPv4 secara terus-menerus, jadi anggapan "belum ada yang tahu IP saya" tidak pernah benar.
Panduan ini adalah checklist hardening yang berurutan dan siap Anda terapkan langsung. Kerjakan dari atas ke bawah pada mesin Debian atau Ubuntu yang baru, dan Anda akan menutup celah yang benar-benar dimanfaatkan penyerang, bukan celah yang hanya dikhawatirkan oleh security theatre.
Sebelum Anda menyentuh server
Dua keputusan yang Anda ambil sebelum login pertama akan menghemat waktu berjam-jam nantinya. Siapkan SSH key Anda dan pilih nama user non-root.
- 1
Buat SSH key modern
Di komputer Anda sendiri, jalankan ssh-keygen -t ed25519 -C "you@device". Key Ed25519 pendek, cepat, dan lebih kuat dibanding standar lama RSA-2048.
- 2
Jaga private key tetap jauh dari server
Bagian private tidak pernah meninggalkan laptop Anda. Anda hanya menyalin file .pub ke host. Melanggar aturan ini adalah cara orang mengunci diri sendiri hingga harus melakukan provisioning ulang.
- 3
Catat kredensial provisioning Anda
Sebagian besar provider mengirim email berisi password root sementara atau menyisipkan key Anda saat server dibuat. Jika key sudah disisipkan, Anda bisa langsung lanjut ke pembuatan user.
Jika host Anda menyisipkan SSH key saat deploy, Anda tidak pernah punya jendela berbasis password sama sekali — permukaan serangan terbesar sudah hilang bahkan sebelum server boot.
Langkah 1 — Patch semuanya, lalu terus jaga agar tetap ter-patch
Kernel atau OpenSSL yang belum di-patch adalah satu-satunya celah yang tidak bisa diperbaiki oleh aturan firewall apa pun. Update dulu sebelum mengonfigurasi hal lain.
- Debian/Ubuntu: apt update && apt full-upgrade -y lalu reboot jika kernel berubah.
- Aktifkan unattended-upgrades agar patch keamanan terpasang otomatis: apt install unattended-upgrades && dpkg-reconfigure unattended-upgrades.
- Reboot sesuai jadwal yang Anda tentukan sendiri — atur Unattended-Upgrade::Automatic-Reboot ke jam sepi, alih-alih membiarkan kernel setengah ter-update.
Langkah 2 — Buat user asli dan pensiunkan root
Login sebagai root berarti satu sesi yang berhasil dibobol langsung menguasai seluruh mesin dan tidak meninggalkan jejak audit. Sebagai gantinya, buat akun sudo bernama untuk diri Anda sendiri.
- 1
Tambahkan user
adduser deploy lalu usermod -aG sudo deploy (gunakan wheel pada sistem berbasis RHEL).
- 2
Pasang key Anda untuk user tersebut
Dari laptop Anda: ssh-copy-id deploy@your-server-ip. Perintah ini menulis public key Anda ke ~/.ssh/authorized_keys dengan izin yang benar.
- 3
Uji dulu sebelum mengunci pintu
Buka terminal kedua dan pastikan Anda bisa ssh deploy@server dan menjalankan sudo -v. Jangan pernah menonaktifkan root atau password sebelum sesi baru terbukti berhasil.
Aturan emas hardening SSH: biarkan sesi Anda saat ini tetap terbuka dan buktikan login baru berhasil di jendela kedua sebelum mengubah pengaturan auth apa pun. Kebiasaan ini saja mencegah hampir semua kasus terkunci sendiri.
Langkah 3 — Hardening SSH, bagian yang paling penting
SSH adalah pintu depan setiap VPS, dan di situlah sebagian besar percobaan login otomatis menghantam. Edit /etc/ssh/sshd_config (atau file drop-in di /etc/ssh/sshd_config.d/) dan atur key-key berikut.
Terapkan dengan sshd -t untuk memvalidasi sintaksnya, lalu systemctl restart ssh. Jika sshd -t melaporkan error, perbaiki dulu sebelum restart, atau Anda berisiko membuat daemon-nya berhenti total.
Mengubah port SSH dari 22 sifatnya opsional dan hanya mengurangi noise log — itu obscurity, bukan security. Setelah PasswordAuthentication dimatikan, bot yang melakukan port scanning tidak punya apa pun lagi untuk ditebak, jadi curahkan usaha Anda pada key, bukan permainan port.
Langkah 4 — Aktifkan firewall default-deny
SSH daemon yang sudah di-hardening tetap berbagi mesin dengan setiap layanan lain yang listening. Firewall menjadikan "tertutup kecuali saya buka" sebagai default.
- 1
Atur baseline
Dengan ufw: ufw default deny incoming dan ufw default allow outgoing.
- 2
Izinkan hanya yang Anda layani
ufw allow OpenSSH, ditambah ufw allow 80,443/tcp hanya jika mesin ini memang meng-host traffic web.
- 3
Aktifkan dan verifikasi
ufw enable lalu ufw status verbose. Apa pun yang tidak terdaftar kini tidak bisa dijangkau dari internet.
Pasang aturan SSH di firewall sebelum Anda mengaktifkan ufw. Mengaktifkan firewall default-deny tanpa aturan allow untuk port Anda sendiri akan memutus sesi Anda.
Langkah 5 — Perlambat brute force dengan Fail2ban
Meski password sudah dinonaktifkan, bot tetap terus mengetuk dan membuat log Anda membengkak. Fail2ban memblokir pelaku berulang di level firewall.
- apt install fail2ban — jail sshd bawaan langsung berfungsi tanpa konfigurasi tambahan.
- Salin jail.conf ke jail.local lalu naikkan bantime (misalnya 1h) dan turunkan maxretry (misalnya 3) sesuai kebutuhan.
- Cek apakah sudah berjalan dengan fail2ban-client status sshd untuk melihat jumlah IP yang diblokir.
Langkah 6 — Kurangi permukaan serangan
Layanan paling aman adalah layanan yang tidak berjalan. Audit apa yang listening dan pangkas yang tidak Anda butuhkan.
Audit port terbuka
ss -tulpn menampilkan setiap socket yang listening beserta proses di baliknya. Selidiki apa pun yang tidak Anda jalankan secara sengaja.
Hapus paket yang tidak terpakai
Nonaktifkan atau uninstall layanan yang tidak Anda gunakan — database atau mail agent yang dibiarkan berjalan adalah risiko murni.
Isolasi layanan
Ikat daemon internal seperti database ke 127.0.0.1 agar tetap tidak pernah terekspos bahkan jika firewall lolos.
Kunci izin akses
Pastikan ~/.ssh bernilai 700 dan authorized_keys bernilai 600. Izin yang salah membuat sshd diam-diam mengabaikan key Anda.
Langkah 7 — Catat log, monitor, dan kenali baseline Anda
Hardening bukan aktivitas sekali jadi. Anda perlu menyadari saat ada sesuatu yang berubah.
- Tinjau aktivitas auth dengan journalctl -u ssh atau lastb untuk login yang gagal.
- Pertimbangkan auditd untuk catatan tindakan berhak istimewa yang tahan terhadap manipulasi.
- Simpan backup /etc dan data Anda di luar server, agar mesin yang berhasil dibobol bisa dibangun ulang dari nol, bukan malah dipercaya lagi setelah kejadian.
Di mana host itu sendiri berperan
Hardening software melindungi OS, tapi provider yang menentukan apa yang ada di bawahnya — penyaringan jaringan, jejak pembayaran, dan apakah identitas Anda pernah terhubung ke server. Di ChainVPS, setiap paket dilengkapi proteksi DDoS dan bandwidth unmetered, dan server dibayar dari saldo prabayar kripto dalam 21 koin termasuk Monero, tanpa KYC. Jika model ancaman Anda mencakup tidak menghubungkan server dengan identitas Anda, paket VPS offshore kami dibuat justru untuk itu.
Lokasi juga bagian dari hardening: enam dari lima belas region kami adalah yurisdiksi ramah privasi (NL, CH, RO, IS, MD, LU). Memadukan OS yang sudah di-hardening dengan dedicated server offshore menjaga permukaan software maupun permukaan hukum tetap ketat.
Checklist satu jam, versi ringkas
- Update sistem penuh + patch keamanan otomatis diaktifkan
- User sudo bernama dibuat, key terpasang, login teruji
- Login root SSH dan autentikasi password sama-sama dinonaktifkan
- Konfigurasi SSH divalidasi dengan sshd -t dan dimuat ulang
- Firewall default-deny aktif, hanya port yang dibutuhkan yang terbuka
- Fail2ban berjalan pada jail sshd
- Port terbuka sudah diaudit, layanan yang tidak terpakai dihapus
- Backup di luar server dan peninjauan log sudah berjalan
Perlukah saya mengubah port SSH menjadi selain 22?
Sifatnya opsional dan hanya mengurangi noise log, bukan risiko sebenarnya. Setelah autentikasi password dimatikan dan key diwajibkan, memindahkan port hanya menambah obscurity, bukan security — prioritaskan dulu menonaktifkan password.
Amankah menonaktifkan autentikasi password jika saya hanya punya satu key?
Ya, asalkan Anda sudah menguji login key di sesi terpisah dan menyimpan backup private key. Banyak provider juga menyediakan web console atau recovery mode, sehingga Anda tidak pernah benar-benar terkunci dari hardware.
Apakah saya masih perlu firewall jika SSH satu-satunya layanan?
Ya. Firewall default-deny melindungi Anda dari layanan yang lupa pernah Anda instal dan dari apa pun yang diam-diam mulai listening akibat paket di masa depan. Tidak ada biayanya dan menutup kejutan yang tidak diinginkan.
Seberapa sering saya harus meninjau ulang hardening?
Update keamanan otomatis menangani pekerjaan harian, tapi tinjau port yang listening dan log auth setelah instalasi software besar apa pun, dan minimal sebulan sekali. Perlakukan baseline yang sudah di-hardening sebagai sesuatu yang Anda verifikasi, bukan sesuatu yang Anda atur sekali lalu lupakan.


