Здравствуйте все.уже вторую неделю бъюсь над решением такой вот связки.
За основу взяты 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.LOCALValid 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:00Kerberos 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
)Результат тот же.
Подскажите куда копать дальше.
Те, кто уже пробовал сделать такую связку, наверняка знают, что можно привести еще кучу дополнительной отладочной информации. Но не хочу засорять форум. Поэтому предоставлю все, что надо только по запросам.
Та же самая проблема с KDC has no support for encryption type while getting initial credentials. Только сервер W2003 R2. Не подхватывает keytab'ы с любым методом шифрования. Аутенфикацию через пользователя проходит без проблем...
не факт, что линуксовая версия кербероса поддерживает rc4, это зависит от версии kerberos.
так же не факт, что виндоусовая версия понимает aes, поэтому для начала обкатайте все на
des-cbc-md5, например
Надеюсь, что правильно сделал, но все-равно не помогло:[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
>[оверквотинг удален]
>[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
>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.LOCALValid 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:59Kerberos 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
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@REALM3. возможные пути выхода из ситуации:
- раскопать какие виды шифрации в керберос доступны в win2008
- докатить линуксовый керберос до 1.7 или 1.8 , там по крайней мере есть rc4и последнее - надеюсь, что на юниксе и винде часы синхронизированы.
>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Ок. проверю.
>и последнее - надеюсь, что на юниксе и винде часы синхронизированы.
Конечно, и ДНС тоже работает :-)
В любом случае - спасибо за совет!
>>3. возможные пути выхода из ситуации:
>>- раскопать какие виды шифрации в керберос доступны в win2008
>>- докатить линуксовый керберос до 1.7 или 1.8 , там по крайней
>>мере есть rc4
>
>Ок. проверю.Проверил: собрал 1.8. Проблема осталась прежней.
>>>3. возможные пути выхода из ситуации:
>>>- раскопать какие виды шифрации в керберос доступны в win2008
>>>- докатить линуксовый керберос до 1.7 или 1.8 , там по крайней
>>>мере есть rc4
>>
>>Ок. проверю.
>
>Проверил: собрал 1.8. Проблема осталась прежней.в смысле с rc4 ?
>>Проверил: собрал 1.8. Проблема осталась прежней.
>
>в смысле с rc4 ?с ArcFour with HMAC/md5.
Проблема вообще-то говоря решилась, но была не в версии MIT Kerberos.
В процессе поиска правильной конфигурации, получилось несколько пользователей с одинаковыми UserPrincipalName. После удаления всех UserPrincipalName и заново созданного кейтаба, все заработало даже с родной версией MIT Kerberos (1.6) CentOS.
До конца недели надеюсь проверить работоспособную конструкцию, и тогда уже полностью отписать конфигурацию и возникшие проблемы.
Спасибо за поддержку.
>[оверквотинг удален]
>>
>>в смысле с rc4 ?
> с ArcFour with HMAC/md5.
> Проблема вообще-то говоря решилась, но была не в версии MIT Kerberos.
> В процессе поиска правильной конфигурации, получилось несколько пользователей с одинаковыми
> UserPrincipalName. После удаления всех UserPrincipalName и заново созданного кейтаба,
> все заработало даже с родной версией MIT Kerberos (1.6) CentOS.
> До конца недели надеюсь проверить работоспособную конструкцию, и тогда уже полностью отписать
> конфигурацию и возникшие проблемы.
> Спасибо за поддержку.Ну как дела? Отпишись обещанными проблемами и конфигурациями ))
[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
Интересный вопрос:
вот по вот этому мануалу http://serverfault.com/questions/66556/getting-squid-to-auth... необходимо в настройках браузера указывать FQDN прокси. IP - не подходит. Проверил - действительно так.
А есть этому какое-либо объяснение?
Либо по-другому: а можно-ли обойти это ограничение?
> Интересный вопрос:
> вот по вот этому мануалу http://serverfault.com/questions/66556/getting-squid-to-auth...
> необходимо в настройках браузера указывать FQDN прокси. IP - не подходит.
> Проверил - действительно так.
> А есть этому какое-либо объяснение?
> Либо по-другому: а можно-ли обойти это ограничение?Ограничение не обойти. Kerberos не работает без DNS.