Найти тему
IT-guide.tech

SQUID. NCSA-авторизация (с использованием связки логин/пароль)

Оглавление

В данном материале мы дополним конфигурацию прокси-сервера 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
-2

В файле конфигурации находим необходимые параметры и раскомментируем нужные строки, так же сразу укажем необходимые значения параметров:

до редактирования
до редактирования

Стоит рассмотреть, что же означают указанные параметры конфигурации:

  • параметр 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

-4

Перед http_access deny all необходимо указать необходимые правила для авторизации пользователей:

-5

На этом изменение файла конфигурации Squid завершено. Следующим этапом настройки авторизации по логину и паролю будет создание списка пользователей, которым станет доступно соединение с прокси-сервером, при удачном вводе связки логин/пароль.

Создание списка пользователей Squid для авторизации по логину/паролю.

Для создания списка пользователей, которым будет доступно использование прокси-сервера, понадобиться утилита htpasswd. Данная утилита входит в состав пакета apache2-utils, который необходимо установить дополнительно при помощи команды:

apt install apache2-utils
-6

После установки, приступим непосредственно к созданию списка пользователей.

При помощи утилиты htpasswd создаём файл, который будет содержать записи о пользователях прокси-сервера Squid. При написании команды добавим сразу создание первого пользователя с именем squiduser1:

htpasswd -c /etc/squid/users_group squiduser1

***ключ -c указывается только первый раз при создании файла. В дальнейшем при добавлении пользователей в список, указывать его не нужно.

-7

Система предложит ввести пароль для вновь созданного пользователя и подтвердить пароль повторным его вводом:

-8

Создадим сразу второго пользователя, при помощи аналогично команды, без использования ключа -c.

-9

Проверим наличие записей в файле /etc/squid/users_group, выполнив команду:

cat /etc/squid/users_group
-10

Как видно на снимке экрана, пользователи успешно созданы и связки логин/пароль записаны в файле.

Для правильной работы прокси-сервера и возможности авторизации пользователей по логину/паролю необходимо выставить соответствующие права доступа на файл /etc/squid/users_group и задать владельца и группу для данного файла, при помощи следующих команд:

задаём права доступа на файл:

chmod 644 /etc/squid/users_group
-11

устанавливаем владельца и группу:

chown squid:squid /etc/squid/users_group
-12

Теперь необходимо перезапустить сервис Squid, используя команду:

service squid restart
-13

На этом настройки NCSA-авторизации на прокси-сервере Squid завершены. Осталось проверить работу данной схемы авторизации пользователей.

Настраиваем параметры браузера для использования прокси-сервера, указав соответствующие параметры IP-адрес и порт.

-14
*Важный момент использования текущей конфигурации: в связи с тем, что мы продолжили настройку конфигурации из первой статьи, прокси-сервер теперь работает с 2-мя спискам:
  • список разрешённых IP
  • список связок логин/пароль
Если IP-адрес клиента будет в белом списке, то правило для ввода логина/пароля не будет работать и пользователь сможет использовать выход в сеть Интернет. Если же IP-адрес клиента, подключающегося через прокси-сервер отсутствует в белом списке, то появится окно ввода логина и пароля для авторизации.
-15

После ввода правильной комбинации логина и пароля пользователь получит доступ в Интернет.

-16