要在 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 |
虚拟机管理员的用户名 |
过程
- 在 Ubuntu 虚拟机上,通过编辑 /etc/hostname 配置文件来定义虚拟机的主机名。
- 配置 DNS。
- 将 DNS 服务器名称和 IP 地址添加到 /etc/hosts 配置文件中。
- 将 DNS 名称服务器的 IP 地址和 AD 域的 DNS 名称添加到 /etc/network/interfaces 配置文件中,如以下示例中所示。
dns-nameservers dns_IP_ADDRESS
dns-search mydomain.com
- 安装 resolvconfig 软件包。
- 运行安装命令。
apt-get install -y resolvconf
允许系统安装该软件包并重新引导。
- 验证 /etc/resolv.conf 文件中的 DNS 配置,如以下示例中所示。
cat /etc/resolv.conf
…
nameserver dns_IP_ADDRESS
search mydomain.com
- 配置网络时间同步。
- 安装 ntpdate 软件包。
apt-get install -y ntpdate
- 将 NTP 服务器信息添加到 /etc/systemd/timesyncd.conf 配置文件中,如以下示例中所示。
[Time]
NTP=mytimeserver.mycompany.com
- 重新启动 NTP 服务。
sudo service ntpdate restart
- 安装所需的 AD 加入软件包。
- 运行安装命令。
apt-get install -y samba krb5-config krb5-user winbind libpam-winbind
libnss-winbind
- 在出现要求输入默认 Kerberos 领域的安装提示时,以大写字母形式输入您的 AD 域的 DNS 名称(例如,MYDOMAIN.COM)。然后,选择确定。
- 编辑 /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
- 要验证 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
- 编辑 /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
- 加入 AD 域,然后检查集成。
- 运行 AD 加入命令。
net ads join -U AdminUser@mydomain.com
systemctl stop samba-ad-dc
systemctl enable smbd nmbd winbind
systemctl restart smbd nmbd winbind
- 修改 /etc/nsswitch.conf 配置文件,如以下示例中所示。
passwd: compat systemd winbind
group: compat systemd winbind
shadow: compat
gshadow: files
- 要检查 AD 加入结果,请运行以下命令并验证是否返回正确的输出。
- 要检查 Winbind 名称服务切换,请运行以下命令并验证是否返回正确的输出。
getent group|grep 'domain admins'
getent passwd|grep 'ads-hostname'
- 启用所有 PAM 配置文件。
在“PAM 配置”屏幕中,选择所有 PAM 配置文件,包括
在登录时创建主目录,然后选择
确定。