Назад | Перейти на главную страницу

Вход Kerberos для существующего домена: область и рабочая группа не совпадают, что приводит к CLIENT_NOT_FOUND

Недавно я унаследовал обязанности по обслуживанию нашего контроллера домена Samba, который используется в основном для управления входом в домен, а также в качестве безопасного файлового ресурса. Первоначальная конфигурация этой системы мне не совсем известна, поскольку она была настроена задолго до того, как я присоединился к группе, и из-за некоторых недавних неожиданных кадровых изменений у меня осталась система с неработающими службами, конфигурация которой я ничего не знал около. Сервер работает под управлением Ubuntu 16.04 и использует самбу для имитации каталога Windows Active Directory (я думаю, что использую правильную терминологию). Я буду рад опубликовать файлы конфигурации или другую соответствующую информацию, если это необходимо.

Я обнаружил, что мне не удалось присоединить новые машины к домену, и, кроме того, вход на машины Windows в этом домене, похоже, полагался на кэширование учетных данных, при этом изменения пароля не отражались на разных машинах. Я начал копать и сначала обнаружил, что при загрузке серверной машины одна из служб не запускается. Глядя на файлы журналов, служба распределения ключей Kerberos 5 давала сбой.

Служба Kerberos, казалось, была сломана много месяцев назад. Я следовал очень полезному руководству по настройке нового домена Kerberos, ссылка на который находится внизу сообщения. Я переустановил сервер kerberos 5 в соответствии с руководством, и теперь служба теперь правильно запускается при загрузке, и, следуя трассировке файлов журнала, которые предлагает руководство, я вижу, что он обменивается данными с другими компьютерами в сети, я могу видеть различные компьютеры попытки входа в систему, которые терпят неудачу из-за отсутствия имени компьютера в списке основных пользователей. (Это еще одна проблема с более низким приоритетом, так как старый основной файл, который, как мне кажется, был перезаписан при переустановке, я не знал, что это возможно. Выяснение, какие пароли отправляют эти компьютеры при автоматических попытках повторного подключения, позволит мне добавить их в участники с правильным паролем, чтобы исправить эту проблему) Когда я пытаюсь войти в систему на странице входа в Windows 7 машины, подключенной к домену, когда все еще работает, я вижу это на сервере в реальном времени на трассировке считывание терминала. Однако не все хорошо.

Когда я пытаюсь войти в терминал, все еще присоединенный к домену, ядро ​​получает логин от имени пользователя @ MSAE и не может найти совпадение, так как домен назван msae.wisc.edu и, следовательно, не находит совпадения. имя пользователя. Это меня немного сбивает с толку, так как в окнах под доменом он перечисляет "msae.wisc.edu", но при входе в систему домен читает "MSAE". Попытке входа в систему не хватает необходимого ".wisc.edu", чтобы точно соответствовать тому, что находится в списке руководителей. Я не знаю, что делать дальше. Я попытался войти в систему с помощью msae.wisc.edu/username, чтобы заставить домен читать «msae.wisc.edu», что привело к появлению сообщения «База данных безопасности на сервере не имеет учетной записи компьютера для доверительных отношений этой рабочей станции» сообщение на машине Windows, когда правильный пароль отправлен, и на сервере я вижу:

Jun 22 13:09:10 nucleus.msae.wisc.edu krb5kdc[1040](info): AS_REQ (6 etypes {18 17 23 24 -135 3}) 128.104.185.62: ISSUE: authtime 1498154950, etypes {rep=18 tkt=18 ses=18}, username@msae.wisc.edu for krbtgt/msae.wisc.edu@msae.wisc.edu

Я также попытался добавить новую запись в принципалы с только MSAE в качестве домена, то есть имя пользователя @ MSAE вместо всех остальных, которые читают имя пользователя@msae.wisc.edu. Когда я вхожу в систему без указания домена (т.е. с использованием домена MSAE по умолчанию, показанного в Windows), я получаю следующую ошибку:

REFERRAL: username@MSAE for krbtgt/MSAE@MSAE, Realm not local to KDC

В соответствии с тем, что я нашел в документации MIT Kerberos (вторая ссылка ниже), я также попытался добавить следующие строки в krb5.conf в надежде сгладить эту проблему с именем хоста.

[libdefaults]
    ignore_acceptor_hostname = true

Однако это не сработало.

У меня есть одна идея - изменить имя области по умолчанию на просто "MSAE", чтобы соответствовать формату попытки входа в систему, который использует Windows, но я беспокоюсь, что это может нарушить работу других существующих служб. Моя единственная другая идея - каким-то образом найти способ автоматической замены "MSAE" на "msae.wisc.edu", что, как я думал, я включил, разместив такую ​​строку (MSAE = msae.wisc.edu) в разделе [domain_realm] krb5.conf, но, насколько мне известно, это ничего не дало.

Что еще хуже, исправление неработающей службы kerberos позволяет клиентским машинам связываться с ядром, но имена пользователей и пароли не принимаются из-за вышеупомянутой проблемы с доменным именем. Вывод здесь заключается в том, что мой профессор в течение нескольких месяцев входил в свою машину с кэшированными учетными данными, так как его компьютер не мог связаться с Nucleus из-за сломанной службы Kerberos. Теперь, когда это (вроде) исправлено, он попытался войти в систему с учетными данными, которые (ранее) были кэшированы на его терминале, но был отклонен, так как его попытка входа была передана Nucleus и отклонена. Это привело к удалению кешированных положительных учетных данных, уничтожив то, как он входил в систему все эти месяцы.

Мы будем очень признательны за любой совет по этому поводу.

Мой krb5.conf

[libdefaults]
    default_realm = msae.wisc.edu
    ignore_acceptor_hostname = true
# The following krb5.conf variables are only for MIT Kerberos.
#krb4_config = /etc/krb.conf
#krb4_realms = /etc/krb.realms
#kdc_timesync = 1
#ccache_type = 4
#forwardable = true
#proxiable = true

# The following encryption type specification will be used by MIT Kerberos
# if uncommented.  In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# Thie only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn't know about (such as
# old versions of Sun Java).

#   default_tgs_enctypes = des3-hmac-sha1
#   default_tkt_enctypes = des3-hmac-sha1
#   permitted_enctypes = des3-hmac-sha1

# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
    host = {
        rcmd = host
        ftp = ftp
    }
    plain = {
        something = something-else
    }
}
fcc-mit-ticketflags = true

[realms]
msae.wisc.edu = {
    kdc = NUCLEUS
    admin_server = NUCLEUS
}
ATHENA.MIT.EDU = {
    kdc = kerberos.mit.edu:88
    kdc = kerberos-1.mit.edu:88
    kdc = kerberos-2.mit.edu:88
    admin_server = kerberos.mit.edu
    default_domain = mit.edu
}
MEDIA-LAB.MIT.EDU = {
    kdc = kerberos.media.mit.edu
    admin_server = kerberos.media.mit.edu
}
ZONE.MIT.EDU = {
    kdc = casio.mit.edu
    kdc = seiko.mit.edu
    admin_server = casio.mit.edu
}
MOOF.MIT.EDU = {
    kdc = three-headed-dogcow.mit.edu:88
    kdc = three-headed-dogcow-1.mit.edu:88
    admin_server = three-headed-dogcow.mit.edu
}
CSAIL.MIT.EDU = {
    kdc = kerberos-1.csail.mit.edu
    kdc = kerberos-2.csail.mit.edu
    admin_server = kerberos.csail.mit.edu
    default_domain = csail.mit.edu
    krb524_server = krb524.csail.mit.edu
}
IHTFP.ORG = {
    kdc = kerberos.ihtfp.org
    admin_server = kerberos.ihtfp.org
}
GNU.ORG = {
    kdc = kerberos.gnu.org
    kdc = kerberos-2.gnu.org
    kdc = kerberos-3.gnu.org
    admin_server = kerberos.gnu.org
}
1TS.ORG = {
    kdc = kerberos.1ts.org
    admin_server = kerberos.1ts.org
}
GRATUITOUS.ORG = {
    kdc = kerberos.gratuitous.org
    admin_server = kerberos.gratuitous.org
}
DOOMCOM.ORG = {
    kdc = kerberos.doomcom.org
    admin_server = kerberos.doomcom.org
}
ANDREW.CMU.EDU = {
    kdc = kerberos.andrew.cmu.edu
    kdc = kerberos2.andrew.cmu.edu
    kdc = kerberos3.andrew.cmu.edu
    admin_server = kerberos.andrew.cmu.edu
    default_domain = andrew.cmu.edu
}
CS.CMU.EDU = {
    kdc = kerberos.cs.cmu.edu
    kdc = kerberos-2.srv.cs.cmu.edu
    admin_server = kerberos.cs.cmu.edu
}
DEMENTIA.ORG = {
    kdc = kerberos.dementix.org
    kdc = kerberos2.dementix.org
    admin_server = kerberos.dementix.org
}
stanford.edu = {
    kdc = krb5auth1.stanford.edu
    kdc = krb5auth2.stanford.edu
    kdc = krb5auth3.stanford.edu
    master_kdc = krb5auth1.stanford.edu
    admin_server = krb5-admin.stanford.edu
    default_domain = stanford.edu
}
    UTORONTO.CA = {
            kdc = kerberos1.utoronto.ca
            kdc = kerberos2.utoronto.ca
            kdc = kerberos3.utoronto.ca
            admin_server = kerberos1.utoronto.ca
            default_domain = utoronto.ca
}

[domain_realm]
.msae.wisc.edu = msae.wisc.edu
MSAE = msae.wisc.edu
.MSAE = msae.wisc.edu
.mit.edu = ATHENA.MIT.EDU
mit.edu = ATHENA.MIT.EDU
.media.mit.edu = MEDIA-LAB.MIT.EDU
media.mit.edu = MEDIA-LAB.MIT.EDU
.csail.mit.edu = CSAIL.MIT.EDU
csail.mit.edu = CSAIL.MIT.EDU
.whoi.edu = ATHENA.MIT.EDU
whoi.edu = ATHENA.MIT.EDU
.stanford.edu = stanford.edu
.slac.stanford.edu = SLAC.STANFORD.EDU
    .toronto.edu = UTORONTO.CA
    .utoronto.ca = UTORONTO.CA

[login]
krb4_convert = true
krb4_get_tickets = false

[logging]
kdc = FILE:/var/log/kerberos/krb5kdc.log
admin_server = FILE:/var/log/kerberos/kadmin.log
default = FILE:/var/log/kerberos/krb5lib.log

Мой kdc.conf

[kdcdefaults]
kdc_ports = 750,88

[realms]
MSAE.WISC.EDU = {
    database_name = /var/lib/krb5kdc/principal
    admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab
    acl_file = /etc/krb5kdc/kadm5.acl
    key_stash_file = /etc/krb5kdc/stash
    kdc_ports = 750,88
    max_life = 10h 0m 0s
    max_renewable_life = 7d 0h 0m 0s
    master_key_type = des3-hmac-sha1
    supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3
    default_principal_flags = +preauth
}

Руководство по Kerberos http://techpubs.spinlocksolutions.com/dklar/kerberos.html#krb-adduser-ticket Основное имя и документация по DNS https://web.mit.edu/kerberos/krb5-1.11/doc/admin/princ_dns.html