双身份验证代理不适用于 PANOS 8.1.7 或以上

双身份验证代理不适用于 PANOS 8.1.7 或以上

11262
Created On 04/29/20 20:24 PM - Last Modified 03/26/21 18:19 PM


Symptom


  • 升级 PANOS 到 8.1.7 或以上后,管理员无法 firewall 通过身份验证登录到 LDAP 承载 Duo 身份验证代理服务的身份验证服务器。
  • 当管理员尝试登录 firewall 时,他们会获得 Duo 推送,当他们点击时,批准登录屏幕的用户名和密码部分将重置字段,并说"无效的用户名和密码"。
  • Firewall"系统日志"将显示一个日志,其中指出" LDAP 身份验证服务器已关闭",但事实并非如此。


Environment


  • PAN-OS:8.1.7或以上。
  • 帕洛阿尔托 Firewall .
  • 承载双身份验证代理服务的身份验证服务器。
  • 协议: LDAP .


Cause


  • 此问题是由于在协议的 8.1.7 版本中添加了主动修复 LDAP 。
  • 根据 LDAP 协议,一旦绑定到特定用户(当前身份验证反对该用户),我们就可以绑定回绑定/bindpw 以进行未来的 LDAP 操作。
  • 在 8.1.7 版本之前,在验证最终用户身份验证(搜索最终用户的 dn 并与最终用户的密码结合)后,authd 确实 ONE 会与绑定/绑定/绑定 ddpw 绑定时间,但不会检查它是否成功。它只是将最终用户的身份验证成功/失败返回到上层过程。
奥思德日志:
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1203): User "test.user" is ACCEPTED (msgid = 4, LDAPp=0x13b2820)
debug: _get_AD_passwd_exp_in_days(pan_authd_shared_ldap.c:86): userAccountControl = 512 (not never expire)
debug: _get_AD_passwd_exp_in_days(pan_authd_shared_ldap.c:95): Password doesn't expire for "test.user" by maxPwdAge
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1235): Got user expire-in-days: -1 (-1 means no expiration), passwd_exp in auth profile: 7
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1279): binding back to binddn: cn=***********,ou=*********,ou=********,dc=*********,dc=***
debug: pan_authd_ldap_bind(pan_authd_shared_ldap.c:614): binding with binddn cn=***********,ou=*********,ou=********,dc=*********,dc=***
Error:  _get_ldap_result(pan_authd_shared_ldap.c:569): ldap op failed Can't contact LDAP server
Error:  pan_authd_ldap_bind(pan_authd_shared_ldap.c:629): failed to get ldap result 
Error:  pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1282): Failed to rebind, get out
debug: pan_auth_response_process(pan_auth_state_engine.c:4271): auth status: auth success
 
  • 从 8.1.7 版本开始,在验证最终用户身份验证(搜索最终用户的 dn 并与最终用户的密码绑定)后,authd 最多会 THREE 与绑定/bindpw 绑定到绑定/bindpw 直到成功(以防网络非常不稳定)。即使3次尝试后,如果绑定绑定/bindpw失败,authd将返回"需要重新连接到 LDAP 服务器"到上层,并会认为连接没有用处。
奥思德日志:
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1232): User "test.user" is ACCEPTED (msgid = 4, LDAPp=0x1db04e0)
debug: _get_AD_passwd_exp_in_days(pan_authd_shared_ldap.c:88): userAccountControl = 512 (not never expire)
debug: _get_AD_passwd_exp_in_days(pan_authd_shared_ldap.c:136): pwdlastset: 13197988228 seconds since January 1, 1601 (UTC)
debug: _get_AD_passwd_exp_in_days(pan_authd_shared_ldap.c:155): AD pwd expires in days 37 (max 255 warning limit)
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1264): Got user expire-in-days: -1 (-1 means no expiration), passwd_exp in auth profile: 7
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1312): binding back to binddn: cn=***********,ou=*********,ou=********,dc=*********,dc=***
debug: pan_authd_ldap_bind(pan_authd_shared_ldap.c:630): binding with binddn binding back to binddn: cn=***********,ou=*********,ou=********,dc=*********,dc=***
Error:  _get_ldap_result(pan_authd_shared_ldap.c:585): ldap op failed Can't contact LDAP server
Error:  pan_authd_ldap_bind(pan_authd_shared_ldap.c:645): failed to get ldap result 
Error:  pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1315): Failed to rebind back to binddn (Try 1)
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1312): binding back to binddn: binding back to binddn: cn=***********,ou=*********,ou=********,dc=*********,dc=***
debug: pan_authd_ldap_bind(pan_authd_shared_ldap.c:630): binding with binddn binding back to binddn: cn=***********,ou=*********,ou=********,dc=*********,dc=***
Error:  pan_authd_ldap_bind(pan_authd_shared_ldap.c:639): Failed to bind ldap (Can't contact LDAP server)
Error:  pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1315): Failed to rebind back to binddn (Try 2)
debug: pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1312): binding back to binddn: binding back to binddn: cn=***********,ou=*********,ou=********,dc=*********,dc=***
debug: pan_authd_ldap_bind(pan_authd_shared_ldap.c:630): binding with binddn binding back to binddn: cn=***********,ou=*********,ou=********,dc=*********,dc=***
Error:  pan_authd_ldap_bind(pan_authd_shared_ldap.c:639): Failed to bind ldap (Can't contact LDAP server)
Error:  pan_authd_ldap_authenticate(pan_authd_shared_ldap.c:1315): Failed to rebind back to binddn (Try 3)
Error:  _generate_bind_back_to_binddn_fail_log(pan_authd_shared_ldap.c:1043): 3 tries to bind back to binddn failed: basedn: DC=*********,DC=*** ; binddn: cn=***********,
ou=*********,ou=********,dc=*********,dc=*** ; bind_timelimit 30 ; ip: 192.168.43.29 ; uri: ldap://192.168.43.29:389
Error:  _start_sync_auth(pan_auth_service_handle.c:603): LDAP auth: "Can't contact LDAP server" against 192.168.43.29:389 with 0th VOIDp=0x1db04e0
Error:  _start_sync_auth(pan_auth_service_handle.c:606): -> enter into retry interval (wait for 60 sec)
LDAP auth server 192.168.43.29 is down !!!
 
  • 默认情况下, DUO 不支持在用户身份验证后绑定回绑定/绑定。 这会导致绑定回绑定/绑定失败,因此,管理身份验证失败。


Resolution


  1. 根据 LDAP 协议,将绑定回绑定/绑定可以在连接内按需要多次完成。因此,必须 DUO 完成更改,这可以通过将配置更改应用到 Duo 代理配置文件来实现。 客户需要联系 DUO 支持团队以获取有关这些更改的更多信息。
OR
  1. 使用 RADIUS 双身份验证代理服务与身份验证服务器进行通信。


Additional Information


什么是绑定回绑定/绑定?
  • 在 LDAP firewall 与身份验证服务器之间的初始连接中 LDAP ,身份验证将 BIND 使用绑定/绑定。 此 BIND 操作有助于 firewall 对目录服务器进行身份验证,并建立用于后续操作的授权标识。
  • 当用户提供 LDAP 凭据时,authd 将通过搜索用户的 dn 并将其与用户的 pw 绑定并将其发送到身份验证服务器来验证最终用户 LDAP 。 LDAP 身份验证服务器将相应地响应它。
  • 用户经过身份验证后,authd 将绑定回绑定/绑定。
  • 这有助于身份验证保持一个 LDAP 连接,并将其重复使用以进行数百万次身份验证,以便具有较高的吞吐量。
  • 如果绑定回绑定/bindpw 不是身份验证代码的一部分,则需要 LDAP 为每个身份验证创建一个新连接,然后拆下连接。


Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000PPrNCAW&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language