Nginx Proxy Manager访问控制列表(ACL)配置:限制IP与用户访问

Nginx Proxy Manager访问控制列表(ACL)配置:限制IP与用户访问

【免费下载链接】nginx-proxy-manager 【免费下载链接】nginx-proxy-manager 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-proxy-manager

你是否还在为服务器安全担忧?是否需要精准控制谁能访问你的网站?Nginx Proxy Manager的访问控制列表(ACL)功能可以帮你轻松实现IP限制与用户认证,一文解决你的访问权限管理难题。读完本文,你将学会创建访问列表、配置IP白名单/黑名单、设置用户密码认证,以及如何将这些规则应用到代理主机,全面提升服务安全性。

什么是访问控制列表(ACL)

访问控制列表(ACL,Access Control List)是Nginx Proxy Manager提供的一项安全功能,用于限制对特定资源的访问。通过ACL,你可以根据IP地址或用户认证信息,允许或拒绝访问请求。这对于保护内部服务、限制敏感资源访问非常有用。

Nginx Proxy Manager的ACL功能主要通过两个模块实现:

ACL的工作原理

ACL的工作流程可以用以下流程图表示:

mermaid

当请求到达Nginx时,会先检查是否应用了ACL规则。如果有,Nginx会按照预设的规则顺序进行检查:先检查IP是否在允许列表,再检查是否在拒绝列表,最后检查是否需要用户认证。只有通过所有检查的请求才会被允许访问。

创建访问控制列表

访问列表管理界面

在Nginx Proxy Manager的Web界面中,访问列表管理界面由frontend/js/app/nginx/access/main.ejs文件定义。该界面提供了搜索、添加、编辑和删除访问列表的功能。

创建访问列表的步骤

  1. 登录Nginx Proxy Manager管理界面
  2. 点击左侧导航栏的"访问列表"选项
  3. 点击"添加"按钮,打开创建访问列表表单
  4. 填写访问列表名称,例如"办公网络访问"
  5. 配置访问规则(IP限制和用户认证)
  6. 点击"保存"按钮

配置IP限制

IP限制的类型

Nginx Proxy Manager支持两种IP限制类型:

  • 允许(allow):只允许指定IP访问
  • 拒绝(deny):拒绝指定IP访问

这些规则会被转换为Nginx配置,例如:

allow 192.168.1.0/24;
deny 10.0.0.1;

配置IP规则

在创建或编辑访问列表时,可以添加IP规则:

  1. 在"客户端"部分,点击"添加客户端"
  2. 输入IP地址或CIDR网段,例如"192.168.1.0/24"
  3. 选择"允许"或"拒绝"指令
  4. 点击"保存"

backend/internal/access-list.js文件中的createupdate方法处理IP规则的保存逻辑,将规则存储到数据库中。

配置用户认证

用户认证的作用

用户认证要求访问者输入用户名和密码才能访问资源。这对于保护敏感信息非常有用,即使IP地址被允许,也需要正确的凭据才能访问。

添加用户认证

  1. 在访问列表编辑页面,找到"认证"部分
  2. 点击"添加用户"
  3. 输入用户名和密码
  4. 点击"保存"

系统会使用htpasswd工具生成加密的密码文件,存储在/data/access/[list_id]路径下,如backend/internal/access-list.jsbuild方法所示:

getFilename: (list) => {
    return '/data/access/' + list.id;
},

组合IP限制和用户认证

Nginx Proxy Manager允许你组合IP限制和用户认证,通过"满足条件"选项控制两者的关系:

  • 满足所有(satisfy all):需要同时满足IP规则和用户认证
  • 满足任一(satisfy any):满足IP规则或用户认证其一即可

这一功能在backend/templates/_access.conf中实现:

# Access checks must...
{% if access_list.satisfy_any == 1 %}
satisfy any;
{% else %}
satisfy all;
{% endif %}

将ACL应用到代理主机

创建好ACL后,需要将其应用到代理主机才能生效:

  1. 编辑或创建代理主机
  2. 在"高级"选项卡中,找到"访问列表"
  3. 选择你创建的访问列表
  4. 点击"保存"并应用Nginx配置

ACL配置示例

示例1:只允许特定IP访问

创建一个访问列表,添加以下IP规则:

  • 允许 192.168.1.0/24
  • 拒绝 all

将此ACL应用到代理主机后,只有192.168.1.0网段的用户可以访问。

示例2:IP白名单+用户认证

创建一个访问列表:

  • 添加IP规则:允许 10.0.0.0/8
  • 添加用户:admin/123456
  • 设置"满足所有"

这样,只有10.0.0.0网段的用户,并且输入正确的用户名密码才能访问。

常见问题解决

ACL规则不生效

如果配置的ACL规则没有生效,可以检查以下几点:

  1. 是否正确将ACL应用到代理主机
  2. Nginx配置是否已重新加载
  3. 规则顺序是否正确(允许规则应在拒绝规则之前)
  4. 查看Nginx错误日志,路径通常为/var/log/nginx/error.log

如何批量管理IP规则

对于大量IP规则,可以通过backend/models/access_list_client.js模型直接操作数据库,批量导入IP规则。

总结

通过Nginx Proxy Manager的ACL功能,你可以轻松实现细粒度的访问控制。无论是限制特定IP访问,还是要求用户认证,都能通过直观的Web界面完成配置。结合IP限制和用户认证,你可以构建多层次的安全防护体系,有效保护服务器资源。

现在,你已经掌握了ACL的全部配置方法,快去登录你的Nginx Proxy Manager,为你的代理主机添加访问控制规则吧!如果你有任何问题,欢迎在评论区留言讨论。

点赞+收藏+关注,获取更多Nginx Proxy Manager使用技巧!下期我们将介绍SSL证书的自动更新配置,敬请期待。

【免费下载链接】nginx-proxy-manager 【免费下载链接】nginx-proxy-manager 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-proxy-manager

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值