搭建ldap,samba和nfs 统一认证服务
2016-12-02 12:05
761 查看
经过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
--------------------------------------------------------
dn: dc=srv,dc=world
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中的用户文件
#
getent passwd | tail -n 2 > /root/users
#
getent group | tail -n 2 > /root/groups
#
getent shadow | tail -n 2 > /root/shadow //(获得需要的用户密码文件)
#
cd /usr/share/migrationtools
【注:在7部分的以下几步操作均在/usr/share/migrationtools目录下进行】
7.1 修改ldap
密码生成工具
# vim migrate_passwd.pl
【注:search
/etc/shadow and replace it into /root/shadow on Line Number 188.】
行188:
/etc/shadow ----> /root/shadow
7.2
修改migrate_tools的公共文件
#
vi migrate_common.ph
-------------------------------------------------------
行61:
$NAMINGCONTEXT{'passwd'} = "ou=People";
$NAMINGCONTEXT{'group'} = "ou=Group";
行71:
$DEFAULT_MAIL_DOMAIN = "srv.world";
# Default base
$DEFAULT_BASE = "dc=srv,dc=world";
$EXTENDED_SCHEMA = 1;
---------------------------------------------------------------
7.3
生成用户的ldif 文件 users.ldif ,准备加入到ldap中。
#
./migrate_passwd.pl /root/users > users.ldif
# ./migrate_group.pl /root/groups > groups.ldif
# ldapadd -x -D cn=root,dc=srv,dc=world -W -f basedomain.ldif
# ldapadd
-x -D cn=root,dc=srv,dc=world -W -f users.ldif
7.4
检验ldap是否设置成功,数据检测
# ldapsearch
-x -b "dc=srv,dc=world" -H ldap://127.0.0.1
7. 5
删除 资源,
【注:非必须步骤,当用户加入后,在加入时就会出错,需要先删除再加入】
# ldapdelete -x -D "cn=root,dc=srv,dc=world" -w 123456 "uid=ldapuser1,ou=People,dc=srv,dc=world"
8.重启 slapd 服务
# systemctl restart slapd
【开始设置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://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=1
//日本人写的,精细规范,主要参考部署ldap server 部分
http://jingyan.baidu.com/album/fec4bce2747e12f2618d8be1.html?picindex=3 //
百度知道,参考测试部分
http://ly36843.blog.51cto.com/3120113/1673892
//centos6.4 配置ldap服务器
http://blog.chinaunix.net/uid-21926461-id-5676013.html
//ldap 命令较全
http://luyx30.blog.51cto.com/1029851/1220819/ //ldap 和nfs
http://blog.csdn.net/post_yuan/article/details/53129735 //ldap 的正确安装方式
http://wenku.baidu.com/link?url=nSTpGJ4fELHdjgo7I6eDIgkjXwdguJEv-_O2Y7aIoDzyYyID2f6Bt0acFACoduAuGjrurcC1iUohiP8_UHXsFgBfSckQscrzwxg4LZgsh2C
//LDAP扫盲
http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/ //权威
为什么要用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
--------------------------------------------------------
dn: dc=srv,dc=world
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中的用户文件
#
getent passwd | tail -n 2 > /root/users
#
getent group | tail -n 2 > /root/groups
#
getent shadow | tail -n 2 > /root/shadow //(获得需要的用户密码文件)
#
cd /usr/share/migrationtools
【注:在7部分的以下几步操作均在/usr/share/migrationtools目录下进行】
7.1 修改ldap
密码生成工具
# vim migrate_passwd.pl
【注:search
/etc/shadow and replace it into /root/shadow on Line Number 188.】
行188:
/etc/shadow ----> /root/shadow
7.2
修改migrate_tools的公共文件
#
vi migrate_common.ph
-------------------------------------------------------
行61:
$NAMINGCONTEXT{'passwd'} = "ou=People";
$NAMINGCONTEXT{'group'} = "ou=Group";
行71:
$DEFAULT_MAIL_DOMAIN = "srv.world";
# Default base
$DEFAULT_BASE = "dc=srv,dc=world";
$EXTENDED_SCHEMA = 1;
---------------------------------------------------------------
7.3
生成用户的ldif 文件 users.ldif ,准备加入到ldap中。
#
./migrate_passwd.pl /root/users > users.ldif
# ./migrate_group.pl /root/groups > groups.ldif
# ldapadd -x -D cn=root,dc=srv,dc=world -W -f basedomain.ldif
# ldapadd
-x -D cn=root,dc=srv,dc=world -W -f users.ldif
7.4
检验ldap是否设置成功,数据检测
# ldapsearch
-x -b "dc=srv,dc=world" -H ldap://127.0.0.1
7. 5
删除 资源,
【注:非必须步骤,当用户加入后,在加入时就会出错,需要先删除再加入】
# ldapdelete -x -D "cn=root,dc=srv,dc=world" -w 123456 "uid=ldapuser1,ou=People,dc=srv,dc=world"
8.重启 slapd 服务
# systemctl restart slapd
【开始设置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://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=1
//日本人写的,精细规范,主要参考部署ldap server 部分
http://jingyan.baidu.com/album/fec4bce2747e12f2618d8be1.html?picindex=3 //
百度知道,参考测试部分
http://ly36843.blog.51cto.com/3120113/1673892
//centos6.4 配置ldap服务器
http://blog.chinaunix.net/uid-21926461-id-5676013.html
//ldap 命令较全
http://luyx30.blog.51cto.com/1029851/1220819/ //ldap 和nfs
http://blog.csdn.net/post_yuan/article/details/53129735 //ldap 的正确安装方式
http://wenku.baidu.com/link?url=nSTpGJ4fELHdjgo7I6eDIgkjXwdguJEv-_O2Y7aIoDzyYyID2f6Bt0acFACoduAuGjrurcC1iUohiP8_UHXsFgBfSckQscrzwxg4LZgsh2C
//LDAP扫盲
http://download.gna.org/smbldap-tools/docs/samba-ldap-howto/ //权威
相关文章推荐
- 使用LDAP(ApacheDS)构建统一认证服务(SSO单点登录)
- NFS、FTP、SAMBA服务搭建
- SUSE_NFS、Samba服务搭建
- samba,nfs服务搭建(不常用)个人随笔
- CentOS7.4+FreeRadius+ldap(Windows AD)认证 搭建radius服务
- 用 KVM 搭建web集群实验笔记 - NFS & Samba 服务
- Ubuntu下静态IP设置、Samba服务器的搭建以及SSH服务搭建
- 跨平台文件共享服务Samba的搭建与配置
- Postfix+Dovecot 搭建简单认证的邮件服务
- 菜鸟学Linux之六:samba服务的搭建与部署 推荐
- Fedora下Samba服务的搭建
- 时代亿信基于CA服务的统一认证平台概览(图)[z]
- Linux系列-Red Hat5平台下的Samba服务搭建
- Linux操作系统下NFS服务的搭建过程
- NFS服务搭建全功略
- Fedora 14 搭建 samba服务
- Linux下基于LDAP统一用户认证的研究
- (原创)使用SPRING配置LDAP认证服务
- Borland CaliberRM/StarTeam 2005使用LDAP实现统一用户认证(二)
- RHEL4- SAMBA服务(四)在x-window下图形界面简单搭建samba服务器