[linux-ileri] 2003 Active Directory-RH 9.0 SingleSignOn

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: omer.uyar@denizbank.com
Date: Wed 26 May 2004 - 17:13:06 EEST


Selamlar,
 

Mailin uzunluğu için şimdiden özür dilerim ama problemi bir kerede detaylı bir şekilde paylaşmak istedim.

 

2003 Active Directory kurulu bir ortama RH 9.0 makinayı SSO için entegre etmeye çalışıyorum. Büyük bir çoğunluğunu hallettim sayılır ama en can alıcı noktasında problem çıktı. Yapmak istediğim User Authentication' ı Kerberos üzerinden yapmak User Information ı LDAP ile çekmek. Bunun için 2003 DC' ye MKSAD4Unix Schema Extensionlarını ve GUI' yi yükledim. 2003 DC de bir user açıp Unix Settings' den ayarlarını yaptıktan sonra RH 9.0' dan 2003 DC de açılan user ile login olabiliyorum.

 

Bu da bana

 

RH9.0' dan pam_krb5 ile Kerberos Authentication yapabildiğimi ve User bilgilerini Active Directory den nss_ldap ile alabildiğimi gösteriyor.

 

Buraya kadar herşey normal ama benim istediğim, Aynı REALM de bulunan Windows XP' ye login olan bir kişinin aldığı Kerberos ticketını forward ederek ssh veya telnet ile RH 9.0' a username ve password girmeden bağlanabilmesi. Bunun için XP üzerinde Microsoft Ticket Store da cachelenmiş ticketları görüp forward edebilen bir programı da ayrıca arıyorum. Hummingbird Connectivity Kerberos Client ve Hummingbird Hostexplorer 9.0 ile bunlar yapılabiliyor. Burada başka bir ürün varsa önerilerinizi de almak isterim.

 

Bunu yapmaya kalktığımda mutual authentication yapılması gerekiyor.

 

            Client hostu kerberosdan kontrol edecek

            Host da clientı kerberos dan authenticate edecek.

 

Clientın hostu authenticate edebilmesi için Kerberos Databasede(Active Directory) hosta ait host/c0134lnx01.sso.test@SSO.TEST diye bir hayıt olması gerekiyor bunun için aşağıdaki işlemleri yapıyorum. (bunlar Microsoft ' un Solution Guide for Windows Security and Directory Services for UNIX http://www.microsoft.com/downloads/details.aspx?FamilyId=144F7B82-65CF-4105-B60C-44515299797D&displaylang=en dökümanını takip ederek aşağıdaki işlemleri yaptım.

 

 

1-2003 DC de bir user açtım, password verdim, Change password at next logon seçeneğini kaldırdım.

2-2003 DC de ktpass -princ host/c0134lnx01.sso.test@SSO.TEST -mapuser kullanıcı_adı -pass şifre -out keytab.txt komutunu çalıştırdım.

3-RH 9.0' a keytab.txt' yi transfer edip sırasıyla şu komutları çalıştırdım.

            $ ktutil

            ktutil: list

            slot KVNO Principal ---- ---- ---------------------------------------------------------------------

            

            ktutil: rkt keytab.txt

            ktutil: list

            slot KVNO Principal ---- ---- ---------------------------------------------------------------------

   1 3 host/c0134lnx01.sso.test@SSO.TEST

 

ktutil: wkt /etc/krb5.keytab

ktutil: q

 

4-Bunun sonucuda hosta ait keytableri RH 9.0' a aktardığımı düşünüyorum ve bunu da aşağıdaki gibi kontrol ediyorum.

            

            $klist -k

            KVNO Principal ---- --------------------------------------------------------------------------

   3 host/c0134lnx01.sso.test@SSO.TEST

 

Gelelim soruna; (Yapmak istediğimi öncelikle sadece RH 9.0 ' ı kullanarak yapmaya çalıştım. En azından problem çıkma ihtimalini azalttığımı düşünmüştüm :-) )

 

Bahsettiğim şeyi yapabilmek için krb5-workstation paketi ile gelen kerberized telnet client ve kerberized telnet daemonı kullanıyorum. Debug yapmak için /etc/xinetd.d/krb5-telnet dosyasını aşağıdaki hale getirdim.

 

service telnet

{

        flags = REUSE

        socket_type = stream

        wait = no

        user = root

        server = /usr/kerberos/sbin/telnetd

        server_args =-D report

        log_on_failure += USERID

        disable = no

 

Daha sonra sırası ile aşağıdakileri yaptım.

 

1- XP' den SSH ile bağlandım (username omer@SSO.TEST)

2- $omer: klist -f

 

Ticket cache: FILE:/tmp/krb5cc_1003_Ig5161

Default principal: omer@SSO.TEST

 

Valid starting Expires Service principal

05/26/04 16:53:15 05/27/04 02:53:15 krbtgt/SSO.TEST@SSO.TEST

        Flags: IA

----> Flags kısmında F(Forwardable) olması gerekiyor. Bunun için 3 nolu işlemi yapıyorum. Bu da diğer bir problem aslında. Sisteme ilk bağlandığımda aldığım ticketı Forwardable alabilmek.

 

Kerberos 4 ticket cache: /tmp/tkt1003

klist: You have no tickets cached

 

3- $omer: kinit -f (Forwardable ticket almak için)

4- $omer: klist -f

Ticket cache: FILE:/tmp/krb5cc_1003_Ig5161

Default principal: omer@SSO.TEST

 

Valid starting Expires Service principal

05/26/04 16:53:15 05/27/04 02:53:15 krbtgt/SSO.TEST@SSO.TEST

        Flags: FIA

 

---> Flag istediğim hale geldi.

 

Kerberos 4 ticket cache: /tmp/tkt1003

klist: You have no tickets cached

 

5- $omer: telnet -a -f -x c0134lnx01 (Username, password girmeden Kerberos ticketı forward ederek login olmaya çalışıyorum)

 

 

Trying 10.150.5.240...

auth debugging enabled

Connected to c0134lnx01 (10.150.5.240).

Escape character is '^]'.

>>>TELNET: I support auth type 2 6

>>>TELNET: I support auth type 2 2

>>>TELNET: I support auth type 2 0

>>>TELNET: I support auth type 1 2

>>>TELNET: I support auth type 1 0

Waiting for encryption to be negotiated...

>>>TELNET: auth_send got: 02 06 02 02 02 00

>>>TELNET: He supports 2

>>>TELNET: Trying 2 6

telnet: Kerberos V5: failure on credentials(Server not found in Kerberos database)

>>>TELNET: He supports 2

>>>TELNET: Trying 2 2

telnet: Kerberos V5: failure on credentials(Server not found in Kerberos database)

>>>TELNET: He supports 2

>>>TELNET: Trying 2 0

telnet: Kerberos V5: failure on credentials(Server not found in Kerberos database)

>>>TELNET: Sent failure message

td: send do AUTHENTICATION

td: ttloop

td: netflush 43 chars

td: ttloop read 33 chars

td: recv will AUTHENTICATION

td: send suboption AUTHENTICATION SEND KERBEROS_V5 CLIENT|MUTUAL|ENCRYPTKERBEROS_V5 CLIENT|MUTUAL|ENCRYPTKERBEROS_V5 CLIENT|ONE-WAY|ENCRYPT

td: recv do ENCRYPT

td: send will ENCRYPT

td: recv will ENCRYPT

td: send do ENCRYPT

td: send suboption ENCRYPT SUPPORT DES_CFB64 DES_OFB64

td: recv do SUPPRESS GO AHEAD

td: send will SUPPRESS GO AHEAD

td: recv will TERMINAL TYPE

td: send do TERMINAL TYPE

td: recv will NAWS

td: send do NAWS

td: recv will TSPEED

td: send do TSPEED

td: recv will LFLOW

 

Authentication negotation has failed, which is required for

encryption. Good bye.

td: send do LFLOW

td: recv will LINEMODE

td: send dont LINEMODE

td: recv will NEW-ENVIRON

td: send do NEW-ENVIRON

td: recv do STATUS

td: send will STATUS

td: ttloop

td: netflush 786 chars

 

Görüldüğü üzere "telnet: Kerberos V5: failure on credentials(Server not found in Kerberos database)" hatası alıyorum. Internet üzerinden araştırdım. Bulduğum örnekleri inceledim. Ve daha öteye gidemedim. Yardımlarınız için şimdiden teşekkür ederim.

 

 

/etc/krb5.conf içeriği

 

[logging]

 default = FILE:/var/log/krb5libs.log

 kdc = FILE:/var/log/krb5kdc.log

 admin_server = FILE:/var/log/kadmind.log

 

[libdefaults]

 ticket_lifetime = 24000

 default_realm = SSO.TEST

 dns_lookup_realm = false

 dns_lookup_kdc = false

 default_tkt_enctypes = des-cbc-md5 ; or des-cbc-crc

 default_tgs_enctypes = des-cbc-md5 ; or des-cbc-crc

 

[realms]

 

 SSO.TEST = {

  kdc = SSOTEST1.SSO.TEST:88

  default_domain = SSO.TEST

 }

 

[domain_realm]

   .sso.test=SSO.TEST

   sso.test=SSO.TEST

[kdc]

 

 profile = /var/kerberos/krb5kdc/kdc.conf

 

[appdefaults]

 pam = {

   debug = false

   ticket_lifetime = 36000

   renew_lifetime = 36000

   forwardable = true

   krb4_convert = false

 }

 

 telnet = {

        forward = true

 }

 

 

/etc/ldap.conf içeriği

 

host ssotest1.sso.test

base dc=SSO,dc=TEST

ldap_version 3

binddn cn=ldapsearch,cn=Users,dc=sso,dc=test

bindpw xxx

nss_map_objectclass posixAccount User

nss_map_attribute uid sAMAccountName

nss_map_attribute uniqueMember Member

nss_map_attribute homeDirectory msSFUHomeDirectory

nss_map_objectclass posixGroup Group

pam_login_attribute sAMAccountName

pam_filter objectclass=User

pam_password crypt

ssl no

 


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.