NCSA-авторизация — это метод аутентификации в прокси-сервере Squid, основанный на использовании связки логин и пароль. Он позволяет ограничить доступ к сервису за счёт применения учётных данных, закодированных в base64 и хранится в текстовом файле.
Появилась необходимость настроить squid с авторизацией по логину и паролю, чтобы при попытке посетить какой либо интернет ресурс пользователю выдавался запрос авторизации. В squid реализовать такой метод авторизации можно с помощью модуля — basic_ncsa_auth
Создавать логин + пароль будем при помощи пакета — htpasswd входящий в состав httpd-tools.x86_64 установим его если он еще не установлен.
yum install httpd-tools.x86_64
Создаем файл с логинами и паролями.
htpasswd -c /etc/squid/passwd_user user1
Ключ -с указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан.
Все пароли в файле паролей хранятся в хешированном виде, примерно так:
cat /etc/squid/passwd_user user1:$apr1$Mgz65K.x$6kAp7xeLf5OoyUb8ibm.d1
Добавить нового пользователя
htpasswd -b /etc/squid/passwd_user user1
Удалить пользователя из файла
htpasswd -D /etc/squid/passwd_user user1
Конфигурация Squid
В файле конфигурации /etc/squid/squid.conf указываем следующие параметры, чтобы запрашивалась NCSA-авторизация при доступе в интернет.
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd_user auth_param basic children 50 auth_param basic realm PROXY SQUID auth_param basic credentialsttl 5 hours acl passwd_user proxy_auth REQUIRED http_access allow passwd_user http_access deny all
Перезапускаем squid или перечитываем.
systemctl restart squid или squid -k reconfigure
- /usr/lib64/squid/basic_ncsa_auth — путь к программе NCSA аутентификации, может отличаться в зависимости от разрядности операционной системы.
- /etc/squid/passwd_user — файл с логинами и паролями пользователей (создадим его позже).
- children 50 — количество одновременных подключений.
- realm PROXY SQUID — сообщение для окна приветствия.
- credentialsttl 5 hours — время жизни сессий подключившихся пользователей.
- acl passwd_user proxy_auth REQUIRED — включим запрос логина и пароля для пользователей группы «internet_users».
- http_access allow passwd_user — разрешаем пользователям группы полный доступ.
- http_access deny all — всем остальным запрет.
Squid proxy проверка работы
Прописываем порт в браузере в моем случаи 3128. Наслаждаемся полученным результатом. При подключении через прокси-сервер браузер выведет окно запроса логина и пароля авторизации:
