前言
ldap(Lightweight Directory Access Protocol),轻量目录访问协议.它以树状的层次结构来存储数据,是一种特殊的数据库系统.ldap往往用于在一个大的局域网下进行统一的账号管理
正文
下面进行ldap的服务端配置
1.安装ldap所需组件:
yum install ldap ldap-servers ldap-clients migrationtools
2.修改ldap配置文件
cd /etc/openldap
vim slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
#修改olcSuffix和olcRootDN两行
olcSuffix: dc=centos,dc=com //dc为域名组成
olcRootDN: cn=root,dc=centos,dc=com //cn为名称,可自定义
vim slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
#修改olcAccess下面一行
al,cn=auth" read by dn.base="cn=root,dc=centos,dc=com" read by * none //修改cn,dc与之前相同
3.准备ldap的数据库,默认位于/var/lib/ldap/目录下,因此只需复制软件包自带的数据库配置文件即可
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/* //事实上默认已修改,不过依旧注意
4.测试slap配置文件是否正确
slaptest -u //出现config file testing succeeded即可
5.启动slapd服务
systemctl start slapd
systemctl enable slapd //若有需要可设置开机自启
6.将cosine和nis模块导入进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
7.使用migrationtools创建ldif文件
cd /usr/share/migrationtools/
vim migrate_common.ph //更改migrationtools的全局属性
$NAMINGCONTEXT{'group'} = "ou=Groups"; //61行
$DEFAULT_MAIL_DOMAIN = "centos.com"; //71行
$DEFAULT_BASE = "dc=centos,dc=com"; //74行
$EXTENDED_SCHEMA = 1; //90行
./migrate_base.pl > /root/base.ldif //生成base.ldif
ldapadd -x -W -D 'cn=root,dc=centos,dc=com' -f /root/base.ldif
8.将系统账号添加至ldap数据库
添加系统账号
mkdir -p /home/guests/ldapuser{1,2}
useradd -d /home/guests/ldapuser1 ldapuser1
useradd -d /home/guests/ldapuser2 ldapuser2
echo '123456' | passwd --stdin ldapuser1
echo '123456' | passwd --stdin ldapuser2
将添加的账号的信息重定向至/root/目录下,以供migrationtools使用
getent passwd | tail -n2 > /root/passwd
getent shadow | tail -n2 > /root/shadow
getent groups | tail -n2 > /root/groups
修改migrationtools配置
vim /usr/share/migrationtools/migrate_passwd.pl
#修改/etc/passwd为/root/shadow
open(SHADOW, "/root/shadow") || return;
创建ldif文件
./migrate_passwd.pl /root/users > /root/users.ldif
./migrate_group.pl /root/groups > /root/groups.ldif
将用户的ldif文件添加至ldap数据库
ldapadd -x -W -D "cn=root,dc=centos,dc=com" -f /root/users.ldif
ldapadd -x -W -D "cn=root,dc=centos,dc=com" -f /root/groups.ldif
9.最后,在本地测试ldap的dit条目
ldapsearch -x -b "dc=centos,dc=com" -H ldap://127.0.0.1