Header LogoCygne Noir
Back to Home
Security

Hardening Ubuntu 26.04 LTS: Guide & Security Best Practices

Zainun Kamal
7/23/2026
16 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 &lt;<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 &lt;&lt; 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 &lt;&lt; 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