基本概念LDAP是以樹方式組織的數據庫。每個節點可以有什么值是通過類來定義。LINUX或者其它應用的認證就是來BIND LDAP樹上的節點,如果能夠BIND,就算認證成功。要改變LINUX認證方式,需要讓名字服務NSCD能夠到LDAP查找用戶,這需要nss_ldap.so。得到用戶后,再到LDAP去認證,這需要pam_ldap.so實現。公私鑰:公鑰可以唯一解密私鑰加密過的數據,反之亦然。SSL過程:需要兩對公私鑰(P1,V1),(P2,V2),假設通信雙方是A和B,B是服務器,A要確認和它通信的是B:A->B: helloB->A: 用V2加密過的P1(即用戶證書,A就用P2解密出P1)A->B: okB->A: 用V1加密的一段信息A->B: 用P1加密一個自動生成的K(用之前的P1解密成功這段信息則認為B是可信的了)B->A: 用K加密的數據(之后兩對密鑰功能結束,由K來加解密數據)這里,P2就是第3方的CA證書,由于非對稱加密很慢,所以公私鑰只是用來保證K的傳送安全,之后通信是用K的對稱加密算法來保證。需要安裝的組件Berkeley DB 4.2.52 or later - http://www.sleepycat.com/(僅服務端)NSS_LDAP 2.2.X or PAM_LDAP 1.6.X or later – http://www.padl.com/(僅客戶端)OpenSSL 0.9.7e or later – http://www.openssl.org/OpenLDAP 2.3.XX or later - http://www.openldap.org/(僅服務端)
OpenSSH: http://www.openssh.org/
需要修改的文件 服務器端:/etc/openldap/slapd.conf
客戶端:/etc/ldap.conf
??????/etc/pam.d/system-auth
/etc/sysconfig/authconfig
/etc/nsswitch.conf
/etc/hosts
/etc/ssh/sshd_config
需要重啟的服務 service nscd restart??????? service sshd restart另外,這個文件是LDAP命令使用的,不是系統認證所需:/etc/openldap/ldap.conf開始的時候可以不要SSL認證,只需要注釋掉ldap.conf中start_tls一句即可。另外,SSL要求驗證服務器,所以一定要在/etc/hosts文件里加入服務器完整名字,并與SSL證書中一致。