2.3. 将 RHEL 系统添加到 AD 域中

Samba Winbind 是系统安全服务守护进程(SSSD)的替代方案,用于连接带有 Active Directory(AD)的 Red Hat Enterprise Linux(RHEL)系统。您可以使用 realmd 将 RHEL 系统加入到 AD 域,来配置 Samba Winbind。

流程

  1. 如果您的 AD 需要弃用的 RC4 加密类型进行 Kerberos 验证,请在 RHEL 中启用对这些密码的支持:

    # update-crypto-policies --set DEFAULT:AD-SUPPORT
  2. 安装以下软件包:

    # yum install realmd oddjob-mkhomedir oddjob samba-winbind-clients \
           samba-winbind samba-common-tools samba-winbind-krb5-locator
  3. 要在域成员中共享目录或打印机,请安装samba 软件包:

    # yum install samba
  4. 备份现有的/etc/samba/smb.conf Samba 配置文件:

    # mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
  5. 加入域。例如,要加入名为ad.example.com的域:

    # realm join --membership-software=samba --client-software=winbind ad.example.com

    使用上面的命令,realm工具会自动:

    • ad.example.com域中的成员创建/etc/samba/smb.conf文件
    • 将用于用户和组查找的winbind模块添加到/etc/nsswitch.conf文件中
    • 更新/etc/pam.d/目录中的可插拔验证模块(PAM)配置文件
    • 启动winbind服务,并使服务在系统引导时启动
  6. 另外,在/etc/samba/smb.conf文件中设置备用的 ID 映射后端或自定义 ID 映射设置。详情请查看 了解和配置 Samba ID 映射
  7. 编辑/etc/krb5.conf文件,并添加以下部分:

    [plugins]
        localauth = {
            module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so
            enable_only = winbind
        }
  8. 验证winbind服务是否运行:

    # systemctl status winbind
    ...
       Active: active (running) since Tue 2018-11-06 19:10:40 CET; 15s ago
    重要

    要启用 Samba 来查询域用户和组信息,必须在启动smb之前运行winbind服务。

  9. 如果您安装了samba软件包来共享目录和打印机,请启用并启动smb服务:

    # systemctl enable --now smb

验证步骤

  1. 显示 AD 用户的详情,如 AD 域中的 AD 管理员帐户:

    # getent passwd "AD\administrator"
    AD\administrator:*:10000:10000::/home/administrator@AD:/bin/bash
  2. 查询 AD 域中的域用户组成员:

    # getent group "AD\Domain Users"
        AD\domain users:x:10000:user1,user2
  3. 另外,还可在设置文件和目录权限时验证您可以使用域用户和组。例如,将/srv/samba/example.txt文件的所有者设置为AD\administrator,组设置为AD\Domain Users

    # chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txt
  4. 验证 Kerberos 验证是否如预期正常工作:

    1. 对于 AD 域成员,为administrator@AD.EXAMPLE.COM主体获取一个ticket:

      # kinit administrator@AD.EXAMPLE.COM
    2. 显示缓存的 Kerberos ticket:

      # klist
      Ticket cache: KCM:0
      Default principal: administrator@AD.EXAMPLE.COM
      
      Valid starting       Expires              Service principal
      01.11.2018 10:00:00  01.11.2018 20:00:00  krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM
              renew until 08.11.2018 05:00:00
  5. 显示可用域:

    # wbinfo --all-domains
    BUILTIN
    SAMBA-SERVER
    AD

其它资源