Linux, Базовая аутентификация по паролю для двух разных AD без присоединения к домену

Linux, Базовая аутентификация по паролю для двух разных AD без присоединения к домену

У нас есть серверы AIX и Linux, работающие с базовой аутентификацией по паролю через Windows AD с использованием Kerberos, то есть это локальные пользователи с именами, идентичными их sAMAccountName в AD, и все, что делается, это проверка пароля.

Обе ОС используют простой krb5.conf

    [libdefaults]
        default_realm = COMPANYA.COM

    [realms]
            COMPANYA.COM {
                    kdc = ad.companya.com:88
                    admin_server = ad.companya.com:749
            }
    
    [domain_realm]
            .companya.com = COMPANYA.COM
            companya.com = COMPANYA.COM

Это прекрасно работает на обеих ОС.

Теперь у нас ситуация, что будет компания B, а значит и 2-й AD. Пользователь никогда не будет доступен в обоих AD, только в одном из них.

Поэтому я сначала начал с AIX, поскольку решил, что его будет сложнее всего заставить работать.

Обновлен krb5.conf

[libdefaults]
    default_realm = COMPANYA.COM

[realms]
        COMPANYA.COM {
                kdc = ad.companya.com:88
                admin_server = ad.companya.com:749
        }
        COMPANYB.COM {
                kdc = ad.companyb.com:88
                admin_server = ad.companyb.com:749
        }

[domain_realm]
        .companya.com = COMPANYA.COM
        companya.com = COMPANYA.COM
        .companyb.com = COMPANYB.COM
        companyb.com = COMPANYB.COM

После небольшого исследования мне показалось, что все, что мне нужно сделать, это

chuser auth_domain=COMPANYB.COM <user>

это обновит файл /etc/security/user и выполнит проверку пароля по AD компании B. Поэтому я был приятно удивлен, насколько это было просто.

Затем появился Linux (Ubuntu box). Сделал тот же krb5.conf, но, к сожалению, не могу найти эквивалентную команду для chuser под Ubuntu, чтобы указать этому конкретному пользователю другой AD.

Я могу найти страницы об использовании sssd и присоединении к области (Linux SSSD с двумя доменами ADи/илиhttps://ubuntu.com/server/docs/service-sssd-ad) но это все более чем необходимо (присоединение к сферам).

На данный момент с помощью tcpdump и kinit я выяснил следующее:

kinit [email protected] 
<password>
kinit: KDC reply did not match expectations while getting initial credentials

kinit [email protected]
<password>
<no error>

login [email protected]
<password>
access denied

login [email protected]
<password>
access denied

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

обновление: войти[email protected]работает, если пользователь создан на Linux-компьютере как[email protected], все еще не очень доволен этим

(забывая о том, что нереально просить пользователей писать домены полностью заглавными буквами)

Короче говоря, как указать определенным пользователям другую AD, а не ту, что по умолчанию в файле krb5.conf.

С уважением,

решение1

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

обновлен/изменен /etc/pam.d/common-auth

оригинальный

auth   [success=2 default=ignore]      pam_krb5.so minimum_uid=1000
auth   [success=1 default=ignore]      pam_unix.so nullok try_first_pass

новая версия

auth    sufficient           pam_krb5.so minimum_uid=1000 realm=COMPANYA.COM
auth    sufficient           pam_krb5.so minimum_uid=1000 realm=COMPANYB.COM
auth    sufficient           pam_unix.so nullok try_first_pass

при входе в систему как пользователь компании A он проверяет AD компании A, и поскольку пользователь там существует, пароль проверяется. при входе в систему как пользователь компании B он проверяет AD компании A, пользователя там не существует, а затем переходит к проверке компании B, и поскольку пользователь там существует, пароль проверяется.

это не так хорошо, как в AIX, но тем не менее работает.

С уважением,

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