Centos6.5搭建LDAP服务器及用户添加删除
学习搭建LDAP用户认证管理服务器。前面章节介绍安装,后面介绍ldap使用命令行添加用户。
--------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------
环境准备
两台虚拟机
node01 IP:192.168.242.100 server端
node02 IP:192.168.242.13 client端
均关闭iptables和selinux
--------------------------------------------------------------------------------------------------------------------------------------
步骤
分为server端操作和client端操作
server端
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端
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命令行添加/删除用户
安装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
--------------------------------------------------------------------------------------------------------------------------------------
- 转换UID至LDAP
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
--------------------------------------------------------------------------------------------------------------------------------------
- 转换GID至LDAP
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
--------------------------------------------------------------------------------------------------------------------------------------
- 删除本地用户,使用LDAP用户认证
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"
--------------------------------------------------------------------------------------------------------------------------------------
小奋斗文章
--------------------------------------------------------------------------------------------------------------------------------------
评论