чтобы при разрыве/восстановлении соединения авторизация не переспрашивалась,
если прошло скажем меньше часа с последнего сеанса.
Есть ли подобное в squid`е ?
>чтобы при разрыве/восстановлении соединения авторизация не переспрашивалась,
>если прошло скажем меньше часа с последнего сеанса.
>Есть ли подобное в squid`е ?читай
authenticate_ttl
и
authenticate_ip_ttl
>>чтобы при разрыве/восстановлении соединения авторизация не переспрашивалась,
>>если прошло скажем меньше часа с последнего сеанса.
>>Есть ли подобное в squid`е ?
>
>читай
>
>authenticate_ttl
>и
>authenticate_ip_ttlчитал, эксперементировал; но работают они немного не так
(может пробовал не то ) :(
authenticate_ttl даёт таймер простоя на РАБОТАЮЩЕМ соединении,
за который не будет востребована новая аутентификация;
authenticate_ip_ttl вообшем похажа на то что надо, но при
max_user_ip -s 1 получается совсем не то..(в общем случае каждый юзер сидит за своей машиной(то есть с тем же IP)
в течении N часов; при обращении спустя N часов авторизацию надо переспросить,
но не раньше этих чёрт-их-дери N часов; у большинства пользователей стиль работы :
открыл броузер, глянул чё надо, закрыл броузер; так что постоянного соединения с проксей нету..NTLM авторизация не канает пока в силу прочих причин; так что вся надежда на таймеры)
стандартных решений что-то на ум не приходит, может быть потому, что сквидом занимался мало.
Предлагаю использовать external acl`ы. Т.е.:1. в конфиге сквида
# описываем внешний "хелпер". Переменная %SRC - клиентский ИП
external_acl_type IP_AUTH_TTL %SRC /usr/lib/squid/ip_auth_ttl
# определяем внешний список доступа
acl authed_ip external IP_AUTH_TTL
# плюс к этому, конечно, авторизация и доступ для авторизованных пользователей
# даем доступ
http_access allow authed_ip2. пишем "хелпер", хотя бы на том же перле. Для работы нам надо где-то хранить соответствие IP->последнее_обращение. В хелпере читаем из стандартного ввода клиентский ИП (%SRC который), проверяем время последнего обращения, в случае, если текущее время минус время последнего обращения больше таймаута, посылаем на стандартный вывод "ERR\n", если меньше - "OK\n". Также не забываем обновить время последнего обращения ИП
Короче, нечто в этом роде. Пользовать базу, имхо, слишком круто для такой задачи, тем более, слово "контора" наводит на мысль, что ИПшников не более сотни. Я бы предложил в некотором каталоге создавать файлы с именами IPшников (типа "192.168.0.1") и проверять/модифицировать время их последнего обращения. Быстро и вручную посмотреть можно.
ЗЫ: столько текста получилось, проще было код написать ))
прикол... где я слово "контора" увидел не понятно, извиняйте
>Предлагаю использовать external acl`ы.как тогда запрашивать пароль ?
если acl вернёт ERR то будет просто блокированно обращение к ресурсу
(а должен быть запрос авторизации)при попытке совместить external_acl c базовой авторизацией
получался тот-же эффект что и от параметра athenticate_ttl
>>>чтобы при разрыве/восстановлении соединения авторизация не переспрашивалась,
>>>если прошло скажем меньше часа с последнего сеанса.
>>>Есть ли подобное в squid`е ?
>>
>>читай
>>
>>authenticate_ttl
>>и
>>authenticate_ip_ttl
>
>читал, эксперементировал; но работают они немного не так
>(может пробовал не то ) :(
>authenticate_ttl даёт таймер простоя на РАБОТАЮЩЕМ соединении,
>за который не будет востребована новая аутентификация;
>authenticate_ip_ttl вообшем похажа на то что надо, но при
>max_user_ip -s 1 получается совсем не то..
>
>(в общем случае каждый юзер сидит за своей машиной(то есть с тем
>же IP)смысл тогда в авторизации юзеров???
сделай ACLы привязку по IP, вообще не будет спрашивать авторизации!>в течении N часов; при обращении спустя N часов авторизацию надо переспросить,
>
зачем?
>но не раньше этих чёрт-их-дери N часов; у большинства пользователей стиль работы
>:
>открыл броузер, глянул чё надо, закрыл броузер; так что постоянного соединения с
>проксей нету..NTLM авторизация не канает пока в силу прочих причин; так
>что вся надежда на таймеры)