LDAP介紹
LDAP是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol,一般都簡稱爲LDAP。它是基於X.500標準的,但是簡單多了並且可以根據需要定製。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。LDAP的核心規範在RFC中都有定義,所有與LDAP相關的RFC都可以在LDAPman RFC網頁中找到。
目的:
使用LDAP對用戶名密碼做統一管理,實現一個帳號登錄多個不同系統。
Server Config
1、安裝部署相應的軟件包
# yum install -y openldap openldap-clients openldap-servers migrationtools
2、編輯OpenLDAP配置文件
# vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=example,dc=com #在配置文件的第8行
olcRootDN: cn=Manager,dc=example,dc=com #在配置文件的第9行
olcRootPW: password #新增加一行密碼按自己的要求設置
3、編輯監控數據庫的配置文件
# vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=Manager,dc=example,dc=com" read by * none
# 在配置文件的第6行
4、LDAP數據庫
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
5、賦予ldap目錄權限
# chown -R ldap.ldap /var/lib/ldap
6、測試配置文件
# slaptest -u
7、啓動並啓用slapd服務
# systemctl start slapd
# systemctl enable slapd
8、查看LDAP進程及端口運行情況
# netstat -lt | grep ldap
# netstat -tunlp | egrep "389|636"
9、配置LDAP模式(根據需求添加相應的模式)
# cd /etc/openldap/schema/
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f collective.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f corba.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f duaconf.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f dyngroup.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f java.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f misc.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f openldap.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif
10、編輯migrate_common.ph配置文件
# cd /usr/share/migrationtools/
# vim migrate_common.ph
$NAMINGCONTEXT{'group'} = "ou=Groups"; #在61行處ou=Group加s
$DEFAULT_MAIL_DOMAIN = "example.com"; #在71行處改成所需的域名
$DEFAULT_BASE = "dc=example,dc=com"; #在74行處更改頂級域名和二級域名
$EXTENDED_SCHEMA = 1; #在90行處更改EXTENDED_SCHEMA的值
11、生成base.ldif的配置文件
# ./migrate_base.pl > /root/base.ldif
12、加載 "base.ldif" 到 LDAP 數據庫
# ldapadd -x -W -D "cn=Managert,dc=example,dc=com" -f /root/base.ldif
13、創建用戶和組並加入到LDAP數據庫中
# mkdir /home/guests
# useradd -d /home/guests/ldapzhangsan ldapzhangsan
# useradd -d /home/guests/ldaplisi ldaplisi
# echo 'password' | passwd --stdin ldapzhangsan
# echo 'password' | passwd --stdin ldaplisi
14、過濾這些用戶和組從/etc/shadow到不同文件的密碼
# getent passwd | tail -n 5 > /root/users
# getent shadow | tail -n 5 > /root/shadow
# getent group | tail -n 5 > /root/groups
15、編輯migrate_passwd.pl配置文件
# vim migrate_passwd.pl
open(SHADOW, "/etc/shadow") || return; #在188行處把/etc/shadow更改爲/root/shadow
16、上傳這些用戶和組ldif文件到LDAP數據庫
# ldapadd -x -W -D "cn=Managert,dc=exampl,dc=com" -f users.ldif
# ldapadd -x -W -D "cn=Managert,dc=exampl,dc=com" -f groups.ldif
17、加載LDAP
# ldapsearch -x -b "dc=exampl,dc=com" -H ldap://127.0.0.1
Client Config
# yum install -y nss-pam*
# authconfig-tui #[ Use LDAP] and next
# su ldapzhangsan #測試客戶端賬戶登錄
bash-4.1$ #測試成功