kdm и ssh обнаруживают разные полные доменные имена при использовании аутентификации Kerberos

kdm и ssh обнаруживают разные полные доменные имена при использовании аутентификации Kerberos

Я пытаюсь настроить поддержку входа Kerberos (домен Windows AD, предоставляющий Kerberos) для рабочих станций Kubuntu 12.04 Linux в компании, где я работаю.

Он почти полностью работает, но я не могу заставить работать kerberos как для входа в систему (через kdm), так и для ssh одновременно. Проблема, похоже, в том, что kdm определяет полный домен хоста как hostname.domain. а ssh определяет полный домен как hostname.domain (обратите внимание на отсутствие завершающего .)

Этого отсутствия или наличия . в конце домена, который используется в запросах Kerberos, достаточно, чтобы запрос билета завершился ошибкой «Сервер не найден в базе данных Kerberos». Если я обновлю /etc/hosts, чтобы указать полное имя хоста как hostname.domain. и присоединюсь к домену с помощью Samba, входы KDM с использованием Kerberos будут работать правильно, но входы SSH будут завершаться неудачей. Если я обновлю /etc/hosts, чтобы указать хост как hostname.domain, то входы SSH с использованием Kerberos будут работать, но входы KDM будут завершаться неудачей.

Я немного не понимаю, почему эти два сервиса по-разному определяют полное доменное имя. Я провел тщательный поиск и не нашел никаких упоминаний о том, что у кого-то еще была такая проблема, или о каких-либо вариантах, которые заставили бы один из сервисов определять свои доменные имена по-разному.

Технические детали

Использование Kubuntu 12.04 — это техническое требование, находящееся вне моего контроля, поэтому на данном этапе обновление до более позднего дистрибутива не представляется возможным.

pam_krb5 используется для обеспечения аутентификации Kerberos через PAM DNS, который не является Windows DNS (нельзя переключать DNS-серверы, пока не будут завершены дальнейшие работы над другой инфраструктурой), поэтому основные данные, используемые для присоединения к домену Samba Kerberosied, берутся из /etc/hosts, который выглядит примерно так:

127.0.0.1 hostname.domain.  hostname  localhost

(хотя используемый DNS-сервер Unix имеет правильные прямые и обратные записи 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 просто включает в себя файлы common-pam, которые имеют стандартные записи pam_krb5.so, такие как

auth sufficient pam_krb5.so minimum_uid=1000

которые в основном взяты непосредственно из страниц руководства pam_krb5.conf

конфигурация ssh имеет

 GSSAPIAuthentication yes

а остальное — стандартный файл конфигурации Ubuntu SSH по умолчанию.

Спасибо за любые указания относительно того, что является причиной этого несоответствия в обнаруженном полностью квалифицированном домене между службами.

решение1

Я думаю, что я разобрался, что здесь происходит. Похоже, что дополнительная информация сохраняется в файле keytab после присоединения хоста с/без . на конце домена, и именно отсюда возникало странное поведение.

Однажды я удалил /etc/krb5.keytab и перезапустил присоединение к домену, что создало новый keytab, который был настроен только с доменным именем, настроенным без . на конце. На тот момент и kdm, и ssh работали правильно с kerberos.

Связанный контент