PavelVinogradov / sams2

Automatically exported from code.google.com/p/sams2
GNU General Public License v2.0
21 stars 20 forks source link

(Trac:476) squid.conf - ACLs #469

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
(Trac:476) Originaly reported by alexander.sandetsky@gmail.com on 2010-06-02 
15:52:36

В версии 1.x списки разрешенных-запрещенных 
пользователей при использовании 
редиректора хранились в настройках 
редиректора (в частности - rejik). В новой 
(2.0beta1) эти списки добавились в squid.conf в виде 
новых acl. Это неудобно, захламляет конфиг и 
не позволяет использовать возможности 
редиректора.

Original issue reported on code.google.com by bl...@nixdev.net on 5 Jun 2011 at 8:11

GoogleCodeExporter commented 9 years ago
Commented by blaze@nixdev.net on 2010-10-15 14:56:36:

Есть, по крайней мере, еще 2 причины хранить 
acl в отдельных файлах:

1. Пробелы в имени пользователей. Windows 
позволяет создавать пользователей с 
пробелами в именах пользователей, и 
поэтому, при добавлении таких 
пользователей в SAMS2, в squid.conf получаем такие 
acl:

{{{
acl Sams2Template4 proxy_auth DOMAIN\логин а б
}}}

Само собой, squid такие  acl интерпретирует как 
список логинов, разделенных пробелами, т.е. 
как три разных пользователя: "DOMAIN\логин", "а" 
и "б". Результат: "DOMAIN\логин а б" не проходит 
авторизацию.

2. При переконфигурированиии, SAMS сносит из 
конфигурационного файла squid все строки, в 
которых упоминается "Sams2", и это правильно, 
но создает проблему: невозможно 
использовать списки SAMS в собственных 
правилах http_access, а также в правилах которые 
не управляются (пока?) в SAMS, например 
http_reply_access и http_access2.
Если бы использовались файлы для хранения 
списков, то администратор мог бы создавать 
свои acl, использующие эти файлы, и  
использовать их для написания собственных 
правил.

Большая просьба разработчикам вернуть 
файлы к следующей бете :-) Да, и чуть не 
забыл, было бы хорошо, чтобы эти файлы 
лежали в собственной директории (например 
"sams") внутри директории с конфигами squid.

Спасибо!

Original comment by bl...@nixdev.net on 5 Jun 2011 at 8:11

GoogleCodeExporter commented 9 years ago
Commented by chemerik@mail.ru on 2010-10-19 23:13:38:

>> Само собой, squid такие acl интерпретирует 
как список логинов, 
>> разделенных пробелами, т.е. как три разных 
пользователя: 
>> "DOMAIN\логин", "а" и "б". Результат: "DOMAIN\логин а 
б" не проходит 
>> авторизацию. 

squid 3 stable 19
создал в AD пользователя "Логин Ю Ю", 
пользователя импортировал в sams2
в squid.conf sams2daemon создал acl:
acl Sams2Template1 proxy_auth Логин Ю Ю

пользователь авторизуется в squid

Original comment by bl...@nixdev.net on 5 Jun 2011 at 8:11

GoogleCodeExporter commented 9 years ago
Commented by blaze@nixdev.net on 2010-10-20 16:48:07:

Replying to [comment:2 DmitryChemerik]:
> >> Само собой, squid такие acl интерпретирует 
как список логинов, 
> >> разделенных пробелами, т.е. как три 
разных пользователя: 
> >> "DOMAIN\логин", "а" и "б". Результат: "DOMAIN\логин 
а б" не проходит 
> >> авторизацию. 
> 
> squid 3 stable 19
> создал в AD пользователя "Логин Ю Ю", 
пользователя импортировал в sams2
> в squid.conf sams2daemon создал acl:
> acl Sams2Template1 proxy_auth Логин Ю Ю
> 
> пользователь авторизуется в squid
> 

squid 2.6.STABLE21. К сожалению, повторив Вашу 
последовательность получил описанную мной 
ситуацию:

{{{
1287554762.294     49 X.X.X.X TCP_DENIED/403 1362 GET http://www.lenta.ru/ 
DOMAIN\%d0%bb%d0%be%d0%b3%d0%b8%d0%bd%20%d1%8e%20%d1%8e NONE/- text/html
}}}

Настройки squid, имеющие отношение к 
авторизации:

{{{
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
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

..........
acl Sams2Template2 proxy_auth DOMAIN\логин ю ю
..........

acl AuthorizerUsers proxy_auth REQUIRED
http_access deny !AuthorizerUsers

http_access allow Sams2Template2
http_access deny all
}}}

Добавил пару строк в конфиг (перед "http_access 
deny all"):

{{{
acl UsersWithSpaceInLogin proxy_auth "/etc/squid/UsersWithSpaceInLogin"
http_access allow UsersWithSpaceInLogin
}}}
И внес строку "DOMAIN\логин ю ю" в файл 
"/etc/squid/UsersWithSpaceInLogin".
Имеем:

{{{
1287566136.410     55 Х.Х.Х.Х TCP_HIT/200 8747 GET 
http://img.lenta.ru/news/2010/10/20/kovykta/picturesmall.jpg 
DOMAIN\%d0%bb%d0%be%d0%b3%d0%b8%d0%bd%20%d1%8e%20%d1%8e NONE/- image/jpeg
}}}
т.е. все работает. :-)[[BR]]
С другой стороны, [http://www.squid-cache.org/Doc/config/acl/ в 
доках squid] для '''proxy_auth''' указывается, что он 
"takes a list of allowed usernames.", т.е. речь идет именно о 
списке логинов.
Почему у Вас работает, а у меня нет, могу 
только предположить, что может быть одно 
из:[[BR]]
- разница в squid между 3.0 и 2.6[[BR]]
- разница в опциях компиляции[[BR]]
- разные кодировки локали, веб, самбы (у меня 
все - utf-8)[[BR]]
[[BR]]

Original comment by bl...@nixdev.net on 5 Jun 2011 at 8:11

GoogleCodeExporter commented 9 years ago
Commented by blaze@nixdev.net on 2010-10-31 17:25:58:

  К той проблеме мы решили вернуться после выпуска версии 2.0
Скорее всего acl будут вынесены в отдельные 
файлы.

Original comment by bl...@nixdev.net on 5 Jun 2011 at 8:11