Недавно настроил малину как маленький сервер. В частности, я установил 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: (9 сентября 2013 г.).
Мой 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? Но я не хочу, чтобы этот пользователь А обходил прокси-сервер, только разрешил ему просматривать сайты с азартными играми.
Есть ли способ добиться такого результата с помощью squid / squidGuard? Но я не хочу, чтобы этот пользователь А обходил прокси, а разрешал ему только просматривать сайты с азартными играми? Да, это возможно
вот пример кода, если пользователь A использует IP в диапазоне foo-clients
src foo-clients { ip 172.16.2.32-172.16.2.100 172.16.2.100 172.16.2.200 }
acl { admin { pass any } foo-clients { pass good gamble !porn 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 } }