Почему Squid ntlm_auth работает только при «cache_effective_group root»

Почему Squid ntlm_auth работает только при «cache_effective_group root»

У меня Debian 8 Jessie с Samba, настроенной как сервер-участник AD. Samba+Winbind работает отлично: я могу создавать общие ресурсы и назначать права пользователям AD;получить парольпоказывает как локальных пользователей, так и пользователей AD и т. д.

Некоторые дополнительные проверки, такие как:

  • чистый тестовый вход
  • klist и klist -k /etc/krb5.keytab
  • wbinfo -t
  • wbinfo -a мой_домен\мой_пользователь%мой_пароль
  • wbinfo -u
  • /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic

все они успешны

Конфигурация аутентификации вsquid.conf(только строки, относящиеся к вопросу):

...
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 16 startup=5 idle=5
...
acl AuthorizedUsers proxy_auth REQUIRED
http_access allow AuthorizedUsers
http_access deny all
...

Я также добавил пользователяпроксикwinbindd_privгруппа (как упоминалось здесь):

gpasswd -a proxy winbindd_priv

После перезапуска Squid появляется диалоговое окно с запросом имени пользователя и пароля в браузере (любом браузере).

Когда я установил

cache_effective_group root 

ntlm_auth работает нормально: нет диалоговых окон с именем пользователя и паролем, имя пользователя получается автоматически и отображается вдоступ.журнал. Авторизация не работает, когда я удаляюкэш_эффективная_группа. Кажется, чтоntlm_authневозможно подключиться к Winbind через привилегированный канал, когда эффективная группане является корнем.

Я попробовал кое-что:

  1. изменить групповое владение/var/run/samba/winbind_privilegedкпрокси
  2. изменить разрешение/var/run/samba/winbind_privilegedразрешить доступ любому пользователю
  3. наборкэш_эффективная_группаявноwinbindd_priv(и проверьте его в списке процессов)
  4. полностью изменить членство в группепроксипользователь дляwinbindd_priv

Ничего не помогло

Помогает только "cache_effective_group root"

Мне не кажется хорошей идеей использовать корневую группу для Squid.

Что еще нужно проверить, чтобы запустить его от имени непривилегированного пользователя?

решение1

Я нашел ответ сам:

Настоящее место для привилегированного канала Winbind —/var/lib/samba/winbindd_privileged(НЕ /var/run/samba/winbind_privileged)

В Джесси он принадлежалкорень:кореньи имеет права:0750

Я сменил владельца:

chown root:winbindd_priv /var/lib/samba/winbindd_privileged/

Теперь все работает нормально без "cache_effective_group"

P.S. Наконец-то в 2014 году сообщили об ошибке :) https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754339это еще не исправлено

решение2

Боролся с проблемой с ntlm auth на Ubuntu 16 с squid 3. Это была моя проблема. Как только я сменил владельца, ntlm auth сразу же заработал.

решение3

Я решил использовать sg наsquid.conf

auth_param ntlm program /usr/bin/sg winbindd_priv -c "/usr/bin/ntlm_auth --diagnostics --helper-protocol=squid-2.5-ntlmssp --require-membership-of=MYDOMAINNAME+WEBGROUPS"

Связанный контент