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

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Linux 도메인 조인 오류

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

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

영역이 Microsoft Active Directory에서 작동하려면 먼저 DNS에서 우분투 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 Active Directory 도메인에 가입된 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 Microsoft AD와 온-프레미스 Active Directory 간에 단방향 발신 트러스트가 설정된 경우, Winbind에서 신뢰할 수 있는 Active Directory 자격 증명을 사용하여 도메인에 가입된 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**, 오류 메시지는 다음과 같습니다. 개체 이름은 다음과 같습니다. 찾을 수 없습니다.

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