基于子网的 Squid 代理启动页面

基于子网的 Squid 代理启动页面

我正在尝试使用 squid 的 Splash 页面功能,但我尝试让它只在特定子网上使用。我无法找到使用两个 ACL 来实现这一点的方法。

我有以下内容squid3.conf文件

external_acl_type sessions ttl=60 concurrency=100 %SRC /usr/lib/squid3/squid_session -t 7200 -b /tmp/squidcache/sessions.db
acl guests external sessions src 192.168.200.0/24
acl trusted 192.168.1.0/24

deny_info http://192.168.200.5/splash.html guests
http_access deny !guests

这确实会显示启动页面,但是针对两个网络。

有人遇到过这种情况吗?

干杯,

吉姆

答案1

您无法通过acl guests这种方式添加额外的条件 — 每个 squid ACL 只能有一个类型(您可以acl为同一个 ACL 使用多行实现“或”逻辑,但不能使用“和”)。acl NAME external TYPE ...行上的额外参数实际上附加到外部帮助程序的命令行。

另外,下一行有一个语法错误(src缺少关键字),但是trusted无论如何,acl 未在您的配置片段中使用。

编写这些规则的正确方法是为 IP 范围添加单独的 ACL,并在行中使用多个 ACL http_access

external_acl_type sessions ttl=60 concurrency=100 %SRC /usr/lib/squid3/squid_session -t 7200 -b /tmp/squidcache/sessions.db

acl guests_ip src 192.168.200.0/24
# can add more "acl guests_ip src ..." here

acl guests_sessions external sessions

deny_info http://192.168.200.5/splash.html guests_sessions
http_access deny guests_ip !guests_sessions

相关内容