Paket 1 · Fondasi DevOpsModul E — Server Administration

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

AreaTindakan
PatchUpdate rutin dan reboot terjadwal
AutentikasiSSH key-only, password kuat, MFA bila tersedia
AksesLeast privilege, sudo terbatas
ServiceMatikan yang tidak dipakai
JaringanFirewall default deny
KernelParameter sysctl yang aman
MonitoringLog, audit, alert
RecoveryBackup teruji dan dokumentasi

1. Update sistem

apt update
apt upgrade -y
apt full-upgrade -y
apt autoremove -y

Cek apakah reboot dibutuhkan:

test -f /var/run/reboot-required && cat /var/run/reboot-required

Untuk 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 no

Uji sebelum logout

Validasi konfigurasi dengan sshd -t, buka sesi SSH baru untuk memastikan login berhasil, baru tutup sesi lama.

sshd -t
systemctl reload ssh

Jika 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/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx

4. Minimalisasi service

systemctl list-units --type=service --state=running
systemctl list-unit-files --state=enabled
ss -tulpn

Matikan layanan yang tidak perlu:

systemctl disable --now telnet.socket
systemctl disable --now cups

Periksa 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 = 1

Terapkan:

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

SistemDistroStatus
AppArmorUbuntu, DebianProfil per aplikasi
SELinuxRHEL, Rocky, AlmaLabel dan kebijakan ketat

Cek status:

aa-status
getenforce
sestatus

Jangan 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 recent

Log penting:

LogIsi
/var/log/auth.logLogin, sudo, SSH
/var/log/syslogLog sistem umum
journalctl -u sshLog 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 --check

Checklist 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.

On this page