До этого момента списки доступа формировались на основе 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
Пробуем подключиться к прокси-серверу. Чтобы не вводить каждый раз логин и пароль, их можно указать в настройках клиентского браузера.
Permalink
Permalink
//
приветствую! Как можно указать логин и пароль в настройках браузера??
//
2Maximus
Это зависит от браузера
Firefox — Инструменты — Настройки — Дополнительно — Сеть — Соединение — Настроить
//
Добрый день. Отличный у вас сайт.
Скажите, не могли бы вы посоветовать. У меня такая ситуация:
На сервере стоит домен Samba+Ldap, там же стоит Squid. Аутентификацию юзеров в squid через ldap я настроил. Но у юзеров постоянно просит пароль, при открытии браузера. Как настроить авто аутентификацию (На примере как в ntlm) я не знаю ((( Подскажите как сделать что бы пароль не спрашивался… и юзер аутентифицировался автоматически…