輕型目錄訪問協議(英文:Lightweight Directory Access Protocol,縮寫:LDAP)是一個開放的,中立的,工業標準的應用協議,通過IP協議提供訪問控制和維護分佈式信息的目錄信息。
OpenLDAP是輕型目錄訪問協議(Lightweight Directory Access Protocol,LDAP)的自由和開源的實現,在其OpenLDAP許可證下發行,並已經被包含在衆多流行的Linux發行版中。
LDAP協議的好處就是你公司的所有員工在所有這些工具裏共享同一套用戶名和密碼,來人的時候新增一個用戶就能自動訪問所有系統,走人的時候一鍵刪除就取消了他對所有系統的訪問權限,這就是LDAP。
參考文檔:https://segmentfault.com/a/1190000014683418
安裝openldap
yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap openldap-servers-sql migrationtools
查看版本
slapd -V
[root@test ~]# slapd -V
@(#) $OpenLDAP: slapd 2.4.44 (May 16 2018 09:55:53) $
[email protected]:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
配置openldap
注意:從OpenLDAP2.4.23版本開始所有配置數據都保存在/etc/openldap/slapd.d/中,不再使用slapd.conf作爲配置文件。
設置openldap的管理員密碼:
[root@test slapd.d]# slappasswd -s admin@123
{SSHA}ptUSB1Mt+E4EvtscPolhiwLIICTLg1yN
上述加密後的字段保存下,等會我們在配置文件中會使用到。
修改olcDatabase={2}hdb.ldif文件
cd /etc/openldap/slapd.d/cn=config/
vim olcDatabase\=\{2\}hdb.ldif
修改域信息
olcSuffix: dc=jinni,dc=com
olcRootDN: cn=root,dc=jinni,dc=com
olcRootPW: {SSHA}ptUSB1Mt+E4EvtscPolhiwLIICTLg1yN
注意:冒號後面一定加空格,其中cn=root中的root表示OpenLDAP管理員的用戶名,而olcRootPW表示OpenLDAP管理員的密碼。
修改olcDatabase={1}monitor.ldif文件
vim olcDatabase\=\{1\}monitor.ldif
注意:該修改中的dn.base是修改OpenLDAP的管理員的相關信息的。
驗證OpenLDAP的基本配置,使用如下命令:
slaptest -u
通過上圖,我們可以很明顯的看出OpenLDAP的基本配置是沒有問題。
啓動OpenLDAP服務
chown ldap:ldap -R /var/lib/ldap/
chmod 700 -R /var/lib/ldap/
注意:如果不給執行權限,ldap無法啓動
如果無法啓動ldap服務,查看是否ldap進程已經存在,如果存在需要kill掉ldap進程,然後在啓動服務
systemctl enable slapd
systemctl start slapd
配置ldap數據庫
這裏使用mysql最爲ldap的後端數據庫
注意:我這裏使用的mysql數據庫是單獨的一臺節點,沒有放在ldap節點上
yum -y install mysql
創建ldap所需要的數據庫
create database ldap;
grant all privileges on ldap.* to 'ldap'@'%' identified by 'Admin@123';
flush privileges;
依次導入測試數據庫
cd /usr/share/doc/openldap-servers-sql-2.4.44/rdbms_depend/mysql
[root@test mysql]#mysql -h 192.168.10.10 -uroot -pAdmin@123 ldap < backsql_create.sql
[root@test mysql]# mysql -h 192.168.10.10 -uroot -pAdmin@123 ldap < testdb_create.sql
[root@test mysql]# mysql -h 192.168.10.10 -uroot -pAdmin@123 ldap < testdb_data.sql
[root@test mysql]# mysql -h 192.168.10.10 -uroot -pAdmin@123 ldap < testdb_metadata.sql
配置ODBC
在ldap節點安裝數據庫驅動程序,配置連接數據庫
yum -y install mysql-connector-odbc
vim /etc/odbc.ini
[ldap]
description=ldap for mysql
driver=MYSQL
database=ldap
server=192.168.10.9
user=ldap
password=Admin@123
port=3306
驗證是否連接成功:
isql -v ldap
-v: 打印isql的版本號和版權消息
或者:isql ldap_dbname [openldap賬號] [openldap密碼]
isql ldap ldap Admin@123
連接成功