Blokir xmlrpc.php, wp-cron.php dan wp-config.php untuk mengamankan web WordPress di HestiaCP

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.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.

Add a comment

Exit mobile version