Nginx配置Basic_Auth登录认证

发布时间 2023-05-27 15:36:53作者: 李若盛开

一般来说,僵尸网络的扫描行为都是全互联网大范围进行的,并且所探测的漏洞大多都是一些新爆发的cms漏洞(ThinkPHP)、或者是一些常见的框架组件漏洞(如Struts2),针对该特性,我们可以配置Basic Auth登录认证(ngx_http_auth_basic_module),来减少僵尸网络对我们web服务的侵扰。

注:Basic Auth登录认证适用于我们公开在互联网上但同时又希望不让他人访问的站点,因此,对于大流量网站,Basic Auth登录认证则不适用!

在访问的时候,需要弹出一个登录框来输入用户账号和密码,验证正确才可以访问。

1、密码创建
在开始配置Basic Auth登录认证前,我们需要使用htpasswd生成账号及密码(密码存放路径没有限制,可自定义路径)

注:htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件。

密码创建命令:

htpasswd -c -d /www/tools/Auth/auth_file user 

密码创建成功后,可先查看:

[root@VM_16_3_centos ~]# cat /www/tools/Auth/auth_file 
xxx_user:aRR7B12lK021w

htpasswd其它常用命令如下:
更新密码:

[root@VM_16_3_centos 123.com]# htpasswd -b /www/tools/Auth/auth_file user password
Updating password for user user

删除认证:

[root@VM_16_3_centos conf]# htpasswd -D /www/tools/Auth/auth_file user
Deleting password for user user

密码创建完成后,可进行下一步的规则匹配

2、规则匹配

找到nginx配置文件,在server头中添加以下配置信息:

auth_basic "TETS";  //名称可自定义
auth_basic_user_file /usr/local/nginx/conf/passwd; //路径即htpasswd账号密码存放路径

注:

auth_basic 可设置为off或其它字符串,为off时表示不开启密码验证,或者#注释效果一样
auth_basic_user_file 为包含用户名和密码的文件,具体位置就是我们上一步使用htpasswd生成账号及密码的存放路径