Centos6.5搭建LDAP服务器及用户添加删除

LDAP 02/11 阅读 862 views次 人气 0
摘要:

学习搭建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

--------------------------------------------------------------------------------------------------------------------------------------

  1. 转换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

--------------------------------------------------------------------------------------------------------------------------------------

  1. 转换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

--------------------------------------------------------------------------------------------------------------------------------------

  1. 删除本地用户,使用LDAP用户认证

userdel test
##如果ldap中test的家目录不变,可以不删除目录
#rm -rf /home/test
##查看新建用户结果
ldapsearch -x "uid=test"

--------------------------------------------------------------------------------------------------------------------------------------

  1. 设置用户初始密码

/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’

  1. 设置用户家目录

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"

--------------------------------------------------------------------------------------------------------------------------------------

小奋斗文章

--------------------------------------------------------------------------------------------------------------------------------------

评论

该文章不支持评论!

分享到: