Hardening Ubuntu 26.04 LTS: Guide & Security Best Practices
Introduction
Hardening Ubuntu 24.04 bertujuan untuk memperkuat sistem dengan menerapkan security best practices agar server lebih tahan terhadap eksploitasi, serangan jaringan, maupun eskalasi hak akses (privilege escalation). Langkah-langkah ini akan meningkatkan keandalan infrastruktur dan memperkecil risiko kompromi sistem.
1. System Configuration & Updates
Set Timezone
Pastikan zona waktu server sesuai dengan lokasi operasional kamu:
sudo timedatectl set-timezone Asia/Jakarta
Update & Upgrade System
Perbarui seluruh paket sistem ke versi terbaru:
sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y
Aktifkan Automatic Security Updates
Pastikan patch keamanan terpasang secara otomatis:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
2. User & Access Control (SSH)
Buat User Admin Khusus
Hindari menggunakan akun root langsung untuk aktivitas harian:
adduser user-admin
usermod -aG sudo user-admin
Konfigurasi SSH Daemon
Edit konfigurasi /etc/ssh/sshd_config untuk memperketat akses remote:
# Ubah port SSH default dan matikan akses root
sudo sed -i 's/^#Port.*/Port 22122/' /etc/ssh/sshd_config
sudo sed -i 's/^#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/^#PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
# Batasi percobaan login dan forwarding
sudo sed -i 's/^#LogLevel.*/LogLevel VERBOSE/' /etc/ssh/sshd_config
sudo sed -i 's/^#MaxAuthTries.*/MaxAuthTries 3/' /etc/ssh/sshd_config
sudo sed -i 's/^#MaxSessions.*/MaxSessions 2/' /etc/ssh/sshd_config
sudo sed -i 's/^#AllowAgentForwarding.*/AllowAgentForwarding no/' /etc/ssh/sshd_config
sudo sed -i 's/^#AllowTcpForwarding.*/AllowTcpForwarding no/' /etc/ssh/sshd_config
sudo sed -i 's/^X11Forwarding.*/X11Forwarding no/' /etc/ssh/sshd_config
# Set Idle Timeout (300 detik x 2 = 10 menit idle lalu disconnect)
sudo sed -i 's/^#ClientAliveInterval.*/ClientAliveInterval 300/' /etc/ssh/sshd_config
sudo sed -i 's/^#ClientAliveCountMax.*/ClientAliveCountMax 2/' /etc/ssh/sshd_config
Catatan Khusus Ubuntu 24.04: Ubuntu 24.04 menggunakan Systemd Socket Activation (ssh.socket) secara default. Untuk menerapkan custom port SSH dari sshd_config, kita perlu beralih ke ssh.service standar:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service
sudo systemctl restart ssh
3. Network & Firewall Security
Konfigurasi UFW (Uncomplicated Firewall)
Batasi lalu lintas jaringan masuk dan izinkan port SSH kustom (22122):
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22122/tcp
sudo ufw enable
Nonaktifkan IPv6 (Jika Tidak Digunakan)
Jika infrastruktur kamu tidak menggunakan IPv6, matikan stack IPv6 untuk mengurangi attack surface:
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
sudo sed -i 's/^IPV6.*/IPV6=no/' /etc/default/ufw
4. Kernel & System Hardening
Tambahkan parameter hardening jaringan dan kernel ke /etc/sysctl.d/99-hardening.conf:
sudo tee /etc/sysctl.d/99-hardening.conf << EOF
# Anti-spoofing (Reverse Path Filtering)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Disable ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Disable source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Enable SYN cookies (Mitigasi SYN Flood)
net.ipv4.tcp_syncookies = 1
# Disable kernel magic sysrq
kernel.sysrq = 0
# Hide kernel pointers (Mitigasi Kernel Exploitation)
kernel.kptr_restrict = 2
EOF
# Terapkan perubahan sysctl
sudo sysctl --system
5. Service Management
Matikan service bawaan desktop/unnecessary daemon yang tidak dibutuhkan pada server:
sudo systemctl disable --now fwupd.service
sudo systemctl disable --now ModemManager.service
sudo systemctl disable --now udisks2.service
sudo systemctl disable --now upower.service
6. Security Tools & Protection
Fail2ban (Mitigasi Brute Force)
Install dan konfigurasikan Fail2ban untuk memproteksi port SSH kustom menggunakan backend systemd (bawaan Ubuntu 24.04):
sudo apt install fail2ban -y
sudo tee /etc/fail2ban/jail.local <<EOF
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 30m
findtime = 10m
EOF
sudo systemctl restart fail2ban
Libpam-tmpdir
Isolasi direktori sementara (/tmp) per user untuk mencegah intipan/Akses file antar pengguna:
sudo apt install libpam-tmpdir -y
PAM Password Policy (Kekuatan Password)
Wajibkan password yang kuat (minimal 12 karakter dengan kombinasi huruf besar, huruf kecil, angka, dan simbol):
sudo apt install libpam-pwquality -y
sudo sed -i 's|^password\s\+requisite\s\+pam_pwquality\.so.*|password requisite pam_pwquality.so retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1|' /etc/pam.d/common-password
Malware & Rootkit Scanner
Install chkrootkit untuk melakukan pemindaian ancaman dan rootkit pada sistem:
sudo apt install chkrootkit -y
7. Auditing & Logging
Install & Aktifkan Auditd
Gunakan auditd untuk memantau perubahan pada file-file sistem yang sensitif:
sudo apt install auditd audispd-plugins -y
sudo systemctl enable --now auditd
Tambahkan Rule Pemantauan File Sensitif
Buat aturan pemantauan pada file pengguna, hak akses sudo, dan konfigurasi SSH:
sudo tee /etc/audit/rules.d/hardening.rules << EOF
-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
-w /etc/sudoers -p wa -k sudoers
-w /etc/ssh/sshd_config -p wa -k ssh_config
EOF
# Restart auditd untuk menerapkan aturan
sudo systemctl restart auditd
Cek Aturan & Laporan Audit
Gunakan perintah berikut untuk memverifikasi rule dan melihat log aktivitas:
# Memeriksa daftar aturan yang aktif
sudo auditctl -l
# Memeriksa log perubahan konfigurasi SSH
sudo ausearch -k ssh_config | aureport -f -i
“Tips: Secara default Ubuntu 24.04 menggunakan
journald. Untuk infrastruktur production, disarankan mengintegrasikan log ke Centralized Log Server seperti Logstash/ELK Stack, Grafana Loki, atau SIEM.
8. Filesystem & Storage Security
Amankan direktori /tmp menggunakan mounting tmpfs dengan Opsi noexec, nodev, dan nosuid untuk mencegah eksekusi file berbahaya dari folder temporary:
sudo tee -a /etc/fstab << EOF
tmpfs /tmp tmpfs defaults,noexec,nodev,nosuid 0 0
EOF
9. Security Audit dengan Lynis
Lakukan pemindaian akhir untuk memverifikasi tingkat keamanan server:
sudo apt install lynis -y
sudo lynis audit system
Perbaikan Permission File (Berdasarkan Rekomendasi Lynis)
Sesuaikan hak akses direktori SSH dan cron agar hanya bisa diakses oleh root:
sudo chmod 700 /etc/sudoers.d
sudo chmod 700 /etc/ssh/sshd_config.d/
sudo chmod 600 /etc/ssh/sshd_config
sudo chmod 600 /etc/crontab
sudo chmod 700 /etc/cron.d
sudo chmod 700 /etc/cron.daily
sudo chmod 700 /etc/cron.hourly
sudo chmod 700 /etc/cron.weekly
sudo chmod 700 /etc/cron.monthly