Banyak yang mengira kalau Nginx sudah jalan dan situs bisa diakses, urusan selesai. Padahal itu baru permukaan. Selama beberapa tahun menangani server production, ada beberapa langkah hardening yang selalu saya terapkan sebelum server benar-benar saya lepas ke publik.

1. Sembunyikan versi server

Default Nginx dengan senang hati memberi tahu versi persis yang sedang berjalan lewat header Server. Informasi ini gratis untuk siapa pun yang mau mencari exploit yang cocok. Cukup matikan lewat server_tokens off; di nginx.conf.

2. Batasi rate request

Brute force ke halaman login atau endpoint API adalah salah satu serangan paling umum dan paling murah untuk dilakukan penyerang. Modul limit_req_zone bisa membatasi jumlah request per IP dalam periode tertentu, dan ini menyelamatkan banyak server dari serangan yang sebenarnya tidak canggih-canggih amat.

3. Paksa HTTPS dan set security header

Redirect semua traffic HTTP ke HTTPS itu wajib, bukan cuma soal ikon gembok di browser. Tambahkan juga header seperti X-Frame-Options, X-Content-Type-Options, dan Content-Security-Policy yang sesuai kebutuhan aplikasi.

4. Batasi akses ke file sensitif

File seperti .env, .git, atau file konfigurasi lain sering tertinggal di root directory dan bisa diakses langsung lewat browser kalau tidak diblokir eksplisit di konfigurasi Nginx.

Penutup

Hardening bukan pekerjaan sekali jadi. Ini proses yang harus direview ulang tiap kali ada perubahan arsitektur atau kebutuhan baru. Server yang aman hari ini belum tentu aman enam bulan ke depan kalau tidak pernah diaudit ulang.