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

Аутентификация клиента Linux Active Directory перестает работать при отказе

У меня проблема с клиентами Linux, пытающимися выполнить аутентификацию AD с помощью DNS-имени (corp.example.com). У меня 2 сервера контроллера домена DC1 (10.0.0.3/24), DC2 (10.1.0.3/24) оба контроллера домена для corp.example.com. Перед запуском на каждом Linux-клиенте был явно определен 1 из 2 IP-адресов серверов AD. Я прошел и заменил IP-адрес доменным именем (corp.example.com), как показано ниже в конфигурациях. Протестировал, и он отлично работает. Однако тестирование аварийного переключения путем выключения одного из серверов Dome Controller приводит к тому, что некоторые клиенты Linux не могут пройти аутентификацию и время ожидания истекает. Видеть Отказоустойчивость DC / DNS с глобальным / общим DNS Roundrobin для моего первоначального сообщения, когда я думал, что это проблема сети. На клиентах Linux:

/etc/openldap/ldap.conf

  uri     ldap://DC1 ldap://DC2
    base    dc=corp,dc=example,dc=com

/etc/krb5.conf

[libdefaults]
        default_realm = corp.example.com
        clockskew = 300
        dns_lookup_kdc
#       default_realm = EXAMPLE.COM

[realms]
corp.example.com= {
        kdc = corp.example.com
        default_domain = corp.example.com
        kpasswd_server = corp.example.com
        admin_server = corp.example.com
}
#       EXAMPLE.COM = {
#                kdc = kerberos.example.com
#               admin_server = kerberos.example.com
#       }

[logging]
        kdc = FILE:/var/log/krb5/krb5kdc.log
        admin_server = FILE:/var/log/krb5/kadmind.log
        default = SYSLOG:NOTICE:DAEMON
[domain_realm]
        .corp.example.com = corp.example.com
        .corp = corp.example.com
[appdefaults]
pam = {
        ticket_lifetime = 1d
        renew_lifetime = 1d
        forwardable = true
        proxiable = false
        minimum_uid = 1
        external = sshd
        use_shmem = sshd
        clockskew = 300
        retain_after_close = false
}

/etc/resolve.conf

search corp.example.com
nameserver 10.0.0.3
nameserver 10.1.0.3

Это то, что я вижу в syslog-ng

Nov 30 09:04:56 linux_client nscd: nss_ldap: failed to bind to LDAP server ldap://ad3: Can't contact LDAP server
Nov 30 09:04:59 linux_client sshd[15585]: nss_ldap: failed to bind to LDAP server ldap://ad3: Can't contact LDAP server
Nov 30 08:50:19 linux_client sshd[15242]: Accepted keyboard-interactive/pam for jim from 10.0.0.231 port 61288 ssh2
Nov 30 08:52:02 linux_client sshd[15284]: nss_ldap: could not search LDAP server - Server is unavailable
Nov 30 08:53:09 linux_client sshd[15284]: pam_unix2(sshd:auth): conversation failed
Nov 30 08:53:16 linux_client sshd[15284]: error: ssh_msg_send: write
Nov 30 08:53:26 linux_client sshd[15284]: pam_krb5[15284]: authentication fails for 'jim' (jim@corp.example.com): Authentication failure (Cannot read password)
Nov 30 08:53:26 linux_client sshd[15284]: error: ssh_msg_send: write
Nov 30 08:56:02 linux_client sshd[15289]: nss_ldap: could not search LDAP server - Server is unavailable
Nov 30 08:56:27 linux_client sshd[15289]: pam_krb5[15289]: authentication succeeds for 'jim' (jim@corp.example.com)
Nov 30 08:57:12 linux_client sshd[15289]: nss_ldap: could not search LDAP server - Server is unavailable
Nov 30 08:57:18 linux_client sshd[15289]: _rebind_proc
Nov 30 08:57:31 linux_client sshd[15289]: _rebind_proc
Nov 30 08:57:34 linux_client sshd[15289]: _rebind_proc
Nov 30 08:57:34 linux_client sshd[15289]: pam_ldap: ldap_result Timed out
Nov 30 08:57:34 linux_client sshd[15289]: error: ssh_msg_send: write

Похоже, другие DC не пробуют?

Вместо использования DNS для переключения контроллеров домена при отказе, /etc/openldap/ldap.conf позволяет использовать список серверов ldap, разделенных пробелами. Вы по-прежнему можете использовать имена хостов вместо фактических IP-адресов.

Например: URI ldap://dc01.corp.example.com ldap://dc02.corp.example.com

Для получения дополнительной информации см .: http://linux.die.net/man/5/ldap.conf

Я также заметил, что ваши 2 IP-адреса сверху находятся в разных подсетях. Убедитесь, что у ваших клиентов есть связь с обоими. Вы уже изучили сетевые проблемы, так что, вероятно, у вас все в порядке, но я хотел бы упомянуть об этом на всякий случай.