在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已成功重启。
如果出现错误,则网站未显示,请将修改过的文件恢复为原始状态。

以上已完成設定方法。