背景
作为一个爱折腾的人,我在腾讯云部署了一些服务,比如wiki、BI可视化、控制面板等,这些应用并不对外开发,只是自己使用,但是部署到公网,难免会遇到一些非法探测服务用户密码的情况,为了服务的安全性,可以把nginx作为安全防护层。
Nginx安全保护策略
Nginx提供了多种服务保护策略,最常用的两种方法:1、nginx用户认证 2、nginx白名单策略。
nginx用户认证就是在访问应用之前强制要求输入用户、密码。可以配置全局认证,也可以对某个单独的服务启用认证。这种方法配置简单,但是每次都需要输入用户密码,比较麻烦。
nginx白名单策略就是只允许配置的IP白名单访问服务,其他IP会被拒绝。这里介绍的就是nginx白名单策略。
Nginx白名单配置
1、创建nginx ip白名单文件
vim /etc/nginx/whitelist/whitelist.conf
222.101.51 1; #客户端ip
10.0.8.15 1; #本机内网IP注:白名单格式为:IP 1;
222.101.51 1; 表示nginx允许ip为222.101.51 的客户端访问。
如果需要新增ip,可以在这里添加,然后重启nginx。
2、配置Nginx
1)配置nginx.conf
vim /etc/nginx/nginx.conf
添加下面内容:
geo $allowed_ip {
default 0;
include /etc/nginx/whitelist/whitelist.conf; # 引用外部文件
}

2)配置各个服务server
vim /etc/nginx/conf.d/1panel.conf
添加下面内容:
if ($allowed_ip = 0) {
return 403;
}
3、重载Nginx
# nginx重载配置文件
sudo nginx -s reload
到此nginx白名单列表已经生效了,但是客户端的ip经常会发生变化,如果每次变化都需要登录服务器更新whitelist.conf会比较麻烦,下面通过页面更新白名单列表。
3、页面更新IP白名单

页面有两个功能,1、获取当前客户端的公网ip 2、点击添加IP后ip会出现在下面的的ip白名单列表中 3、点击保存以后会将当前ip添加到服务器的whitelist.conf中。
最后
公网部署应用一定要注意数据安全问题,还记得前两年大量公网部署的confluence服务漏洞被黑客攻破,造成大量数据和隐私泄露。所以如果是私有服务一定要做好安全防护,避免不必要的损失。
评论