Tips ini untuk mengamankan website khususnya web yang berbasis PHP dan WordPress. Kita akan memblokirnya langsung di konfigurasi Nginx secara keseluruhan melalui template Nginx default yang disediakan HestiaCP.
Akses yang kita blokir adalah xmlrpc.php
, wp-cron.php
dan wp-config.php
atau teman-teman bisa menambahkan sendiri sesuai contoh berikut.
Melalui terminal SSH edit file default.t
pl dan default.stpl
nano /usr/local/hestia/data/templates/web/nginx/default.stpl
Tambahkan kode berikut sebelum baris location /
location ~* ^(/|//)(xmlrpc\.php|wp-config\.php|wp-cron\.php)$ {
deny all;
return 403;
}
Secara keseluruhan akan tampak seperti ini
#=========================================================================#
# Default Web Domain Template #
# DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
# https://hestiacp.com/docs/server-administration/web-templates.html #
#=========================================================================#
server {
listen %ip%:%proxy_ssl_port% ssl;
server_name %domain_idn% %alias_idn%;
error_log /var/log/%web_system%/domains/%domain%.error.log error;
ssl_certificate %ssl_pem%;
ssl_certificate_key %ssl_key%;
ssl_stapling on;
ssl_stapling_verify on;
# TLS 1.3 0-RTT anti-replay
if ($anti_replay = 307) { return 307 https://$host$request_uri; }
if ($anti_replay = 425) { return 425; }
include %home%/%user%/conf/web/%domain%/nginx.hsts.conf*;
location ~ /\.(?!well-known\/|file) {
deny all;
return 404;
}
location ~* ^(/|//)(xmlrpc\.php|wp-config\.php|wp-cron\.php)$ {
deny all;
return 403;
}
location / {
proxy_pass https://%ip%:%web_ssl_port%;
location ~* ^.+\.(%proxy_extensions%)$ {
try_files $uri @fallback;
root %sdocroot%;
access_log /var/log/%web_system%/domains/%domain%.log combined;
access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
expires max;
}
}
location @fallback {
proxy_pass https://%ip%:%web_ssl_port%;
}
location /error/ {
alias %home%/%user%/web/%domain%/document_errors/;
}
proxy_hide_header Upgrade;
include %home%/%user%/conf/web/%domain%/nginx.ssl.conf_*;
}
Lakukan juga untuk default.tpl
nano /usr/local/hestia/data/templates/web/nginx/default.stpl
Kemudian rebuild konfigurasi tiap user, misalnya user admin
v-rebuild-web-domains admin
Reload Nginx dan Apache
systemctl reload nginx apache2
Kini web aman dari serangan DDoS yang mengakses /xmlrpc.php
jika diakses akan diarahkan ke halaman 404 HTML statik. Jadi tidak akan mengeksekusi PHP yang membuat CPU tinggi.
Selesai, semoga bermanfaat.
Teman-teman bisa order jasa setup server profesional untuk HestiaCP dan custom template untuk memblokir xmlrpc.php
dengan cara kontak melalu WhatsApp +6281235008433.