LINUX.ORG.RU
ФорумAdmin

squid kerberos

 ,


0

1

Не работает аутентификация на kerberos в squid. В лог сыпется:

2013/02/09 20:50:55| squid_kerb_auth: parseNegTokenInit failed with rc=102
2013/02/09 20:50:55| squid_kerb_auth: gss_acquire_cred() failed: Unspecified GSS failure.  Minor code may provide more information. Key table entry not found
auth в squid.conf:
auth_param negotiate program /usr/lib/squid/squid_kerb_auth -d -s HTTP/squid.domain.loc@DOMAIN.LOC
auth_param negotiate children 100
auth_param negotiate keep_alive on
krb5.conf:
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
[libdefaults]
 default_realm = DOMAIN.LOC
 dns_lookup_realm = no
 dns_lookup_kdc = no
 kdc_timesync = 1
 ticket_lifetime = 24h
 forwardable = true
 proxiable = true
 default_keytab_name = /etc/squid/squid.keytab
 default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
 default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
 permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
[realms]
 DOMAIN.LOC = {
  kdc = wk8r2.domain.loc
  admin_server = wk8r2.domain.loc
  default_domain = domain.loc
 }
[domain_realm]
.domain.loc = DOMAIN.LOC
domain.loc = DOMAIN.LOC
Проверка:
# squid -v
Squid Cache: Version 2.7.STABLE7
configure options:  '--prefix=/usr' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--sysconfdir=/etc/squid' '--localstatedir=/var/spool/squid' '--datadir=/usr/share/squid' '--enable-async-io' '--with-pthreads' '--enable-storeio=ufs,aufs,coss,diskd,null' '--enable-linux-netfilter' '--enable-arp-acl' '--enable-epoll' '--enable-removal-policies=lru,heap' '--enable-snmp' '--enable-delay-pools' '--enable-htcp' '--enable-cache-digests' '--enable-underscores' '--enable-referer-log' '--enable-useragent-log' '--enable-auth=basic,digest,ntlm,negotiate' '--enable-negotiate-auth-helpers=squid_kerb_auth' '--enable-carp' '--enable-follow-x-forwarded-for' '--with-large-files' '--with-maxfd=65536' 'amd64-debian-linux' 'build_alias=amd64-debian-linux' 'host_alias=amd64-debian-linux' 'target_alias=amd64-debian-linux' 'CFLAGS=-Wall -g -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='

# su -l proxy -c "kinit -V -k -t /etc/squid/squid.keytab HTTP/proxy.domain.loc"
Authenticated to Kerberos v5

# su -l proxy -c "klist"
Ticket cache: FILE:/tmp/krb5cc_13
Default principal: HTTP/proxy.domain.loc@DOMAIN.LOC

Valid starting     Expires            Service principal
02/09/13 21:06:12  02/10/13 07:06:12  krbtgt/DOMAIN.LOC@DOMAIN.LOC
	renew until 02/10/13 07:06:12

# echo $KRB5_KTNAME
/etc/squid/squid.keytab
Server AD 2008R2
Clinet Windows 7, IE 8
Чего ему не хватает?

★★

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

Как генерил keytab в винде?

Прокси запускается от рута, а привелегии сам сбрасывает по cache_effective_*?

Время между DC и проксёй синхронизировано?

На клиентах прокся указывается по доменному имени? Обратная зона на айпи прокси возвращает её имя? Керберос к этой херне чувствителен.

Вот мой текущий рабочий конфиг, винды те же (2008R2, 7, IE8/9, с IE7 имеются проблемы, с 8 может быть тоже, попробуй обновить до 9).

# cat /etc/krb5.conf
[appdefaults]
    pam = {
        debug = false
        alt_auth_map = %s
        force_alt_auth = true
        ticket_lifetime = 24h
        renew_lifetime = 24h
        forwardable = true
    }

[libdefaults]
    default_realm = DOMAIN.RU
    kdc_timesync = 1
    ccache_type = 4
    forwardable = true
    proxiable = true
    ticket_lifetime = 24h
    dns_lookup_realm = false
    dns_lookup_kdc = false
    rdns = false

    default_tgs_enctypes = rc4-hmac
    default_tkt_enctypes = rc4-hmac
    permitted_enctypes = rc4-hmac

[realms]
    DOMAIN.RU = {
        kdc = 10.1.0.9
        kdc = 10.1.0.10
        admin_server = 10.1.0.9
        admin_server = 10.1.0.10
        default_domain = DOMAIN.RU
    }

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

# cat squid.conf
...
auth_param negotiate program /opt/squid/libexec/negotiate_kerberos_auth -r -s HTTP/squid.domain.ru@DOMAIN.RU
auth_param negotiate children 100 startup=10 idle=10
auth_param negotiate keep_alive on
...
blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

Как генерил keytab в винде?

ktpass -princ HTTP/proxy.domain.loc@DOMAIN.LOC -mapuser proxy -crypto rc4-hmac-nt -pass password -ptype KRB5_NT_SRV_HST -out proxy.keytab

Прокси запускается от рута

Пользователь proxy

а привелегии сам сбрасывает по cache_effective_*?

как проверить?

Время между DC и проксёй синхронизировано?

да

На клиентах прокся указывается по доменному имени? Обратная зона на айпи прокси возвращает её имя?

да, все прописано (обратной не было, добавил не помогло)

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

Сквид надо запускать под рутом и указать в конфиге cache_effective_{user,group} и он сам когда надо сбросит привелегии.

Плюс, там вроде как надо групповыми политиками эксплореру эксклюзивно разрешать юзать integrated authentication для прокси, хотя могу путать.

Файрфокс или хром попробуй, они под виндой вроде как тоже умеют доменные реквизиты юзать.

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

Сквид надо запускать под рутом и указать в конфиге cache_effective_{user,group} и он сам когда надо сбросит привелегии.

не понял смысла сия действия, но попробовал, тоже 0.
c cache_effective_{user,group} - не работает ntlm:

authenticateNTLMHandleReply: Error validating user via NTLM. Error returned 'BH NT_STATUS_ACCESS_DENIED'


юзать integrated authentication для прокси

это называется «Разрешить встроенную проверку подлинности Windows» - с этим ok!

Файрфокс

тоже промах

не знаю уже куда и копать... у тебя тоже версия squid 2.7?

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

Нет, у меня самый последний, 3.1 или 3.2, не помню. Но и с твоей версией когдато давно работало насколько я помню. Попробуй возобновиться, мало ли.

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