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.tpl dan default.stpl
nano /usr/local/hestia/data/templates/web/nginx/default.stplTambahkan 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.stplKemudian rebuild konfigurasi tiap user, misalnya user admin
v-rebuild-web-domains adminReload Nginx dan Apache
systemctl reload nginx apache2Kini 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.