经过2天的摸索,基本把ldap理明白了。下面是ldap在centos7上的安装步骤,包括与samba和NFS使用ldap认证的配置。中间遇到许多坑,会在其他文章里介绍。
为什么要用ldap呢?
ldap主要用作统一认证服务器,samba和nfs提供文件共享的服务。比如要使用samba做文件共享,在windows中访问共享文件是需要输入用户名密码,验证通过后才可以读或者写文件。在未配置ldap服务器以前,samba用户信息在本地保存,也就是说如果有多个samba服务器则需要在多台机器上重复建立认证账户信息,管理不方便。建立ldap后就可以将需要认证的用户全部放到ldap服务器上,这样就可以避免重复建立samba的认证账户,方便统一管理账户信息。
不管有没有配置ldap,samba的用户认证都有自己独立的一套密码与系统用户和ldap用户分开管理,提高安全性,在ldap中samba密码是用户类的一个属性。本人曾经尝试使用ldap用户密码或者系统密码认证samba,包括使用插件或者PAM认证,但是均为成功,目前只发现可以双向同步samba和系统用户密码的配置或者插件(samba-tools)。
下面方法亲测可用。欢迎大家拍砖指正。
1. 安装openldap
# yum install openldap-servers openldap-clients
# yum install -y openldap openldap-clients openldap-servers migrationtools
2.生成密码
# slappasswd
3.修改sldap.conf,没有的话,新建一个
# vi /etc/openldap/slapd.conf
-----------------------------------------------------------------------------------------
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
database bdb
suffix "dc=srv,dc=world"
rootdn "cn=root,dc=srv,dc=world"
rootpw {SSHA}tTKkeFCUudih3Vk5u3Or0qvzdelUa6ka //替换成之前生成的密码
password-hash {SSHA}
directory /var/lib/ldap
index cn,sn,uid,displayName pres,sub,eq
index uidNumber,gidNumber eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index objectClass pres,eq
index default sub
--------------------------------------------------------------------------------------------------------------
4. 清空并生成sldap.d 文件夹文件
# cd /etc/openldap/slapd.d
# rm -rf *
5. 重新生成 sldap.d文件夹内容和数据库文件
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG #DB的配置文件
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# slaptest -u -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# chown -R ldap:ldap /etc/openldap/
6. 配置模板文件basedomain.ldif
# vi basedomain.ldif
--------------------------------------------------------
objectClass: top
objectClass: dcObject
objectclass: organization
o: Server World
dc: Srv
dn: cn=root,dc=srv,dc=world
objectClass: organizationalRole
cn: root
description: Directory Manager
dn: ou=People,dc=srv,dc=world
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=srv,dc=world
objectClass: organizationalUnit
ou: Group
-------------------------------------------------------------------
7. 生成需要加入ldap中的用户文件
【开始设置samba 配置文件】
1. 配置samba的配置文件
# vi /etc/samba/smb.config
----------------------------------------
[global]
workgroup = TEST
netbios name = OSGW
passdb backend = ldapsam:ldap://localhost
ldap admin dn = "cn=root,dc=srv,dc=world"
ldap ssl = off
ldap suffix = "dc=srv,dc=world"
#security = user
ldap user suffix = "ou=People"
ldap group suffix = "ou=Group"
#unix password sync = yes # 红色部分是密码同步部分
#ldap password sync = yes
#pam password change = yes
[public]
path = /home/guests
browseable = yes
writable = yes
guest ok = yes
create mask = 0666
directory mask = 0777
-------------------------------------------------------------
2. 配置samba对ldap操作密码
# smbpasswd -w 123456
3. 测试smb的配置文件
# testparm
4. 添加samba用户。
【注:添加的用户必须是ldap的系统用户ldapuser1 ,ldapuser2。添加在ldap中不存在的用户会failed】
# pdbedit -a ldapuser1
5.重启服务
# systemctl restart smb
【开始配置NFS服务】
1.用root权限设置ldap客户端 authconfig-tui
# yum install nss-pam-ldapd pam_ldap openldap-clients
2. 运行 authconfig-tui 配置客户端
【注:空格键为选择和不选择】
3. 填写server和base DN
Server项可以填写IP地址或者域名,端口默认389
4. 选择ok后,可以切换到ldap 的user
# su ldapuser1
输入 passwd
【root 切换到 ldap 用户不用passwd,其他用户切换则需要输入ldap用户的密码】
参考文章:
http://luyx30.blog.51cto.com/1029851/1220819/ //ldap 和nfs
http://blog.csdn.net/post_yuan/article/details/53129735 //ldap 的正确安装方式
http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/ //权威