Страница 1 из 1

Squid. Не работает отрицание

Добавлено: 2010-10-21 9:12:56
mit
Столкнулся с такой проблемой, не работает отрицание ! в Squid2.7 STABLE8 под Win
Допустим есть сайт (odnoklassniki.ru) на который не нужно заходить никому, кроме группы admins.

Код: Выделить всё

acl odnoklassniki dstdomain .odnoklassniki.ru
#запрещаем этот сайт для всех
http_access deny odnoklassniki
#разрешаем его группе admins
http_access allow admins !odnoklassniki
или допустим не надо пускать группу admins на этот сайт

Код: Выделить всё

acl odnoklassniki dstdomain .odnoklassniki.ru
http_access allow admins !odnoklassniki
у меня тоже не работает.

Re: Squid. Не работает отрицание

Добавлено: 2010-10-21 10:08:23
skeletor
Всё работает, вы неправильно пишите правила. Правила в squid'e работают по принцыпу файервола, то есть важен порядок правил. В вашем случае нужно так:

Код: Выделить всё

acl odnoklassniki dstdomain .odnoklassniki.ru
#разрешаем его группе admins
http_access allow admins !odnoklassniki
#запрещаем этот сайт для всех
http_access deny odnoklassniki

Re: Squid. Не работает отрицание

Добавлено: 2010-10-21 14:33:53
mit
skeletor писал(а):Всё работает, вы неправильно пишите правила. Правила в squid'e работают по принцыпу файервола, то есть важен порядок правил. В вашем случае нужно так:

Код: Выделить всё

acl odnoklassniki dstdomain .odnoklassniki.ru
#разрешаем его группе admins
http_access allow admins !odnoklassniki
#запрещаем этот сайт для всех
http_access deny odnoklassniki
Тогда наоборот admins не будут иметь доступа, потому что deny стоит ниже.
В общем я хотел бы обозначить группы правил, разрешить или запретить их, а потом применять их к группам пользователей. Вот как-то так http://forum.lissyara.su/viewtopic.php?f=3&t=23992

Re: Squid. Не работает отрицание

Добавлено: 2010-10-21 14:38:50
skeletor
Тогда наоборот admins не будут иметь доступа, потому что deny стоит ниже.
Неправда! Доступ будут иметь. Дело в том, что squid смотри только одно правило и только самое первое. Если вы будете находится в 10 группах, и будут все 10 правил, то для вас сработает только самое первое.

Re: Squid. Не работает отрицание

Добавлено: 2010-10-21 14:48:00
mit
Я накидал conf вот такого вида, и в данном случае admins не имеют доступа, а buh имеют.

Код: Выделить всё

http_port 192.168.0.6:3128
auth_param basic program c:/squid/libexec/ncsa_auth.exe c:/.htpasswd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

#admins_users
acl admins proxy_auth "c:/squid/etc/groups/admins"
#buh_users
acl buh proxy_auth "c:/squid/etc/groups/buh"

acl localnet src 192.168.0.0/24
acl all src 0.0.0.0/0.0.0.0

acl odnoklassniki dstdomain .odnoklassniki.ru

http_access allow admins !odnoklassniki
http_access allow buh
http_access deny odnoklassniki
http_access deny all

Re: Squid. Не работает отрицание

Добавлено: 2010-10-21 16:01:42
skeletor
Кто куда не имеет доступ?

Re: Squid. Не работает отрицание

Добавлено: 2010-10-21 19:04:00
mit
В данном случае группе admins нет доступа к odnoklassniki, а группе buh есть.
Я хотел сделать вот так:

Код: Выделить всё

acl odnoklassniki dstdomain .odnoklassniki.ru #указать правило
http_access deny odnoklassniki #запретить его для всех
http_access allow admins !odnoklassniki #разрешить правило только для данной группы
http_access allow buh #этой группе действуе запрет
Что-то подобное есть вот сдесь: "http://forum.lissyara.su/viewtopic.php?f=3&t=23992"

Re: Squid. Не работает отрицание

Добавлено: 2010-10-22 8:08:13
mit
Сегодня утром разобрался, спасибо skeletor за помощь!