내 IPA 클라이언트가 AD의 신뢰할 수 있는 사용자를 인식할 수 없는 이유는 무엇입니까?

내 IPA 클라이언트가 AD의 신뢰할 수 있는 사용자를 인식할 수 없는 이유는 무엇입니까?

IPA 서버를 설치하고, 복제 계약을 생성하고, AD 포리스트에 단방향 신뢰를 설정했습니다. IPA 서버는 DNS가 통합되어 있으며 자체 DNS 영역에 있습니다. 이는 예상대로 작동하며 내 AD 계정을 사용하여 IPA 서버에 로그인할 수 있습니다.

내 문제는 클라이언트를 설정할 때 IPA 사용자(예: 관리자)를 사용할 수 있지만 내 AD 계정을 사용하여 인증/로그인할 수 없다는 것입니다.

IPA 서버에서 HBAC 테스트를 실행하여 내 AD 사용자가 클라이언트에 액세스할 수 있음을 확인했습니다. 또한 IPA 클라이언트에서 AD 사용자에 대한 Kerberos 티켓을 성공적으로 얻을 수 있습니다.

IPA 클라이언트에서 AD 계정에 대한 ID 작업을 수행하면

알 수 없는 사용자 오류

SSH를 시도하면 보안 로그에 기본 인증 모듈에 불법/알 수 없는 사용자가 있다고 표시됩니다.

환경 세부 사항은 다음과 같습니다.

  • 국제 음성 알파벳 버전 4.4.0
  • IPA 서버: ipaserver01.ipa.us.example.com CentOS 7.3
  • IPA 사본: ipaserver02.ipa.us.example.com CentOS 7.3
  • IPA 클라이언트: ipaclient.us.example.com CentOS 7.3
  • IPA 도메인: IPA.US.EXAMPLE.COM
  • AD 포리스트: win.example.com
  • 사용자:[이메일 보호됨]

/etc/sssd/sssd.conf:

[domain/ipa.us.example.com]

cache_credentials = True
krb5_store_password_if_offline = True
ipa_domain = ipa.us.example.com
id_provider = ipa
auth_provider = ipa
access_provider = ipa
ldap_tls_cacert = /etc/ipa/ca.crt
ipa_hostname = ipaclient.us.example.com
chpass_provider = ipa
ipa_server = _srv_, ipaserver02.ipa.us.example.com
dns_discovery_domain = ipa.us.example.com
subdomain_inherit = ignore_group_members
ignore_group_members = True
debug_level = 6

[sssd]
domains = ipa.us.example.com
config_file_version = 2
services = nss, sudo, pam, ssh, pac
subdomain_enumerate = all
debug_level = 6

[nss]
debug_level = 6
homedir_substring = /home

/etc/krb5.conf

#File modified by ipa-client-install

includedir /etc/krb5.conf.d/
includedir /var/lib/sss/pubconf/krb5.include.d/

[libdefaults]
  default_realm = IPA.US.EXAMPLE.COM
  dns_lookup_realm = true
  dns_lookup_kdc = true
  rdns = false
  ticket_lifetime = 24h
  forwardable = true
  udp_preference_limit = 0
  default_ccache_name = KEYRING:persistent:%{uid}


[realms]
  IPA.US.EXAMPLE.COM = {
    pkinit_anchors = FILE:/etc/ipa/ca.crt

  }


[domain_realm]
  .ipa.us.example.com = IPA.US.EXAMPLE.COM
  ipa.us.example.com = IPA.US.EXAMPLE.COM
  ipaclient.us.example.com = IPA.US.EXAMPLE.COM
  .us.example.com = IPA.US.EXAMPLE.COM
  us.example.com = IPA.US.EXAMPLE.COM

/var/로그/보안

May 17 10:23:23 lxmatazan100s sshd[8256]: reverse mapping checking getaddrinfo for dhcp-ngkusernetworkuzo-1921690252.revonly.kn [192.169.0.252] failed - POSSIBLE BREAK-IN ATTEMPT!
May 17 10:23:47 lxmatazan100s sshd[8256]: Invalid user [email protected] from 192.169.0.252
May 17 10:23:47 lxmatazan100s sshd[8256]: input_userauth_request: invalid user [email protected] [preauth]
May 17 10:23:50 lxmatazan100s sshd[8256]: Failed password for invalid user [email protected] from 192.169.0.252 port 51819 ssh2
May 17 10:23:53 lxmatazan100s sshd[8256]: Failed password for invalid user [email protected] from 192.169.0.252 port 51819 ssh2
May 17 10:23:56 lxmatazan100s sshd[8256]: Failed password for invalid user [email protected] from 192.169.0.252 port 51819 ssh2
May 17 10:23:56 lxmatazan100s sshd[8256]: error: PAM: User not known to the underlying authentication module for illegal user [email protected] from 192.169.0.252
May 17 10:23:56 lxmatazan100s sshd[8256]: Failed keyboard-interactive/pam for invalid user [email protected] from 192.169.0.252 port 51819 ssh2
May 17 10:23:56 lxmatazan100s sshd[8256]: Connection closed by 192.169.0.252 [preauth]

/var/log/sssd/sssd_ipa.us.example.com(이 항목은 AD 포리스트의 각 도메인에 대해 여러 번 존재합니다!)

(Wed May 17 08:25:50 2017) [sssd[be[ipa.us.example.com]]] [_dp_req_recv] (0x0400): DP Request [Account #134]: Receiving request data.
(Wed May 17 08:25:50 2017) [sssd[be[ipa.us.example.com]]] [dp_req_reply_gen_error] (0x0080): DP Request [Account #134]: Finished. Backend is currently offline.
(Wed May 17 08:25:50 2017) [sssd[be[ipa.us.example.com]]] [dp_table_value_destructor] (0x0400): Removing [0:1:0x0001:1:1:U:usa.win.example.com:[email protected]] from reply table
(Wed May 17 08:25:50 2017) [sssd[be[ipa.us.example.com]]] [dp_req_destructor] (0x0400): DP Request [Account #134]: Request removed.
(Wed May 17 08:25:50 2017) [sssd[be[ipa.us.example.com]]] [dp_req_destructor] (0x0400): Number of active DP request: 0

/var/log/sssd/sssd_nss.log

(다시 말하지만, 이는 AD 포리스트의 모든 도메인에 존재합니다)

(Wed May 17 08:25:50 2017) [sssd[nss]] [nss_cmd_getpwnam_search] (0x0100): Requesting info for [[email protected]]
(Wed May 17 08:25:50 2017) [sssd[nss]] [sysdb_search_user_by_upn] (0x0400): No entry with upn [[email protected]] found.
(Wed May 17 08:25:50 2017) [sssd[nss]] [get_dp_name_and_id] (0x0400): Not a LOCAL view, continuing with provided values.
(Wed May 17 08:25:50 2017) [sssd[nss]] [sss_dp_issue_request] (0x0400): Issuing request for [0x7f99f622c880:1:[email protected]:[email protected]]
(Wed May 17 08:25:50 2017) [sssd[nss]] [sss_dp_get_account_msg] (0x0400): Creating request for [usa.win.example.com][0x1][BE_REQ_USER][1][[email protected]:U]
(Wed May 17 08:25:50 2017) [sssd[nss]] [sss_dp_internal_get_send] (0x0400): Entering request [0x7f99f622c880:1:[email protected]:[email protected]]
(Wed May 17 08:25:50 2017) [sssd[nss]] [sss_dp_req_destructor] (0x0400): Deleting request: [0x7f99f622c880:1:[email protected]:[email protected]]
(Wed May 17 08:25:50 2017) [sssd[nss]] [sss_dp_get_reply] (0x0010): The Data Provider returned an error [org.freedesktop.sssd.Error.DataProvider.Offline]
(Wed May 17 08:25:50 2017) [sssd[nss]] [nss_cmd_getby_dp_callback] (0x0040): Unable to get information from Data Provider
Error: 3, 5, Failed to get reply from Data Provider
Will try to return what we have in cache

이제 시도해야 할 한 가지 작업은 클라이언트를 ipa.us.example.com DNS 도메인으로 이동하는 것입니다. 문서에서는 클라이언트가 서버와 동일한 DNS 도메인에 있을 필요가 없다고 구체적으로 언급하고 있습니다.

편집** - 이전에 /etc/pam.d/password-auth에서 ipa(신뢰할 수 없는) 사용자 인증을 수정했다고 생각하는 한 줄을 주석 처리했습니다. 이제 HBAC 규칙에서 사용자를 제거해도 여전히 인증할 수 있기 때문에 모든 사용자가 인증할 수 있다고 생각합니다. 해당 줄의 주석 처리를 제거했는데 이제 IPA 사용자가 인증할 수 없습니다. 이러한 사용자는 계속해서 조회할 수 있습니다(AD 사용자는 조회할 수 없음).

/etc/pam.d/비밀번호 확인

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        [default=1 success=ok] pam_localuser.so
auth        [success=done ignore=ignore default=die] pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_sss.so forward_pass
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
#The following line is what I had commented out
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     optional      pam_oddjob_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so

편집 #2**

이제 ipa 사용자가 내 클라이언트와 작업하고 있으며 sssd.conf의 [domain/ipa.us.example.com] 섹션에 "selinux_provider=none"을 포함해야 합니다. AD Trust 사용자는 여전히 동일한 오류로 인해 실패하고 있습니다.

관련 정보