Задача: настроить squid с базовой авторизацией; всем запретить доступ к определенному списку сайтов (одноклассники и др.), и разрешить доступ к определенному списку сайтов
без авторизации. А также разграничить доступ конкретным авторизованым пользователям.
Т.е.: Пользователь заходит на
site.com.
1) Если
site.com запрещен, то выдавать стандартное сквидовское сообщение об ошибке.
2) Если
site.com разрешен для всех, то пускать пользователя
не запрашивая авторизацию.3) Если
site.com нет в списке разрешенных для всех сайтов, то выдавать предложение на авторизацию.
3.1) Если пользователь успешно авторизовался:
3.1.1) Если
site.com разрешен этому пользователю, то пускать пользователя.
3.2.1) Если
site.com не разрешен этому пользователю, то выдавать ошибку.
3.2) Пользователь не авторизован. Повторить запрос на авторизацию (идти на шаг "3").
Проблема: все время выдается предложение об авторизации!
Система:Linuх 2.6.26-2-amd64 x86_64 GNU/Linux
Версия Squid:3.0.STABLE8-3+lenny3
(из репы)
Конфиг Squid:http_port 10.0.0.231:13128
visible_hostname Proxy Server (test mode)
coredump_dir /var/spool/squid3
cache_mgr okt
#memory_pools_limit 64 MB
error_directory /usr/share/squid3/errors/Russian-1251
access_log /var/log/squid3/access.log squid
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid.passwd
auth_param basic children 10
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Package(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl SSL_ports port 443
acl Safe_ports port 80 8000 8080
acl Safe_ports port 443
acl MAIL_ports port 25 110
acl ICQ_ports port 443
acl FTP_ports port 20 21
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 local_network src 10.0.0.0/8
acl purge method PURGE
acl CONNECT method CONNECT
acl blacklist_url dstdomain "/etc/squid3/rules/blacklist"
acl whitelist_url dstdomain "/etc/squid3/rules/whitelist"
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access allow localhost
http_access deny local_network blacklist_url
http_access allow local_network whitelist_url
acl users proxy_auth REQUIRED test
http_access allow users Safe_ports
http_access deny all
# В /etc/squid3/rules/blacklist и /etc/squid3/rules/whitelist написаны запрещенные для всех и соответственно разрешенные для всех домены
# Пользователю test разрешено все кроме /etc/squid3/rules/blacklist
Базовая авторизацию работает нормально и ограничения по доменам срабатывают. Проблема только в том, чтобы домены разрешенные для всех открывались без предложения об авторизации.
Вариант завести пользователя с общеизвестным паролем и каждый раз его вбивать при подключении (либо ткнуть галочку запомнить пароль)
не предлагать.Первый раз настраиваю squid, поэтому прошу сильно не ругать и не посылать далеко гуглить

я там уже был.
Заранее спасибо за помощь.