Tinyproxy 目标过滤、客户端 ACL 与 CONNECT 端口
用 Tinyproxy 目标过滤限制主机名,并把它与控制源客户端或 CONNECT 端口的规则区分开。
Tinyproxy 的 Allow 行回答的是谁可以使用代理,而不是这些客户端只能访问这里写下的主机。目标过滤是另一项独立设置。
如果代理只为访问一个指定服务,过滤器可以作为白名单:
Filter "/etc/tinyproxy/allowed-hosts"
FilterDefaultDeny Yes
FilterURLs No
随后文件里写的是按你选定的过滤器语法允许的目标模式。保持精确主机名的窄模式,并在选择正则锚点或通配符语法之前先确认配置的 FilterType。为一种模式写的模式在另一种模式下可能含义不同。
有三种不同的控制
- 客户端
Allow/Deny规则限制源客户端。 - 目标过滤限制请求的主机或 URL。
ConnectPort限制 CONNECT 目标端口。
Tinyproxy 手册分别记录了这些控制。目标过滤器不会增加代理认证,端口许可也不会把请求限制在单个主机名内。
对于经普通隧道传输的 HTTPS,要围绕目标主机处理。加密的请求路径不会作为代理可见的普通文本出现,因此不能假定适用于明文 HTTP 的路径表达式能检查 HTTPS 页面路径。
还要考虑站点的依赖关系。一个页面可能获取图片,或通过其他主机完成认证。只添加真正需要的目标;为修复一张缺失的图片而把精确主机规则改成宽泛后缀,可能放行多得多的流量。让清单足够易懂,使每个被允许的目标都有据可查。