让 Apache 同时要求客户端 IP 和代理登录
组合 Apache 2.4 的代理认证与客户端地址限制,避免任一条件单独授予访问权限。
当 Apache 2.4 正向代理必须同时要求获准的源地址和有效登录时,使用 <RequireAll>:
<Proxy "*">
AuthType Basic
AuthName "Private proxy"
AuthBasicProvider file
AuthUserFile /etc/apache2/private-proxy-users
<RequireAll>
Require ip 192.0.2.25
Require valid-user
</RequireAll>
</Proxy>将这段授权配置合并到已有的受限代理中。替换客户端地址和账户文件路径;认证/授权模块必须可用,文件中也必须已经包含目标用户。这不是完整的监听器部署配置。
有两点决定策略。容器表达 AND;把多个正向要求并列放置,不一定就要求全部满足。Require valid-user接受已认证的账户,而 Require user alice 指定某一个账户。单独的 Require user 什么都不表达。请参阅 Apache 的用户授权参考。
| 来源 | 登录 | 要求的结果 |
|---|---|---|
| 允许 | 有效 | 允许访问的请求获准。 |
| 允许 | 缺失或无效 | 不允许授权转发。 |
| 来源不在允许范围内 | 有效 | 不允许授权转发。 |
依赖这段配置前,检查外层虚拟主机和其他匹配的授权段,然后测试授权边界;更具体的配置可能改变最终结果。Basic 登录还需要受保护的客户端到代理传输。目标 HTTPS 在更后面才开始,不能保护更早发生的明文凭据交换。