我在 Centos 7 上配置了 Squid 代理。我使用的是 Squid 版本 3.5.20。我也在 Ubuntu 20.04 上尝试了 Squid 4.10,但遇到了同样的问题。也许我的 ACL 错了。
我在路由器上配置 DSTNAT 以拦截从 192.168.1.0/24 到 Squid 代理 10.10.10.10:3128 的 HTTP 流量。
这是 /etc/squid/squid.conf 文件:
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl whitelist_domain dstdomain “/etc/squid/whitelist.acl”
http_access allow localnet
http_access allow localhost
http_access allow whitelist_domain
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
这是 /etc/squid/whitelist.acl 文件:
linux.or.id
lipi.go.id
请帮我找出问题所在。
因此,根据上述配置,客户端将被拒绝访问除 linux.or.id 和 lipi.go.id 之外的所有 http 网站。对吗?
这是 /var/log/squid/access.log
1633885185.900 0 192.168.1.251 TAG_NONE/400 3867 GET / - HIER_NONE/- text/html
1633885185.970 0 192.168.1.251 TCP_IMS_HIT/304 295 GET http://linux:3128/squid-internal-static/icons/SN.png - HIER_NONE/- image/png
我试图像这样改变 squid.conf:
http_access allow all
http_port 3128 intercept
http_port 3129
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
该 ACL 将允许所有请求。
但是,我收到了“ERROR ACCESS DENIED”错误,这是否意味着我的 ACL 阻止了访问权限?