要在 Ubuntu/Debian 桌面上支持 True SSO,您可以使用 Samba 和 Winbind 解决方案将基础虚拟机 (VM) 与 Active Directory (AD) 域集成在一起。
**注意:**或者,您也可以按在 Ubuntu/Debian 桌面上配置“使用 SSSD 的 True SSO”中所述,使用 SSSD 域加入解决方案配置 True SSO。
要使用 Samba 和 Winbind 将 Ubuntu/Debian 虚拟机与 AD 域集成在一起,请使用以下过程。
该过程中的一些示例使用占位符值表示网络配置中的实体,例如,虚拟机的主机名。请将占位符值替换为您的配置特定的信息,如下表中所述。
| 占位符值 | 描述 |
|---|---|
| dns_IP_ADDRESS | DNS 名称服务器的 IP 地址 |
| mydomain.com | AD 域的 DNS 名称 |
| MYDOMAIN.COM | AD 域的 DNS 名称,全部为大写字母 |
| myhost | Ubuntu/Debian 虚拟机的主机名 |
| MYDOMAIN | 包含 Samba 服务器的工作组或 NT 域的 DNS 名称,全部为大写字母 |
| ads-hostname | AD 服务器的主机名 |
| admin-user | AD 域管理员的用户名 |
必备条件
确认以下各项:
- 虚拟机上的 DNS 可以解析 AD 服务器。
- 虚拟机上配置了网络时间协议 (NTP)。
步骤
-
在 Ubuntu/Debian 虚拟机上,安装
samba和winbind软件包。sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind -
配置 Kerberos 身份验证设置。
-
如果 Kerberos 身份验证设置窗口未在系统中显示,请运行以下命令以显示该窗口。
sudo dpkg-reconfigure krb5-config -
对于 Default Kerberos version 5 realm (默认 Kerberos 版本 5 领域),请输入 AD 域的 DNS 名称(全部为大写字母)。
例如,如果 AD 域名为
mydomain.com,请输入MYDOMAIN.COM。 -
对于 Kerberos servers for your realm (领域的 Kerberos 服务器),请输入 AD 服务器的主机名(在该过程的示例中表示为
ads_hostname)。 -
对于 Administrative server for your Kerberos realm (Kerberos 领域的管理服务器),再次输入 AD 服务器的主机名。
-
-
更新 PAM 配置。
-
打开 PAM 配置页面。
pam-auth-update -
选择 Create home directory on login (在登录时创建主目录),然后选择 Ok (确定)。
-
-
编辑
/etc/nsswitch.conf配置文件,如以下示例中所示。passwd: compat winbind group: compat winbind shadow: compat gshadow: files -
如果系统自动检测到正确的 DNS 服务器,请跳过此步骤并继续执行下一步。如果系统无法检测到正确的 DNS 服务器,请完成此步骤以手动设置 DNS 服务器。
要确保自动生成的
resolv.conf文件将 AD 域引用为搜索域,请编辑系统连接的 NetworkManager 设置。以下子步骤提供了适用于 Ubuntu 20.04 系统的示例操作说明。-
打开 NetworkManager 控制面板,然后导航到系统连接的 IPv4 Settings (IPv4 设置)。对于“方法”,请选择仅自动 (DHCP) 地址。在 DNS servers (DNS 服务器) 文本框中,输入 DNS 名称服务器的 IP 地址(在该过程的示例中表示为
dns_IP_ADDRESS)。然后,单击保存。 -
编辑
/etc/dhcp/dhclient.conf文件,如以下示例中所示。supersede domain-name "mydomain.com"; prepend domain-name-servers dns_IP_ADDRESS; -
编辑
/etc/systemd/resolved.conf文件,如以下示例中所示。DNS=dns_IP_ADDRESS Domains="mydomain.com"**注意:**在创建新的即时克隆虚拟桌面时,将添加新的虚拟网络适配器。将网络适配器添加到克隆的虚拟桌面时,虚拟桌面模板将清除网络适配器(如 DNS 服务器)的设置。要在添加新网络适配器时保留 DNS 服务器设置,您必须为虚拟机指定 DNS 服务器。
-
编辑
/etc/resolv.conf配置文件以指定 DNS 服务器,如以下示例中所示。如果显示警告,您可以忽略警告并继续进行更改。nameserver dns_IP_ADDRESS search mydomain.com -
重新启动虚拟机,然后重新登录。
-
-
编辑
/etc/hosts配置文件,如以下示例中所示。127.0.0.1 localhost 127.0.1.1 myhost.mydomain.com myhost -
编辑
/etc/samba/smb.conf配置文件,如以下示例中所示。[global] security = ads realm = MYDOMAIN.COM workgroup = MYDOMAIN idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum users = yes winbind enum groups = yes template homedir = /home/%D/%U template shell = /bin/bash client use spnego = yes client ntlmv2 auth = yes encrypt passwords = yes winbind use default domain = yes restrict anonymous = 2 kerberos method = secrets and keytab winbind refresh tickets = true -
重新启动
smbd服务。sudo systemctl restart smbd.service -
编辑
/etc/krb5.conf配置文件,使其具有类似于以下示例的内容。[libdefaults] default_realm = MYDOMAIN.COM dns_lookup_realm = true dns_lookup_kdc = true [realms] MYDOMAIN.COM = { kdc = ads-hostname admin_server = ads-hostname } [domain_realm] .mydomain.com = MYDOMAIN.COM mydomain.com = MYDOMAIN.COM -
将 Ubuntu/Debian 虚拟机加入 AD 域。
-
启动 Kerberos 票证。
sudo kinit admin-user在出现提示时,输入管理员密码。
-
确认已成功创建票证。
sudo klist该命令返回有关票证的信息,包括有效期开始时间和到期时间。
-
创建一个 Kerberos keytab 文件。
sudo net ads keytab create -U admin-user -
加入 AD 域。
sudo net ads join -U admin-user
-
-
重新启动并验证 Winbind 服务。
-
重新启动 Winbind 服务。
sudo systemctl restart winbind.service -
要验证 Winbind 服务,请运行以下命令并检查是否返回正确的输出。
sudo wbinfo -usudo wbinfo -gsudo getent passwdsudo getent group
-
-
重新启动虚拟机,然后重新登录。
后续步骤
此页面对您有帮助吗?