Search

Penggunaan web server di lingkungan produksi memerlukan konfigurasi yang ketat untuk memastikan keamanan, performa, dan ketersediaan layanan. Serangan siber seperti DDoS, SQL injection, atau eksploitasi kerentanan dapat mengancam server jika tidak dikonfigurasi dengan benar. Artikel ini akan membahas langkah-langkah mengamankan web server (seperti Apache atau Nginx) di lingkungan produksi.

1. Pilih Web Server yang Terkini dan Didukung

Pastikan menggunakan versi terbaru dari web server (Apache, Nginx, LiteSpeed) yang masih mendapatkan pembaruan keamanan. Hindari versi lama yang tidak lagi didukung.

Contoh (Ubuntu/Debian):

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 nginx -y  # Pilih salah satu

2. Batasi Informasi Server (Disable Server Tokens)

Hindari menampilkan versi server dan modul yang digunakan untuk mencegah eksploitasi.

Untuk Apache:

ServerTokens Prod
ServerSignature Off

(Tambahkan di /etc/apache2/apache2.conf atau .htaccess)

Untuk Nginx:

server_tokens off;

(Tambahkan di /etc/nginx/nginx.conf)


3. Aktifkan HTTPS dengan SSL/TLS

Gunakan sertifikat dari Let’s Encrypt (gratis) atau penyedia terpercaya untuk mengenkripsi lalu lintas data.

Instal Certbot:

sudo apt install certbot python3-certbot-nginx -y  # Untuk Nginx
sudo certbot --nginx -d namadomain.com

Pastikan konfigurasi SSL kuat dengan menonaktifkan protokol lama seperti TLS 1.0/1.1.


4. Konfigurasi Firewall (UFW/iptables)

Hanya buka port yang diperlukan:

  • HTTP (80), HTTPS (443)

  • SSH (22) – Ganti port default jika perlu.

Contoh UFW:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable

5. Terapkan Pembatasan Akses

  • Gunakan .htaccess (Apache) atau allow/deny (Nginx) untuk membatasi IP tertentu.

  • Nonaktifkan HTTP methods berbahaya (seperti TRACE, DELETE):

    if ($request_method ~ ^(TRACE|DELETE)$ ) {
        return 403;
    }

6. Hardening PHP (Jika Menggunakan PHP-FPM)

  • Matikan fungsi berbahaya di php.ini:

    disable_functions = exec,passthru,shell_exec,system
    expose_php = Off
  • Batasi eksekusi file upload (jika ada fitur upload).


7. Backup Rutin dan Monitoring

  • Gunakan log monitoring (seperti Fail2Ban) untuk memblokir upaya serangan.

  • Lakukan backup harian/mingguan untuk database dan file konfigurasi.


8. Update Berkala

Selalu perbarui sistem dan dependensi:

sudo apt update && sudo apt upgrade -y

Kesimpulan

Konfigurasi web server yang aman di lingkungan produksi melibatkan pembatasan akses, enkripsi data, pembaruan rutin, dan monitoring aktif. Dengan langkah-langkah di atas, risiko serangan siber dapat diminimalkan, menjaga stabilitas dan keamanan layanan.

Referensi:

Semoga artikel ini membantu! 🚀