Имеется прокси-сервер (squid 2.7) для порядка 2000 пользователей. Большинству из них разрешен вход только с 1 ip-адреса. Если использовать динамическую привязку ip-адреса к имени пользователя с помощью конструкции вида: acl limit-1 max_user_ip -s 1 acl ip-limit-1 proxy_auth "/путь к списку имен пользователей" http_access deny ip-limit-1 limit-1 то проблем нет, если с этим именем пользователя не пытаются зайти с 2-х компов одновременно. Например, пользователь перешел на новое рабочее место, а на старом компе не удалил сохраненные логин/пароль в броузере. Для разрешения такой ситуации добавлено: external_acl_type BLOCK_USER_IP ... acl BLOCK_USER_IP external BLOCK_USER_IP %SRC %LOGIN http_access deny BLOCK_USER_IP Проблема заключается в следующем - хотя пользователя на старом адресе прокси-сервер и не пускает, но в cache.log появляется запись: 2017/09/15 09:27:49| authenticateAuthUserRequestSetIp: user 'test' has been seen at a new IP address (10.41.77.74) при этом его адрес привязывается к имени, и на новом месте пользователя не пускает: 2017/09/15 10:25:46| authenticateAuthUserRequestSetIp: user 'test' has been seen at a new IP address (10.4.113.253) 2017/09/15 10:25:46| aclMatchUserMaxIP: user 'test' tries to use too many IP addresses (max 1 allowed)!Очевидно, что плюнуть адрес в таблицу squid успевает на этапе proxy_auth. Это реальная проблема, поскольку ночью не работают, все таблицы успевают очиститься, и если первым успевает засветиться неправильный адрес, то у легитимного пользователя не получается авторизоваться. Есть ли какой-то способ решить проблему, кроме недопуска через прокси по ip-адресу без %LOGIN?
|