Linux Server Hardening dan Secure Configuration
Menerapkan baseline hardening Linux: update, hardening SSH, least privilege, minimalisasi service, sysctl, audit, dan backup.
Hardening adalah proses mengurangi attack surface dan memperkuat konfigurasi server. Tidak ada server yang 100% aman, tetapi baseline yang baik menutup banyak celah umum.
Baseline hardening
| Area | Tindakan |
|---|---|
| Patch | Update rutin dan reboot terjadwal |
| Autentikasi | SSH key-only, password kuat, MFA bila tersedia |
| Akses | Least privilege, sudo terbatas |
| Service | Matikan yang tidak dipakai |
| Jaringan | Firewall default deny |
| Kernel | Parameter sysctl yang aman |
| Monitoring | Log, audit, alert |
| Recovery | Backup teruji dan dokumentasi |
1. Update sistem
apt update
apt upgrade -y
apt full-upgrade -y
apt autoremove -yCek apakah reboot dibutuhkan:
test -f /var/run/reboot-required && cat /var/run/reboot-requiredUntuk produksi, jadwalkan maintenance window. Jangan reboot server penting tanpa rencana.
2. Hardening SSH
Edit /etc/ssh/sshd_config atau file di /etc/ssh/sshd_config.d/:
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
AllowUsers deploy
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowAgentForwarding no
AllowTcpForwarding noUji sebelum logout
Validasi konfigurasi dengan sshd -t, buka sesi SSH baru untuk memastikan login berhasil, baru
tutup sesi lama.
sshd -t
systemctl reload sshJika memakai Tailscale SSH, konfigurasi SSH tradisional bisa dikurangi, tetapi tetap amankan akses ke tailnet.
3. Manajemen user dan sudo
# Buat user admin
useradd -m -s /bin/bash deploy
passwd deploy
usermod -aG sudo deploy
# Kunci user sistem yang tidak dipakai
usermod -L nama_user
# Cek user dengan shell login
getent passwd | awk -F: '$7 !~ /(nologin|false)$/ {print $1, $7}'Batasi sudo:
visudo -f /etc/sudoers.d/deploydeploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx4. Minimalisasi service
systemctl list-units --type=service --state=running
systemctl list-unit-files --state=enabled
ss -tulpnMatikan layanan yang tidak perlu:
systemctl disable --now telnet.socket
systemctl disable --now cupsPeriksa port terbuka dan pastikan hanya layanan yang dibutuhkan.
5. Hardening kernel dengan sysctl
Buat file /etc/sysctl.d/99-hardening.conf:
# Lindungi dari spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Abaikan ICMP redirect
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Jangan kirim redirect
net.ipv4.conf.all.send_redirects = 0
# Lindungi SYN flood
net.ipv4.tcp_syncookies = 1
# Log paket aneh
net.ipv4.conf.all.log_martians = 1
# Batasi akses ke dmesg
kernel.dmesg_restrict = 1Terapkan:
sysctl --system
sysctl -a | grep -E 'rp_filter|syncookies|accept_redirects'Sesuaikan dengan peran server
Server router/NAT membutuhkan ip_forward=1 dan aturan yang berbeda. Jangan menyalin konfigurasi
hardening mentah-mentah tanpa memahami peran server.
6. Mandatory Access Control
| Sistem | Distro | Status |
|---|---|---|
| AppArmor | Ubuntu, Debian | Profil per aplikasi |
| SELinux | RHEL, Rocky, Alma | Label dan kebijakan ketat |
Cek status:
aa-status
getenforce
sestatusJangan menonaktifkan MAC untuk "mempercepat" pekerjaan; pelajari profil yang diperlukan.
7. Audit dan monitoring log
apt install -y auditd
systemctl enable --now auditd
ausearch -m avc -ts recentLog penting:
| Log | Isi |
|---|---|
/var/log/auth.log | Login, sudo, SSH |
/var/log/syslog | Log sistem umum |
journalctl -u ssh | Log SSH |
/var/log/nginx/ | Akses dan error web |
Kirim log ke server terpusat bila memungkinkan agar tidak hilang saat server bermasalah.
8. File integrity dan backup
- Pantau perubahan file konfigurasi penting dengan tool seperti AIDE.
- Backup konfigurasi dan data secara terjadwal.
- Uji restore, bukan hanya membuat backup.
- Simpan salinan di lokasi terpisah.
apt install -y aide
aideinit
aide --checkChecklist hardening
- Sistem dan paket diperbarui.
- SSH memakai key, root login dimatikan.
- User admin memakai sudo terbatas.
- Firewall aktif dengan default deny.
- Hanya service yang dibutuhkan berjalan.
- Sysctl hardening diterapkan.
- AppArmor/SELinux aktif.
- Log dipantau dan disimpan.
- Backup terjadwal dan diuji restore.
- Dokumentasi akses dan recovery tersedia.
Ringkasan
- Hardening adalah proses berkelanjutan, bukan sekali konfigurasi.
- Fokus pada patch, akses, service, jaringan, dan pemantauan.
- Uji setiap perubahan agar tidak mengunci diri sendiri.
- Backup dan dokumentasi adalah bagian dari keamanan.
Selanjutnya
Buka akses privat tanpa public IP di VPN, Mesh Network, dan Tailscale Fundamentals.
Firewall dan Basic Server Security
Mengatur firewall dengan UFW dan nftables, memahami Proxmox firewall, serta menerapkan pertahanan dasar untuk server.
VPN, Mesh Network, dan Tailscale Fundamentals
Memahami perbedaan VPN tradisional dan mesh VPN, arsitektur Tailscale, serta cara memasang dan menghubungkan perangkat ke tailnet.