Linux

是否可以允許特定使用者或 IP 繞過 squidguard?

  • April 4, 2019

最近,我配置了一個樹莓派作為一個小伺服器。特別是我安裝了 DHCP、squid 代理和 squidGuard 來記錄通過我的樹莓派的網路活動。實際上,我在 squidGuard 上有一個黑名單,拒絕訪問賭博網站。

我目前的作業系統版本:Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux

Squid:版本 3.5.23,SquidGuard:1.5 Berkeley DB 5.3.28:(2013 年 9 月 9 日)

我的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
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.conf文件:

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 繞過代理,只允許他在賭博網站上沖浪。

有沒有什麼方法可以使用 squid/squidGuard 來實現這個結果?但我不希望使用者 A 繞過代理,只允許他在賭博網站上沖浪? 是的,有可能

如果 A 使用者在 foo-clients 範圍內使用 IP,這裡是範常式式碼

src foo-clients {
ip 172.16.2.32-172.16.2.100 172.16.2.100 172.16.2.200
}
acl {
行政 {
通過任何
}
富客戶{
通過好賭!色情任何
}
酒吧客戶{
通過本地無
}
預設 {
通過!賭博任何
重定向 http://admin.foo.bar.de/cgi-bin/blocked.cgi?
客戶地址=%a&客戶名=%n
&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u
}
}

引用自:https://serverfault.com/questions/961435