您的位置:首页 > 运维架构 > Linux

搭建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/  //权威
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos samba nfs ldap