要在 Ubuntu 桌面上支持智能卡重定向,需使用 Samba 和 Winbind 解决方案将基础虚拟机 (VM) 与 Active Directory (AD) 域集成在一起。

可以使用以下过程将 Ubuntu 虚拟机与 AD 域集成以进行智能卡重定向。

该过程中的一些示例使用占位符值以表示网络配置中的实体,例如,AD 域的 DNS 名称。请将占位符值替换为您的配置特定的信息,如下表中所述。

占位符值 说明
dns_IP_ADDRESS DNS 名称服务器的 IP 地址
mydomain.com AD 域的 DNS 名称
MYDOMAIN.COM AD 域的 DNS 名称,全部为大写字母
MYDOMAIN 包含 Samba 服务器的工作组或 NT 域的 DNS 名称,全部为大写字母
ads-hostname AD 服务器的主机名
ads-hostname.mydomain.com AD 服务器的完全限定域名 (FQDN)
mytimeserver.mycompany.com NTP 时间服务器的 DNS 名称
AdminUser 虚拟机管理员的用户名

过程

  1. 在 Ubuntu 虚拟机上,通过编辑 /etc/hostname 配置文件来定义虚拟机的主机名。
  2. 配置 DNS。
    1. 将 DNS 服务器名称和 IP 地址添加到 /etc/hosts 配置文件中。
    2. 将 DNS 名称服务器的 IP 地址和 AD 域的 DNS 名称添加到 /etc/network/interfaces 配置文件中,如以下示例中所示。
      dns-nameservers dns_IP_ADDRESS
      dns-search mydomain.com
  3. 安装 resolvconfig 软件包。
    1. 运行安装命令。
      apt-get install -y resolvconf
      允许系统安装该软件包并重新引导。
    2. 验证 /etc/resolv.conf 文件中的 DNS 配置,如以下示例中所示。
      cat /etc/resolv.conf
      …
      nameserver dns_IP_ADDRESS
      search mydomain.com
  4. 配置网络时间同步。
    1. 安装 ntpdate 软件包。
      apt-get install -y ntpdate
    2. 将 NTP 服务器信息添加到 /etc/systemd/timesyncd.conf 配置文件中,如以下示例中所示。
      [Time]
      NTP=mytimeserver.mycompany.com
  5. 重新启动 NTP 服务。
    sudo service ntpdate restart
  6. 安装所需的 AD 加入软件包。
    1. 运行安装命令。
      apt-get install -y samba krb5-config krb5-user winbind libpam-winbind
          libnss-winbind
    2. 在出现要求输入默认 Kerberos 领域的安装提示时,以大写字母形式输入您的 AD 域的 DNS 名称(例如,MYDOMAIN.COM)。然后,选择确定
  7. 编辑 /etc/krb5.conf 配置文件,如以下示例中所示。
    [libdefaults]
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          default_realm = MYDOMAIN.COM
          default_ccache_name = KEYRING:persistent:%{uid}
    
    [realms]
          MYDOMAIN.COM = {
                kdc = ads-hostname.mydomain.com
                admin_server = ads-hostname.mydomain.com
                default_domain = ads-hostname.mydomain.com
                pkinit_anchors = FILE:/etc/pki/nssdb/certificate.pem
                pkinit_cert_match = <KU>digitalSignature
                pkinit_kdc_hostname = ads-hostname.mydomain.com
          }
    
    [domain_realm]
          .mydomain.com = MYDOMAIN.COM
          mydomain.com = MYDOMAIN.COM
  8. 要验证 Kerberos 认证,请运行以下命令。
    kinit Administrator@MYDOMAIN.COM
    
    klist
    确认命令返回的输出与以下示例类似。
    Ticket cache: FILE:/tmp/krb5cc_0
    Default principal: Administrator@MYDOMAIN.COMValid starting        Expires                Service principal
    2019-05-27T17:12:03   2019-05-28T03:12:03    krbtgt/MYDOMAIN.COM@MYDOMAIN.COM
            renew until 2019-05-28T17:12:03    
    
  9. 编辑 /etc/samba/smb.conf 配置文件,如以下示例中所示。
    [global]
          workgroup = MYDOMAIN  
          realm = MYDOMAIN.COM
          password server = ads-hostname.mydomain.com
          security = ads
          kerberos method = secrets only
          winbind use default domain = true
          winbind offline logon = false 
          template homedir =/home/%D/%U
          template shell = /bin/bash 
          client use spnego = yes
          client ntlmv2 auth = yes
          encrypt passwords = yes
          passdb backend = tdbsam
          winbind enum users = yes
          winbind enum groups = yes
          idmap uid = 10000-20000
          idmap gid = 10000-20000
  10. 加入 AD 域,然后检查集成。
    1. 运行 AD 加入命令。
      net ads join -U AdminUser@mydomain.com
      systemctl stop samba-ad-dc
      systemctl enable smbd nmbd winbind
      systemctl restart smbd nmbd winbind
    2. 修改 /etc/nsswitch.conf 配置文件,如以下示例中所示。
      passwd:    compat systemd winbind
      group:     compat systemd winbind
      shadow:    compat
      gshadow:   files
    3. 要检查 AD 加入结果,请运行以下命令并验证是否返回正确的输出。
      wbinfo -u
      
      wbinfo -g
    4. 要检查 Winbind 名称服务切换,请运行以下命令并验证是否返回正确的输出。
      getent group|grep 'domain admins'
      
      getent passwd|grep 'ads-hostname'
  11. 启用所有 PAM 配置文件。
    pam-auth-update
    在“PAM 配置”屏幕中,选择所有 PAM 配置文件,包括 在登录时创建主目录,然后选择 确定

下一步做什么

在 Ubuntu 虚拟机上设置智能卡重定向