Как настроить прокси-сервер Squid с базовой аутентификацией по имени пользователя и паролю? [закрыто]

88

В настоящее время я использую ip в acl, и я хочу использовать для этого имя пользователя и пароль.

www
источник
Вот еще один пример того, как настроить Squid3 с аутентификацией в стиле htdigest
hendry
здесь полное руководство по установке и настройке squid3 с аутентификацией hevi.info/2015/09/...
Hevi

Ответы:

205

Вот что мне нужно было сделать для настройки базовой аутентификации в 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 против htpasswd

Для многих людей, которые спрашивали меня: два инструмента создают файлы разных форматов:

  • 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

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

Установить кальмар

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
#

Теперь создайте себе пользователь: пароль основных аутентификации учетные данные (примечание: htpasswdа htdigestтакже оба доступны на MacOS)

htpasswd -c /usr/local/etc/squid_passwords username_you_like

Перезапустите сервис squid

brew services restart squid
Стефано Фратини
источник
1
Исправлено сейчас. Спасибо, Марк.
Стефано Фратини
11
Для меня команда htdigest не сработала, однако как только я заменил ее на «sudo htpasswd -cd / etc / squid3 / passwords admin», она заработала, как и ожидалось.
Фил Ханнент,
2
Я так думал, даже если это сработало для меня. Было обсуждение, связанное с этим сообщением, 50% людей заявили, что это работает, а 50% предложили изменить htpasswd. У меня не было достаточно репутации, чтобы участвовать в обсуждении ... :(
Стефано Фратини
2
у меня сработало, но мне также пришлось использовать htpasswd вместо htdigest, я не знаю почему, но таким образом это сработало.
Стефано
23
Если в вашей системе его нет, htpasswdсделайте это sudo apt-get install apache2-utils.
exebook