Tinyproxy 的 Allow 行回答的是谁可以使用代理,而不是这些客户端只能访问这里写下的主机。目标过滤是另一项独立设置。

如果代理只为访问一个指定服务,过滤器可以作为白名单:

Filter "/etc/tinyproxy/allowed-hosts"
FilterDefaultDeny Yes
FilterURLs No

随后文件里写的是按你选定的过滤器语法允许的目标模式。保持精确主机名的窄模式,并在选择正则锚点或通配符语法之前先确认配置的 FilterType。为一种模式写的模式在另一种模式下可能含义不同。

有三种不同的控制

  • 客户端 Allow/Deny 规则限制源客户端。
  • 目标过滤限制请求的主机或 URL。
  • ConnectPort 限制 CONNECT 目标端口。

Tinyproxy 手册分别记录了这些控制。目标过滤器不会增加代理认证,端口许可也不会把请求限制在单个主机名内。

对于经普通隧道传输的 HTTPS,要围绕目标主机处理。加密的请求路径不会作为代理可见的普通文本出现,因此不能假定适用于明文 HTTP 的路径表达式能检查 HTTPS 页面路径。

还要考虑站点的依赖关系。一个页面可能获取图片,或通过其他主机完成认证。只添加真正需要的目标;为修复一张缺失的图片而把精确主机规则改成宽泛后缀,可能放行多得多的流量。让清单足够易懂,使每个被允许的目标都有据可查。

相关文章