搭建ldap,samba和nfs 统一认证服务

经过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)。

搭建ldap,samba和nfs 统一认证服务_第1张图片

下面方法亲测可用。欢迎大家拍砖指正。

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 配置客户端

【注:空格键为选择和不选择】

搭建ldap,samba和nfs 统一认证服务_第2张图片


3.  填写server和base DN 

Server项可以填写IP地址或者域名,端口默认389

搭建ldap,samba和nfs 统一认证服务_第3张图片

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/  //权威


你可能感兴趣的:(云计算)