学习搭建LDAP用户认证管理服务器。前面章节介绍安装,后面介绍ldap使用命令行添加用户。
两台虚拟机
node01 IP:192.168.242.100 server端
node02 IP:192.168.242.13 client端
均关闭iptables和selinux
分为server端操作和client端操作
yum install openldap-servers -y
拷贝配置文件
cd /usr/share/openldap-servers/
cp slapd.conf.obsolete /etc/openldap/slapd.conf
创建LDAP管理员密码
slappasswd
输入两次后,保存密文
New password:
Re-enter new password:
{SSHA}VAJlsyl8s1wwIt9u+21axefNBxt6QjQf
编辑slapd配置文件
vim /etc/openldap/slapd.conf
修改其中cn,dc相关内容,及rootpw密文密码
database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=Manager,dc=my-domain,dc=com" read
by * none
database bdb
suffix "dc=my-domain,dc=com"
checkpoint 1024 15
rootdn "cn=Manager,dc=my-domain,dc=com"
rootpw {SSHA}u9NKZTNKJxVHjRh7yluTDpiy0N7Hno4R
拷贝拷贝DB_CONFIG文件
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
删除默认配置 (否则添加ldap用户时会报错)
rm /etc/openldap/slapd.d/* -rf
设置目录权限
chown -R ldap:ldap /etc/openldap/
chown -R ldap:ldap /var/lib/ldap
测试并生成配置文件
]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
出现succeed继续
启动服务并设置开机启动
chkconfig slapd on
/etc/init.d/slapd start
创建账号以备client登陆测试
useradd ldapuser1
echo '111111' | passwd --stdin ldapuser1
至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。
安装migrationtools工具
yum install migrationtools -y
配置migrationtools
cd /usr/share/migrationtools/
cd /usr/share/migrationtools/
修改
搜索”dc=”,值改为与slapd.conf一致内容
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "my-domain.com";
# Default base
$DEFAULT_BASE = "dc=my-domain,dc=com";
下面利用pl脚本将/etc/passwd 和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下
./migrate_base.pl > /tmp/base.ldif
./migrate_passwd.pl /etc/passwd > /tmp/passwd.ldif
./migrate_group.pl /etc/group > /tmp/group.ldif
导入LDAP
需要输入管理员密码
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/base.ldif
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/group.ldif
ldapadd -x -D "cn=Manager,dc=my-domain,dc=com" -W -f /tmp/passwd.ldif
重启服务
/etc/init.d/slapd restart
没有问题后,配置client端使用LDAP认证并挂载家目录
client端使用system-config-authentication工具配置
system-config-authentication
之后配置简单不做叙述
注:如果提示需要安装软件包,安装即可
nscd-2.12-1.132.el6.x86_64
nss-pam-ldapd-0.7.5-18.2.el6_4.x86_64
安装ldap工具migrationtools,并且配置migrationtools
vim /usr/share/migrationtools/migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "clustertech.com";
# Default base
$DEFAULT_BASE = "dc=clustertech,dc=com";
如安装ldap部分所述,使之符合目前的环境,主要修改部分,cn&dc
以下内容,其中your_passwd 为ldap管理员密码,his_passwd为新建用户初始密码。具体过程如下:
1. 新建本地用户
##注意,如果需要指定ldap中test的属组,此处也要指定
useradd test
cat /etc/passwd | grep test >/tmp/passwd.in
/usr/share/migrationtools/migrate_passwd.pl /tmp/passwd.in > /tmp/passwd.ldif
/usr/bin/ldapadd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd -f /tmp/passwd.ldif
cat /etc/group | grep test >/tmp/group.in
/usr/share/migrationtools/migrate_group.pl /tmp/group.in > /tmp/group.ldif
/usr/bin/ldapadd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd -f /tmp/group.ldif
userdel test
##如果ldap中test的家目录不变,可以不删除目录
#rm -rf /home/test
##查看新建用户结果
ldapsearch -x "uid=test"
/usr/bin/ldappasswd -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd "uid=test,ou=People,dc=clustertech,dc=com" -s his_passwd
其中’-s’ 指定密码 ‘-S’ 使用交互模式指定密码;同 ‘-w’
ldapmodify -x -D "cn=admin,dc=cas,dc=cn" -W
按照提示输入ldap管理员密码之后
dn: uid=test,ou=People,dc=cas,dc=cn
changetype: modify
replace: homeDirectory
##导入UID时,默认家目录就是/home/test,此步骤按需操作。
homeDirectory: /home/test
如果没有/home/test目录理应是系统自动建立,如果没有建立,手动建立并执行:
mkdir /home/test
cp /etc/skel/.bash* /home/test
chown test.test /home/test -R
chmod 700 /home/test
##测试
[root@ldap ~]# su - test
[test@ldap ~]$ pwd
/home/test
##正常登陆,并且登陆只/home/test目录正常
##删除用户
ldapdelete -x -D "cn=Manager,dc=clustertech,dc=com" -w your_passwd "uid=test,ou=People,dc=clustertech,dc=com"