最近,我配置了一台树莓派作为小型服务器。特别是,我安装了 DHCP、Squid 代理和 SquidGuard,用于记录通过树莓派的网络活动。实际上,我在 SquidGuard 上有一个黑名单,它拒绝访问赌博网站。
我当前的操作系统版本:Linux raspberrypi 4.14.98-v7+ #1200 SMP 星期二 二月 12 20:27:48 GMT 2019 armv7l GNU/Linux。
乌贼:版本 3.5.23、SquidGuard:1.5 Berkeley DB 5.3.28:(2013 年 9 月 9 日)。
我的squid配置文件文件:
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
redirect_program /usr/bin/squidGuard
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
cache_dir ufs /var/spool/squid 1000 16 256
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
我的squidGuard配置文件文件:
dbhome /var/lib/squidguard/db
logdir /var/log/squidguard
time workhours {
weekly mtwhf 08:00 - 16:30
date *-*-01 08:00 - 16:30
}
src admin {
ip 1.2.3.4 1.2.3.5
user root foo bar
within workhours
}
src foo-clients {
ip 172.16.2.32-172.16.2.100 172.16.2.100 172.16.2.200
}
src bar-clients {
ip 172.16.4.0/26
}
dest good { }
dest local { }
dest porn { }
dest gamble{
domainlist gamble/domains
urllist gamble/urls
}
acl {
admin {
pass any
}
foo-clients within workhours {
pass good !in-addr !porn any
} else {
pass any
}
bar-clients {
pass local none
}
default {
pass !gamble any
redirect http://admin.foo.bar.de/cgi-bin/blocked.cgi?
clientaddr=%a&clientname=%n
&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u
}
}
有了这些信息之后,比如有用户 A 和用户 B,A 可以访问赌博网站,而 B 则不能。
有没有办法使用 squid/squidGuard 实现此结果?但我不希望用户 A 绕过代理,只允许他浏览赌博网站。
答案1
有没有办法使用 squid/squidGuard 实现此结果?但我不希望用户 A 绕过代理,只允许他浏览赌博网站? 对的,这是可能的
如果 A 用户使用 foo-clients 范围内的 IP,则示例代码如下
src foo-客户端 { IP 172.16.2.32-172.16.2.100 172.16.2.100 172.16.2.200 }
访问控制列表 { 行政 { 通过任何 } foo-客户端 { 通过好的赌博!色情任何 } 酒吧客户 { 通过本地无 } 默认 { 通过 !赌博 任何 重定向 http://admin.foo.bar.de/cgi-bin/blocked.cgi? 客户端地址=%a&客户端名称=%n &客户端用户=%i&客户端组=%s&目标组=%t&url=%u } }