Oneinstack 给 IP 地址访问配置基础用户验证+IP授权机制

自然 2019年8月6日21:45:12 评论 56

我们安装oneinstack、lnmp等一键环境安装包后,直接访问IP地址会直接显示我们的环境集成信息,例如phpmyadmin地址、php探针、opc控制器、phpinfo等文件信息,这里面包含了服务器安全参数,被有心人获取到了可能会造成不必要的损失。

Oneinstack 给 IP 地址访问配置基础用户验证+IP授权机制

在此之前,自然已经发布过了一篇《Nginx为站点添加密码验证 极简安全加密认证》。这篇文章作文补充文章。主要增加了web访问密码的加密及黑白名单IP访问。

准备

密码的加密我们需要用到htpasswd命令,但是通过尝试自然发现许多环境并没有预装这个命令,yum也无法直接安装,通过搜索自然发现这个命令包含在 httpd-tools这个工具中。如果你没有这个服务器,需要运行yum installhttpd-tools -y命令进行安装。

创建账户密码文件

使用一下命令创建一个用户密码文件,然后按下 Enter 键输入密码,同样的命令,没有 -c 参数创建第二个用户及密码, -c 参数为创建文件,在第二次及以后的命令中不需要再次创建文件。

htpasswd -c /usr/local/nginx/conf/htpasswd 用户名
#例如 htpasswd -c /usr/local/nginx/conf/htpasswd admin

使用查看文件内容,应该为账号及加密后的密码,如:

[root@ziran ~]# cat /usr/local/nginx/conf/.htpasswd
admin:$apr1$KcVRNsIQ$q6m3iLLkNX61oX4wia32a/
[root@ziran ~]# 

配置 Nginx 进行 http 用户密码验证

使用 auth_basic 指令指定设置受保护区域的名称,此名称会显示在账号密码弹窗上,使用 auth_basic_user_file 指令设置带有账户密码信息的 .htpasswd 路径。例如配置:

 location / {
    auth_basic           "Administrator's Area";
    auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
    }

location /该站点下的所有区域,如果仅仅是对某个目录进行加密访问,只需要把“/”换成“/目录名”,例如“/wp-admin”这样既可。

如果你配置了全站都使用密码验证访问,但是不想让某个目录进行密码验证,只需要使用auth_basic off;过滤既可,例如我想排除/wp-content目录,则如下配配置。

location / { 
auth_basic "Administrator's Area";
auth_basic_user_file /usr/local/nginx/conf/.htpasswd; 
       }
location /wp-content/ {
        auth_basic off;
   }

IP黑白名单授权与禁止访问

如果你认为单纯的用户名密码访问不够安全,你还可以添加一道IP黑白名单检测机制。实现仅让授权的ip地址可以访问该站点,或者指定目录,或者需要进行IP+用户名密码双验证。

单纯限制仅授权IP地址访问:

location /api {
    #...
    deny  192.168.1.2;
    allow 192.168.1.1/24;
    allow 127.0.0.1;
    deny  all;
}

进行IP+http用户名密码双验证通过才可访问:

location / {
    #...
    satisfy all;    

    deny  192.168.1.2;
    allow 192.168.1.1/24;
    allow 127.0.0.1;
    deny  all;

    auth_basic           "Administrator's Area";
    auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
}

通过 ip 和 http 身份验证将限制与 satisfy 指令相结合。如果将指令设置为 all,则在客户端满足这两个条件时授予访问权限。如果将指令设置为 any,则如果客户端满足至少一个条件,则授予访问权限。

总结

这篇文章时对之前文章的进一步扩充与补充说明。配置难以程度而言,前一篇《Nginx为站点添加密码验证 极简安全加密认证》的配置更加简单易用。而这篇文章所介绍的操作稍微有点难度,各位站长可以根据自己的水平尝试配置,个人还是推荐通过ip+http身份验证的方式进行保护,即使别人知道了你的密码也很难伪造你的ip地址。

weinxin
网科文媒
快来关注一下,你想要的这里都有喔!
自然

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: