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$ #测试成功