本文将介绍使用 Nginx 的服务器,如何将特定 IP 地址加入允许访问 WordPress 管理员页面白名单。
在管理 WordPress 网站时,如果您安装了 Wordfence 等安全插件,那么其中会列出近期尝试访问wp-admin.php的用户列表。其中部分可能是网站管理员的合法请求,但是绝大部分是机器人扫描尝试。
在大多数情况下,这种暴力尝试不会成功。但如果您使用 admin 作为用户名,并且密码很简单,那么网站的账号和密码就有被破解的风险。
如果您的服务器使用 Nginx ,可以通过限制特定 IP 地址才能访问管理员登录页面,来阻止这些暴力破解攻击。
配置 Nginx 只允许特定 IP 访问登录页面
如果已经在 Nginx 上运行了一个 WordPress 站点,只需按照下面的步骤配置 Nginx 只允许特定 IP 访问登录页面。
默认情况下,Nginx 的 VirtualHost 配置文件为 /etc/nginx/sites-available/default 。如果您的服务器运行了多个网站,并为每个网站创建了不同的配置文件,只需要在对应的配置文件上进行设置即可。
运行以下命令打开 VirtualHost 配置文件。
sudo nano /etc/nginx/sites-available/default
然后将下面的代码粘贴到服务器配置块中,如下图所示:
error_page 403 http://example.com.com/blocked.html;
location = /wp-login.php {
allow 192.168.1.1;
allow 172.16.1.1;
deny all;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
上面的代码只允许 allow 指令后面的 IP 访问 wp-login.php 登录地址。
而上面的error_page是一个简单的 HTML 页面。示例页面如下:
sudo nano /var/www/html/blocked.html
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>404 - Are you sure you want to go there?</title>
</head>
<body>
<h1>Are you sure you want to go there?</h1>
<p>You're here because we think that is a really bad idea.</p>
<hr>
<p>Varnish cache server</p>
</body>
</html>
最终,WordPress 网站的 Nginx 服务器配置块如下所示。
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.php index.html index.htm;
server_name example.com www.example.com;
client_max_body_size 100M;
autoindex off;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 403 http://example.com.com/blocked.html;
location = /wp-login.php {
allow 192.168.1.1;
allow 172.16.1.1;
deny all;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存文件并退出。
执行下面的命令重启 Nginx。
sudo systemctl reload nginx
现在可以去测试一下。未被允许的 IP 尝试登录 WordPress 管理页面时,将返回 blocked.html 文件中显示的消息。
总结
综上,本文介绍了使用 Nginx 的服务器,如何将特定 IP 地址加入白名单,以允许其访问 WordPress 管理页面。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/how-to-ip-whitelist-wordpress-admin-page-with-nginx/