Linux

kdm 和 ssh 在使用 kerberos 身份驗證時檢測到不同的完全限定域名

  • September 29, 2015

我正在嘗試為我所在公司的 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 wise /etc/pam.d/kdm 只包括具有標準 pam_krb5.so 條目的 commonpam 文件,例如

auth sufficient pam_krb5.so minimum_uid=1000

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

ssh 配置有

GSSAPIAuthentication yes

其餘的是標準的預設 ubuntu ssh 配置文件。

感謝您提供有關在服務之間檢測到的完全限定域中導致這種不匹配的任何指針。

我相信我已經弄清楚這裡發生了什麼。主機加入/不加入後,keytab 文件中似乎保留了額外的資訊。在域的末尾,這就是奇怪行為的來源。

一旦我刪除了 /etc/krb5.keytab 並重新執行到域的加入,該域創建了一個新的 keytab,該 keytab 只使用沒有配置的域名進行設置。最後。那時,kdm 和 ssh 都可以與 kerberos 一起正常工作。

引用自:https://serverfault.com/questions/699866