Ketika Anda meluncurkan sebuah instans server baru—baik berupa Virtual Private Server (VPS) di cloud provider (AWS, DigitalOcean, Hetzner...
Ketika Anda meluncurkan sebuah instans server baru—baik berupa Virtual Private Server (VPS) di cloud provider (AWS, DigitalOcean, Hetzner, Linode) maupun mesin fisik di rak datacenter—server tersebut langsung berada di garis depan internet. Berdasarkan data pemantauan honeypot global, bot pemindai otomatis akan mulai membidik port SSH (port 22) dalam kurun waktu kurang dari 15 menit setelah IP publik aktif, melancarkan ribuan serangan dictionary dan brute-force.
Membiarkan konfigurasi bawaan (default) tanpa pengerasan sistem (server hardening) adalah risiko fatal yang dapat berujung pada pengambilalihan hak akses, eksfiltrasi data, atau penyalahgunaan server sebagai simpul botnet DDoS. Berikut adalah panduan komprehensif mengamankan Ubuntu Server 24.04 LTS (Noble Numbat) sesuai standar keamanan industri.
1. Membuat User Khusus dan Membatasi Hak Akses Root
Langkah pertama yang wajib dilakukan adalah menghentikan kebiasaan mengelola server langsung menggunakan user root. Buat user administratif tersendiri dengan hak sudo:
# Buat user baru dengan nama non-standar
sudo adduser sysadmin
# Tambahkan user ke grup sudo
sudo usermod -aG sudo sysadmin
# Uji beralih ke user baru dan verifikasi akses sudo
su - sysadmin
sudo whoami
# Output wajib menampilkan: root
2. Hardening SSH: Kriptografi Ed25519 & Nonaktifkan Autentikasi Password
Autentikasi berbasis password sangat rentan terhadap serangan tebak sandi. Kita wajib menggantinya dengan kunci kriptografi kurva eliptik modern Ed25519 yang jauh lebih kuat dan cepat dibandingkan RSA 2048/4096-bit konvensional.
Jalankan perintah berikut di komputer lokal Anda (laptop kerja) untuk membuat kunci:
# Generate SSH Key Ed25519 di laptop lokal
ssh-keygen -t ed25519 -a 100 -C "sysadmin@workstation"
# Salin public key ke server tujuan
ssh-copy-id -i ~/.ssh/id_ed25519.pub sysadmin@IP_SERVER_ANDA
Setelah memastikan Anda bisa login menggunakan SSH key tanpa password, buat konfigurasi hardening modular pada /etc/ssh/sshd_config.d/99-hardening.conf di server:
sudo tee /etc/ssh/sshd_config.d/99-hardening.conf <<EOF
# Nonaktifkan login langsung user root
PermitRootLogin no
# Wajibkan otentikasi public key dan matikan password
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
# Batasi jumlah percobaan login gagal sebelum koneksi diputus
MaxAuthTries 3
MaxSessions 5
# Matikan X11 forwarding untuk memangkas attack surface
X11Forwarding no
# Waktu tunggu otentikasi dipersingkat menjadi 30 detik
LoginGraceTime 30
EOF
Uji validitas sintaks konfigurasi SSH sebelum me-restart service:
sudo sshd -t && sudo systemctl restart ssh
3. Konfigurasi Firewall UFW dengan Prinsip Least Privilege
Prinsip Least Privilege pada jaringan mengharuskan seluruh lalu lintas masuk (incoming) diblokir secara default, kecuali port layanan yang secara eksplisit dibutuhkan:
# Reset aturan UFW ke default
sudo ufw --force reset
# Terapkan kebijakan dasar: tolak semua incoming, izinkan semua outgoing
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Izinkan port SSH dengan pembatasan laju koneksi (rate limiting)
sudo ufw limit ssh comment "Rate-limited SSH"
# Jika server menjalankan Web Server, buka port 80 dan 443
sudo ufw allow 80/tcp comment "HTTP Web"
sudo ufw allow 443/tcp comment "HTTPS Web"
# Aktifkan firewall
sudo ufw --force enable
sudo ufw status verbose
4. Otomatisasi Patch Keamanan via Unattended-Upgrades
Banyak insiden peretasan terjadi akibat celah keamanan lama yang belum ditambal. Ubuntu menyediakan paket unattended-upgrades untuk mengunduh dan memasang patch keamanan (CVE) secara otomatis tanpa intervensi manual:
# Pasang paket otomatisasi pembaruan
sudo apt update && sudo apt install -y unattended-upgrades update-notifier-common
# Aktifkan service otomatisasi
sudo dpkg-reconfigure -plow unattended-upgrades
Pastikan file /etc/apt/apt.conf.d/50unattended-upgrades mengaktifkan repository "${distro_id}:${distro_codename}-security"; dan atur agar sistem melakukan reboot otomatis terjadwal (misalnya pukul 03:00 WITA) hanya jika pembaruan kernel membutuhkannya:
sudo tee -a /etc/apt/apt.conf.d/50unattended-upgrades <<EOF
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";
EOF
5. Pengerasan Kernel via Parameter Sysctl
Lindungi stack jaringan kernel Linux dari serangan IP spoofing, SYN flood, dan ICMP redirect dengan menambahkan parameter pengerasan pada /etc/sysctl.d/99-network-security.conf:
sudo tee /etc/sysctl.d/99-network-security.conf <<EOF
# Proteksi SYN Flood attacks
net.ipv4.tcp_syncookies = 1
# Tolak paket ICMP redirect (mencegah manipulasi tabel routing)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Abaikan echo request broadcast (mencegah Smurf attack)
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Aktifkan verifikasi source address (mencegah IP spoofing)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
EOF
# Muat parameter ke kernel aktif
sudo sysctl --system
ssh sysadmin@IP_SERVER. Jika login di jendela kedua berhasil tanpa kendala, barulah Anda aman untuk menutup terminal pertama.
Kesimpulan
Dengan menerapkan fondasi pengerasan di atas—menonaktifkan password login SSH, mengunci port dengan UFW, mengaktifkan auto-update keamanan, dan menyetel parameter proteksi kernel—Anda telah memangkas lebih dari 95% vektor serangan otomatis yang mengintai server di internet. Infrastruktur Anda kini siap menampung aplikasi produksi dengan postur keamanan yang solid.
COMMENTS