Squid3 ncsa basic auth всегда терпит неудачу

Я пытаюсь заставить Squid3 использовать обычную аутентификацию.
Но, хотя я предоставляю правильное имя пользователя / пароль, аутентификация не удалась!
мой ACL и http_access в squid.conf:

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl SSL_ports port 443
acl SSL_ports port 80
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/users
auth_param basic realm Private
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

acl ncsa_users proxy_auth REQUIRED

http_access allow ncsa_users
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

Я создаю /etc/squid3/users с:

htpasswd /etc/squid3/users myusername

Когда я настраиваю прокси-сервер в Firefox, и он запрашивает пароль, я предоставляю правильное имя пользователя / пароль, но это не удается, и он запрашивает снова.
В чем проблема?

3
задан 5 July 2013 в 16:09

1 ответ

Обнаружили проблему:
htpasswd использует -m (шифрование пароля с помощью модифицированной версии Apache MD5)
, но Squid (Squid 3.1.20 on Репозиторий Ubuntu 13.04) ncsa_auth использует системную функцию crypt (unistd.h или crypt.h) для проверки пароля (при наличии crypt() - я не проверял другие сценарии)
Так что если мы запускаем /usr/lib/squid3/ncsa_auth /etc/squid3/users и проверяем имя пользователя / пароль вручную, получим:

~$ /usr/lib/squid3/ncsa_auth /etc/squid3/users
user pass
Segmentation fault (core dumped)

Решение:
для создания файла пароля следует использовать переключатель -d:

htpasswd -d /etc/squid3/users myusername

(использование -d говорит htpasswd использовать системную функцию crypt)

Удачи

0
ответ дан 5 July 2013 в 16:09

Другие вопросы по тегам:

Похожие вопросы: