Пытаюсь настроить в 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
/etc/squid3/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 offhttp_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 часов на работе просидел, пока догадался от имени пользователя proxy klist запустить.