在Kusanagi9上为wp-login.php等管理页面实施基本身份验证(NGINX)
由于kusanagi9的网站遭受了”暴力攻击”,因此我在登录中实施了基本认证措施,并在此介绍其内容。由于与kusanagi8的配置文件位置稍有不同,我在这里记录一下备忘。
NGINX配置文件的位置
每个配置文件都有各自的位置,在以下目录中存在。
/etc/opt/kusanagi/nginx/conf.d/ 可以被改写为:
/kusanagi/nginx/conf.d/ 目录下的 /etc 文件夹。
在那里有两个配置文件。例如,如果有一个名为kusanagi-main的配置文件,它将变成以下这样的文件。
草薙主配置文件
草薙主WordPress包含文件
在这里,我们的目标是为WordPress的管理员登录和其他相关操作添加基本认证,因此我们将通过修改kusanagi-main.wp.inc文件来实现这个目标。
创建密码文件
需要创建一个名为.htpasswd的基本认证密码文件。关于此文件的详细说明省略了。如果您不熟悉,请另行查询。
以下假定使用用户名user-name创建。此外,默认设置将在所有预定义中使用相同的基本认证,为了使每个预定义都可以进行管理,我们将更改密码文件以使其在每个预定义的文件夹的顶部设置。当然,如果只使用一个预定义或者只用于暂存站点和生产环境的情况下,我认为没有必要进行更改。
默认情况下,设置位置为/home/kusanagi/.htpasswd。
$ htpasswd -c /home/kusanagi/kusanagi-main/.htpasswd user-name
New password:
Re-type new password:
当执行顶部的命令后,将显示一个要求输入密码的提示,所以请再次输入相同的密码两次。
在这里设置的密码和用户名将用于基本认证。
修改配置文件
可以使用以下VI命令等来修改配置文件。
$ vi /etc/opt/kusanagi/nginx/conf.d/kusanagi-main.wp.inc
到2023年3月的当前为止,Basic认证的设置位置是从第19行到第24行。以下是包括与默认设置的差异的具体说明。
18 location ~* /wp-login\.php|/wp-admin/((?!(admin-ajax\.php|images/)).)*$ {
-19 satisfy any;
+19 #satisfy any;
-20 allow 0.0.0.0/0;
+20 #allow 0.0.0.0/0;
-21 allow 127.0.0.1;
+21 #allow 127.0.0.1;
-22 deny all;
+22 #deny all;
23 auth_basic "basic authentication";
-24 auth_basic_user_file "/home/kusanagi/.htpasswd";
+24 auth_basic_user_file "/home/kusanagi/bb-main/.htpasswd";
更改此设置并进行覆盖保存后,重新启动nginx。也可以重新启动Kusanagi主程序。
$ kusanagi nginx
nginx: the configuration file /etc/opt/kusanagi/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/opt/kusanagi/nginx/nginx.conf test is successful
nginx completed.
若成功显示如上所述,则表示nginx已成功重启。
如果出现错误,则网站未显示,请将修改过的文件恢复为原始状态。
以上已完成設定方法。