В настоящее время я использую ip в acl, и я хочу использовать имя пользователя и пароль для этого.
Как настроить прокси-сервер Squid с базовым именем пользователя и парольной аутентификацией?
Ответ 1
Вот что мне нужно было сделать, чтобы настроить базовую аутентификацию в Ubuntu 14.04 (больше нигде не нашел)
Базовый конф. Кальмара
/etc/squid3/squid.conf
вместо стандартного файла конфигурации по умолчанию
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
# Choose the port you want. Below we set it to default 3128.
http_port 3128
Обратите внимание на программу basic_ncsa_auth вместо старой ncsa_auth
кальмар 2.x
Для squid 2.x вам нужно отредактировать файл /etc/squid/squid.conf
и разместить его:
auth_param basic program /usr/lib/squid/digest_pw_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
Настройка пользователя
sudo htpasswd -c /etc/squid3/passwords username_you_like
и дважды введите пароль для выбранного имени пользователя, затем
sudo service squid3 restart
кальмар 2.x
sudo htpasswd -c /etc/squid/passwords username_you_like
и дважды введите пароль для выбранного имени пользователя, затем
sudo service squid restart
htdigest vs htpasswd
Для многих людей, которые спрашивали меня: 2 инструмента создают файлы разных форматов:
htdigest
сохраняет пароль в виде обычного текста.htpasswd
хранит хэши паролей (доступны различные алгоритмы хэширования)
Несмотря на это различие в формате basic_ncsa_auth
, по-прежнему сможет анализировать файл паролей, созданный с помощью htdigest
. Следовательно, вы можете альтернативно использовать:
sudo htdigest -c /etc/squid3/passwords realm_you_like username_you_like
Помните, что этот подход эмпирический, недокументированный и может не поддерживаться будущими версиями Squid.
В Ubuntu 14.04 htdigest
и htpasswd
доступны в пакете [apache2-utils][1]
.
MacOS
То же, что и выше, но пути к файлам разные.
Установить Squid
brew install squid
Запустите службу Squid
brew services start squid
Файл конфигурации Squid хранится в /usr/local/etc/squid.conf
.
Прокомментируйте или удалите следующую строку:
http_access allow localnet
Затем, аналогично конфигурации Linux (но с обновленными путями), добавьте следующее:
auth_param basic program /usr/local/Cellar/squid/4.8/libexec/basic_ncsa_auth /usr/local/etc/squid_passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
Обратите внимание, что путь к basic_ncsa_auth
может отличаться, поскольку он зависит от установленной версии при использовании brew
, вы можете проверить это с помощью ls /usr/local/Cellar/squid/
. Также обратите внимание, что вы должны добавить вышеперечисленное, просто ниже следующий раздел:
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
Теперь создайте себе учетную запись user: пароль базовой аутентификации (примечание: htpasswd
и htdigest
также доступны в MacOS)
htpasswd -c /usr/local/etc/squid_passwords username_you_like
Перезапустите службу Squid
brew services restart squid