URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 89421
[ Назад ]

Исходное сообщение
"Kerberos-squid-Windows 2008 R2"

Отправлено operator , 21-Июл-10 22:22 
Здравствуйте все.

уже вторую неделю бъюсь над решением такой вот связки.

За основу взяты 3 мануала:

http://klaubert.wordpress.com/2008/01/09/squid-kerberos-auth.../
http://serverfault.com/questions/66556/getting-squid-to-auth...
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerb...

Система:
CentOS release 5.3 (Final)
pam_krb5-2.2.14-15
krb5-devel-1.6.1-36.el5_5.4
krb5-libs-1.6.1-36.el5_5.4
krb5-workstation-1.6.1-36.el5_5.4
samba 3.3.8
openldap-2.3.43-12.el5
openldap-devel-2.3.43-12.el5
собственно собраный msktutil-0.3.16.7

Создаю кейтаб:

/opt/msktutil/sbin/msktutil -c -b "CN=COMPUTERS" -s HTTP/suidsrv.test.xxx.local -h squidsrv.test.xxx.local -k /etc/squid/HTTP.keytab --computer-name squidsrv --upn HTTP/suidsrv.test.xxx.local --server dc2k8r2.test.xxx.local --verbose --enctypes 28

Смотрю, что получилось:

[root@squidsrv ~]# klist -ke /etc/squid/HTTP.keytab
Keytab name: FILE:/etc/squid/HTTP.keytab
KVNO Principal
---- --------------------------------------------------------------------------
  19 HOST/squidsrv.test.xxx.local@TEST.XXX.LOCAL (ArcFour with HMAC/md5)
  19 HOST/squidsrv.test.xxx.local@TEST.XXX.LOCAL (AES-128 CTS mode with 96-bit SHA-1 HMAC)
  19 HOST/squidsrv.test.xxx.local@TEST.XXX.LOCAL (AES-256 CTS mode with 96-bit SHA-1 HMAC)
  19 HOST/SQUIDSRV@TEST.XXX.LOCAL (ArcFour with HMAC/md5)
  19 HOST/SQUIDSRV@TEST.XXX.LOCAL (AES-128 CTS mode with 96-bit SHA-1 HMAC)
  19 HOST/SQUIDSRV@TEST.XXX.LOCAL (AES-256 CTS mode with 96-bit SHA-1 HMAC)
  18 HOST/squidsrv.test.xxx.local@TEST.XXX.LOCAL (DES cbc mode with CRC-32)
  18 HOST/squidsrv.test.xxx.local@TEST.XXX.LOCAL (DES cbc mode with RSA-MD5)
  18 HOST/squidsrv.test.xxx.local@TEST.XXX.LOCAL (ArcFour with HMAC/md5)
  18 HOST/SQUIDSRV@TEST.XXX.LOCAL (DES cbc mode with CRC-32)
  18 HOST/SQUIDSRV@TEST.XXX.LOCAL (DES cbc mode with RSA-MD5)
  18 HOST/SQUIDSRV@TEST.XXX.LOCAL (ArcFour with HMAC/md5)

пользователи (не обязательно администратор) могут вполне получать билеты:

[root@squidsrv ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@TEST.XXX.LOCAL

Valid starting     Expires            Service principal
07/21/10 13:40:52  07/21/10 23:38:37  krbtgt/TEST.XXX.LOCAL@TEST.XXX.LOCAL
        renew until 07/22/10 13:40:52
07/21/10 15:30:57  07/21/10 23:38:37  ldap/dc2k8r2.test.xxx.local@
        renew until 07/22/10 13:40:52
07/21/10 15:30:57  07/21/10 15:32:57  kadmin/changepw@TEST.XXX.LOCAL
        renew until 07/21/10 15:32:57
07/21/10 15:32:58  07/21/10 15:34:58  kadmin/changepw@TEST.XXX.LOCAL
        renew until 07/21/10 15:34:58
07/21/10 15:36:00  07/21/10 15:38:00  kadmin/changepw@TEST.XXX.LOCAL
        renew until 07/21/10 15:38:00

Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached

Проверка тикета:

[root@squidsrv ~]# kinit -V -t /etc/squid/squid.test.xxx.local.keytab -k  HTTP/squidsrv.test.xxx.local
kinit(v5): KDC has no support for encryption type while getting initial credentials

пробовал на котроллере домена создавать тикет и переносить его на Линукс:

C:\Users\Administrator>ktpass -princ HTTP/squidsrv.test.xxx.local@TEST.XXX.LOCAL
-mapuser squid@test.xxx.local -crypto rc4-hmac-nt -ptype KRB5_NT_PRINCIPAL -pas
s "password" -out squid.test.xxx.local.keytab
Targeting domain controller: DC2K8R2.test.xxx.local
Using legacy password setting method
Successfully mapped HTTP/squidsrv.test.xxx.local to squid.
Key created.
Output keytab to squid.test.xxx.local.keytab:
Keytab version: 0x502
keysize 78 HTTP/squidsrv.test.xxx.local@TEST.XXX.LOCAL ptype 1 (KRB5_NT_PRINCIPA
L) vno 11 etype 0x17 (RC4-HMAC) keylength 16 (0x24fb991d018d54e9c1419e1fe7b62042
)

Результат тот же.

Подскажите куда копать дальше.
Те, кто уже пробовал сделать такую связку, наверняка знают, что можно привести еще кучу дополнительной отладочной информации. Но не хочу засорять форум. Поэтому предоставлю все, что надо только по запросам.


Содержание

Сообщения в этом обсуждении
"Kerberos-squid-Windows 2008 R2"
Отправлено gfh , 22-Июл-10 10:48 
Та же самая проблема с KDC has no support for encryption type while getting initial credentials. Только сервер W2003 R2. Не подхватывает keytab'ы с любым методом шифрования. Аутенфикацию через пользователя проходит без проблем...

"Kerberos-squid-Windows 2008 R2"
Отправлено Z0termaNN , 22-Июл-10 17:36 
не факт, что линуксовая версия кербероса поддерживает rc4, это зависит от версии kerberos.
так же не факт, что виндоусовая версия понимает aes, поэтому для начала обкатайте все на
des-cbc-md5, например

"Kerberos-squid-Windows 2008 R2"
Отправлено operator , 23-Июл-10 11:12 
Надеюсь, что правильно сделал, но все-равно не помогло:

[root@squidsrv ~]# klist -ke /etc/squid/squid.test.xxx.local.keytab
Keytab name: FILE:/etc/squid/squid.test.xxx.local.keytab
KVNO Principal
---- --------------------------------------------------------------------------
  12 HTTP/squidsrv.test.xxx.local@TEST.XXX.LOCAL (DES cbc mode with RSA-MD5)


[root@squidsrv ~]# kinit -V -t /etc/squid/squid.test.xxx.local.keytab -k  HTTP/squidsrv.test.xxx.local                      
kinit(v5): KDC has no support for encryption type while getting initial credentials


"Kerberos-squid-Windows 2008 R2"
Отправлено Z0termaNN , 23-Июл-10 14:28 
>[оверквотинг удален]
>[root@squidsrv ~]# klist -ke /etc/squid/squid.test.xxx.local.keytab
>Keytab name: FILE:/etc/squid/squid.test.xxx.local.keytab
>KVNO Principal
>---- --------------------------------------------------------------------------
>  12 HTTP/squidsrv.test.xxx.local@TEST.XXX.LOCAL (DES cbc mode with RSA-MD5)
>
>
>[root@squidsrv ~]# kinit -V -t /etc/squid/squid.test.xxx.local.keytab -k  HTTP/squidsrv.test.xxx.local
>kinit(v5): KDC has no support for encryption type while getting initial credentials
>

kdc не распознает encryption type, поэтому

1. удаляем принципал в виндоусовой базе
2. пересоздаем его еще раз с enctype des-cbc-md5 (т.к. с centos5 используется mit krb 1.6.1, то там нет ENCTYPE_ARCFOUR_* )
3. копируем все это на линукс.
4. правим /etc/krb5.conf в плане default_tgs_enctypes и default_tkt_enctypes


"Kerberos-squid-Windows 2008 R2"
Отправлено operator , 23-Июл-10 16:26 
>1. удаляем принципал в виндоусовой базе

по вот этой статье http://technet.microsoft.com/ru-ru/library/cc794768(WS.10).aspx удалены Service Principal Name у машины squidsrv и пользователя squid

>2. пересоздаем его еще раз с enctype des-cbc-md5 (т.к. с centos5 используется
>mit krb 1.6.1, то там нет ENCTYPE_ARCFOUR_* )

C:\Users\Administrator>ktpass -princ HTTP/squidsrv.test.xxx.local@TEST.XXX.LOCAL
-mapuser squid@test.xxx.local -crypto des-cbc-md5 -ptype KRB5_NT_PRINCIPAL -pas
s "passwd" -out squid.test.xxx.local.keytab
Targeting domain controller: DC2K8R2.test.xxx.local
Using legacy password setting method
Successfully mapped HTTP/squidsrv.test.xxx.local to squid.
Key created.
Output keytab to squid.test.xxx.local.keytab:
Keytab version: 0x502
keysize 70 HTTP/squidsrv.test.xxx.local@TEST.XXX.LOCAL ptype 1 (KRB5_NT_PRINCIPA
L) vno 13 etype 0x3 (DES-CBC-MD5) keylength 8 (0x2faef498946dd075)

>3. копируем все это на линукс.
>4. правим /etc/krb5.conf в плане default_tgs_enctypes и default_tkt_enctypes

[root@squidsrv ~]# cat /etc/krb5.conf | grep enctypes
default_tgs_enctypes = des-cbc-md5
default_tkt_enctypes = des-cbc-md5

[root@squidsrv ~]# kdestroy
[root@squidsrv ~]# kinit Administrator
Password for Administrator@TEST.XXX.LOCAL:
[root@squidsrv ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@TEST.XXX.LOCAL

Valid starting     Expires            Service principal
07/23/10 14:18:59  07/24/10 00:16:38  krbtgt/TEST.XXX.LOCAL@TEST.XXX.LOCAL
        renew until 07/24/10 14:18:59

Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
[root@squidsrv ~]# klist -ke -t /etc/squid/squid.test.xxx.local.keytab
Keytab name: FILE:/etc/squid/squid.test.xxx.local.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
  13 01/01/70 01:00:00 HTTP/squidsrv.test.xxx.local@TEST.XXX.LOCAL (DES cbc mode with RSA-MD5)
[root@squidsrv ~]# kinit -V -t /etc/squid/squid.test.ssg.local.keytab -k HTTP/squidsrv.test.ssg.local
kinit(v5): KDC has no support for encryption type while getting initial credentials


"Kerberos-squid-Windows 2008 R2"
Отправлено Z0termaNN , 23-Июл-10 17:05 
1. не сразу обратил внимание, что проблемы с win2008, скорее всего удалили из него весь
   des,
2. очень мог бы помочь лог kdc, не знаю возможно ли его на винде получить.
записи типа :
>Jul 23 16:22:01 kappa krb5kdc[3254](info): AS_REQ (7 etypes {18 17 16 23 1 3 2}) >172.21.100.111: ISSUE: authtime 1279887721, etypes {rep=18 tkt=18 ses=18}, >ldap/gsx.domain.com@REALM for krbtgt/REALM@REALM

3. возможные пути выхода из ситуации:
- раскопать какие виды шифрации в керберос доступны в win2008
- докатить линуксовый керберос до 1.7 или 1.8 , там по крайней мере есть rc4

и последнее - надеюсь, что на юниксе и винде часы синхронизированы.



"Kerberos-squid-Windows 2008 R2"
Отправлено operator , 23-Июл-10 17:43 
>1. не сразу обратил внимание, что проблемы с win2008, скорее всего удалили
>из него весь
>   des,

Точно не могу сказать, но по-моему я натыкался на статьи, где говорилось, что в 2008R2 он стандартно отключен. Его возмжно где-то включить, но майкрософт сильно не рекомендует это делать. (типа недостаточно надежный)

>2. очень мог бы помочь лог kdc, не знаю возможно ли его
>на винде получить.
>записи типа :
>>Jul 23 16:22:01 kappa krb5kdc[3254](info): AS_REQ (7 etypes {18 17 16 23 1 3 2}) >172.21.100.111: ISSUE: authtime 1279887721, etypes {rep=18 tkt=18 ses=18}, >ldap/gsx.domain.com@REALM for krbtgt/REALM@REALM

Тоже не в курсе. Кстати вопрос: у меня прописаны пути к логам, но Керберос туда нчего не пишет. (Точнее сказать файлов даже нет).
Как добиться, что бы туда что-то падало?
Как альтернативый совет уже получил внедрение wireshark или еще какого-нибудь сниффера, что бы понять, что же происходит...

>3. возможные пути выхода из ситуации:
>- раскопать какие виды шифрации в керберос доступны в win2008
>- докатить линуксовый керберос до 1.7 или 1.8 , там по крайней
>мере есть rc4

Ок. проверю.

>и последнее - надеюсь, что на юниксе и винде часы синхронизированы.

Конечно, и ДНС тоже работает :-)
В любом случае - спасибо за совет!


"Kerberos-squid-Windows 2008 R2"
Отправлено operator , 30-Июл-10 10:01 
>>3. возможные пути выхода из ситуации:
>>- раскопать какие виды шифрации в керберос доступны в win2008
>>- докатить линуксовый керберос до 1.7 или 1.8 , там по крайней
>>мере есть rc4
>
>Ок. проверю.

Проверил: собрал 1.8. Проблема осталась прежней.


"Kerberos-squid-Windows 2008 R2"
Отправлено Z0termaNN , 04-Авг-10 10:22 
>>>3. возможные пути выхода из ситуации:
>>>- раскопать какие виды шифрации в керберос доступны в win2008
>>>- докатить линуксовый керберос до 1.7 или 1.8 , там по крайней
>>>мере есть rc4
>>
>>Ок. проверю.
>
>Проверил: собрал 1.8. Проблема осталась прежней.

в смысле с rc4 ?


"Kerberos-squid-Windows 2008 R2"
Отправлено operator , 04-Авг-10 21:20 
>>Проверил: собрал 1.8. Проблема осталась прежней.
>
>в смысле с rc4 ?

с ArcFour with HMAC/md5.
Проблема вообще-то говоря решилась, но была не в версии MIT Kerberos.
В процессе поиска правильной конфигурации, получилось несколько пользователей с одинаковыми UserPrincipalName. После удаления всех UserPrincipalName и заново созданного кейтаба, все заработало даже с родной версией MIT Kerberos (1.6) CentOS.
До конца недели надеюсь проверить работоспособную конструкцию, и тогда уже полностью отписать конфигурацию и возникшие проблемы.
Спасибо за поддержку.


"Kerberos-squid-Windows 2008 R2"
Отправлено Mc.Sim , 09-Ноя-11 12:35 
>[оверквотинг удален]
>>
>>в смысле с rc4 ?
> с ArcFour with HMAC/md5.
> Проблема вообще-то говоря решилась, но была не в версии MIT Kerberos.
> В процессе поиска правильной конфигурации, получилось несколько пользователей с одинаковыми
> UserPrincipalName. После удаления всех UserPrincipalName и заново созданного кейтаба,
> все заработало даже с родной версией MIT Kerberos (1.6) CentOS.
> До конца недели надеюсь проверить работоспособную конструкцию, и тогда уже полностью отписать
> конфигурацию и возникшие проблемы.
> Спасибо за поддержку.

Ну как дела? Отпишись обещанными проблемами и конфигурациями ))


"Kerberos-squid-Windows 2008 R2"
Отправлено Аноним , 31-Дек-15 01:44 
[libdefaults]
      default_realm = WIN2003R2.HOME
      dns_lookup_kdc = no
      dns_lookup_realm = no
      default_keytab_name = /etc/krb5.keytab
; for Windows 2003
      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

; for Windows 2008 with AES
;      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
;
; for MIT/Heimdal kdc no need to restrict encryption type

[realms]
      WIN2003R2.HOME = {
              kdc = w2k3r2.win2003r2.home
              admin_server = w2k3r2.win2003r2.home
      }

[domain_realm]
      .linux.home = WIN2003R2.HOME
      .win2003r2.home = WIN2003R2.HOME
      win2003r2.home = WIN2003R2.HOME

[logging]
  kdc = FILE:/var/log/kdc.log
  admin_server = FILE:/var/log/kadmin.log
  default = FILE:/var/log/krb5lib.log


"Kerberos-squid-Windows 2008 R2"
Отправлено operator , 06-Авг-10 10:29 
Интересный вопрос:
вот по вот этому мануалу http://serverfault.com/questions/66556/getting-squid-to-auth... необходимо в настройках браузера указывать FQDN прокси. IP - не подходит. Проверил - действительно так.
А есть этому какое-либо объяснение?
Либо по-другому: а можно-ли обойти это ограничение?

"Kerberos-squid-Windows 2008 R2"
Отправлено Mc.Sim , 24-Апр-13 20:07 
> Интересный вопрос:
> вот по вот этому мануалу http://serverfault.com/questions/66556/getting-squid-to-auth...
> необходимо в настройках браузера указывать FQDN прокси. IP - не подходит.
> Проверил - действительно так.
> А есть этому какое-либо объяснение?
> Либо по-другому: а можно-ли обойти это ограничение?

Ограничение не обойти. Kerberos не работает без DNS.