Introduction
Hardening Ubuntu 24.04 bertujuan untuk memperkuat sistem dengan menerapkan praktik terbaik keamanan (security best practices) agar node lebih tahan terhadap eksploitasi, serangan jaringan, maupun eskalasi hak akses.
Dengan penerapan langkah-langkah ini, setiap server akan memiliki tingkat keamanan yang lebih baik, mengurangi risiko kompromi, dan meningkatkan keandalan keseluruhan infrastruktur.
System Configuration
1. Update Patch
Pastikan kita menggunakan timezone yang sesuai lokasi
sudo timedatectl set-timezone Asia/JakartaPastikan semua paket sudah up-to-date
sudo apt update && sudo apt upgrade -y
sudo apt autoremove -yMengaktifkan auto security update
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades 2. User, SSH & Access Control
1.) Create user admin dan grant akses ke root menggunakan sudo
adduser user-admin
usermod -aG sudo user-admin2.) Merubah default port ssh dengan menggunakan port non-standart
sudo sed -i 's/^#Port.*/Port 22122/' /etc/ssh/sshd_config3.) Nonaktifkan login root via SSH pada
sudo sed -i 's/^#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config4.) Gunakan key-based authentication, bukan password: Check pada postingan dibawah
5.) Batasi akses SSH, menambahkan network yang akan diallow dan deny all
sudo sed -i '$ a sshd: 192.168.1.0/24' /etc/hosts.allow
sudo sed -i '$ a sshd: ALL' /etc/hosts.deny3. Network & Firewall
1.) Aktifkan firewall UFW dan buka port sesuai kebutuhan
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22122/tcp
sudo ufw enable2.) Disable IPv6 jika tidak digunakan
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 -p4. Kernel & System Hardening
1.) Tambahkan parameter berikut ke /etc/sysctl.d/99-hardening.conf
sudo tee /etc/sysctl.d/99-hardening.conf << EOF
# Disable IP forwarding
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
net.ipv4.tcp_syncookies = 1
# Disable kernel magic sysrq
kernel.sysrq = 0
# Hide kernel pointers
kernel.kptr_restrict = 2
EOF2.) Kemudian aktifkan
sudo sysctl --system5. Service Management
1.) Disable service yang tidak digunakan
sudo systemctl disable --now fwupd.service
sudo systemctl disable --now ModemManager.service
sudo systemctl disable --now udisks2.service
sudo systemctl disable --now upower.service6. Useful Tools for Security
a.) Fail2ban
1.) Install Fail2ban
sudo apt install fail2ban -y2.) Konfigurasi fail2ban
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
EOF3.) Restart service fail2ban
sudo systemctl restart fail2banb.) Libpam-tmpdir
sudo apt install libpam-tmpdirc.) PAM Password strength tools
1.) Install libpam-pwquality
sudo apt install libpam-pwquality2.) Ubah pwquality
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
d.) Malware security (chkrootkit)
sudo apt install chkrootkit7. Auditing & Logging
1.) Install auditd
sudo apt install auditd audispd-plugins -y
sudo systemctl enable auditd2.) Menambahkan rules auditd dengan file /etc/audit/rules.d/hardening.rules
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
EOF3.) restart service
sudo systemctl restart auditd4.) Check audit rules dan cek logs berdasarkan rules
sudo auditctl -l
sudo ausearch -k ssh_config | aureport -f -i Untuk logging secara default ubuntu 24.04 sudah terinstall rsyslog. Lebih direkomendasikan jika untuk log terintegrasi dengan Centralized Log Server seperti ELK Stack, Loki, maupun SIEM.
8. Filesystem & Storage Security
Gunakan filesystem dengan journaling (ext4/xfs). Aktifkan noexec,nodev,nosuid di /tmp dengan menambahkan di /etc/fstab.
sudo tee -a /etc/fstab << EOF
tmpfs /tmp tmpfs defaults,noexec,nodev,nosuid 0 0
EOF9. Optional: Security Scanning & Benchmarking
Install lynis untuk scanning security kemudian jalankan audit system
sudo apt install lynis -y
sudo lynis audit systemNanti ada beberapa saran dari hasil scan audit. Kita bisa mengabaikan saran yang sekiranya memang tidak bisa dikerjakan.
10. Reboot server
sudo reboot