上一篇文章我們已經幫助你快速地建立起單點登陸和企業目錄并運行起來,在這篇文章中,我們將配置一些Linux客戶端和Mac OS X客戶端來利用上個月辛勤勞作的成果,這一次我們不需要研究什么了,但是涉及的面還是很廣的,因此讓我們開始吧!本文涉及到的所有配置文件和腳本文件都在本文結尾資源部分列出的清單中。
這篇文章,我們研究如何連接Gentoo Linux和RedHat企業版Linux(RHEL)v3和v4,但是大多數Linux客戶端都應該差不多使用同樣的配置,只是很少的一部分不同,我們也涉及到了Mac OS X v10.4(aka Tiger)客戶端集成,在后面的文章中,我們將解釋如何配置微軟windows客戶端以使用認證和身份管理系統,因為它依靠配置和安裝Samba程序包。
對于單點登陸,Linux和Tiger客戶端需要一個Kerberos主機keytab文件,我們用創建其他keytab文件相同的方法創建一個,對于這兩種客戶端來說,keytab保存在/etc/krb5.keytab文件中。
Linux客戶端配置
不是所有用戶(特別是遠程筆記本電腦用戶)都想或能夠將他們的機器加入到Kerberos領域中來,除非你完全控制了那些用戶將連接的機器,你需要允許傳統的密碼認證,使用Kerberos可以戰勝在網絡上傳輸密碼的安全問題,只要你知道這是作為一個系統管理和預防限制它的使用,沒有比你選擇不使用Kerberos的情況更糟糕的,Kerberos比傳統的機制(如使用/etc/passwd、NIS或LDAP)存儲密碼更有優勢,這樣比起傳統的機制來說更容易實施密碼規則,存儲在Kerberos數據庫中的密碼會更安全,確保閱讀了Alf Wachsmann關于啟用Kerberos PAM認證的文章“Centralized Authentication with Kerberos 5, Part I”,文章鏈接參見本文后面的資源列表。
在Craig Swanson和Matt Lung的文章“OpenLDAP Everywhere”中,作者簡略談到了/etc/nsswitch.conf、/etc/ldap.conf和/etc/openldap/ldap.conf,我們將從速度和安全出發調整這些文件。首先,讓我們先查看/etc/openldap/ldap.conf,這個文件定義了OpenLDAP命令行工具的默認設置,如ldapadd和ldapserach,我們的/etc/openldap/ldap.conf文件看起來象列表1。
列表1 /etc/openldap/ldap.conf
BASE "o=ci,dc=example,dc=com"
URI ldaps://ldap.example.com ldaps://kdc.example.com
TLS_CACERTDIR /etc/ssl/certs
TLS_REQCERT allow
更多的選項和信息請參考ldap.conf(5),因為在/etc/openldap/ldap.conf文件中無法指定使用StartTLS,我們必須明確地使用一個ldaps:// URl,現在我們可以簡單地使用ldapsearch,它默認使用SASL認證,然后參考/etc/openldap/ldap.conf默認主機和base。
我們現在名稱服務轉換(NSS)上工作得很好,確保nss_ldap軟件包已經安裝,同時,注意這個包的舊版本不能處理某些服務如netgroups的LDAP存儲,因此盡量使用最新的版本,首先通過編輯/etc/ldap.conf來配置nss_ldap包,這個文件不同于/etc/openldap/ldap.conf,它只為OpenLDAP工具設置,而/etc/ldap.conf文件為nss_ldap的配置文件,列表2展示了/etc/ldap.conf的樣子:
列表2 /etc/ldap.conf
host ldap.example.com kdc.example.com
base o=ci,dc=example,dc=com
ssl start_tls
tls_checkpeer no
tls_cacertfile /etc/ssl/certs/ci-cert.pem
nss_base_passwd ou=people,o=ci,dc=example,dc=com
nss_base_group ou=group,o=ci,dc=example,dc=com
nss_base_hosts ou=hosts,o=ci,dc=example,dc=com
nss_base_services ou=services,o=ci,dc=example,dc=com
nss_base_netgroup ou=netgroups,o=ci,dc=example,dc=com
讓我們看看這些不同的行是做什么的,因為這個文件沒有幫助記錄,最前面的兩行定義了LDAP服務器的節點和查詢的基準,接下來的三行解釋如何啟動TLS連接,正如你看到的,nss_ldap知道StartTLS,因此我們這個那個方法來啟動一個TLS連接,最后一行描述了從多個nsswitch控制屬性進行檢索的基準,因為性能原因我設置了這些選項,如果我們所有的用戶名都在這顆樹的分支下,那我們在用用戶名進行檢索時就不需要檢索整個目錄了,例如:nss_base_passwd指出了傳統的用/etc/passwd進行檢索的基準,無論如何,如果你將用戶名存儲在多個分支下的話,你可以使用這個選項,許多其他的選項也可以在這個文件中定義,為了一探這些選項,請你自行閱讀nss_ldap程序包中的ldap.conf樣本文件。
確認你在/etc/ssl/certs有CA證書,并運行c_rehash,這個進程是任何想要通過SSL連接到LDAP服務器的機器需要的。
接下來,編輯/etc/nsswitch.conf指定在LDAP中需要的信息,不要為主機將ldap作為第一個條目,如果你這樣做了,你將不能解析LDAP服務器的主機名,如果你添加了一個用戶到本地的/etc/passwd或/etc/shadow,你不想使用LDAP提供的服務,那么請移除它或注釋掉它,然后在測試工作是否正常:
# getent passwd leggett
leggett:x:1001:100:Ti Leggett:/home/leggett:/bin/bash
# id leggett
uid=1001(leggett) gid=100(users)
如果這兩個目錄都工作正常,你就準備好了,部分程序需要重新啟動以便重新組織一下/etc/nsswitch.conf中的改變,OpenSSH就是其中之一,因此重新啟動sshd然后嘗試登陸。
迄今為止,我們已經完成的事情引導我們啟用了Gentoo和RHEL客戶端,還是讓我們一起回顧一下用到的東西。
下面的文件是Kerberos認證需要的:
/etc/krb5.conf
/etc/krb5.keytab
/etc/pam.d/system-auth
下面的文件定義了OpenLDAP帳號管理
/etc/openldap/ldap.conf
/etc/ldap.conf
/etc/nsswitch.conf
/etc/ssl/certs/ci-cert.pem (Gentoo)
/usr/share/ssl/certs/ci-cert.pem (RHEL)
寫本文的時候,這里有一個對于RHEL4的警告,當你在/etc/ldap.conf中用主機名替代ip地址的話會引發一個Bug,因此用LDAP在/etc/nsswitch.conf中為主機數據庫作一個檢查,并使用DHCP獲取客戶端ip地址,如果你注意到dhcp客戶端引起了一個網絡設備故障,請在/etc/ldap.conf中將主機名改為ip地址。
在Gentoo和RHEL4下為sshd配置單點登陸是一件很容易的事情,你需要確保下面的選項都在/etc/ssh/sshd_confif中:
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
共4頁: 1 [2] [3] [4] 下一頁 | ||||||
|