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

    xiaoxiao2021-12-14  16

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

    转载请注明原文地址: https://ju.6miu.com/read-963240.html

    最新回复(0)