В данном материале мы дополним конфигурацию прокси-сервера Squid, которая позволит ограничить доступ к использованию сервисом за счёт применения связки логин/пароль, а именно применим параметры для NCSA-авторизации. В предыдущем материале, посвящённом установке и начальной конфигурации Squid, в конфигурации прокси-сервера мы выставили параметр, позволяющий ограничить подключение к Squid за счёт белого списка IP-адресов локальной сети. Итак, приступим к дальнейшей настройке прокси-сервера.
Конфигурация Squid для использования NCSA-авторизации.
Для настройки авторизации пользователей по логину и паролю, в файле конфигурации /etc/squid/squid.conf необходимо настроить следующие параметры:
- auth_param basic program: данный параметр отвечает за выбор программы для аутентификации пользователей на прокси-сервере;
- auth_param basic children: параметр, который указывает на количество одновременных подключений к прокси-серверу;
- auth_param basic realm: параметр, отвечающий за приветственное сообщение, которое появится у пользователя при попытке подключиться к серверу Squid;
- auth_param basic credentialsttl: параметр, определяющий время жизни сессии на прокси-сервере;
- acl users_group proxy_auth REQUIRED: правило, которое включает запрос логина/пароля для группы пользователей users_group;
- http_access allow users_group: правило, предоставляющее полный доступ пользователям группы users_group.
Открываем файл конфигурации /etc/squid/squid.conf для редактирования:
nano /etc/squid/squid.conf
В файле конфигурации находим необходимые параметры и раскомментируем нужные строки, так же сразу укажем необходимые значения параметров:
Стоит рассмотреть, что же означают указанные параметры конфигурации:
- параметр auth_param basic program содержит значение: /usr/lib/squid/basic_ncsa_auth, которое указывает путь к программе аутентификации пользователей, следом через пробел указан путь к файлу /etc/squid/users_group, в котором будут содержаться записи об логинах пользователей и сопоставленных к них паролям;
- параметр auth_param basic children содержит значение: 50, в данном примере это означает, что одновременно к прокси-серверу могут быть подключены 50 пользователей;
- параметр auth_param basic realm содержит значение: Welcome to Squid proxy-server, данное сообщение будет выведено при попытке подключиться к прокси-серверу;
- параметр auth_param basic credentialsttl содержит значение: 2 hours, этим значением мы указали время сессии пользователя равное 2-м часам;
- acl users_group proxy_auth REQUIRED указываем на список пользователей (в нашем случае файл /etc/squid/users_group содержит связки логин/пароль), которым будет разрешён доступ через прокси-сервер.
После того, как указали значения всех необходимых параметров, добавляем правила доступа для пользователей прокси-сервера, чтобы происходила авторизация по логину и паролю. Для этого находим правило запрета подключения для всех http_access deny all
Перед http_access deny all необходимо указать необходимые правила для авторизации пользователей:
На этом изменение файла конфигурации Squid завершено. Следующим этапом настройки авторизации по логину и паролю будет создание списка пользователей, которым станет доступно соединение с прокси-сервером, при удачном вводе связки логин/пароль.
Создание списка пользователей Squid для авторизации по логину/паролю.
Для создания списка пользователей, которым будет доступно использование прокси-сервера, понадобиться утилита htpasswd. Данная утилита входит в состав пакета apache2-utils, который необходимо установить дополнительно при помощи команды:
apt install apache2-utils
После установки, приступим непосредственно к созданию списка пользователей.
При помощи утилиты htpasswd создаём файл, который будет содержать записи о пользователях прокси-сервера Squid. При написании команды добавим сразу создание первого пользователя с именем squiduser1:
htpasswd -c /etc/squid/users_group squiduser1
***ключ -c указывается только первый раз при создании файла. В дальнейшем при добавлении пользователей в список, указывать его не нужно.
Система предложит ввести пароль для вновь созданного пользователя и подтвердить пароль повторным его вводом:
Создадим сразу второго пользователя, при помощи аналогично команды, без использования ключа -c.
Проверим наличие записей в файле /etc/squid/users_group, выполнив команду:
cat /etc/squid/users_group
Как видно на снимке экрана, пользователи успешно созданы и связки логин/пароль записаны в файле.
Для правильной работы прокси-сервера и возможности авторизации пользователей по логину/паролю необходимо выставить соответствующие права доступа на файл /etc/squid/users_group и задать владельца и группу для данного файла, при помощи следующих команд:
задаём права доступа на файл:
chmod 644 /etc/squid/users_group
устанавливаем владельца и группу:
chown squid:squid /etc/squid/users_group
Теперь необходимо перезапустить сервис Squid, используя команду:
service squid restart
На этом настройки NCSA-авторизации на прокси-сервере Squid завершены. Осталось проверить работу данной схемы авторизации пользователей.
Настраиваем параметры браузера для использования прокси-сервера, указав соответствующие параметры IP-адрес и порт.
*Важный момент использования текущей конфигурации: в связи с тем, что мы продолжили настройку конфигурации из первой статьи, прокси-сервер теперь работает с 2-мя спискам:
- список разрешённых IP
- список связок логин/пароль
Если IP-адрес клиента будет в белом списке, то правило для ввода логина/пароля не будет работать и пользователь сможет использовать выход в сеть Интернет. Если же IP-адрес клиента, подключающегося через прокси-сервер отсутствует в белом списке, то появится окно ввода логина и пароля для авторизации.
После ввода правильной комбинации логина и пароля пользователь получит доступ в Интернет.