Linux 도메인 조인 오류 - AWS Directory Service

Linux 도메인 조인 오류

다음은 AWS Managed Microsoft AD 디렉터리에 EC2 Linux 인스턴스를 조인할 때 직면할 수 있는 오류 메시지 중 일부를 해결하는 데 도움이 될 수 있습니다.

Linux 인스턴스가 도메인에 조인을 할 수 없거나, 인증을 할 수 없는 경우

영역이 Microsoft AD에서 작동하려면 먼저 DNS에서 Ubuntu 14.04, 16.04 및 18.04 인스턴스가 반드시 역방향 확인 가능해야 합니다. 그렇지 않으면 다음 두 가지 시나리오 중 하나가 발생할 수 있습니다.

시나리오 1: 영역에 아직 조인되지 않은 Ubuntu 인스턴스

영역을 조인하려고 시도 중인 Ubuntu 인스턴스의 경우 sudo realm join 명령을 실행하면 도메인을 조인하는 데 필요한 권한이 제공되지 않을 수 있으며 다음 오류가 표시될 수 있습니다.

! Active Directory에 인증할 수 없음: SASL(-1): 일반 실패: GSSAPI 오류: 잘못된 이름이 제공되었음 (성공) adcli: EXAMPLE.COM 도메인에 연결할 수 없음: Active Directory에 인증할 수 없음: SASL(-1): 일반 실패: GSSAPI 오류: 잘못된 이름이 제공되었음 (성공) ! 도메인 영역에 조인할 권한 부족: 영역에 조인할 수 없음: 도메인에 조인할 권한 부족

시나리오 2: 영역에 조인된 Ubuntu 인스턴스

Microsoft AD 도메인에 이미 조인된 Ubuntu 인스턴스의 경우 도메인 자격 증명을 사용하여 인스턴스에 SSH 접속하려고 시도하면 다음 오류가 표시되면서 실패할 수 있습니다.

$ ssh admin@EXAMPLE.COM@198.51.100

해당 자격 증명 없음: /Users/username/.ssh/id_ed25519: 해당 파일 또는 디렉터리 없음

admin@EXAMPLE.COM@198.51.100의 암호:

권한이 거부되었습니다. 다시 시도하세요.

admin@EXAMPLE.COM@198.51.100의 암호:

퍼블릭 키를 사용하여 인스턴스에 로그인하고 확인하면/var/log/auth.log 다음과 같이 사용자를 찾을 수 없다는 내용의 오류가 나타날 수 있습니다.

5월 12일 01:02:12 ip-192-0-2-0 sshd[2251]: pam_unix(sshd:auth): 인증 실패; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0

5월 12일 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): 인증 실패; logname= uid=0 euid=0 tty=ssh ruser= rhost=203.0.113.0 user=admin@EXAMPLE.COM

5월 12일 01:02:12 ip-192-0-2-0 sshd[2251]: pam_sss(sshd:auth): admin@EXAMPLE.COM 사용자에 대해 수신됨: 10 (기본 인증 모듈에서 알 수 없는 사용자)

5월 12일 01:02:14 ip-192-0-2-0 sshd[2251]: 203.0.113.0 포트 13344 ssh2에서 잘못된 사용자 admin@EXAMPLE.COM의 암호 실패

5월 12일 01:02:15 ip-192-0-2-0 sshd[2251]: Connection closed by 203.0.113.0에서 연결 닫힘 [preauth]

하지만 사용자에 대한 kinit는 여전히 작동합니다. 이 예제를 참조하세요.

ubuntu@ip-192-0-2-0:~$ kinit admin@EXAMPLE.COM admin@EXAMPLE.COM의 암호: ubuntu@ip-192-0-2-0:~$ klist 티켓 캐시: FILE:/tmp/krb5cc_1000 기본 보안 주체: admin@EXAMPLE.COM

차선책

이러한 두 시나리오 모두에 대해 현재 권장되는 해결 방법은 아래와 같이 [libdefaults] 섹션의 /etc/krb5.conf에서 역방향 DNS를 비활성화하는 것입니다.

[libdefaults] default_realm = EXAMPLE.COM rdns = false

원활한 도메인 조인 시 단방향 신뢰 인증 문제

AWS Managed Microsoft AD와 온프레미스 AD 간에 단방향 발신 신뢰가 설정되어 있는 경우, Winbind에서 신뢰된 AD 보안 인증 정보를 사용하여 도메인에 조인된 Linux 인스턴스에 대해 인증을 시도할 때 인증 문제가 발생할 수 있습니다.

오류

7월 31일 00:00:00 EC2Amaz-LSMWQT sshd [23832]: xxx.xxx.xxx.xxx 포트 18309 ssh2에서 user@corp.example.com 암호 실패

7월 31일 00:05:00 EC2Amaz-LSMWQT sshd [23832]: pam_winbind (sshd:auth): 암호 얻기 (0x00000390)

7월 31일 00:05:00 EC2Amaz-LSMWQT sshd [23832]: pam_winbind (sshd:auth): pam_get_item에서 암호를 반환함

7월 31일 00:05:00 EC2Amaz-LSMWQT sshd [23832]: pam_winbind (sshd:auth): 요청 wbcLogonUser 실패: WBC_ERR_AUTH_ERR, PAM 오류: PAM_SYSTEM_ERR (4), NTSTATUS: **NT_STATUS_OBJECT_NAME_NOT_FOUND**, 오류 메시지 내용: The object name is not found.

7월 31일 00:05:00 EC2Amaz-LSMWQT sshd [23832]: pam_winbind (sshd:auth): 내부 모듈 오류(retval = PAM_SYSTEM_ERR(4), user = 'CORP\user')

차선책

이 문제를 해결하려면 다음과 같은 단계를 사용하여 PAM 모듈 구성 파일(/etc/security/pam_winbind.conf)에서 디렉티브를 주석 처리하거나 제거해야 합니다.

  1. 텍스트 편집기에서 /etc/security/pam_winbind.conf 파일을 엽니다.

    sudo vim /etc/security/pam_winbind.conf
  2. krb5_auth = yes라는 디렉티브를 주석 처리하거나 삭제하세요.

    [global] cached_login = yes krb5_ccache_type = FILE #krb5_auth = yes
  3. Winbind 서비스를 중지한 다음 다시 시작하세요.

    service winbind stop or systemctl stop winbind net cache flush service winbind start or systemctl start winbind