Аутентификация пользователей в Squid

2 Окт
2008

До этого момента списки доступа формировались на основе IP-адреса компьютера или его принадлежности к некоторой сети. Не редко возникает ситуация, когда за одним компьютером может работать несколько человек, и необходимо предоставить доступ только после того, как пользователь подтвердит свою личность путем ввода логина и пароля.

Squid поддерживает несколько вариантов аутентификации. Для проверки подлинности задействуется внешняя программа. Этого можно добиться, использовав тип ACL proxy_auth и указав в параметре auth_param (ранее authenticate_program) программу для аутентификации.

acl USERS proxy_auth REQUIRED
http_access allow USERS
http_access deny all
auth_param /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

В первых трех строках объявлен новый acl и при помощи http_access разрешен доступ для всех клиентов, входящих в данный список. Значение REQUIRED указывает на то, что любой пользователь, прошедший аутентификацию, будет допущен. Как вариант, здесь можно прописать конкретные логины. В строке ниже указываем программу для аутентификации и расположение файла паролей. В разных дистрибутивах месторасположение ncsa_auth отличается. Найти его просто:

$ dpkg -L squid3 | grep ncsa_auth

Или для RPM:

# rpm -ql squid | grep nsca_auth

Параметр children позволяет задать максимальное количество процессов, используемых для аутентификации. Небольшое количество процессов может замедлить процесс аутентификации пользователей. Используя realm, можно определить сообщение Squid, выводимое юзеру в окне ввода пароля. В принципе, текст здесь можно ввести и на русском, только вот как он будет выведен пользователю, зависит от настроек браузера. И, наконец, credentialsttl указывает время кэширования пароля.
Файл паролей создается при помощи утилиты htpasswd, которая входит в состав пакета Apache. Создадим пользователя grinder:

$ sudo htpasswd -c /etc/squid/passwd grinder

New password:
Re-type new password:
Adding password for user grinder

Напомню, что ключ ‘–с‘ используется только однажды (для создания файла), в дальнейшем добавляем учетные записи с ключом ‘-b‘. Для удобства пароль можно указывать прямо в командной строке:

$ sudo htpasswd -b /etc/squid/passwd user 123456

Перезапускать Squid при изменении списка пользователей не требуется. Чтобы никто другой не мог получить доступ к файлу паролей, следует установить соответствующие права:

$ sudo chmod 440 /etc/squid/passwd
$ sudo chown squid:squid /etc/squid/passwd

Пробуем подключиться к прокси-серверу. Чтобы не вводить каждый раз логин и пароль, их можно указать в настройках клиентского браузера.

5 Комментариев к Аутентификация пользователей в Squid

Аватар

Linuxoid - все что знаю о Туксе » Архив блога » Настройка SARG

Октябрь 7th, 2008 | 20:20

[...] данный момент имеем полностью настроенный Squid, но [...]

Аватар

Linuxoid - все что знаю о Туксе » Архив блога » Аутентификация в AD с LDAP

Октябрь 14th, 2008 | 16:10

[...] сервера каталогов вместо аутентификации при помощи nsca_auth оптимальным вариантом является использование [...]

Аватар

Maximus

Ноябрь 30th, 2008 | 9:33

приветствую! Как можно указать логин и пароль в настройках браузера??

Аватар

grinder

Ноябрь 30th, 2008 | 11:00

2Maximus
Это зависит от браузера
Firefox — Инструменты — Настройки — Дополнительно — Сеть — Соединение — Настроить

Аватар

Максим

Январь 16th, 2009 | 22:36

Добрый день. Отличный у вас сайт.

Скажите, не могли бы вы посоветовать. У меня такая ситуация:
На сервере стоит домен Samba+Ldap, там же стоит Squid. Аутентификацию юзеров в squid через ldap я настроил. Но у юзеров постоянно просит пароль, при открытии браузера. Как настроить авто аутентификацию (На примере как в ntlm) я не знаю ((( Подскажите как сделать что бы пароль не спрашивался… и юзер аутентифицировался автоматически…

Комментировать

Наверх