Server Aman Dibangun Sebelum Diserang, Bukan Setelah Insiden
Banyak administrator server baru mulai memikirkan keamanan setelah terjadi kebocoran data, serangan brute force, ransomware, atau kompromi sistem. Padahal pendekatan yang benar adalah membangun keamanan sejak awal sebelum server masuk ke lingkungan produksi.
Sebuah server Linux yang baru diinstal secara default belum tentu aman digunakan untuk layanan publik. Masih ada berbagai konfigurasi yang harus diperkuat agar risiko serangan dapat diminimalkan.
Artikel ini membahas 20 langkah hardening server Linux yang wajib diselesaikan sebelum server go live. Checklist ini cocok diterapkan pada Debian, Ubuntu, Rocky Linux, AlmaLinux, maupun distribusi Linux server lainnya.
Apa Itu Hardening Server?
Hardening server adalah proses mengurangi permukaan serangan (attack surface) dengan menghapus layanan yang tidak diperlukan, memperketat konfigurasi sistem, menerapkan kebijakan keamanan, dan memastikan server berjalan sesuai prinsip least privilege.
Analogi sederhananya seperti membangun rumah.
Jika pintu, jendela, pagar, CCTV, dan kunci belum dipasang tetapi rumah sudah ditempati, maka risiko pencurian akan jauh lebih tinggi. Server Linux juga bekerja dengan prinsip yang sama.
1. Update Semua Paket Sistem
Langkah pertama adalah memastikan seluruh paket sistem berada pada versi terbaru.
apt update
apt dist-upgrade -y
Manfaat:
- Menutup celah keamanan yang telah diketahui
- Mengurangi risiko eksploitasi vulnerability lama
- Mendapatkan patch terbaru dari vendor
2. Aktifkan Unattended-Upgrades
Patch keamanan tidak boleh bergantung pada manusia.
Install:
apt install unattended-upgrades -y
Aktifkan:
dpkg-reconfigure unattended-upgrades
Keuntungan:
- Security patch terpasang otomatis
- Mengurangi risiko lupa melakukan update
3. Buat User Non-Root
Jangan pernah menggunakan akun root untuk aktivitas harian.
Buat user baru:
adduser admin
usermod -aG sudo admin
Verifikasi:
id admin
Prinsip keamanan:
- Least Privilege
- Audit aktivitas lebih mudah
4. Hardening SSH
SSH adalah pintu masuk utama server.
Edit:
nano /etc/ssh/sshd_config
Ubah:
PermitRootLogin no
PasswordAuthentication no
AllowUsers admin
Restart:
systemctl restart ssh
Tambahan:
- Gunakan SSH Key Authentication
- Ganti port default jika diperlukan
- Batasi akses berdasarkan IP
5. Aktifkan Firewall
Contoh menggunakan UFW:
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Cek status:
ufw status verbose
Prinsip penting:
Semua koneksi ditolak kecuali yang benar-benar dibutuhkan.
6. Install dan Konfigurasi Fail2Ban
Install:
apt install fail2ban -y
Aktifkan:
systemctl enable fail2ban
systemctl start fail2ban
Cek:
fail2ban-client status
Fungsi:
- Memblokir brute force attack
- Mengurangi serangan login SSH
7. Terapkan Sysctl Hardening
Edit:
nano /etc/sysctl.conf
Tambahkan:
net.ipv4.tcp_syncookies=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
Aktifkan:
sysctl -p
8. Nonaktifkan Service yang Tidak Digunakan
Identifikasi layanan:
systemctl list-unit-files --type=service
Contoh:
systemctl disable avahi-daemon
systemctl disable bluetooth
systemctl disable cups
Semakin sedikit service berjalan, semakin kecil attack surface.
9. Atur Timezone dengan Benar
Lihat timezone:
timedatectl
Set Indonesia Barat:
timedatectl set-timezone Asia/Jakarta
Log akan lebih akurat saat investigasi insiden.
10. Konfigurasi NTP
Sinkronisasi waktu sangat penting.
Install:
apt install chrony -y
Verifikasi:
chronyc tracking
Manfaat:
- Log konsisten
- Audit lebih akurat
- Sertifikat SSL berjalan normal
11. Audit File SUID dan SGID
Cari file SUID:
find / -perm -4000 -type f 2>/dev/null
Cari file SGID:
find / -perm -2000 -type f 2>/dev/null
Evaluasi file yang tidak diperlukan.
12. Terapkan Noexec pada /tmp
Edit:
nano /etc/fstab
Tambahkan opsi:
noexec,nosuid,nodev
Contoh:
tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
Ini mencegah eksekusi file berbahaya dari direktori sementara.
13. Periksa Permission File Penting
Contoh:
chmod 600 /etc/ssh/sshd_config
chmod 600 ~/.ssh/authorized_keys
Audit:
find /etc -type f -perm -o+w
Hapus permission yang tidak perlu.
14. Konfigurasi Logrotate
Periksa:
nano /etc/logrotate.conf
Tujuan:
- Menghindari disk penuh
- Menjaga log tetap terorganisir
15. Install Auditd
Install:
apt install auditd audispd-plugins -y
Aktifkan:
systemctl enable auditd
Auditd membantu mencatat aktivitas penting sistem.
16. Aktifkan AppArmor atau SELinux
Ubuntu:
aa-status
RHEL/Rocky:
getenforce
Pastikan status:
Enforcing
Fungsi:
- Membatasi perilaku aplikasi
- Menahan dampak jika terjadi kompromi
17. Terapkan Password Policy Ketat
Install:
apt install libpam-pwquality -y
Contoh kebijakan:
- Minimal 12 karakter
- Huruf besar
- Huruf kecil
- Angka
- Simbol
Password kuat tetap menjadi lapisan pertahanan penting.
18. Gunakan Enkripsi Disk
Pilihan:
- LUKS
- dm-crypt
Manfaat:
- Data tetap aman jika disk dicuri
- Memenuhi standar keamanan organisasi
19. Backup dan Uji Restore
Banyak administrator memiliki backup tetapi tidak pernah menguji restore.
Checklist:
- Backup otomatis
- Backup terenkripsi
- Simpan di lokasi berbeda
- Uji restore berkala
Prinsip:
Backup yang belum pernah diuji bukan backup yang dapat dipercaya.
20. Scan dengan Lynis dan Perbaiki Temuan High Risk
Install:
apt install lynis -y
Jalankan:
lynis audit system
Fokus pada:
- Warning
- Suggestion
- High Risk Findings
Target akhir adalah mengurangi temuan kritis sebanyak mungkin.
Checklist Hardening Sebelum Go Live
Pastikan seluruh poin berikut telah selesai:
โ Sistem update terbaru
โ Auto security update aktif
โ User non-root tersedia
โ SSH hardened
โ Firewall aktif
โ Fail2Ban aktif
โ Sysctl hardening diterapkan
โ Service tidak perlu dimatikan
โ Timezone benar
โ NTP aktif
โ Audit SUID/SGID selesai
โ /tmp menggunakan noexec
โ Permission file diperiksa
โ Logrotate aktif
โ Auditd aktif
โ AppArmor atau SELinux aktif
โ Password policy diterapkan
โ Disk terenkripsi
โ Backup dan restore diuji
โ Lynis audit selesai
Kesimpulan
Hardening server bukan pekerjaan yang dilakukan setelah terjadi insiden keamanan. Hardening harus menjadi bagian dari proses deployment sejak hari pertama server dibuat.
Dengan menyelesaikan 20 checklist di atas, administrator dapat mengurangi risiko kompromi sistem secara signifikan, meningkatkan kepatuhan keamanan, serta memastikan server siap digunakan pada lingkungan produksi dengan tingkat keamanan yang jauh lebih baik.
Semakin cepat keamanan diterapkan, semakin kecil peluang penyerang menemukan celah yang dapat dimanfaatkan.
Bagaimana Pendapat Anda?
Apakah ada langkah hardening lain yang selalu Anda terapkan sebelum server go live?
Tuliskan pengalaman Anda di kolom komentar, bagikan artikel ini kepada rekan sysadmin lainnya, dan jangan lupa mengikuti artikel Linux Server terbaru untuk mendapatkan panduan administrasi sistem yang lebih mendalam.
Tags WordPress
Frequently Asked Questions (FAQ)
1. Apa itu hardening server Linux?
Hardening server Linux adalah proses memperkuat keamanan sistem dengan mengurangi celah keamanan dan attack surface sebelum server digunakan di lingkungan produksi.
2. Mengapa root login melalui SSH harus dinonaktifkan?
Karena akun root menjadi target utama serangan brute force. Menggunakan akun non-root dengan sudo jauh lebih aman.
3. Apakah Fail2Ban wajib dipasang?
Sangat direkomendasikan karena mampu mendeteksi dan memblokir percobaan login berulang yang mencurigakan.
4. Apa fungsi AppArmor atau SELinux?
Keduanya berfungsi membatasi hak akses aplikasi sehingga kerusakan akibat eksploitasi dapat diminimalkan.
5. Mengapa backup harus diuji restore?
Karena backup yang tidak pernah diuji belum tentu dapat digunakan saat terjadi kegagalan sistem atau kehilangan data.
6. Apakah Lynis cukup untuk audit keamanan server?
Lynis sangat membantu sebagai baseline security audit, tetapi sebaiknya dikombinasikan dengan vulnerability scanner dan audit manual.
7. Kapan hardening server harus dilakukan?
Idealnya segera setelah instalasi sistem operasi selesai dan sebelum server diekspos ke internet atau lingkungan produksi.
Jika artikel ini bermanfaat, tuliskan pengalaman Anda dalam melakukan hardening server Linux di kolom komentar.
Bagikan artikel ini kepada rekan sysadmin, administrator jaringan, dan praktisi keamanan siber. Jangan lupa subscribe YouTube Walid Umar untuk mendapatkan tutorial Linux Server, Cloud Computing, Virtualisasi, dan Network Engineering terbaru secara rutin.