這是一個關于保護企業目錄以及單點登陸的系列文章,共分四部分,本文是第一部分。
如果你想要一個企業目錄,但是還沒有一個企業預算,你想獲得單點登陸的好處,對于你管理維護上和你的用戶使用上都將更加簡便,如果你想所有這些,加上統一的安全認證和身份管理系統,請繼續往下讀,我將引導你到系統管理的天堂,在這一系列的文章中,我將告訴你如果建立、增加新的并讓它們在一起協同工作,從認證服務器到郵件傳遞,到客戶端集成(包括windows和OS X)都將被討論,我們覆蓋的面將非常廣,因此,讓我開始吧!
使用早先建立的信息塊
我們使用MIT Kerberos V 1.4.1版本和OpenLDAP 2.1.30版本運行在Gentoo Linux上,分別將其作為我們的認證和身份管理服務器系統。我假設你有三個服務器:
kdc.example.com、ldap.example.com和mial.example.com。在我們進一步之前,你應該首先閱讀linux journal上文章“Centralized Authentication with Kerberos 5, Part I”和“OpenLDAP Everywhere”,我們建立在這些文章之上,記住我們的Kerberos范圍是ci.example.com,我們的基礎DN是o=ci,dc=example,dc=com。同時,所有本文談到的配置文件在ftp://ftp.ssc.com/pub/lj/listings/issue140/8374.tgz壓縮包里。
建立一個SSL認證機構(CA)
這一小節是可選的閱讀部分,但是強烈建議給有許多服務器的站點使用SSL,每個服務器都可以對自己簽發證書,但是運行你自己的CA會有很多好處,如果你對OpenSSL的細節感興趣,我強烈建議你閱讀這本書《Network Security with OpenSSL》。
我們選擇/etc/ssl/example.com作為存儲所有經過簽名的證書、證書撤銷列表(CRL)和帳戶信息的基礎目錄。一旦這個目錄創建好后,我們將在這個基礎下創建目錄證書、CRL、新證書和私有信息。我們創建一個空文件/etc/ssl/example.com/index.txt,然后再創建一個文件/etc/ssl/example.com/serial:
# touch /etc/ssl/example.com/index.txt
# echo '01' > /etc/ssl/example.com/serial
最后,我們創建CA的OpenSSL配置文件/etc/ssl/example.com/ca-ssl.conf。
要創建一個自我簽名的CA證書,我們必須作為/etc/ssl/example.com目錄及其子目錄的
所有者登陸,它可能是root用戶:
# export OPENSSL_CONF=/etc/ssl/example.com/ca-ssl.cnf
# openssl req -x509 -days 3650 -newkey rsa \
-out /etc/ssl/example.com/ci-cert.pem -outform PEM
# cp /etc/ssl/example.com/ci-cert.pem /etc/ssl/certs
# /usr/bin/c_rehash /etc/ssl/certs
要獲取關于openssl req命令的詳細信息,請查看req(1)的幫助頁面。
將CA密鑰的密語放在一個安全的地方是非常重要的,因為如果CA私鑰被泄露出去的話,所有之前簽名的證書全部都不能再信任了,同時,看守真實的CA機器和對它的安全訪問也是很重要的,你看守的機器安全性如何,與你的真實安全需求吻合嗎,如果未經授權的用戶獲得了物理或網絡訪問權限,他們就可以訪問到CA的私鑰。正如我前面提到的,CA私鑰泄露實際上是泄露了整個信任鏈,使得所有簽名的證書都變成可疑的和不能信任的,建議CA機器只能物理接觸而不能通過網絡訪問,為了在這種環境下簽名證書,你要使用注冊當局(RA)來接收證書簽名請求(CSR),然后傳輸CSR到安全的可移動的介質,再放到CA機器上對CSR簽名,證書再寫回到可移動介質替換掉RA上的,讓終端用戶可疑檢索它。如果你認為你需要這個的話,OpenCA項目就是為這類安全設計的,它還支持存儲簽名的證書到LDAP中。
我們已經為我們的CA創建了一個OpenSSL配置文件,但是它僅僅描述了如何請求和簽名證書,我們還需要創建一個OpenSSL配置文件使用它請求正常的主機和用戶證書:/etc/ssl/example.com/ssl.cnf,客戶端配置比CA更復雜,因為客戶端證書出現了更多的變化。
現在我們已經有一個客戶端配置文件了,讓我們為LDAP服務器生成一個主機證書,可以在一個正常用戶下產生一個CSR:
# export OPENSSL_CONF=/etc/ssl/example.com/ssl.cnf
# openssl req -new -nodes -keyout ldap-key.pem \
-out ldap-req.pem
openssl選項的使用與生成CA CSR一樣,只增加了一個新選項-nodes選項,創建一個不加密的私鑰。
下一步是通過CA對CSR簽名,得到公共證書,需要再一次用root來執行:
# export OPENSSL_CONF=/etc/ssl/example.com/ssl.cnf
# openssl ca -policy policy_anything -out \
ldap-cert.pem -in ldap-req.pem
到現在為止,我們有三個文件:ldap-cert.pem(公共證書)、ldap-key.pem(私鑰)和ldap-req.pem(CSR)。一旦證書被CA簽名CSR將被丟掉,再說一次,保護私鑰非常重要,特別是它沒有加密的時候,它應該歸root所有,并將其權限設置為0400。
共4頁: 1 [2] [3] [4] 下一頁 | ||||||
|