В связи с требованиями прокуратуры приходится извращаться с очисткой контента от всякого хлама. При работе под операционной системой Windows нас вынуждали ставить программу ПКФ, которая не фильтровала почти ничего. С переходом на операционные системы Linux проблема не ушла. Единственным правильным решением тут оказалось использование одного фильтра, установленного на сервере. Мой выбор пал на dansguardian. Для его настройки необходим прозрачный прокси-сервер. В качестве прокси-сервера удобен squid.
Для настройка squid в Alt Linux достаточно прописать в конфигурационном файле следующее
#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SchoolNet src 192.168.1.0/24
acl to_localhost dst 127.0.0.0/8
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
# And finally deny all other access to this proxy
http_access allow localhost
http_access allow SchoolNet
http_access deny all
# Squid normally listens to port 3128
http_port 192.168.1.1:3128
#Default:
cache_mem 64 MB
# httpd_accel_no_pmtu_disc off
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
А в настройках dansguardian отредактировать четыре строки
filterip = 192.168.1.1
filterport = 8080
proxyip = 192.168.1.1
proxyport = 3128
и закомментировать строку
UNCONFIGURED - Please remove this line after configuration
В Ubuntu у меня возникли вначале проблемы. Причина в том, что не обратил внимания на небольшую разницу в дистрибутивах. И основная загвоздка оказалась в настройке прозрачного прокси-сервера. Необходимо было сделать следующее: выкинуть из конфигурационного файла строки
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
закомментировать строку
http_access deny all
дописать
http_access allow all
а строку
http_port 192.168.1.1:3128
привести к виду
http_port 192.168.1.1:3128 transparent
Фильтр настраивается аналогично тому, что и в Alt Linux. Для подключения дополнительных списков я пользовался этой статьей.
Тут лежат файлы с запрещенными фразами, которые стоят у меня.