Может быть эксперты и знающие люди меня раскритикуют, но я сделал так, как описано ниже, все работает. Была прокурорская проверка, их все устроило, у учеников доступ в интернет по белым спискам, а у остальных имеется полный доступ.
Может некоторые пункты и лишние, но на тот момент когда я делал фильтрацию мне советовали именно так.
Описание:
Пункты 1 и 2 у меня выполнены на компьютере, который играет роль шлюза Его адрес в локальной сети 192.168.0.x.
1. Ставим контент-фильтр согласно
http://freeschool.nnov.ru/node/12.
2. К сожалению "Черный список" и "Белый список" в интерфейсе NetPolice не работают и нет возможности как заблокировать дополнительные сайты так и разрешить доступ к уже заблокированным (так было на момент когда настраивал я).
Для дополнительной блокировки сайтов, которые NetPolice не блокирует используются инструменты самого squid. Для этого создаем белый список для самого squid.
Для этого нужно создать файл /etc/squid/whitelist.txt с дозволенными ресурсами, а чтобы squid пускал только по белому листу, достаточно создать ACL в начале конфига:
acl whitelist url_regex "/etc/squid/whitelist.txt"
и изменить правила на:
http_access allow localnet whitelist
http_access allow localhost whitelist
То есть без комментрариев конфиг squid.conf будет выгладеть так:
acl whitelist url_regex "/etc/squid/whitelist.txt"
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
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 SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl Rsync_ports port 873
acl Jabber_ports port 5222 5223
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 563 # snews
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports !Jabber_ports !Rsync_ports
http_access allow localnet whitelist
http_access allow localhost whitelist
http_access deny all
icp_access allow localnet
icp_access deny all
htcp_access allow localnet
htcp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
icp_port 3130
coredump_dir /var/spool/squid
Теперь приступаем непосредственно к настройке локальных компьютеров:
3. У меня локальные компьютеры имеют трех пользователей - Учитель - Ученик - Оператор.
Захожу как пользователь - Ученик, в браузере FF делаем Ручную настройку сервиса прокси на 192.168.0.x и порт 3128. Пробуем, интернет должен фильтроваться по белым спискам.
У остальных пользователей в браузере оставляю настройку "Без прокси". Должен быть полный доступ к интернет.
Может это и не совсем "красиво", но моя главная цель была прокурорская проверка, этого я добился.