Amazon EC2 Linux 인스턴스를 Simple AD Active Directory에 수동으로 조인합니다. - AWS Directory Service

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

Amazon EC2 Linux 인스턴스를 Simple AD Active Directory에 수동으로 조인합니다.

Amazon EC2 Windows 인스턴스 외에도 특정 Amazon EC2 Linux 인스턴스를 Simple AD Active Directory에 조인할 수 있습니다. 다음과 같은 Linux 인스턴스 배포판과 버전이 지원됩니다.

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2(64비트 x86)

  • 아마존 리눅스 2023 AMI

  • Red Hat Enterprise Linux 8(HVM)(64비트 x86)

  • Ubuntu Server 18.04 LTS 및 Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSE Linux Enterprise Server 15 SP1

참고

기타 Linux 배포판 및 버전은 작동이 가능할 수도 있지만, 테스트는 거치지 않았습니다.

필수 조건

디렉터리에 Amazon Linux 혹은 CentOS, Red Hat, Ubuntu 인스턴스를 조인하려면 Amazon EC2 Linux 인스턴스를 Simple AD Active Directory에 원활하게 조인합니다.에 지정된 대로 인스턴스를 먼저 시작해야 합니다.

중요

아래의 일부 절차들로 인해(올바르게 수행되지 않은 경우) 인스턴스 접속이나 사용이 불가능해질 수 있습니다. 따라서 이러한 절차를 수행하기 전에 인스턴스에 대한 백업을 생성하거나 스냅샷을 만드는 것이 좋습니다.

디렉터리에 Linux 인스턴스 조인

다음 탭 중 하나를 이용해 특정 Linux 인스턴스의 단계를 수행합니다.

Amazon Linux
  1. SSH 클라이언트를 사용하여 인스턴스에 연결합니다.

  2. AWS Directory Service제공된 DNS 서버의 DNS 서버 IP 주소를 사용하도록 Linux 인스턴스를 구성합니다. VPC에 연결된 DHCP 옵션 세트에서 이를 설정하거나 인스턴스에서 이를 수동으로 설정하는 방법으로 이러한 구성이 가능합니다. 수동 설정을 원할 경우에는 AWS 지식 센터의 프라이빗 Amazon EC2 인스턴스에 정적 DNS 서버를 할당하는 방법에서 특정 Linux 배포판 및 버전에서 지속적인 DNS 서버를 설정하는 방법에 대한 지침을 참조하세요.

  3. Amazon Linux - 64비트 인스턴스가 업데이트되었는지 확인합니다.

    sudo yum -y update
  4. Linux 인스턴스에 필요한 Amazon Linux 패키지를 설치합니다.

    참고

    이러한 패키지 중 몇 개는 이미 설치가 되어 있을 수 있습니다.

    패키지를 설치할 때 몇 가지 팝업 구성 화면이 나타날 수 있습니다. 보통은 이러한 화면의 필드들을 공백 상태로 남겨둡니다.

    Amazon Linux
    sudo yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
    참고

    사용 중인 Amazon Linux 버전을 확인하는 데 도움이 필요하면 Linux 인스턴스용 Amazon EC2 사용 설명서에서 Amazon Linux 이미지 식별을 참조하세요.

  5. 다음 명령을 통해 디렉터리에 인스턴스를 조인합니다.

    sudo realm join -U join_account@EXAMPLE.COM example.com --verbose
    join_account@EXAMPLE.COM

    도메인 조인 권한을 가진 example.com 도메인의 계정입니다. 메시지가 나타나면 계정에 대한 암호를 입력합니다. 이러한 권한의 위임에 대한 자세한 정보는 AWS Managed Microsoft AD에 대한 디렉터리 조인 권한 위임을 참조하세요.

    example.com

    디렉터리의 정규화된 DNS 이름.

    ... * Successfully enrolled machine in realm
  6. 암호 인증을 허용하도록 SSH 서비스를 설정합니다.

    1. 텍스트 편집기에서 /etc/ssh/sshd_config 파일을 엽니다.

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 설정값을 yes로 설정합니다.

      PasswordAuthentication yes
    3. SSH 서비스를 다시 시작합니다.

      sudo systemctl restart sshd.service

      대안:

      sudo service sshd restart
  7. 인스턴스가 재시작되고 나면 다음 단계를 수행하여 SSH 클라이언트에 이를 연결하고 sudoers 목록에 도메인 관리자 그룹을 추가합니다.

    1. 다음 명령을 통해 sudoers 파일을 엽니다.

      sudo visudo
    2. sudoers 파일 끝부분에 다음을 추가하고 저장합니다.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      위 예제에서는 Linux 공백 문자를 생성하기 위해 "\<space>"를 사용합니다.

CentOS
  1. SSH 클라이언트를 사용하여 인스턴스에 연결합니다.

  2. AWS Directory Service제공된 DNS 서버의 DNS 서버 IP 주소를 사용하도록 Linux 인스턴스를 구성합니다. VPC에 연결된 DHCP 옵션 세트에서 이를 설정하거나 인스턴스에서 이를 수동으로 설정하는 방법으로 이러한 구성이 가능합니다. 수동 설정을 원할 경우에는 AWS 지식 센터의 프라이빗 Amazon EC2 인스턴스에 정적 DNS 서버를 할당하는 방법에서 특정 Linux 배포판 및 버전에서 지속적인 DNS 서버를 설정하는 방법에 대한 지침을 참조하세요.

  3. CentOS 7 인스턴스가 업데이트되었는지 확인합니다.

    sudo yum -y update
  4. Linux 인스턴스에 필요한 CentOS 7 패키지를 설치합니다.

    참고

    이러한 패키지 중 몇 개는 이미 설치가 되어 있을 수 있습니다.

    패키지를 설치할 때 몇 가지 팝업 구성 화면이 나타날 수 있습니다. 보통은 이러한 화면의 필드들을 공백 상태로 남겨둡니다.

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. 다음 명령을 통해 디렉터리에 인스턴스를 조인합니다.

    sudo realm join -U join_account@example.com example.com --verbose
    join_account@example.com

    도메인 조인 권한을 가진 example.com 도메인의 계정입니다. 메시지가 나타나면 계정에 대한 암호를 입력합니다. 이러한 권한의 위임에 대한 자세한 정보는 AWS Managed Microsoft AD에 대한 디렉터리 조인 권한 위임을 참조하세요.

    example.com

    디렉터리의 정규화된 DNS 이름.

    ... * Successfully enrolled machine in realm
  6. 암호 인증을 허용하도록 SSH 서비스를 설정합니다.

    1. 텍스트 편집기에서 /etc/ssh/sshd_config 파일을 엽니다.

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 설정값을 yes로 설정합니다.

      PasswordAuthentication yes
    3. SSH 서비스를 다시 시작합니다.

      sudo systemctl restart sshd.service

      대안:

      sudo service sshd restart
  7. 인스턴스가 재시작되고 나면 다음 단계를 수행하여 SSH 클라이언트에 이를 연결하고 sudoers 목록에 도메인 관리자 그룹을 추가합니다.

    1. 다음 명령을 통해 sudoers 파일을 엽니다.

      sudo visudo
    2. sudoers 파일 끝부분에 다음을 추가하고 저장합니다.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      위 예제에서는 Linux 공백 문자를 생성하기 위해 "\<space>"를 사용합니다.

Red hat
  1. SSH 클라이언트를 사용하여 인스턴스에 연결합니다.

  2. AWS Directory Service제공된 DNS 서버의 DNS 서버 IP 주소를 사용하도록 Linux 인스턴스를 구성합니다. VPC에 연결된 DHCP 옵션 세트에서 이를 설정하거나 인스턴스에서 이를 수동으로 설정하는 방법으로 이러한 구성이 가능합니다. 수동 설정을 원할 경우에는 AWS 지식 센터의 프라이빗 Amazon EC2 인스턴스에 정적 DNS 서버를 할당하는 방법에서 특정 Linux 배포판 및 버전에서 지속적인 DNS 서버를 설정하는 방법에 대한 지침을 참조하세요.

  3. Red Hat - 64비트 인스턴스가 업데이트되었는지 확인합니다.

    sudo yum -y update
  4. Linux 인스턴스에 필요한 Red Hat 패키지를 설치합니다.

    참고

    이러한 패키지 중 몇 개는 이미 설치가 되어 있을 수 있습니다.

    패키지를 설치할 때 몇 가지 팝업 구성 화면이 나타날 수 있습니다. 보통은 이러한 화면의 필드들을 공백 상태로 남겨둡니다.

    sudo yum -y install sssd realmd krb5-workstation samba-common-tools
  5. 다음 명령을 통해 디렉터리에 인스턴스를 조인합니다.

    sudo realm join -v -U join_account example.com --install=/
    join_account

    도메인 가입 AccountName 권한이 있는 example.com 도메인 계정의 SAM입니다. 메시지가 나타나면 계정에 대한 암호를 입력합니다. 이러한 권한의 위임에 대한 자세한 정보는 AWS Managed Microsoft AD에 대한 디렉터리 조인 권한 위임을 참조하세요.

    example.com

    디렉터리의 정규화된 DNS 이름.

    ... * Successfully enrolled machine in realm
  6. 암호 인증을 허용하도록 SSH 서비스를 설정합니다.

    1. 텍스트 편집기에서 /etc/ssh/sshd_config 파일을 엽니다.

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 설정값을 yes로 설정합니다.

      PasswordAuthentication yes
    3. SSH 서비스를 다시 시작합니다.

      sudo systemctl restart sshd.service

      대안:

      sudo service sshd restart
  7. 인스턴스가 재시작되고 나면 다음 단계를 수행하여 SSH 클라이언트에 이를 연결하고 sudoers 목록에 도메인 관리자 그룹을 추가합니다.

    1. 다음 명령을 통해 sudoers 파일을 엽니다.

      sudo visudo
    2. sudoers 파일 끝부분에 다음을 추가하고 저장합니다.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      위 예제에서는 Linux 공백 문자를 생성하기 위해 "\<space>"를 사용합니다.

Ubuntu
  1. SSH 클라이언트를 사용하여 인스턴스에 연결합니다.

  2. AWS Directory Service제공된 DNS 서버의 DNS 서버 IP 주소를 사용하도록 Linux 인스턴스를 구성합니다. VPC에 연결된 DHCP 옵션 세트에서 이를 설정하거나 인스턴스에서 이를 수동으로 설정하는 방법으로 이러한 구성이 가능합니다. 수동 설정을 원할 경우에는 AWS 지식 센터의 프라이빗 Amazon EC2 인스턴스에 정적 DNS 서버를 할당하는 방법에서 특정 Linux 배포판 및 버전에서 지속적인 DNS 서버를 설정하는 방법에 대한 지침을 참조하세요.

  3. Ubuntu - 64비트 인스턴스가 업데이트되었는지 확인합니다.

    sudo apt-get update sudo apt-get -y upgrade
  4. Linux 인스턴스에 필요한 Ubuntu 패키지를 설치합니다.

    참고

    이러한 패키지 중 몇 개는 이미 설치가 되어 있을 수 있습니다.

    패키지를 설치할 때 몇 가지 팝업 구성 화면이 나타날 수 있습니다. 보통은 이러한 화면의 필드들을 공백 상태로 남겨둡니다.

    sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
  5. 역방향 DNS 확인을 비활성화하고 기본 영역을 도메인의 FQDN으로 설정합니다. 영역이 작동하려면 Ubuntu 인스턴스가 DNS에서 역 확인이 가능해야 합니다. 그렇지 않을 경우 다음과 같이 /etc/krb5.conf에서 역 DNS를 비활성해야 합니다.

    sudo vi /etc/krb5.conf
    [libdefaults] default_realm = EXAMPLE.COM rdns = false
  6. 다음 명령을 통해 디렉터리에 인스턴스를 조인합니다.

    sudo realm join -U join_account example.com --verbose
    join_account@example.com

    도메인 가입 AccountName 권한이 있는 example.com 도메인 계정의 SAM입니다. 메시지가 나타나면 계정에 대한 암호를 입력합니다. 이러한 권한의 위임에 대한 자세한 정보는 AWS Managed Microsoft AD에 대한 디렉터리 조인 권한 위임을 참조하세요.

    example.com

    디렉터리의 정규화된 DNS 이름.

    ... * Successfully enrolled machine in realm
  7. 암호 인증을 허용하도록 SSH 서비스를 설정합니다.

    1. 텍스트 편집기에서 /etc/ssh/sshd_config 파일을 엽니다.

      sudo vi /etc/ssh/sshd_config
    2. PasswordAuthentication 설정값을 yes로 설정합니다.

      PasswordAuthentication yes
    3. SSH 서비스를 다시 시작합니다.

      sudo systemctl restart sshd.service

      대안:

      sudo service sshd restart
  8. 인스턴스가 재시작되고 나면 다음 단계를 수행하여 SSH 클라이언트에 이를 연결하고 sudoers 목록에 도메인 관리자 그룹을 추가합니다.

    1. 다음 명령을 통해 sudoers 파일을 엽니다.

      sudo visudo
    2. sudoers 파일 끝부분에 다음을 추가하고 저장합니다.

      ## Add the "Domain Admins" group from the example.com domain. %Domain\ Admins@example.com ALL=(ALL:ALL) ALL

      위 예제에서는 Linux 공백 문자를 생성하기 위해 "\<space>"를 사용합니다.

참고

Simple AD를 사용할 때 "사용자가 첫 번째 로그인 시 암호를 변경하도록 강제" 옵션을 통해 Linux 인스턴스에서 사용자 계정을 생성한 경우, 해당 사용자는 처음에는 kpasswd를 사용해 암호를 변경할 수 없습니다. 처음으로 암호를 변경하려면 도메인 관리자가 Microsoft Active Directory 관리 도구를 사용해 사용자 암호를 업데이트해야 합니다.

Linux 인스턴스에서 계정 관리

Linux 인스턴스의 Simple AD 계정을 관리하려면 Linux 인스턴스의 특정 구성 파일을 다음과 같이 업데이트해야 합니다.

  1. /etc/sssd/sssd.conf 파일에서 krb5_use_kdcinfoFalse로 설정합니다. 예:

    [domain/example.com] krb5_use_kdcinfo = False
  2. 이 구성이 활성화되려면 sssd 서비스를 재시작해야 합니다.

    $ sudo systemctl restart sssd.service

    또는 다음 작업을 사용할 수 있습니다.

    $ sudo service sssd start
  3. 또한 CentOS Linux 인스턴스에서 사용자를 관리하려면 다음이 포함되도록 /etc/smb.conf를 편집해야 합니다.

    [global] workgroup = EXAMPLE.COM realm = EXAMPLE.COM netbios name = EXAMPLE security = ads

계정 로그인 액세스 제한

모든 계정을 Active Directory에 정의하면 기본으로 디렉토리의 모든 사용자는 인스턴스에 로그인할 수 있습니다. 특정 사용자만 sssd.confad_access_filter으로 인스턴스에 로그인할 수 있습니다. 예:

ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf

특정 그룹의 멤버인 사용자는 반드시 인스턴스에 액세스할 수 있어야 한다는 뜻입니다.

cn

액세스해야 하는 그룹의 일반 이름입니다. 이 예제에서 그룹 이름은 admins입니다.

ou

위의 그룹이 위치해 있는 조직 단위(OU)입니다. 이 예제에서 OU는 Testou입니다.

dc

도메인의 도메인 구성 요소입니다. 이 예제에서는 example입니다.

dc

추가적인 도메인 구성 요소입니다. 이 예제에서는 com입니다.

현재 사용자는 ad_access_filter/etc/sssd/sssd.conf에 수동으로 추가해야 합니다.

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

sudo vi /etc/sssd/sssd.conf

추가를 하고 나면 sssd.conf가 다음과 같이 보일 수 있습니다.

[sssd] domains = example.com config_file_version = 2 services = nss, pam [domain/example.com] ad_domain = example.com krb5_realm = EXAMPLE.COM realmd_tags = manages-system joined-with-samba cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash ldap_id_mapping = True use_fully_qualified_names = True fallback_homedir = /home/%u@%d access_provider = ad ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)

이 구성이 활성화되려면 sssd 서비스를 재시작해야 합니다.

sudo systemctl restart sssd.service

또는 다음 작업을 사용할 수 있습니다.

sudo service sssd restart

ID 매핑

Unix/Linux 사용자 식별자 (UID) 와 GID (그룹 식별자), Windows 및 SID (Active Directory보안 식별자) ID 간에 통합된 환경을 유지하기 위해 두 가지 방법으로 ID 매핑을 수행할 수 있습니다.

  1. 중앙 집중식

  2. 분산형

참고

중앙 집중식 사용자 ID 매핑에는 휴대용 운영 체제 인터페이스 또는 POSIX가 Active Directory 필요합니다.

중앙 집중식 사용자 ID 매핑

Active Directory또는 다른 경량 디렉터리 액세스 프로토콜 (LDAP) 서비스는 Linux 사용자에게 UID 및 GID를 제공합니다. Active Directory에서는 이러한 식별자가 사용자 속성에 저장됩니다.

  • UID - 리눅스 사용자 이름 (문자열)

  • UID 번호 - 리눅스 사용자 ID 번호 (정수)

  • GID 번호 - 리눅스 그룹 ID 번호 (정수)

의 UID와 GID를 사용하도록 리눅스 인스턴스를 구성하려면 sssd.conf Active Directory ldap_id_mapping = False 파일에서 설정하십시오. 이 값을 설정하기 전에 사용자 및 그룹에 UID, UID 번호 및 GID 번호를 추가했는지 확인하십시오. Active Directory

분산 사용자 ID 매핑

POSIX 확장이 없거나 ID 매핑을 중앙에서 관리하지 않기로 선택한 경우 Linux에서 UID 및 GID 값을 계산할 수 있습니다. Active Directory Linux는 일관성을 유지하기 위해 사용자의 고유한 SID (보안 식별자) 를 사용합니다.

분산 사용자 ID 매핑을 구성하려면 ldap_id_mapping = True sssd.conf 파일에서 설정합니다.

Linux 인스턴스에 연결

SSH 클라이언트를 사용하여 인스턴스 연결을 하면 사용자 이름을 입력하라는 메시지가 나타납니다. 사용자는 username@example.com 또는 EXAMPLE\username 형식으로 사용자 이름을 입력할 수 있습니다. 사용 중인 Linux 배포판에 따라 다음과 비슷한 응답이 나타납니다.

Amazon Linux, Red Hat Enterprise Linux, CentOS Linux

login as: johndoe@example.com johndoe@example.com's password: Last login: Thu Jun 25 16:26:28 2015 from XX.XX.XX.XX

SUSE Linux

SUSE Linux Enterprise Server 15 SP1 x86_64 (64-bit) As "root" (sudo or sudo -i) use the: - zypper command for package management - yast command for configuration management Management and Config: https://www.suse.com/suse-in-the-cloud-basics Documentation: https://www.suse.com/documentation/sles-15/ Forum: https://forums.suse.com/forumdisplay.php?93-SUSE-Public-Cloud Have a lot of fun...

Ubuntu Linux

login as: admin@example.com admin@example.com@10.24.34.0's password: Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-1057-aws x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Apr 18 22:03:35 UTC 2020 System load: 0.01 Processes: 102 Usage of /: 18.6% of 7.69GB Users logged in: 2 Memory usage: 16% IP address for eth0: 10.24.34.1 Swap usage: 0%