Иногда может потребоваться чтобы доступ к интернету через Squid предоставлялся не на основе ip адреса или доменного имени, а на основе введённого логина и пароля
Например сотрудники часто работают на чужих компьютерах, или требуется подключиться к собственному прокси серверу из интернета
К томуже, после авторизации заполняется 8 поле access.log и по этому полую можно однозначно идентифицировать того кто пользовался каналом
При этом, не теряется возможности ограничения доступа по IP или доменному имени
Для самой простой авторизации необходимо, создать файл с учётными записями и добавить пару строчек в squid.conf
Создание файла с учётными записями на основе паролей apache
htpasswd -c /etc/squid/passwd ffsdmad # создать первую учётку для ffsdmad
htpasswd /etc/squid/passwd katya # создать вторую учётку для katya
В squid.conf необходимо добавить
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd # пути до утилиты авторизации + файл с паролями
auth_param basic children 5 # количество потомков
auth_param basic realm ffsdmad proxy server # приветствие в запросе логина/пароля
auth_param basic credentialsttl 2 hours # на 2 часа выдаётся авторизация
теперь acl squid`a
acl auth proxy_auth REQUIRED
acl LocalNet src ffsdmad katya # тут список адресов, dns или IP
# acl LocalNet src "/etc/squid/users.txt # либо можно использовать файл с таким списком
acl all src 0.0.0.0/0.0.0.0
............
http_access allow LocalNet
http_access allow auth
http_access deny all
как видите, в первую очеред разрешён доступ всем из списка LocalNet, а остальные должны быть либо авторизованными либо будут получить код 401