我在 Linux 客户端尝试通过定位 DNS 名称进行 AD 身份验证时遇到问题 (corp.example.com). 我有 2 个域控制器服务器DC1(10.0.0.3/24),DC2(10.1.0.3/24)两个域控制器corp.example.com。在开始之前,每个 Linux 客户端都明确定义了 2 个 AD 服务器 IP 地址中的 1 个。我仔细检查了一下,将 IP 地址替换为域名 (corp.example.com),如下面的配置所示。测试后效果很好。但是,通过关闭其中一个 Dome Controller 服务器来测试故障转移会导致某些 Linux 客户端无法进行身份验证并超时。请参阅使用全局/通用 DNS 循环进行 DC/DNS 故障转移当我最初发布帖子时,我以为这是一个网络问题。 在 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/resolv.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' ([email protected]): 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' ([email protected])
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?
答案1
/etc/openldap/ldap.conf
您可以使用空格分隔的 ldap 服务器列表,而不是使用 DNS 来故障转移域控制器。您仍然可以使用主机名来代替实际的 IP 地址。
例如:URI ldap://dc01.corp.example.com ldap://dc02.corp.example.com
更多信息请参阅:http://linux.die.net/man/5/ldap.conf
我还注意到您上面的 2 个 IP 地址位于不同的子网中。确保您的客户端可以与这两个 IP 地址通信。您已经查看了网络问题,所以可能没什么问题,但为了以防万一,我还是想提一下。