|
@@ -0,0 +1,104 @@
|
|
|
+# Nginx UI Template Start
|
|
|
+name = "WordPress Security"
|
|
|
+author = "@sanvu88"
|
|
|
+description = { en = "WordPress Security Config", vi_VN = "Cấu hình bảo mật cho WordPress"}
|
|
|
+
|
|
|
+[variables.blockUserAPI]
|
|
|
+type = "boolean"
|
|
|
+name = { en = "Block WordPress User API", vi_VN = "Chặn truy cập danh sách user"}
|
|
|
+value = true
|
|
|
+
|
|
|
+[variables.blockXMLRPC]
|
|
|
+type = "boolean"
|
|
|
+name = { en = "Block WordPress XMLRPC", vi_VN = "Chặn truy cập xmlrpc.php"}
|
|
|
+value = true
|
|
|
+# Nginx UI Template End
|
|
|
+
|
|
|
+{{- if .blockUserAPI }}
|
|
|
+location ~* /wp-json/wp/v2/users {
|
|
|
+ return 444;
|
|
|
+}
|
|
|
+{{- end }}
|
|
|
+
|
|
|
+{{- if .blockXMLRPC }}
|
|
|
+location = /xmlrpc.php {
|
|
|
+ return 444;
|
|
|
+}
|
|
|
+{{- end }}
|
|
|
+
|
|
|
+location ~* wp-admin/includes { return 444; }
|
|
|
+location ~* wp-includes/theme-compat { return 444; }
|
|
|
+
|
|
|
+location /wp-includes/ {
|
|
|
+ location ~ \.(gz|tar|bzip2|7z|php|php5|php7|log|error|py|pl|kid|love|cgi|shtml|phps|pht|jsp|asp|sh|bash)$ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/uploads/ {
|
|
|
+ location ~ \.(gz|tar|bzip2|7z|php|php5|php7|log|error|py|pl|kid|love|cgi|shtml|phps|pht|jsp|asp|sh|bash)$ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/cache/ {
|
|
|
+ location ~ \.(php|php5|php7|log|error|py|pl|kid|love|cgi|shtml|phps|pht|jsp|asp|sh|bash)$ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/plugins/ {
|
|
|
+ location ~ \.(htm|shtml|php|swf|phps|pht|log|error|py|pl|kid|love|cgi|jsp|asp|sh|bash)$ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/plugins/onesignal-free-web-push-notifications/ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ allow all;
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/updraft/ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/backups-dup-pro/ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-snapshots/ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/uploads/sucuri/ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+}
|
|
|
+
|
|
|
+location /wp-content/uploads/nginx-helper/ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+}
|
|
|
+
|
|
|
+location ~* ^/(?:wp-links-opml\.php|wp-config\.php|wp-config-sample\.php|readme\.html|license\.txt)$ {
|
|
|
+ access_log off;
|
|
|
+ log_not_found off;
|
|
|
+ return 444;
|
|
|
+}
|