DevOps

Checklist Hardening Server Ubuntu Setelah Instalasi

Joko Nugroho 12 Agustus 2026 · 6 menit baca

Server Ubuntu yang baru ter-install secara default adalah pintu terbuka: SSH dengan password, firewall mati, dan root yang bisa diakses dari mana saja. Sebelum server Anda menerima trafik produksi, justru sebelum, kerjakan dulu daftar berikut. Urutannya penting — jangan sampai Anda mengunci diri sendiri di luar.

1. Buat user non-root dengan sudo

Kerja harian jangan pakai root. Buat user khusus deploy, beri akses sudo, dan pastikan sudo tanpa password hanya jika memang diperlukan untuk otomatisasi.

2. Autentikasi SSH dengan key, bukan password

Generate pasangan key (ed25519 cukup), tempel public key ke ~/.ssh/authorized_keys, lalu uji login dengan key sebelum menonaktifkan password. Salah urutan di langkah ini adalah cara klasik mengunci diri sendiri.

3. Hardening sshd

Di /etc/ssh/sshd_config: PermitRootLogin no, PasswordAuthentication no, dan ubah port bila ingin mengurangi noise log. Restart sshd dan biarkan sesi lama tetap terbuka sampai Anda yakin koneksi baru berhasil.

4. Pasang firewall (ufw)

Default deny incoming, izinkan hanya port yang benar-benar dipakai — biasanya 22 (atau port SSH baru), 80, dan 443.

5. Install fail2ban

Fail2ban membaca log auth dan mem-blokir IP yang gagal login berulang. Konfigurasi default-nya sudah layak; sesuaikan bantime dan maxretry sesuai selera.

6. Aktifkan automatic security updates

unattended-upgrades memasang patch keamanan otomatis. Untuk patch yang butuh reboot, jadwalkan window restart yang disepakati — jangan biarkan kernel menyimpang terlalu jauh.

7. Sinkronkan waktu dengan NTP

Log yang kacau waktunya menyulitkan investigasi. systemd-timesyncd atau chrony keduanya cukup.

8. Konfigurasi swap & sysctl dasar

Server RAM kecil tanpa swap akan OOM saat build. Tambahkan swap file 1–2 GB, lalu turunkan vm.swappiness agar jarang terpakai.

9. Setup backup harian terenkripsi

Backup tanpa restore test bukan backup. Simpan ke lokasi terpisah dari server, enkripsi, dan uji proses restore-nya sejak hari pertama.

10. Batasi akses database

PostgreSQL/MySQL idealnya hanya listen di localhost. Kalau harus diakses dari luar, pakai VPN — bukan port publik.

11. Pasang monitoring minimal

Cukup uptime check eksternal + alert disk/CPU. Anda ingin tahu masalah lebih dulu dari klien Anda.

12. Catat semua di dokumentasi internal

Port, user, lokasi backup, dan pengecualian firewall. Dokumentasi inilah yang menyelamatkan handover — prinsip yang saya jelaskan di FAQ soal risiko solo developer.

Butuh bantuan menerapkan ini di server Anda? Layanan server & cloud saya mencakup hardening, monitoring, dan maintenance bulanan.

#Ubuntu#Server#Keamanan#DevOps

Punya ide proyek? Mari wujudkan bersama.

Konsultasi pertama gratis. Ceritakan kebutuhan Anda, saya balas dalam 24 jam.

Chat WhatsApp Sekarang