若要在 Ubuntu 桌面平台上支援智慧卡重新導向,請使用 Samba 和 Winbind 解決方案整合桌面平台與 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 |
Linux 桌面平台管理員的使用者名稱 |
程序
- 在您的 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 設定檔,包括
在登入時建立主目錄,然後選取
確定。
- 在 Ubuntu 16.04 上,在登入畫面中啟用使用者切換。修改 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 檔案,如下列範例所示。
user-session=ubuntu
greeter-show-manual-login=true