OpenLDAP介绍和安装
LADP
1、目錄服務
目錄是一個為查詢、瀏覽和搜索而優化的專業分布式數據庫,它呈樹狀結構組織數據,就好象Linux/Unix系統中的文件目錄一樣。目錄數據庫和關系數據庫不同,它有優異的讀性能,但寫性能差,并且沒有事務處理、回滾等復雜功能,不適于存儲修改頻繁的數據。所以目錄天生是用來查詢的,就好象它的名字一樣。
目錄服務是由目錄數據庫和一套訪問協議組成的系統。類似以下的信息適合儲存在目錄中:
企業員工信息,如姓名、電話、郵箱等;
公用證書和安全密鑰;
公司的物理設備信息,如服務器,它的IP地址、存放位置、廠商、購買時間等;
LDAP是輕量目錄訪問協議(Lightweight Directory Access Protocol)的縮寫,LDAP是從X.500目錄訪問協議的基礎上發展過來的,目前的版本是v3.0。與LDAP一樣提供類似的目錄服務軟件還有ApacheDS、Active Directory、Red Hat Directory Service 。
2、LDAP特點
LDAP的結構用樹來表示,而不是用表格。正因為這樣,就不能用SQL語句了
LDAP可以很快地得到查詢結果,不過在寫方面,就慢得多
LDAP提供了靜態數據的快速查詢方式
Client/server模型,Server 用于存儲數據,Client提供操作目錄信息樹的工具
這些工具可以將數據庫的內容以文本格式(LDAP 數據交換格式,LDIF)呈現在您的面前
LDAP是一種開放Internet標準,LDAP協議是跨平臺的Interent協議
3、LDAP主要的簡稱含義:
o– organization(組織-公司)
ou – organization unit(組織單元-部門)
c – countryName(國家)
dc – domainComponent(域名)
sn – suer name(真實名稱)
cn – common name(常用名稱)
OpenLDAP介紹
OpenLDAP 是一款輕量級目錄訪問協議(Lightweight Directory Access Protocol,LDAP),屬于開源集中賬號管理架構的實現,且支持眾多系統版本,被廣大互聯網公司所采用。
LDAP 具有兩個國家標準,分別是X.500 和LDAP。OpenLDAP 是基于X.500 標準的,而且去除了X.500 復雜的功能并且可以根據自我需求定制額外擴展功能,但與X.500 也有不同之處,例如OpenLDAP 支持TCP/IP 協議等,目前TCP/IP 是Internet 上訪問互聯網的協議。
OpenLDAP 則直接運行在更簡單和更通用的TCP/IP 或其他可靠的傳輸協議層上,避免了在OSI會話層和表示層的開銷,使連接的建立和包的處理更簡單、更快,對于互聯網和企業網應用更理想。LDAP 提供并實現目錄服務的信息服務,目錄服務是一種特殊的數據庫系統,對于數據的讀取、瀏覽、搜索有很好的效果。目錄服務一般用來包含基于屬性的描述性信息并支持精細復雜的過濾功能,但OpenLDAP 目錄服務不支持通用數據庫的大量更新操作所需要的復雜的事務管理或回滾策略等。
OpenLDAP 默認以Berkeley DB 作為后端數據庫,Berkeley DB 數據庫主要以散列的數據類型進行數據存儲,如以鍵值對的方式進行存儲。Berkeley DB 是一類特殊的數據庫,主要用于搜索、瀏覽、更新查詢操作,一般對于一次寫入數據、多次查詢和搜索有很好的效果。Berkeley DB 數據庫是面向查詢進行優化,面向讀取進行優化的數據庫。Berkeley DB 不支持事務型數據庫(MySQL、MariDB、Oracle 等)所支持的高并發的吞吐量以及復雜的事務操作。
OpenLDAP 目錄中的信息是按照樹形結構進行組織的,具體信息存儲在條目(entry)中,條目可以看成關系數據庫中的表記錄,條目是具有區別名(Distinguished Name,DN)的屬性(attribute),DN 是用來引用條目,DN 相當于關系數據庫(Oracle/MySQL)中的主鍵(primary key),是唯一的。屬性由類型(type)和一個或者多個值(value)組成,相當于關系數據庫中字段的概念。
OpenLDAP優點
OpenLDAP 目錄服務有以下10 個優點。
OpenLDAP 是一個跨平臺的標準互聯網協議,它基于X.500 標準協議。
OpenLDAP 提供靜態數據查詢搜索,不需要像在關系數據中那樣通過SQL 語句維護數據庫信息。
OpenLDAP 基于推和拉的機制實現節點間數據同步,簡稱復制(replication)并提供基于TLS、SASL 的安全認證機制,實現數據加密傳輸以及Kerberos 密碼驗證功能。
OpenLDAP 可以基于第三方開源軟件實現負載(LVS、HAProxy)及高可用性解決方案,24 小時提供驗證服務,如Headbeat、Corosync、Keepalived 等。
OpenLDAP 數據元素使用簡單的文本字符串(簡稱LDIF 文件)而非一些特殊字符,便于維護管理目錄樹條目。 章
OpenLDAP 可以實現用戶的集中認證管理,所有關于賬號的變更,只須在OpenLDAP 服務器端直接操作,無須到每臺客戶端進行操作,影響范圍為全局。
OpenLDAP 默認使用協議簡單如支持TCP/ZP 協議傳輸條目數據,通過使用查找操作實現對目錄樹條目信息的讀寫操作,同樣可以通過加密的方式進行獲取目錄樹條目信息。
OpenLDAP 產品應用于各大應用平臺(Nginx、HTTP、vsftpd、Samba、SVN、Postfix、OpenStack、Hadoop等)、服務器(HP、IBM、Dell 等)以及存儲(EMC、NetApp 等)控制臺,負責管理賬號驗證功能,實現賬號統一管理。
OpenLDAP 實現具有費用低、配置簡單、功能強大、管理容易及開源的特點。
OpenLDAP 通過ACL(Access Control List)靈活控制用戶訪問數據的權限,從而保證數據的安全性。
OpenLDAP 功能
在LDAP 的功能模型中定義了一系列利用LDAP 協議的操作,主要包含以下4 部分。
查詢操作(ldapsearch):允許查詢目錄并取得條目,其查詢性能比關系數據庫好。
更新操作(ldapupdate):目錄樹條目支持條目的添加、刪除、修改等操作。
同步操作:OpenLDAP 是一種典型的分布式結構,提供復制同步,可將主服務器上的數據通過推或拉的機制實現在從服務器上更新,完成數據的同步,從而避免OpenLDAP 服務器出現單點故障,影響用戶驗證。
認證和管理操作:允許客戶端在目錄中識別自己,并且能夠控制一個會話的性質。
OpenLDAP 目錄架構介紹
官網:http://www.openldap.org/doc/admin24/intro.html#What is LDAP
目前OpenLDAP 目錄架構分為兩種:一種為互聯網命名組織架構;另一種為企業級命名組織架構。本節分別為介紹兩種架構的用途,但本書主要以企業級命名組織架構為核心進行闡述OpenLDAP 內部邏輯結構、工作原理以及企業實踐等相關知識。
LDAP 的目錄信息是以樹形結構進行存儲的,在樹根一般定義國家(c=CN)或者域名(dc=com),其次往往定義一個或多個組織(organization,o)或組織單元(organization unit,ou)。一個組織單元可以包含員工、設備信息(計算機/打印機等)相關信息。例如uid=babs,ou=People,dc=example,dc=com。
1、互聯網命名組織架構
2、企業級命名組織架構
centos6 環境下安裝
epel配置(阿里源)
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm
yum安裝
yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap -y
日志配置
mkdir /var/log/slapd chmod 755 /var/log/slapd/ chown ldap:ldap /var/log/slapd/ sed -i "/local4.*/d" /etc/rsyslog.conf cat >> /etc/rsyslog.conf << EOF local4.* /var/log/slapd/slapd.log EOF service rsyslog restart
創建管理員密碼
[root@localhost slapd]# slappasswd
New password:
Re-enter new password:
{SSHA}HmwPb4UqjJaYAtcvfLqhfXKGchhpabTm
修改slapd.conf配置
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
mv /etc/openldap/slapd.d{,.bak}
配置ldap管理員用戶密碼
vim /etc/openldap/slapd.conf
rootpw {SSHA}HmwPb4UqjJaYAtcvfLqhfXKGchhpabTm
測試下配置文件是否修改成功
[root@localhost openldap]# slaptest -u -f slapd.conf config file testing succeeded
日志級別
[root@localhost openldap]# slapd -d ?
Installed log subsystems:
Any (-1, 0xffffffff)記錄所有的信息
Trace (1, 0x1)跟蹤功能調用的信息
Packets (2, 0x2)包處理的debug信息
Args (4, 0x4)豐富的debug信息
Conns (8, 0x8)連接管理信息
BER (16, 0x10)包的收發信息
Filter (32, 0x20)搜索過濾的處理過程
Config (64, 0x40)配置文件的處理過程
ACL (128, 0x80)訪問控制列表處理過程
Stats (256, 0x100)連接、操作及其結果的統計數據
Stats2 (512, 0x200)向客戶端返回的結果的統計信息
Shell (1024, 0x400)與shell后端的通信信息
Parse (2048, 0x800)顯示記錄條目的分析信息
Sync (16384, 0x4000)從服務器數據同步資源消耗處理信息
None (32768, 0x8000)
NOTE: custom log subsystems may be later installed by specific code
可以同時設置幾種日志級別,方法是將日志級別的數字加起來。 比如同時設置Trace和Stats級別,那么在slapd.conf中:
loglevel 257
或者啟動OpenLDAP時,使用命令參數-d 257來指定。
創建數據庫文件(從模版復制)生成DB_CONFIG
cd /var/lib/ldap/ cp /usr/share/openldap-servers/DB_CONFIG.example ./DB_CONFIG chown ldap.ldap DB_CONFIG
啟動ldap服務,自動創建數據庫文件
/etc/init.d/slapd start
服務啟動后,可以看到生成了幾個數據庫文件
檢查搜索域
根據配置文件/etc/openldap/slapd.conf中的suffix的值進行查詢
[root@localhost openldap]# ldapsearch -x -b "dc=my-domain,dc=com" # extended LDIF # # LDAPv3 # base <dc=my-domain,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1
-x 信息排序
-b 指定搜索范圍起點
數據錄入
服務器正常運作后,就可以錄入信息了。信息的錄入有三種方法,信息錄入用到ldapadd這個程序。
手工錄入,
.ldif文件格式錄入,
web界面錄入。
總結
以上是生活随笔為你收集整理的OpenLDAP介绍和安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux时间同步+国内常用的NTP服务
- 下一篇: Mapbox常用表达式整理