设置认证访问wp-login.php避免攻击

查看nginx的access.log记录,发现一直都有很多IP POST方式访问wp-login.php文件,很烦人,所以就打算给这个文件设置认证权限访问。

一、用htpasswd命令生成授权帐号和密码文件,命令如下:
htpasswd -c /etc/nginx/passwd_www.itkylin.com.db admin
如果你用的系统没有htpasswd命令,请安装apache2-utils软件包,ubuntu系统安装apache2-utils软件包使用如下命令:
apt-get install apache2-utils
其它Linux系统请自行查找相关安装文档。

二、修改虚拟主机配置文件,在server {} 段落内server_name行下面增加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
location ~ ^/wp-login\.php {
        auth_basic "Auth System";
        auth_basic_user_file /etc/nginx/passwd_www.itkylin.com.db;
        location ~ .*\.php?$ {
                try_files $uri =404;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 32 32k;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

三、重启nginx服务即可

这时你会感觉整个世界都清静了,只有通过授权帐号和密码认证才能访问wp-login.php,不管是get还是post访问wp-login.php都返回401。

上一篇: