1.5. AD 도메인 멤버 서버로 Samba 설정

AD 또는 NT4 도메인을 실행 중인 경우 Samba를 사용하여 Red Hat Enterprise Linux 서버를 도메인에 멤버로 추가하여 다음을 얻을 수 있습니다.

  • 다른 도메인 구성원의 도메인 리소스에 액세스
  • sshd와 같은 로컬 서비스에 도메인 사용자를 인증합니다
  • 공유 디렉토리 및 서버에서 호스트된 프린터 파일 역할을 파일 및 인쇄 서버

1.5.1. AD 도메인에 RHEL 시스템 연결

Samba Winbind는 RHEL(Red Hat Enterprise Linux) 시스템을 Active Directory(AD)와 연결하기 위한 SSSD(System Security Services Daemon) 대안입니다. realmd 를 사용하여 Samba Winbind를 구성하여 RHEL 시스템을 AD 도메인에 연결할 수 있습니다.

절차

  1. AD에 Kerberos 인증을 위한 더 이상 사용되지 않는 RC4 암호화 유형이 필요한 경우 RHEL에서 이러한 암호에 대한 지원을 활성화합니다.

    # update-crypto-policies --set DEFAULT:AD-SUPPORT
  2. 다음 패키지를 설치합니다.

    # dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients \
           samba-winbind samba-common-tools samba-winbind-krb5-locator
  3. 도메인 구성원에서 디렉터리 또는 프린터를 공유하려면 samba 패키지를 설치합니다.

    # dnf install samba
  4. 기존 /etc/samba/smb.conf Samba 구성 파일을 백업합니다.

    # mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
  5. 도메인에 가입합니다. 예를 들어 ad.example.com이라는 도메인에 가입하려면 다음을 수행합니다.

    # realm join --membership-software=samba --client-software=winbind ad.example.com

    이전 명령을 사용하면 realm 유틸리티가 자동으로 수행됩니다.

    • ad.example.com 도메인 멤버십에 대한 /etc/samba/smb.conf 파일을 만듭니다.
    • 사용자 및 그룹 조회에 대한 winbind 모듈을 /etc/nsswitch.conf 파일에 추가합니다.
    • /etc/pam.d/ 디렉토리에서 PAM(Pluggable Authentication Module) 구성 파일을 업데이트합니다.
    • winbind 서비스를 시작하고 시스템이 부팅될 때 서비스가 시작됩니다.
  6. 선택적으로 /etc/samba/smb.conf 파일에서 대체 ID 매핑 백엔드 또는 사용자 지정된 ID 매핑 설정을 설정합니다.

자세한 내용은 Samba ID 매핑 이해 및 구성을 참조하십시오.

  1. winbind 서비스가 실행 중인지 확인합니다.

    # systemctl status winbind
    ...
       Active: active (running) since Tue 2018-11-06 19:10:40 CET; 15s ago
    중요

    Samba를 활성화하여 도메인 사용자 및 그룹 정보를 쿼리하려면 smb 를 시작하기 전에 winbind 서비스를 실행해야 합니다.

  2. 디렉터리 및 프린터를 공유하는 samba 패키지를 설치한 경우 smb 서비스를 활성화하고 시작합니다.

    # systemctl enable --now smb
  3. 선택적으로 Active Directory에 로컬 로그인을 인증하는 경우 winbind_krb5_localauth 플러그인을 활성화합니다. MIT Kerberos 용으로 로컬 권한 부여 플러그인 사용을 참조하십시오.

검증 단계

  1. AD 도메인의 AD 관리자 계정과 같은 AD 사용자의 세부 정보를 표시합니다.

    # getent passwd "AD\administrator"
    AD\administrator:*:10000:10000::/home/administrator@AD:/bin/bash
  2. AD 도메인에서 도메인 사용자 그룹의 멤버를 쿼리합니다.

    # getent group "AD\Domain Users"
        AD\domain users:x:10000:user1,user2
  3. 선택적으로 파일 및 디렉터리에 대한 권한을 설정할 때 도메인 사용자와 그룹을 사용할 수 있는지 확인합니다. 예를 들어 /srv/samba/example.txt 파일의 소유자를 AD\administrator 로 설정하고 그룹을 AD\Domain Users 로 설정하려면 다음을 수행합니다.

    # chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txt
  4. Kerberos 인증이 예상대로 작동하는지 확인합니다.

    1. AD 도메인 멤버에서 administrator@AD.EXAMPLE.COM 주체의 티켓을 받습니다.

      # kinit administrator@AD.EXAMPLE.COM
    2. 캐시된 Kerberos 티켓을 표시합니다.

      # klist
      Ticket cache: KCM:0
      Default principal: administrator@AD.EXAMPLE.COM
      
      Valid starting       Expires              Service principal
      01.11.2018 10:00:00  01.11.2018 20:00:00  krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM
              renew until 08.11.2018 05:00:00
  5. 사용 가능한 도메인을 표시합니다.

    # wbinfo --all-domains
    BUILTIN
    SAMBA-SERVER
    AD

추가 리소스

1.5.2. MIT Kerberos용 로컬 인증 플러그인 사용

winbind 서비스는 Active Directory 사용자를 도메인 구성원에게 제공합니다. 관리자는 특정 상황에서 도메인 사용자가 도메인 구성원에서 실행 중인 SSH 서버와 같은 로컬 서비스에 인증할 수 있도록 설정하려고 합니다. Kerberos를 사용하여 도메인 사용자를 인증할 때 winbind_krb5_localauth 플러그인을 활성화하여 winbind 서비스를 통해 Kerberos 주체를 Active Directory 계정에 올바르게 매핑하십시오.

예를 들어 Active Directory 사용자의 sAMAccountName 속성이 EXAMPLE 으로 설정되어 있고 사용자가 사용자 이름 소문자로 로그인하려고 하면 Kerberos는 대문자로 사용자 이름을 반환합니다. 이로 인해 항목이 일치하지 않고 인증이 실패합니다.

winbind_krb5_localauth 플러그인을 사용하면 계정 이름이 올바르게 매핑됩니다. 이는 GSSAPI 인증에만 적용되며 초기 티켓 부여 티켓(TGT)은 받지 않습니다.

사전 요구 사항

  • Samba는 Active Directory의 멤버로 구성되어 있습니다.
  • Red Hat Enterprise Linux는 Active Directory에 대한 로그인 시도를 인증합니다.
  • winbind 서비스가 실행 중입니다.

절차

/etc/krb5.conf 파일을 편집하고 다음 섹션을 추가합니다.

[plugins]
localauth = {
     module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so
     enable_only = winbind
}

추가 리소스

  • winbind_krb5_localauth(8) man page.