Dokumen ini menjelaskan langkah pengamanan server WordPress menggunakan Nginx dan PHP 8.3-FPM agar lebih aman dari brute force, informasi disclosure, dan serangan umum internet.


I. PENGAMANAN DASAR NGINX

Pengertian:
Hardening Nginx adalah proses mengurangi informasi yang bocor ke publik dan memperkecil permukaan serangan pada web server.

  1. Sembunyikan Versi Nginx

File:
/etc/nginx/nginx.conf

Di dalam blok http { } tambahkan:

server_tokens off;

Fungsi:
Menghilangkan informasi versi Nginx dari header HTTP dan halaman error.


  1. Tambahkan Security Headers

File:
/etc/nginx/sites-available/domainkamu

Di dalam server { } tambahkan:

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

Fungsi:
Melindungi browser pengguna dari clickjacking, MIME sniffing, dan penyalahgunaan fitur browser.


  1. Blokir File Sensitif

Tambahkan dalam server { }:

location ~ /\. {
    deny all;
}

location ~* (wp-config.php|readme.html|license.txt) {
    deny all;
}

Fungsi:
Mencegah akses langsung ke file konfigurasi dan file sistem tersembunyi.


II. PERLINDUNGAN WP-LOGIN.PHP

Pengertian:
Proteksi wp-login.php bertujuan membatasi percobaan login berulang yang biasa digunakan dalam serangan brute force.

  1. Aktifkan Rate Limiting Global

File:
/etc/nginx/nginx.conf

Dalam http { } tambahkan:

limit_req_zone $binary_remote_addr zone=wp_login:10m rate=5r/m;

Fungsi:
Membatasi setiap IP maksimal 5 request per menit.


  1. Batasi Akses ke wp-login.php

File:
/etc/nginx/sites-available/domainkamu

Dalam server { } tambahkan:

location = /wp-login.php {
    limit_req zone=wp_login burst=3 nodelay;

    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

Fungsi:
Mencegah percobaan login cepat dan berulang sebelum diproses WordPress.


  1. Nonaktifkan XML-RPC

Tambahkan:

location = /xmlrpc.php {
    deny all;
}

Fungsi:
Menutup celah brute force massal melalui XML-RPC.


III. PENGAMANAN PHP 8.3 FPM

Pengertian:
Hardening PHP-FPM bertujuan mencegah informasi versi PHP terekspos dan membatasi akses langsung ke engine PHP.

  1. Sembunyikan Versi PHP

File:
/etc/php/8.3/fpm/php.ini

Ubah:

expose_php = Off

Restart:

systemctl restart php8.3-fpm

Fungsi:
Menghilangkan header X-Powered-By: PHP/8.3.x


  1. Pastikan Socket PHP Aman

Pastikan Nginx menggunakan socket:

fastcgi_pass unix:/run/php/php8.3-fpm.sock;

Dan periksa permission socket:

ls -l /run/php/

Fungsi:
Menggunakan Unix socket lebih aman dan cepat dibanding TCP port terbuka.


IV. AKTIVASI DAN VALIDASI

Setelah semua konfigurasi selesai:

nginx -t
systemctl reload nginx
systemctl restart php8.3-fpm

Pastikan tidak ada error konfigurasi.


V. HASIL AKHIR HARDENING

Dengan konfigurasi ini:

  • Versi Nginx tidak terekspos
  • Versi PHP 8.3 tidak terlihat publik
  • wp-login.php terlindungi dari brute force
  • XML-RPC tidak bisa digunakan untuk serangan massal
  • File sensitif tidak bisa diakses langsung
  • Permukaan serangan server berkurang signifikan

KESIMPULAN

Hardening server adalah proses memperkecil kemungkinan eksploitasi dengan membatasi informasi dan akses yang tidak diperlukan. Dengan kombinasi Nginx security, proteksi wp-login, dan pengamanan PHP 8.3-FPM, server WordPress menjadi jauh lebih tahan terhadap serangan otomatis yang umum terjadi di internet.

By Admin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *