使用 kerberos 驗證時 kdm 和 ssh 偵測不同的完全限定域名

使用 kerberos 驗證時 kdm 和 ssh 偵測不同的完全限定域名

我正在嘗試為我所在公司的 Kubuntu 12.04 Linux 工作站設定 Kerberos 登入支援(提供 kerberos 的 Windows AD 網域)。

它幾乎完全工作,但我無法讓 kerberos 同時用於機器登入(透過 kdm)和 ssh。問題似乎是 kdm 將主機的完全限定域偵測為 hostname.domain。並且 ssh 偵測到完全限定的網域為 hostname.domain (注意缺少尾隨 .)

缺乏或存在。 kerberos 請求中使用的網域末尾的 足以使票證請求失敗並出現「在 kerberos 資料庫中找不到伺服器」錯誤。如果我更新 /etc/hosts 以獲得完全限定的主機名稱作為 hostname.domain。並使用 samba 加入網域 kdm 使用 kerberos 登入可以正常運作,但 ssh 登入失敗。如果我更新 /etc/hosts 以將主機作為 hostname.domain,則使用 kerberos 的 ssh 登入可以工作,但 kdm 登入失敗。

我對為什麼這兩種服務以不同的方式檢測完全限定域名感到有點困惑 - 我進行了廣泛的搜索,但沒有找到任何其他人遇到此問題的參考或任何強制其中一項服務的選項以不同的方式檢測他們的域名。

技術細節

使用的 Kubuntu 12.04 是我無法控制的技術要求,因此現階段無法升級到更高版本。

pam_krb5 用於透過 pam dns 提供 kerberos 驗證,所使用的不是 Windows dns(在其他基礎設施上的進一步工作完成之前無法切換 dns 伺服器),因此用於 samba kerberosied 加入網域的主要詳細資訊如下來自/etc/ hosts 看起來像

127.0.0.1 hostname.domain.  hostname  localhost

(雖然正在使用的unix dns伺服器確實有正確的主機的正向和反向dns條目)

/etc/krb5.conf(主要是發行版預設值,其中輸入了網域詳細資訊和伺服器)

[libdefaults]
default_realm = DOMAIN
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
# samba 3 didn't like the default enc type so overridden to ones it supported
default_tkt_enctypes = arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc
default_tgs_enctypes = arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc

[realms]
DOMAIN = {
kdc = dc01.domain
kdc = dc02.domain
admin_server = dc01.domain
}
[domain_realm]
.domain = DOMAIN

[login]
krb4_convert = true
krb4_get_tickets = false

/etc/samba/smb.conf(僅用於加入網域)

[global]
security = ads
realm = WETAFX.CO.NZ
workgroup = WETAFX.CO.NZ

kerberos method = secrets and keytab

client signing = yes
client use spnego = yes

server string = %h server (Samba, Ubuntu)
dns proxy = no
log file = /var/log/samba/log.%m

max log size = 1000

syslog = 0

panic action = /usr/share/samba/panic-action %d

pam 明智的 /etc/pam.d/kdm 僅包含常見的 pam 文件,其中包含標準 pam_krb5.so 條目,例如

auth sufficient pam_krb5.so minimum_uid=1000

基本上直接取自 pam_krb5.conf 的手冊頁

ssh 配置有

 GSSAPIAuthentication yes

其餘的是標準預設的 ubuntu ssh 設定檔。

感謝您指出導致服務之間偵測到的完全限定域不符的原因。

答案1

我相信我已經弄清楚這裡發生了什麼事。主機加入/不加入後,看起來額外的資訊會保留在密鑰表檔案中。在域的末尾,這就是奇怪行為的來源。

一旦我刪除了 /etc/krb5.keytab 並重新加入到域,該域創建了一個新的密鑰表,該密鑰表僅使用配置的網域進行設置,而沒有 .在它的最後。此時 kdm 和 ssh 都可以與 kerberos 一起正常工作。

相關內容