Back to Home
Security

Hardening Ubuntu 26.04 LTS: Guide & Security Best Practices

Zainun Kamal
7/23/2026
1 views

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:

bash
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