搜索

3.6. 在 IdM 域成员中设置 Samba

download PDF

您可以在加入到 Red Hat Identity Management (IdM)域的主机上设置 Samba。来自IdM的用户,以及来自受信任的 Active Directory(AD)域的用户(如果有的话)可以访问 Samba 提供的共享和打印机服务。

重要

对 IdM 域成员使用 Samba 是一种不受支持的技术预览特性,且包含了某些限制。例如,IdM 信任控制器不支持活动目录全局目录服务,它们不支持使用分布式计算环境/远程过程调用(DCE/RPC)协议解析 IdM 组。因此,AD 用户在登录到其他 IdM 客户端时只能访问托管在 IdM 客户端上的 Samba 共享和打印机 ; 登录到 Windows 机器的 AD 用户无法访问托管在 IdM 域成员上的 Samba 共享。

我们鼓励在 IdM 域成员中部署 Samba 的用户向红帽提供反馈意见。

如果 AD 域中的用户需要访问 Samba 提供的共享和打印机服务,请确保 AES 加密类型在 AD 中启用了。如需更多信息,请参阅使用 GPO 在 Active Directory 中启用 AES 加密类型

先决条件

  • 主机作为 IdM 域的客户端加入。
  • IdM 服务器和客户端必须在 RHEL 8.1 或更高版本中运行。

3.6.1. 准备 IdM 域以便在域成员中安装 Samba

在IdM客户端上设置Samba之前,必须在IdM服务器上使用ipa-adtrust-install工具来准备IdM域。

注意

运行ipa-adtrust-install命令的任何系统都会自动成为 AD 信任控制器。但是,您只能在 IdM 服务器上运行ipa-adtrust-install一次。

先决条件

  • IdM 服务器已安装。
  • 您需要 root 特权才能安装软件包并重新启动 IdM 服务。

流程

  1. 安装所需的软件包:

    [root@ipaserver ~]# yum install ipa-server-trust-ad samba-client
  2. 以 IdM 管理用户身份进行身份验证:

    [root@ipaserver ~]# kinit admin
  3. 运行ipa-adtrust-install工具:

    [root@ipaserver ~]# ipa-adtrust-install

    如果 IdM 安装了集成的 DNS 服务器,则会自动创建 DNS 服务记录。

    如果您安装的IdM没有集成 DNS 服务器,ipa-adtrust-install会打印一个服务记录列表,您必须手动将其添加到DNS后才能继续操作。

  4. 该脚本会提示您/etc/samba/smb.conf已存在,并将被重写:

    WARNING: The smb.conf already exists. Running ipa-adtrust-install will break your existing Samba configuration.
    
    Do you wish to continue? [no]: yes
  5. 该脚本提示您配置slapi-nis插件,这是一个兼容性插件,允许旧的 Linux 客户端与受信任的用户一起工作:

    Do you want to enable support for trusted domains in Schema Compatibility plugin?
    This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users.
    
    Enable trusted domains support in slapi-nis? [no]: yes
  6. 提示时,输入 IdM 域的 NetBIOS 名称,或者按 Enter 接受推荐的名称:

    Trust is configured but no NetBIOS domain name found, setting it now.
    Enter the NetBIOS name for the IPA domain.
    Only up to 15 uppercase ASCII letters, digits and dashes are allowed.
    Example: EXAMPLE.
    
    NetBIOS domain name [IDM]:
  7. 系统会提示您运行 SID 生成任务,以便为任何现有用户创建 SID:

    Do you want to run the ipa-sidgen task? [no]: yes

    这是一个资源密集型任务,因此如果您有大量的用户,您可以在其他时间运行此任务。

  8. 可选:默认情况下,对于 Windows Server 2008 及更高版本,动态 RPC 端口范围定义为 49152-65535。如果您需要为您的环境定义不同的动态 RPC 端口范围,请将 Samba 配置为使用不同的端口,并在防火墙设置中开放这些端口。以下示例将端口范围设置为55000-65000

    [root@ipaserver ~]# net conf setparm global 'rpc server dynamic port range' 55000-65000
    [root@ipaserver ~]# firewall-cmd --add-port=55000-65000/tcp
    [root@ipaserver ~]# firewall-cmd --runtime-to-permanent
  9. 重启ipa服务:

    [root@ipaserver ~]# ipactl restart
  10. 使用smbclient工具来验证 Samba 是否响应 IdM 端的 Kerberos 身份验证:

    [root@ipaserver ~]# smbclient -L ipaserver.idm.example.com -U user_name --use-kerberos=required
    lp_load_ex: changing to config backend registry
        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba 4.15.2)
    ...

3.6.2. 在 IdM 客户端中安装和配置 Samba 服务器

您可以在已在 IdM 域中注册的客户端上安装和配置 Samba。

先决条件

流程

  1. 安装ipa-client-samba软件包:

    [root@idm_client]# yum install ipa-client-samba
  2. 使用ipa-client-samba工具准备客户端并创建初始 Samba 配置:

    [root@idm_client]# ipa-client-samba
    Searching for IPA server...
    IPA server: DNS discovery
    Chosen IPA master: idm_server.idm.example.com
    SMB principal to be created: cifs/idm_client.idm.example.com@IDM.EXAMPLE.COM
    NetBIOS name to be used: IDM_CLIENT
    Discovered domains to use:
    
     Domain name: idm.example.com
    NetBIOS name: IDM
             SID: S-1-5-21-525930803-952335037-206501584
        ID range: 212000000 - 212199999
    
     Domain name: ad.example.com
    NetBIOS name: AD
             SID: None
        ID range: 1918400000 - 1918599999
    
    Continue to configure the system with these values? [no]: yes
    Samba domain member is configured. Please check configuration at /etc/samba/smb.conf and start smb and winbind services
  3. 默认情况下,ipa-client-samba会自动将[homes]部分添加到/etc/samba/smb.conf文件中,该文件在用户连接时动态共享用户的主目录。如果用户在这个服务器上没有主目录,或者您不想共享主目录,请从/etc/samba/smb.conf中删除以下行:

    [homes]
        read only = no
  4. 共享目录和打印机。详情请查看:

  5. 在本地防火墙中打开 Samba 客户端所需的端口:

    [root@idm_client]# firewall-cmd --permanent --add-service=samba-client
    [root@idm_client]# firewall-cmd --reload
  6. 启用并启动smbwinbind服务:

    [root@idm_client]# systemctl enable --now smb winbind

验证

在已安装了 samba-client 软件包的不同 IdM 域成员上运行以下验证步骤:

  • 使用 Kerberos 身份验证列出 Samba 服务器中的共享:

    $ smbclient -L idm_client.idm.example.com -U user_name --use-kerberos=required
    lp_load_ex: changing to config backend registry
    
        Sharename       Type      Comment
        ---------       ----      -------
        example         Disk
        IPC$            IPC       IPC Service (Samba 4.15.2)
    ...

其它资源

  • 您系统上的 ipa-client-samba (1) 手册页

3.6.3. 如果 IdM 信任新域,请手动添加 ID 映射配置

Samba 需要一个 ID 映射配置,用户可从该域访问资源。在 IdM 客户端上运行的现有 Samba 服务器上,在管理员向 Active Directory(AD)域添加了新的信任后,您必须手动添加 ID 映射配置。

先决条件

  • 您在 IdM 客户端中配置了 Samba。之后,IdM 增加了一个新的信任。
  • 在可信 AD 域中必须禁用 Kerberos 的 DES 和 RC4 加密类型。为了安全起见,RHEL 8 不支持这些弱加密类型。

流程

  1. 使用主机的 keytab 进行身份验证:

    [root@idm_client]# kinit -k
  2. 使用ipa idrange-find命令来显示新域的基本 ID 和 ID 范围大小。例如,以下命令显示了ad.example.com域的值:

    [root@idm_client]# ipa idrange-find --name="AD.EXAMPLE.COM_id_range" --raw
    ---------------
    1 range matched
    ---------------
      cn: AD.EXAMPLE.COM_id_range
      ipabaseid: 1918400000
      ipaidrangesize: 200000
      ipabaserid: 0
      ipanttrusteddomainsid: S-1-5-21-968346183-862388825-1738313271
      iparangetype: ipa-ad-trust
    ----------------------------
    Number of entries returned 1
    ----------------------------

    在后续步骤中,您需要ipabaseidipaidrangesize属性的值。

  3. 要计算可用最高的 ID,请使用以下公式:

    maximum_range = ipabaseid + ipaidrangesize - 1

    使用上一步中的值,ad.example.com域的最大可用 ID 是1918599999(1918400000 + 200000 - 1)。

  4. 编辑/etc/samba/smb.conf文件,并将域的 ID 映射配置添加到[global]部分:

    idmap config AD : range = 1918400000 - 1918599999
    idmap config AD : backend = sss

    ipabaseid属性的值指定为最小值,将上一步中的计算值指定为该范围的最大值。

  5. 重启smbwinbind服务:

    [root@idm_client]# systemctl restart smb winbind

验证

  • 使用 Kerberos 身份验证列出 Samba 服务器中的共享:

    $ smbclient -L idm_client.idm.example.com -U user_name --use-kerberos=required
    lp_load_ex: changing to config backend registry
    
        Sharename       Type      Comment
        ---------       ----      -------
        example         Disk
        IPC$            IPC       IPC Service (Samba 4.15.2)
    ...

3.6.4. 其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.