LINUX.ORG.RU
ФорумAdmin

В squid не работает ntlm авторизация

 , , ,


0

2

Имеется:

Схема: контроллер домена - win 2008 standart шлюз, dns, squid - debian 8 (без samba и она тут вовсе не нужна) клиент - win машина в домене, но могут быть и не в домене

Цель - на уровне домена добавлять юзеров в три-четыре специальные группы, и исходя из этого они будут или не будут получать доступ в интернет.

Способ - прозрачный прокси (squid), negotiate_wrapper_auth, ldap_utils...

Ситуация: по многочисленным мануалам настроил, мануалы вообще простые и не отличаются друг от друга практически, только некоторые староваты и пришлось погуглить и изменить некоторые названия (например ntlm_auth уже был заменен на ntlm_smb_lm_auth...). В cache.log сквида получаю вот такое: 2017/01/09 00:08:29| negotiate_wrapper: Got 'YR TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAAAoAAAADw==' from squid (length: 59).
2017/01/09 00:08:29| negotiate_wrapper: Decode 'TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAAAoAAAADw==' (decoded length: 40).
2017/01/09 00:08:29| negotiate_wrapper: received type 1 NTLM token
ntlm_smb_lm_auth.cc(482): pid=51375 :managing request
ntlm_smb_lm_auth.cc(488): pid=51375 :ntlm authenticator. Got 'YR TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKAAAoAAAADw==' from Squid
ntlm_smb_lm_auth.cc(438): pid=51375 :obtain_challenge: selecting MYDOMAIN.RU\PDC (attempt #1)
ntlm_smb_lm_auth.cc(450): pid=51375 :attempting challenge retrieval
ntlm_smb_lm_auth.cc(154): pid=51375 :Connecting to server PDC domain MYDOMAIN.RU
ntlm_smb_lm_auth.cc(452): pid=51375 :make_challenge retuned 0x7f437af564c0
ntlm_smb_lm_auth.cc(454): pid=51375 :Got it
ntlm_smb_lm_auth.cc(623): pid=51375 :sending 'TT TlRMTVNTUAACAAAADQANACgAAACCgkEA8Fh11XiaEP4AAAAAAAAAAExBTi4xMi5PUkcuUlU=' to squid
2017/01/09 00:08:29| negotiate_wrapper: Return 'TT TlRMTVNTUAACAAAADQANACgAAACCgkEA8Fh11XiaEP4AAAAAAAAAAExBTi4xMi5PUkcuUlU=
'
IE, ни секунды не раздумывая, говорит «Не удалось отобразить страницу», при этом пароль не запрашивая, т.е. отсылает его сам.

Уже даже не знаю что именно гуглить, помогите, кто чем может, пожалуйста.

Конфиг squid:

auth_param negotiate program /usr/lib/squid3/negotiate_wrapper_auth -d --ntlm /usr/lib/squid3/ntlm_smb_lm_auth -d -b MYDOMAIN.RU\pdc --kerberos /usr/lib/squid3/negotiate_kerberos_auth -d -s HTTP/gateway.MYDOMAIN.RU
auth_param negotiate children 10
auth_param negotiate keep_alive on

auth_param ntlm program /usr/lib/squid3/ntlm_smb_lm_auth -d -b MYDOMAIN.RU\pdc
auth_param ntlm children 10
auth_param ntlm keep_alive on

####### provide access via ldap for clients not authenticated via kerberos
auth_param basic program /usr/lib/squid3/basic_ldap_auth -R \
-b «dc=MYDOMAIN,dc=ru» \
-D sso@MYDOMAIN.RU \
-w «PASSWORD» \
-f sAMAccountName=%s \
-h pdc.MYDOMAIN.RU
auth_param basic children 10
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 1 minute
####### ldap authorizations

# restricted proxy access logged
external_acl_type internet_users %LOGIN /usr/lib/squid3/ext_ldap_group_acl -R -K \
-b «dc=MYDOMAIN,dc=ru» \
-D sso@MYDOMAIN.RU \
-w «PASSWORD» \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users,ou=Domain Groups,dc=MYDOMAIN,dc=ru))" \
-h pdc.MYDOMAIN.RU
# full proxy access no logging
external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/ext_ldap_group_acl -R -K \
-b «dc=MYDOMAIN,dc=ru» \
-D sso@MYDOMAIN.RU \
-w «PASSWORD» \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full NoLog,ou=Domain Groups,dc=MYDOMAIN,dc=ru))" \
-h pdc.MYDOMAIN.RU
# full proxy access logged
external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/ext_ldap_group_acl -R -K \
-b «dc=MYDOMAIN,dc=ru» \
-D sso@MYDOMAIN.RU \
-w «PASSWORD» \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full Log,ou=Domain Groups,dc=MYDOMAIN,dc=ru))" \
-h pdc.MYDOMAIN.RU

Ну же!

Ау, народ! Неужели никто ничего не может сказать или посоветовать по моей проблеме?

humbert ()
Ответ на: Ну же! от humbert

Re: Ну же!

сегодня настраивал. также заткнулся. вот это работает: auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp

только надо добавить еще права: usermod -a -G wbpriv squid чтобы согласно документации «Requires access to the directory winbindd_privileged in $LOCKDIR»

OS - centos7 все из коробки (yum install ...)

anonymous ()
Ответ на: Ну же! от humbert

Решил

Спасибо огромное, anonymous, за то, что откликнулся, но, как оказалось, всё у меня было правильно.

Моя проблема была в следующих двух пунктах:

1) машина не знала саму себя по FQDN, т.е. что $ hostname, что $ hostname -f выдавали одно и тоже короткое имя машины, хотя сама машина была ещё и dns сервером и там всё было верно. Кроме того, и domain и search в resolv.conf были и если сказать машине обратиться к самой себе по FQDN, то результат всегда положительный, однако без FQDN в hosts принципал HTTP/FQDN не работал.

2) сам сервер kerberos (Windows 2008 Server x64 R2) был тестовым, поэтому не был обновлен и часовой пояс Yekt был старый и уже после указания FQDN я словил проблему «Key version number for principal in key table is incorrect», которая решилась обновлением часовых поясов kerberos-сервера до корректных.

humbert ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.