стандартных решений что-то на ум не приходит, может быть потому, что сквидом занимался мало.
Предлагаю использовать 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_ip
2. пишем "хелпер", хотя бы на том же перле. Для работы нам надо где-то хранить соответствие IP->последнее_обращение. В хелпере читаем из стандартного ввода клиентский ИП (%SRC который), проверяем время последнего обращения, в случае, если текущее время минус время последнего обращения больше таймаута, посылаем на стандартный вывод "ERR\n", если меньше - "OK\n". Также не забываем обновить время последнего обращения ИП
Короче, нечто в этом роде. Пользовать базу, имхо, слишком круто для такой задачи, тем более, слово "контора" наводит на мысль, что ИПшников не более сотни. Я бы предложил в некотором каталоге создавать файлы с именами IPшников (типа "192.168.0.1") и проверять/модифицировать время их последнего обращения. Быстро и вручную посмотреть можно.
ЗЫ: столько текста получилось, проще было код написать ))