Пытаюсь сделать следующее:
1. Для пользователя test запретить доступ к хосту http://some_fignya
2. Для пользователей test, ady, aiv
a: закрыть доступ к http://www.microsoft.com
б: открыть доступ к хосту http://www.yandex.ru
3. На все остальные адреса ходить нельзяРеализация:
---- squid.conf ----
http_access allow localnet
http_access allow ext_stat########################
# GENERATE BY GENACL.PHP
acl usr_57 proxy_auth test
acl deny_57 url_regex http://some_fignya
acl usr_1 proxy_auth test aiv ady
acl allow_1 url_regex http://www.yandex.ru
acl deny_1 url_regex http://www.microsoft.comhttp_access deny deny_57 usr_57
http_access allow allow_1 usr_1
http_access deny deny_1 usr_1
########################
http_access deny all------ end ---------
Что получаем в результате:
1. Открываем браузер, идем на www.yandex.ru
2. Получаем запрос на авторизацию, вводим верный логин и пароль для
пользовтеля test
3. Открывается yandex.ru
4. НЕ ЗАКРЫВАЯ браузер вводим адрес www.microsoft.com
5. Получаем запрос (СНОВА) на авторизацию на который даем верные данные для пользователя test. Авторизация не проходит. goto 5.
6. После трех неверных попыток получаем Cache Access Denied а не ожидаемое сообщение об отказе в доступе к данному URLю.Вопрос:
Почему авторизация спрашивается два раза, почему она не проходит при правильных данных?
>Вопрос:
>Почему авторизация спрашивается два раза, почему она не проходит при правильных данных?Ибо неправильно заданы правила.
=================================
acl all src 0.0.0.0./0.0.0.0
acl usr_test proxy_auth test
acl usr_aiv proxy_auth aiv
acl usr_ady proxy_auth ady
------------------------------
#Авторизацию делаем каждому!
------------------------------acl deny_test url_regex -i ^http://some_fignya ^http://www.microsoft.com
acl allow_all url_regex -i ^http://www.yandex.ru------------------------------
#
#Непонятно одно, если для test закрыто всё, кроме яндекса, зачем #указывать ещё и some_fignya ? Лишнее и ненужно правило.
#Получаем:http_access allow usr_test allow_url
http_access allow usr_aiv allow_url
http_access allow usr_ady allow_url
http_access deny all#some_fignya выброшен за ненадобностью.
Удачного дня.
Дело в том, что описанная ситуация не конечная и пределывать правила под нее не хотелось бы. Меня больше интересует - в чем ошибка acl описанных в первом посте. Они в принцепе работают,но когда срабатыает запрет проиходит нежелатльный запрос на авторизацию (3 раза) а затем утверждается что авторизация не прошла. В правилах разрешениях (yandex.ru)
такого не происходит и все срабатывает нормально.
>Дело в том, что описанная ситуация не конечная и пределывать правила под
>нее не хотелось бы. Меня больше интересует - в чем ошибка
>acl описанных в первом посте. Они в принцепе работают,но когда срабатыает
>запрет проиходит нежелатльный запрос на авторизацию (3 раза) а затем утверждается
>что авторизация не прошла. В правилах разрешениях (yandex.ru)
> такого не происходит и все срабатывает нормально.Повторная авторизация происходит от того, что не сработала первый раз.
Если всё в порядке, то никакой повторной не будет.
Описанная мной последовательность запрашивает повтор на аутентификацию?
>acl usr_1 proxy_auth test aiv adyВот ошибка ^^^^^^^^^^^^^
У тебя задано сразу три логина на авторизацию.
Потому условия вида:
http_access allow allow_1 usr_1
http_access deny deny_1 usr_1означают, что доступ будет разрешён к сайту, если всё три пользователя зайдут одновременно! Так же и с запретом. Ничего ведь не мешает вынести каждого пользователя в отдельные acl?
Удачного дня.
>>acl usr_1 proxy_auth test aiv ady
>
>Вот ошибка
> ^^^^^^^^^^^^^
http://squid.opennet.ru/FAQ/my/FAQrus-23.html
-------------------------------
acl foo proxy_auth REQUIRED
acl bar proxy_auth lisa sarah frank joe
acl daytime time 08:00-17:00
acl all src 0/0
http_access allow bar
http_access allow foo daytime
http_access deny all
--------------------------------------------
А что вы на это скажете, junior?
>-------------------------------
>acl foo proxy_auth REQUIRED
>acl bar proxy_auth lisa sarah frank joe
>acl daytime time 08:00-17:00
>acl all src 0/0
>http_access allow bar
>http_access allow foo daytime
>http_access deny all
>--------------------------------------------
>А что вы на это скажете, junior?Повторю - ошибка осталась там же.
Разжёвываю для желающих.
В примере:
1. acl foo proxy_auth REQUIRED
2. acl bar proxy_auth lisa sarah frank joe
3. acl daytime time 08:00-17:00
4. acl all src 0/0
5. http_access allow bar
6. http_access allow foo daytime
7. http_access deny all1. Обязательная аутентификация
2. Аутентификация для группы пользователей
3. Описание времени доступа
4. Все.
5. Разрешить доступ группе (без всяких условий!!!!!)
6. Разрешить всем прошедшим аутентификацию доступ в оговоренное время
7. Запретить всем.
Теперь что было:acl usr_57 proxy_auth test
acl deny_57 url_regex http://some_fignya # Тут первая неточность (если по документации)
acl usr_1 proxy_auth test aiv ady # Оставим как в доке
acl allow_1 url_regex http://www.yandex.ru # Вторая (по доке)
acl deny_1 url_regex http://www.microsoft.com # Третья (опять же см. squid.conf)http_access deny deny_57 usr_57
# Запрещаем бедному челу смотреть фигню
http_access allow allow_1 usr_1
# Разрешим группе смотреть яндекс
http_access deny deny_1 usr_1
# Запрещаем группе смотреть сайт мелкомягких.А теперь найдите 10 отличий от правил описанных по работе с группой в приведённой ссылке ;-)
Вариант 2.
Неправильно созданный файл паролей. Отпадает, ибо вопрошающий сказал о том, что аутентификация ПРОШЛА УСПЕШНО в первый раз.Значит всё дело в правилах.
Вопрос к постящему:
Мой пример, приведённый в ответном посте работает?Какие ещё вопросы?
Удачного дня.
>>acl bar proxy_auth lisa sarah frank joe
Выше утверждалось что авторизацию нужно делать ДЛЯ КАЖДОГО ЮЗЕРА В ОТДЕЛЬНОСТИ.
данная строчка из фака показывает что наше правило (мы с постящим Elrond'ом - коллеги :) ) синтаксически верно и что предположение о том, что "сразу все пользователи должны залогиниться одновременно" не верно.>Повторю - ошибка осталась там же.
Дык все-таки где же там же если не с proxy_auth
Я не пойму, то ли я дурак, толи лыжи не едут :)
>http_access deny deny_57 usr_57
># Запрещаем бедному челу смотреть фигню
>http_access allow allow_1 usr_1
># Разрешим группе смотреть яндекс
>http_access deny deny_1 usr_1
># Запрещаем группе смотреть сайт мелкомягких.
>
>А теперь найдите 10 отличий от правил описанных по работе с группой
>в приведённой ссылке ;-)
То есть вы хотите сказать нельзя указывать
http_access allow|deny куда для_какого_ACL'я
Или неверен порядок?>Вопрос к постящему:
>Мой пример, приведённый в ответном посте работает?
Отвечу за постящего.
Дело не в работоспособности вашего примера, а в том что нужно остаться как можно ближе к приведенному примеру! Т.е. задавить данного конкретного бага: или в примере или в ДНК программера :)
Ладно... оставим ДНК и лыжи в покое.
Начнём с другого.
Вы можете конкретно сформулировать задачу, чтобы
мы не занимались гаданием на кофейной гуще и битьём в тамтамы?
Согласитель - странный способ спрашивать совета не говоря конкретно
что же требуется в конце-концов.Если опасаетесь нарушить какие-то privat-ные моменты - можете сбросить
описание задачи по почте. Только умоляю - давайте обойдёмся без
совсем ненужных шифровок и иже с ним. :)Удачного дня.
>Вопрос к постящему:
>Мой пример, приведённый в ответном посте работает?
Дело в том что твои правила не подходят для реализации, пример частный
Если в обещем, то ты предлагаешь мне:
если я хочу сгенерировать одинаковые правила для нескольких пользователей, то
мне придется на каждого в отдельности писать http_access вместо того чтобы написать на всех
одной строкой, а если у меня таких пользователей не мало и не мало различных
вариантов доступа? не загрузит это ли сквид?
хотя уже думаю нет.
еще одна странность, ведъacl bar proxy_auth lisa sarah frank joe
acl url url_regex -i ^http://www.microsoft.comработает когда идет правило
http_access allow bar url
и в то же время сыплется когда идет вместо того
http_access deny bar url