LINUX.ORG.RU
решено ФорумAdmin

Squid + win2008r2 kerberos authentification: suqid_kerb_auth не хочет видеть keytab


2

1

Пытаюсь настроить в squid авторизацию через Kerberos. Контроллер домена win2008r2, уровень домена win2008r2.

Ubuntu 12.04 Squid 3.1 AppArmor выключен

Получаю keytab на контроллере домена:

ktpass -princ HTTP/webproxy.domain.ru@DOMAIN.RU  -mapuser webproxy_auth@DOMAIN.RU -crypto ALL -pass "******" -ptype KRB5_NT_PRINCIPAL -out HTTP_webproxy.domain.ru.keytab

Копирую на сервер, меняю владельца на proxy:proxy и права на 640, проверяю:

kinit -V -k -t /etc/squid3/HTTP_webproxy.keytab HTTP/webproxy.domain.ru
...
Authenticated to Kerberos v5

/etc/krb5.conf:

[libdefaults]
        default_realm = DOMAIN.RU
        dns_lookup_kdc = yes
        dns_lookup_realm = yes
        default_keytab_name = HTTP_webproxy.domain.ru.keytab
        kdc_timesync = 1
        ticket_lifetime = 24h
        forwardable = true
        proxiable = true

        # for win2008
        default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
        default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
        permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

[realms]
DOMAIN.RU = {
        kdc = dc2.domain.ru
        default_domain = domain.ru
        admin_server = dc2.domain.ru
}

[domain_realm]
        .domain.ru=DOMAIN.RU
        domain.ru=DOMAIN.RU

/etc/samba/smb.conf:

[global]

security = ads
workgroup = DOMAIN
realm = DOMAIN.RU

encrypt passwords = yes
netbios name = %h
server string = %h server (Samba, Ubuntu)
...
dns proxy = no
socket options = TCP_NODELAY


squid.conf:
# GSS_C_NO_NAME = any entry from keytab is allowed
auth_param negotiate program /usr/local/bin/negotiate_wrapper -d --ntlm /usr/bin/ntlm_auth --diagnostics --helper-protocol=squid-2.5-ntlmssp --domain=DOMAIN.RU --kerberos /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME
# maximum number of authenticator processes to spawn
auth_param negotiate children 10
auth_param negotiate keep_alive off

http_access allow AUTH
http_access deny all

/etc/default/squid3(не было - создал):

KRB5_KTNAME=/etc/squid3/HTTP_webproxy.keytab

/etc/init/squid3.conf:

env KRB5_KTNAME="/etc/squid3/HTTP_webproxy.keytab"

/etc/init.d/squid3:

KRB5_KTNAME=/etc/squid3/HTTP_webproxy.keytab
export KRB5_KTNAME

В консоли, где я это проверяю:

export KRB5_KTNAME=/etc/squid3/HTTP_webproxy.keytab

Запускаю squid3 -d -N, в браузере(IE10 на Windows 2008r2) получаю постоянные окошки аутентификации, в cache.log:

squid_kerb_auth: ERROR: gss_accept_sec_context() failed: Unspecified GSS failure.  Minor code may provide more information.
authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_accept_sec_context() failed: Unspecified GSS failure.  Minor code may provide more information.

Делаю su proxy -c 'kinit -V -k -t /etc/squid3/HTTP_webproxy.keytab HTTP/webproxy.domain.ru' - всё начинает работать.

Где я ещё, мать его итить, не указал ему откуда брать keytab? 15-ый час на работе сижу, и только что обнаружил, что оно keytab жрать не хочет, @#$%^&$#!.

★★★

Последнее исправление: selivan (всего исправлений: 1)

мб заменить это

auth_param negotiate program /usr/local/bin/negotiate_wrapper -d --ntlm /usr/bin/ntlm_auth --diagnostics --helper-protocol=squid-2.5-ntlmssp --domain=DOMAIN.RU --kerberos /usr/lib/squid3/squid_kerb_auth -d -i -s GSS_C_NO_NAME
на это
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/webproxy.domain.ru@DOMAIN.RU

menzoberronzan
()
Ответ на: комментарий от menzoberronzan

GSS_C_NO_NAME - специальное значение, позводяющее в качества SPN принимать любые значения из keytab, это тут не влияет. Можно в /usr/lib/squid3/squid_kerb_auth -h посмотреть. Оно и с явно указанным SPN не работает.

На опеннете уже написали, что в /etc/default/squid3.conf надо было не только переменную задать, но и экспортировать. До работы дойду - проверю.

selivan ★★★
() автор топика
Ответ на: комментарий от selivan

Вот так:

/etc/default/squid3.conf:
<code>
KRB5_KTNAME=/etc/squid3/HTTP_webproxy.keytab
export KRB5_KTNAME
</code>

заработало

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