JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1에서 이름 지정 및 디렉토리 서비스 작업     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부이름 지정 및 디렉토리 서비스 정보

1.  이름 지정 및 디렉토리 서비스(개요)

2.  이름 서비스 스위치(개요)

3.  DNS 관리(작업)

4.  Oracle Solaris Active Directory 클라이언트 설정(작업)

제2부NIS 설정 및 관리

5.  네트워크 정보 서비스(개요)

6.  NIS 설정 및 구성(작업)

7.  NIS 관리(작업)

8.  NIS 문제 해결

제3부LDAP 이름 지정 서비스

9.  LDAP 이름 지정 서비스 소개(개요)

대상 가정

배경 지식을 늘리기 위한 추천 자료

추가 필수 조건

LDAP 이름 지정 서비스와 다른 이름 지정 서비스 비교

LDAP 이름 지정 서비스의 장점

LDAP 이름 지정 서비스의 제한 사항

LDAP 이름 지정 서비스 설정(작업 맵)

LDAP 데이터 교환 형식

LDAP에 정규화된 도메인 이름 사용

기본 디렉토리 정보 트리

기본 LDAP 스키마

서비스 검색 설명자 및 스키마 매핑

SSD에 대한 설명

attributeMap 속성

objectclassMap 속성

LDAP 클라이언트 프로파일

LDAP 클라이언트 프로파일 속성

로컬 LDAP 클라이언트 속성

ldap_cachemgr 데몬

LDAP 이름 지정 서비스 보안 모델

전송 계층 보안

클라이언트 자격 증명 레벨 지정

LDAP anonymous 자격 증명 레벨

LDAP proxy 자격 증명 레벨

LDAP proxy anonymous 자격 증명 레벨

LDAP per-user 인증

enableShadowUpdate 스위치

LDAP 클라이언트에 대한 자격 증명 저장소

LDAP 이름 지정 서비스에 대한 인증 방법 선택

LDAP의 특정 서비스에 대한 인증 방법 지정

플러그 가능 인증 방법

pam_unix_* 서비스 모듈

Kerberos 서비스 모듈

LDAP 서비스 모듈

PAM 및 암호 변경

LDAP 계정 관리

pam_unix_* 모듈을 사용한 LDAP 계정 관리

10.  LDAP 이름 지정 서비스에 대한 계획 요구 사항(작업)

11.  LDAP 클라이언트를 사용하여 Oracle Directory Server Enterprise Edition 설정(작업)

12.  LDAP 클라이언트 설정(작업)

13.  LDAP 문제 해결(참조)

14.  LDAP 이름 지정 서비스(참조)

15.  NIS에서 LDAP으로 전환(작업)

용어집

색인

LDAP 이름 지정 서비스 보안 모델

LDAP 이름 지정 서비스는 두 가지 방법으로 LDAP 저장소를 사용할 수 있습니다. 한 가지 방법은 이름 지정 서비스와 인증 서비스 둘 다의 소스로 사용하는 것입니다. 다른 방법은 이름 지정 데이터의 소스로만 사용하는 것입니다. 이 절에서는 클라이언트 ID의 개념, 인증 방법, pam_ldappam_unix_* 모듈 및 LDAP 저장소가 이름 지정 서비스와 인증 서비스 둘 다로 사용되는 경우의 계정 관리에 대해 설명합니다. 또한 이 절에서는 Kerberos 환경(Oracle Solaris 11.1 관리: 보안 서비스의 제VI부, Kerberos 서비스) 및 pam_krb5(5) 모듈과 함께 LDAP 이름 지정 서비스를 사용하는 방법에 대해 설명합니다.


주 - 이전에는 pam_ldap 계정 관리를 사용으로 설정한 경우 모든 사용자가 시스템에 로그인할 때마다 인증을 위해 로그인 암호를 제공해야 했습니다. 따라서 ssh 등의 도구를 사용하여 암호 기반이 아닌 로그인을 시도하면 실패했습니다.

사용자가 로그인할 때 디렉토리 서버에 인증하지 않고 계정 관리를 수행하고 사용자의 계정 상태를 검색합니다. 디렉토리 서버의 새 컨트롤은 기본적으로 사용으로 설정되는 1.3.6.1.4.1.42.2.27.9.5.8입니다.

기본값이 아닌 다른 값에 대해 이 컨트롤을 수정하려면 디렉토리 서버에 ACI(액세스 제어 명령)를 추가합니다.

dn: oid=1.3.6.1.4.1.42.2.27.9.5.8,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid:1.3.6.1.4.1.42.2.27.9.5.8
cn:Password Policy Account Usable Request Control
aci: (targetattr != "aci")(version 3.0; acl "Account Usable"; 
     allow (read, search, compare, proxy)
     (groupdn = "ldap:///cn=Administrators,cn=config");)
creatorsName: cn=server,cn=plugins,cn=config
modifiersName: cn=server,cn=plugins,cn=config


주 - Kerberos를 인증 시스템으로 사용하고 LDAP 이름 지정 시스템과 통합하면 Kerberos를 통해 기업의 SSO(Single Sign-On) 환경을 지원할 수 있습니다. 사용자 또는 호스트 단위로 LDAP 이름 지정 데이터를 질의할 때도 동일한 ID 시스템을 사용할 수 있습니다.


LDAP 저장소의 정보에 액세스하기 위해 클라이언트는 먼저 ID를 디렉토리 서버에 증명합니다. 이 ID는 익명이거나 LDAP 서버에서 인식되는 호스트 또는 사용자일 수 있습니다. LDAP 서버는 클라이언트 ID와 서버의 ACI(액세스 제어 정보)를 기반으로 클라이언트가 디렉토리 정보를 읽을 수 있도록 합니다. ACI에 대한 자세한 내용은 사용 중인 Oracle Directory Server Enterprise Edition 버전에 대한 관리 설명서를 참조하십시오.

ID가 요청을 보내는 호스트를 기반으로 하는 경우 proxy 인증을 사용하는 것입니다. 호스트가 인증되면 해당 호스트의 모든 사용자에게 액세스 권한이 부여됩니다. ID가 사용자를 기반으로 하는 경우 per-user 인증을 사용하는 것입니다. 호스트의 각 사용자를 인증해야 해당 사용자에게 액세스 권한이 부여됩니다.

클라이언트가 특정 요청에 대해 익명이 아닌 사용자로 연결하는 경우 클라이언트와 서버 둘 다에서 지원되는 인증 방법을 사용하여 ID를 서버에 증명해야 합니다. 클라이언트가 ID를 증명하면 다양한 LDAP 요청을 실행할 수 있습니다.

시스템에 로그인할 때 PAM 서비스가 로컬 시스템, LDAP 서비스, Kerberos 서버 또는 이 세 가지 소스 조합에 있는 정보를 사용하여 로그인 시도가 성공할지 여부를 확인할 수도 있습니다. pam_kerb 모듈을 사용하는 경우 Kerberos 서버가 액세스 허용 여부를 결정합니다. pam_ldap 모듈을 사용하는 경우에는 LDAP 서버가 이러한 결정의 절반을 담당하고 로컬 호스트가 나머지 절반을 담당해야 합니다. 로컬 호스트의 정보와 pam_unix_* 모듈을 사용하는 경우 로컬에서 결정됩니다.

pam_ldap을 사용하여 LDAP 서비스를 통해 로그인하는 경우 이름 지정 서비스와 인증 서비스(pam_ldap)가 디렉토리에 액세스하는 방법에 차이가 있습니다. 이름 지정 서비스는 사전 정의된 ID를 기반으로 디렉토리에서 다양한 항목과 해당 속성을 읽습니다. 인증 서비스는 사용자 이름과 암호로 LDAP 서버에 대해 인증을 수행하여 사용자가 올바른 암호를 입력했는지 여부를 증명합니다. 인증 서비스에 대한 자세한 내용은 pam_ldap(5) 매뉴얼 페이지를 참조하십시오.

Kerberos를 사용하여 인증하고 LDAP 이름 지정 서비스의 인증도 사용으로 설정된 경우(per-user 모드에 필요) Kerberos가 이중 기능을 제공할 수 있습니다. Kerberos는 서버에 대해 인증을 수행하고, 주체(사용자 또는 호스트)의 Kerberos ID를 사용하여 디렉토리에 대해 인증을 수행합니다. 이렇게 하면 시스템에 대해 인증을 수행하는 데 사용되는 것과 동일한 사용자 ID가 조회 및 업데이트를 위해 디렉토리에 대해 인증을 수행하는 데에도 사용됩니다. 원하는 경우 관리자는 디렉토리의 ACI(액세스 제어 정보)를 사용하여 이름 지정 서비스에서 반환되는 결과를 제한할 수 있습니다.

전송 계층 보안

TLS(전송 계층 보안)를 사용하여 LDAP 클라이언트와 디렉토리 서버 간의 통신 보안을 유지하고 프라이버시 및 데이터 무결성을 제공할 수 있습니다. TLS 프로토콜은 SSL(Secure Sockets Layer) 프로토콜의 수퍼 세트입니다. LDAP 이름 지정 서비스는 TLS 연결을 지원합니다. SSL을 사용하면 디렉토리 서버와 클라이언트에 로드가 추가됩니다.

SSL용 디렉토리 서버를 설정해야 합니다. SSL용 Oracle Directory Server Enterprise Edition을 설정하는 방법에 대한 자세한 내용은 사용 중인 Oracle Directory Server Enterprise Edition 버전에 대한 관리 설명서를 참조하십시오. SSL용 LDAP 클라이언트도 설정해야 합니다.

TLS를 사용하는 경우 필요한 보안 데이터베이스를 설치해야 합니다. 특히 인증서와 키 데이터베이스 파일이 필요합니다. 예를 들어, Netscape Communicator의 이전 데이터베이스 형식을 사용하는 경우 cert7.dbkey3.db라는 2개 파일이 필요합니다. Mozilla의 새 데이터베이스 형식을 사용하는 경우에는 cert8.db, key3.dbsecmod.db라는 3개 파일이 필요합니다. cert7.db 또는 cert8.db 파일에 인증된 인증서가 포함되어 있으며, key3.db 파일에 클라이언트의 키가 포함되어 있습니다. LDAP 이름 지정 서비스 클라이언트가 클라이언트 키를 사용하지 않는 경우에도 이 파일은 있어야 합니다. secmod.db 파일에는 PKCS#11 모듈 등의 보안 모듈이 포함되어 있습니다. 이전 형식을 사용하는 경우에는 이 파일이 필요 없습니다.

자세한 내용은 TLS 보안 설정을 참조하십시오.

클라이언트 자격 증명 레벨 지정

LDAP 이름 지정 서비스 클라이언트는 클라이언트의 자격 증명 레벨에 따라 LDAP 서버에 대해 인증을 수행합니다. LDAP 클라이언트에는 디렉토리 서버에 대해 인증을 수행할 때 사용되는 여러 레벨을 지정할 수 있습니다.

LDAP anonymous 자격 증명 레벨

anonymous 액세스를 사용하는 경우 모든 사용자가 사용할 수 있는 데이터에만 액세스할 수 있습니다. 익명 모드에서는 LDAP BIND 작업이 수행되지 않습니다. 또한 보안에 미치는 영향을 고려해야 합니다. 특정 디렉토리 부분에 대해 anonymous 액세스를 허용하면 해당 디렉토리에 액세스할 수 있는 모든 사용자가 읽기 권한을 갖습니다. anonymous 자격 증명 레벨을 사용하는 경우 모든 LDAP 이름 지정 항목과 속성에 대해 읽기 권한을 허용해야 합니다.


주의

주의 - 디렉토리에 대해 anonymous 쓰기를 허용하면 다른 사용자의 암호나 ID를 비롯하여 쓰기 권한이 있는 DIT의 정보를 모든 사용자가 변경할 수 있게 되므로 이렇게 하면 안됩니다.



주 - Oracle Directory Server Enterprise Edition을 사용하면 IP 주소, DNS 이름, 인증 방법 및 시간을 기반으로 액세스를 제한할 수 있습니다. 추가 제한을 적용하여 액세스를 제한할 수도 있습니다. 자세한 내용은 사용 중인 Oracle Directory Server Enterprise Edition 버전에 대한 관리 설명서의 “액세스 제어 관리”를 참조하십시오.


LDAP proxy 자격 증명 레벨

클라이언트가 LDAP 바인드 자격 증명(프록시 계정이라고도 함)의 단일 공유 세트에 대해 인증을 수행하거나 이 세트에 바인딩됩니다. 이 프록시 계정은 디렉토리에 바인딩할 수 있는 모든 항목일 수 있습니다. 이 프록시 계정에 LDAP 서버에서 이름 지정 서비스 기능을 수행할 수 있는 권한이 충분해야 합니다. 프록시 계정은 시스템별 공유 리소스입니다. 즉, 루트 사용자를 포함하여 프록시 액세스를 사용하여 시스템에 로그인한 각 사용자는 해당 시스템의 다른 모든 사용자와 동일한 결과를 보게 됩니다. proxy 자격 증명 레벨을 사용하는 모든 클라이언트에서 proxyDNproxyPassword를 구성해야 합니다. 암호화된 proxyPassword는 클라이언트에 로컬로 저장됩니다. 각 클라이언트 그룹에 대해 다른 프록시를 설정할 수 있습니다. 예를 들어, 영업 클라이언트가 급여 정보를 포함하는 HR 디렉토리에 액세스할 수 없도록 하는 동시에 모든 영업 클라이언트가 회사 전체의 액세스 가능 디렉토리와 영업 디렉토리에 모두 액세스할 수 있도록 프록시를 구성할 수 있습니다. 극단적인 경우 각 클라이언트에 다른 프록시를 지정하거나 모든 클라이언트에 프록시를 1개만 지정할 수도 있습니다. 일반적인 LDAP 배포는 두 극단 사이에 있습니다. 주의해서 원하는 사항을 선택하십시오. 프록시 에이전트가 너무 적으면 리소스에 대한 사용자 액세스를 제대로 제어하지 못하게 될 수 있습니다. 그러나 프록시가 너무 많으면 시스템 설정과 유지 관리가 복잡해집니다. 환경에 따라 프록시 사용자에게 적절한 권한을 부여해야 합니다. 구성에 가장 적합한 인증 방법을 결정하는 방법에 대한 자세한 내용은 LDAP 클라이언트에 대한 자격 증명 저장소를 참조하십시오.

프록시 사용자의 암호가 변경되는 경우 해당 프록시 사용자를 사용하는 모든 클라이언트에서 암호를 업데이트해야 합니다. LDAP 계정에 암호 에이징을 사용하는 경우 프록시 사용자에 대해 이를 해제해야 합니다.


주 - proxy 자격 증명 레벨은 특정 시스템의 모든 사용자와 프로세스에 적용됩니다. 두 사용자가 서로 다른 이름 지정 정책을 사용해야 하는 경우 서로 다른 시스템을 사용하거나 per-user 인증 모델을 사용해야 합니다.


또한 클라이언트가 proxy 자격 증명을 사용하여 인증하는 경우 모든 서버에서 proxyDNproxyPassword가 동일해야 합니다.

LDAP proxy anonymous 자격 증명 레벨

proxy anonymous는 자격 증명 레벨이 2개 이상 정의된다는 점에서 다중 값 항목입니다. proxy anonymous 레벨이 지정된 클라이언트는 먼저 프록시 ID를 사용하여 인증을 시도합니다. 어떤 이유로든(사용자 잠금, 암호 만료 등) 클라이언트가 프록시 사용자로 인증할 수 없는 경우 익명 액세스를 사용합니다. 이 경우 디렉토리 구성 방법에 따라 다른 서비스 레벨이 발생할 수 있습니다.

LDAP per-user 인증

per-user(self) 인증은 디렉토리 서버에 대해 인증을 수행할 때 Kerberos ID(주체)를 사용하여 각 사용자나 각 시스템에 대해 조회를 수행합니다. per-user 인증을 사용하는 경우 시스템 관리자가 ACI(액세스 제어 명령), ACL(액세스 제어 목록), 역할, 그룹 또는 기타 디렉토리 액세스 제어 방식을 사용하여 특정 사용자나 시스템에 대해 특정 이름 지정 서비스 데이터 액세스를 허용하거나 거부할 수 있습니다.


주 - per-user 모드를 구성하는 경우 이 모드를 사용으로 설정하기 위한 구성 값은 per-user 모드를 나타내는 "self"입니다.


per-user 인증 모델을 사용하려면 Kerberos SSO(Single Sign-On) 서비스를 배포해야 합니다. 또한 배포에 사용된 디렉토리 서버 중 하나 이상이 SASL 및 SASL/GSSAPI 인증 방식을 지원해야 합니다. Kerberos는 호스트 이름 조회 시 LDAP 대신 파일과 DNS를 사용하기 때문에 이 환경에는 DNS를 배포해야 합니다. 또한 per-user 인증을 사용하려면 nscd를 사용으로 설정해야 합니다. 이 구성에서 nscd 데몬은 선택적 구성 요소가 아닙니다.

enableShadowUpdate 스위치

클라이언트에서 enableShadowUpdate 스위치가 true로 설정된 경우 관리자 자격 증명을 사용하여 섀도우 데이터를 업데이트합니다. 섀도우 데이터는 디렉토리 서버의 shadowAccount 객체 클래스에 저장됩니다. 로컬 LDAP 클라이언트 속성에 설명된 대로 관리자 자격 증명은 adminDNadminPassword 속성의 값으로 정의됩니다. 이러한 관리자 자격 증명은 다른 용도로 사용되지 않습니다.

관리자 자격 증명에는 Proxy 자격 증명과 유사한 등록 정보가 있습니다. 예외적으로, 관리자 자격 증명의 경우 사용자가 섀도우 데이터를 읽거나 업데이트하려면 영역에 대한 모든 권한이 있거나 유효 UID root가 있어야 합니다. 디렉토리에 바인딩할 수 있는 모든 항목에 관리자 자격 증명을 지정할 수 있습니다. 그러나 LDAP 서버의 동일한 디렉토리 관리자 ID(cn=Directory Manager)를 사용하지 마십시오.

관리자 자격 증명을 가진 이 항목에는 디렉토리의 섀도우 데이터를 읽고 쓸 수 있는 권한이 충분해야 합니다. 항목은 시스템별 공유 리소스이므로 모든 클라이언트에서 adminDNadminPassword 속성을 구성해야 합니다. 암호화된 adminPassword는 클라이언트에 로컬로 저장됩니다. 암호는 클라이언트에 대해 구성된 것과 동일한 인증 방법을 사용합니다. 관리자 자격 증명은 특정 시스템의 모든 사용자와 프로세스가 섀도우 데이터를 읽고 업데이트하는 데 사용됩니다.

LDAP 클라이언트에 대한 자격 증명 저장소

프록시 ID를 사용하도록 클라이언트를 구성하면 클라이언트가 svc:/network/ldap/client 서비스에 프록시 정보를 저장합니다. 현재 LDAP 구현에서는 proxy 자격 증명이 클라이언트 프로파일에 저장되지 않습니다. 초기화 중에 ldapclient를 사용하여 설정된 proxy 자격 증명은 모두 SMF 저장소에 저장됩니다. 이로 인해 프록시의 DN 및 암호 정보에 대한 보안이 향상됩니다. 클라이언트 프로파일 설정에 대한 자세한 내용은 12 장LDAP 클라이언트 설정(작업)을 참조하십시오.

마찬가지로, 섀도우 데이터 업데이트가 가능하도록 클라이언트를 구성하는 경우 클라이언트 자격 증명 레벨이 self가 아니면 클라이언트는 svc:/network/ldap/client 서비스에 해당 정보를 저장합니다.

per-user 인증을 사용하도록 클라이언트를 구성하는 경우 각 주체(각 사용자나 호스트)에 대한 Kerberos ID와 Kerberos 티켓 정보가 인증 중에 사용됩니다. 이 환경에서 디렉토리 서버는 Kerberos 주체를 DN에 매핑하고, Kerberos 자격 증명이 해당 DN에 대해 인증을 수행하는 데 사용됩니다. 그런 다음 디렉토리 서버는 ACI(액세스 제어 명령) 방식을 사용하여 필요에 따라 이름 지정 서비스 데이터 액세스를 허용하거나 거부합니다. 이 경우 Kerberos 티켓 정보가 디렉토리 서버에 대해 인증을 수행하는 데 사용되며, 인증 DN 또는 암호가 시스템에 저장되지 않습니다. 따라서 이 유형의 구성에서는 클라이언트가 ldapclient 명령으로 초기화된 경우 adminDNadminPassword 속성을 지정할 필요가 없습니다.

LDAP 이름 지정 서비스에 대한 인증 방법 선택

proxy 또는 proxy-anonymous 자격 증명 레벨을 클라이언트에 지정할 때는 프록시가 디렉토리 서버에 대해 인증되는 방법도 선택해야 합니다. 기본적으로 인증 방법은 익명 액세스를 의미하는 none입니다. 인증 방법에 전송 보안 옵션이 연관될 수도 있습니다.

자격 증명 레벨과 마찬가지로 인증 방법에는 다중 값이 있을 수 있습니다. 예를 들어, 클라이언트 프로파일에서 클라이언트가 먼저 TLS로 보안된 simple 방법을 사용하여 바인딩하도록 지정할 수 있습니다. 실패할 경우 클라이언트는 sasl/digest-MD5 방법을 사용하여 바인딩합니다. 이 경우 authenticationMethodtls:simple;sasl/digest-MD5가 됩니다.

LDAP 이름 지정 서비스는 일부 SASL(Simple Authentication and Security Layer) 방식을 지원합니다. 이러한 방식을 사용하면 TLS 없이도 안전하게 암호를 교환할 수 있습니다. 그러나 이러한 방식은 데이터 무결성이나 프라이버시를 제공하지 않습니다. SASL에 대한 자세한 내용은 RFC 2222를 참조하십시오.

지원되는 인증 방식은 다음과 같습니다.


주의

주의 - Oracle Directory Server Enterprise Edition에서 digest-MD5를 사용하려면 암호를 일반 텍스트로 저장해야 합니다. 인증 방법이 sasl/digest-MD5 또는 tls:sasl/digest-MD5로 설정된 경우 프록시 사용자의 암호를 일반 텍스트로 저장해야 합니다. 암호를 일반 텍스트로 저장하는 경우 읽을 수 없도록 userPassword 속성에 올바른 ACI가 있는지 확인하십시오.


다음 표에는 다양한 인증 방법과 해당 특징이 요약되어 있습니다.

표 9-4 인증 방법

바인딩
전송 시 암호
Oracle Directory Server Enterprise Edition의 암호
세션
none
아니오
해당 없음
해당 없음
암호화 안함
simple
일반 텍스트
모두
암호화 안함
sasl/digest-MD5
암호화
일반 텍스트
암호화 안함
sasl/cram-MD5
암호화
해당 없음
암호화 안함
sasl/GSSAPI
Kerberos
Kerberos
암호화
tls:simple
암호화
모두
암호화
tls:sasl/cram-MD5
암호화
해당 없음
암호화
tls:sasl/digest-MD5
암호화
일반 텍스트
암호화

LDAP의 특정 서비스에 대한 인증 방법 지정

serviceAuthenticationMethod 속성에서 특정 서비스에 대한 인증 방법을 지정할 수 있습니다. 다음 서비스에 대해 인증 방법을 선택할 수 있습니다.


주 - 서비스에 serviceAuthenticationMethod가 설정되어 있지 않으면 기본적으로 authenticationMethod 속성 값으로 설정됩니다.



주 - per-user 모드에서는 Kerberos 서비스 모듈(pam Kerberos)이 인증 서비스로 사용됩니다. 이 작업 모드에서는 ServiceAuthenticationMethod가 필요 없습니다.



주 - enableShadowUpdate 스위치를 true로 설정하면 방법이 정의된 경우 ldap_cachemgr 데몬이 passwd-cmdserviceAuthenticationMethod 매개변수에 정의된 인증 방법을 사용하여 LDAP 서버에 바인딩됩니다. 그렇지 않으면 authenticationMethod가 사용됩니다. 이 데몬은 none 인증 방법을 사용하지 않습니다.


다음 예에서는 사용자가 sasl/digest-MD5를 사용하여 디렉토리 서버에 대해 인증을 수행하지만 SSL 세션을 사용하여 암호를 변경하는 클라이언트 프로파일의 섹션을 보여 줍니다.

serviceAuthenticationMethod=pam_ldap:sasl/digest-MD5
serviceAuthenticationMethod=passwd-cmd:tls:simple

플러그 가능 인증 방법

PAM 프레임워크를 사용하면 pam_unix_*, pam_krb5pam_ldap_* 모듈을 포함하여 여러 인증 서비스 중에서 선택할 수 있습니다.

per-user 인증 방법을 사용하는 경우 위에 나열된 세 가지 방법 중 가장 강력한 인증 서비스인 pam_krb5를 사용으로 설정해야 합니다. pam_krb5(5)Oracle Solaris 11.1 관리: 보안 서비스를 참조하십시오.

pam_krb5 인증 시스템은 per-user 인증이 사용으로 설정되지 않은 경우에도 사용할 수 있습니다. proxy 또는 anonymous 자격 증명 레벨을 사용하여 디렉토리 서버 데이터에 액세스하는 경우에는 사용자 단위로 디렉토리 데이터에 대한 액세스를 제한할 수 없습니다.

유연성 증가, 더 강력한 인증 방법 지원 및 계정 관리 사용 가능성 때문에 anonymous 또는 proxy 인증 방법을 사용하는 경우 pam_unix_* 모듈보다 pam_ldap 모듈을 사용하는 것이 좋습니다.

pam_unix_* 서비스 모듈

/etc/pam.conf 파일을 변경하지 않은 경우 기본적으로 UNIX 인증이 사용으로 설정됩니다.


주 - Oracle Solaris 릴리스에서는 pam_unix 모듈이 제거되었으며 더 이상 지원되지 않습니다. 다른 서비스 모듈 세트를 통해 상응하는 기능이나 더 나은 기능을 사용할 수 있습니다. 따라서 본 설명서에서 pam_unixpam_unix 모듈 자체가 아니라 이에 상응하는 기능을 나타냅니다.


다음은 원래 pam_unix 모듈에 상응하는 기능을 제공하는 모듈의 목록입니다.

pam_unix_* 모듈은 다음 목록에 설명된 대로 기존 UNIX 인증 모델을 따릅니다.

  1. 클라이언트가 이름 서비스에서 사용자의 암호화된 암호를 검색합니다.

  2. 사용자에게 사용자 암호를 묻는 메시지가 표시됩니다.

  3. 사용자 암호가 암호화됩니다.

  4. 클라이언트가 암호화된 두 암호를 비교하여 사용자 인증 여부를 결정합니다.

pam_unix_* 모듈을 사용할 때는 다음과 같은 두 가지 제한 사항이 적용됩니다.


주 - Oracle Directory Server Enterprise Edition에서 digest-MD5를 사용하려면 암호를 일반 텍스트로 저장해야 하므로 UNIX 인증은 sasl 인증 방법 digest-MD5와 호환되지 않습니다. UNIX 인증에서는 crypt 형식으로 암호를 저장해야 합니다.



주 - pam_unix_account 모듈은 enableShadowUpdate 스위치가 true로 설정된 경우 계정 관리를 지원합니다. 원격 LDAP 사용자 계정 컨트롤은 passwdshadow 파일에 정의된 로컬 사용자 계정에 컨트롤이 적용되는 것과 동일한 방식으로 적용됩니다. enableShadowUpdate 모드에서 시스템은 암호 에이징 및 계정 잠금을 위해 LDAP 계정에 대해 LDAP 서버의 섀도우 데이터를 업데이트하고 사용합니다. 물론 로컬 계정의 섀도우 데이터는 로컬 클라이언트 시스템에만 적용되고 LDAP 사용자 계정의 섀도우 데이터는 모든 클라이언트 시스템의 사용자에게 적용됩니다.

암호 기록 검사는 로컬 클라이언트에 대해서만 지원되고 LDAP 사용자 계정에 대해서는 지원되지 않습니다.


Kerberos 서비스 모듈

pam_krb5(5) 매뉴얼 페이지와 Oracle Solaris 11.1 관리: 보안 서비스를 참조하십시오.

LDAP 서비스 모듈

LDAP 인증을 구현할 때 사용자는 pam_ldapserviceAuthenticationMethod 매개변수에 정의된 인증 방법(있는 경우)을 사용하여 LDAP 서버에 바인딩됩니다. 그렇지 않으면 authenticationMethod가 사용됩니다.

pam_ldap이 사용자 ID 및 제공된 암호로 서버에 바인딩될 수 있으면 사용자를 인증합니다.


주 - 이전에는 pam_ldap 계정 관리를 사용으로 설정한 경우 모든 사용자가 시스템에 로그인할 때마다 인증을 위해 로그인 암호를 제공해야 했습니다. 따라서 ssh 등의 도구를 사용하여 암호 기반이 아닌 로그인을 시도하면 실패했습니다.

사용자가 로그인할 때 디렉토리 서버에 인증하지 않고 계정 관리를 수행하고 사용자의 계정 상태를 검색합니다. 디렉토리 서버의 새 컨트롤은 기본적으로 사용으로 설정되는 1.3.6.1.4.1.42.2.27.9.5.8입니다.

기본값이 아닌 다른 값에 대해 이 컨트롤을 수정하려면 디렉토리 서버에 ACI(액세스 제어 명령)를 추가합니다.

dn: oid=1.3.6.1.4.1.42.2.27.9.5.8,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid:1.3.6.1.4.1.42.2.27.9.5.8
cn:Password Policy Account Usable Request Control
aci: (targetattr != "aci")(version 3.0; acl "Account Usable"; 
     allow (read, search, compare, proxy)
     (groupdn = "ldap:///cn=Administrators,cn=config");)
creatorsName: cn=server,cn=plugins,cn=config
modifiersName: cn=server,cn=plugins,cn=config

pam_ldapuserPassword 속성을 읽지 않습니다. 따라서 UNIX 인증을 사용하는 다른 클라이언트가 없는 경우 userPassword 속성을 읽기 위한 권한을 부여할 필요가 없습니다. 또한 pam_ldapnone 인증 방법을 지원하지 않습니다. 따라서 클라이언트가 pam_ldap을 사용할 수 있도록 serviceAuthenticationMethod 또는 authenticationMethod 속성을 정의해야 합니다. 자세한 내용은 pam_ldap(5) 매뉴얼 페이지를 참조하십시오.


주의

주의 - simple 인증 방법을 사용하면 전송 중인 userPassword 속성을 제3자가 읽을 수 있습니다.


다음 표에는 인증 방식 간의 주요 차이점이 요약되어 있습니다.

표 9-5 LDAP의 인증 동작

이벤트
pam_unix_*
pam_ldap
pam_krb5
암호 전송됨
passwd 서비스 인증 방법 사용
passwd 서비스 인증 방법 사용
암호가 아니라 Kerberos SSO(Single Sign-On) 기술 사용
새 암호 전송됨
암호화됨
TLS를 사용하지 않는 한 암호화 안함
Kerberos 사용, 암호가 전송되지 않음
새 암호 저장됨
crypt 형식
Oracle Directory Server Enterprise Edition에서 암호 저장 체계가 정의됨
암호가 Kerberos에 의해 관리됨
암호 읽기 필요?
아니오
아니오
암호 변경 후의 sasl/digest-MD5 호환성
아니오. 암호가 clear로 저장되지 않습니다. 사용자가 인증할 수 없습니다.
예. 기본 저장 체계가 clear로 설정되어 있는 한 사용자가 인증할 수 있습니다.
아니오. sasl/GSSAPI가 사용됩니다. LDAP 디렉토리 서버에서 해당 암호 데이터베이스를 관리하는 Kerberos kdc를 사용하는 경우를 제외하고 디렉토리 서버에 암호가 저장되지 않으며 암호가 전송되지도 않습니다.
암호 정책 지원?
예. enableShadowUpdatetrue로 설정해야 합니다.
예(그렇게 구성된 경우).
pam_krb5(5), Kerberos V5 계정 관리 모듈을 참조하십시오.

PAM 및 암호 변경

passwd 명령을 사용하여 암호를 변경합니다. enableShadowUpdate 스위치가 true로 설정되지 않은 경우 사용자가 userPassword 속성을 쓸 수 있어야 합니다. enableShadowUpdate 스위치가 true로 설정된 경우 관리자 자격 증명이 userPassword 속성을 업데이트할 수 있어야 합니다. passwd-cmd에 대한 serviceAuthenticationMethod가 이 작업에 대한 authenticationMethod를 대체합니다. 사용되는 인증 방법에 따라 현재 암호가 전송 중에 암호화 해제될 수 있습니다.

UNIX 인증의 경우 새 userPassword 속성은 UNIX crypt 형식으로 암호화되며 LDAP에 기록되기 전에 태그가 지정됩니다. 따라서 서버에 바인딩되는 데 사용되는 인증 방법에 관계없이 새 암호가 전송 중에 암호화됩니다. 자세한 내용은 pam_authtok_store(5) 매뉴얼 페이지를 참조하십시오.

enableShadowUpdate 스위치가 true로 설정된 경우 사용자 암호가 변경되면 pam_unix_* 모듈이 관련 섀도우 정보도 업데이트합니다. pam_unix_* 모듈은 로컬 사용자 암호가 변경될 때 모듈이 업데이트하는 것과 동일한 shadow 필드를 로컬 shadow 파일에서 업데이트합니다.

pam_ldap은 암호 업데이트를 더 이상 지원하지 않습니다. 이제 server_policy 옵션을 사용하는 pam_authtok_storepam_ldap 암호 업데이트 기능을 대체합니다. pam_authtok_store를 사용하면 새 암호가 일반 텍스트로 LDAP 서버에 전송됩니다. 따라서 프라이버시를 유지하려면 TLS를 사용합니다. TLS를 사용하지 않으면 새 userPassword가 스누핑에 노출됩니다. Oracle Directory Server Enterprise Edition에 태그가 지정되지 않은 암호를 설정하면 소프트웨어가 passwordStorageScheme 속성을 사용하여 암호를 암호화합니다. passwordStorageScheme에 대한 자세한 내용은 사용 중인 Oracle Directory Server Enterprise Edition 버전에 대한 관리 설명서의 사용자 계정 관리 절을 참조하십시오.


주 - passwordStorageScheme 속성을 설정하는 경우 다음 구성 문제를 고려해야 합니다. NIS 또는 UNIX 인증을 사용하는 다른 클라이언트가 LDAP을 저장소로 사용하는 경우 passwordStorageSchemecrypt여야 합니다. 또한 Oracle Directory Server Enterprise Edition에 sasl/digest-MD5와 함께 LDAP 인증을 사용하는 경우에는 passwordStorageScheme을 clear로 설정해야 합니다.


LDAP 계정 관리

계정 및 암호 관리 시스템으로 pam_krb5를 선택하면 Kerberos 환경에서 모든 계정, 암호, 계정 잠금 및 기타 계정 관리 세부 사항이 관리됩니다. pam_krb5(5)Oracle Solaris 11.1 관리: 보안 서비스를 참조하십시오.

pam_krb5를 사용하지 않는 경우 Oracle Directory Server Enterprise Edition의 암호 및 계정 잠금 정책 지원을 활용하도록 LDAP 이름 지정 서비스를 구성할 수 있습니다. 사용자 계정 관리를 지원하도록 pam_ldap(5)를 구성할 수 있습니다. passwd(1)은 올바른 PAM 구성과 함께 사용할 경우 Oracle Directory Server Enterprise Edition 암호 정책에 의해 설정된 암호 구문 규칙 세트를 적용합니다.

다음 계정 관리 기능은 pam_ldap(5)를 통해 지원됩니다. 이러한 기능은 Oracle Directory Server Enterprise Edition의 암호 및 계정 잠금 정책 구성에 따라 달라집니다. 원하는 개수만큼 기능을 사용으로 설정할 수 있습니다.


주 - 앞의 계정 관리 기능은 Oracle Directory Server Enterprise Edition에서만 작동합니다. 서버에서 암호 및 계정 잠금 정책을 구성하는 방법에 대한 자세한 내용은 사용 중인 Oracle Directory Server Enterprise Edition 버전에 대한 관리 설명서의 “사용자 계정 관리” 장을 참조하십시오. 계정 관리에 pam_ldap 모듈을 사용하는 pam_conf 파일 예도 참조하십시오. proxy 계정에 대해 계정 관리를 사용으로 설정하지 마십시오.


Oracle Directory Server Enterprise Edition에서 암호 및 계정 잠금 정책을 구성하기 전에 모든 호스트가 pam_ldap 계정 관리에 “최신” LDAP 클라이언트를 사용하는지 확인합니다.

또한 클라이언트에 올바르게 구성된 pam.conf(4) 파일이 있는지 확인합니다. 그렇지 않으면 proxy 또는 사용자 암호가 만료될 경우 LDAP 이름 지정 서비스가 작동하지 않습니다.


주 - 이전에는 pam_ldap 계정 관리를 사용으로 설정한 경우 모든 사용자가 시스템에 로그인할 때마다 인증을 위해 로그인 암호를 제공해야 했습니다. 따라서 ssh 등의 도구를 사용하여 암호 기반이 아닌 로그인을 시도하면 실패했습니다.

사용자가 로그인할 때 디렉토리 서버에 인증하지 않고 계정 관리를 수행하고 사용자의 계정 상태를 검색합니다. 디렉토리 서버의 새 컨트롤은 기본적으로 사용으로 설정되는 1.3.6.1.4.1.42.2.27.9.5.8입니다.

기본값이 아닌 다른 값에 대해 이 컨트롤을 수정하려면 디렉토리 서버에 ACI(액세스 제어 명령)를 추가합니다.

dn: oid=1.3.6.1.4.1.42.2.27.9.5.8,cn=features,cn=config
objectClass: top
objectClass: directoryServerFeature
oid:1.3.6.1.4.1.42.2.27.9.5.8
cn:Password Policy Account Usable Request Control
aci: (targetattr != "aci")(version 3.0; acl "Account Usable"; 
     allow (read, search, compare, proxy)
     (groupdn = "ldap:///cn=Administrators,cn=config");)
creatorsName: cn=server,cn=plugins,cn=config
modifiersName: cn=server,cn=plugins,cn=config

pam_unix_* 모듈을 사용한 LDAP 계정 관리

클라이언트에서 enableShadowUpdate 스위치가 true로 설정된 경우 로컬 계정이 사용할 수 있는 계정 관리 기능을 LDAP 계정도 사용할 수 있습니다. 기능에는 암호 에이징, 계정 만료 및 알림, 실패한 로그인 계정 잠금 등이 포함됩니다. 또한 이제 LDAP에서 passwd 명령에 대한 -dluNfnwx 옵션이 지원됩니다. 따라서 파일 이름 지정 서비스에 있는 pam_unix_* 모듈과 passwd 명령의 전체 기능이 LDAP 이름 지정 서비스에서 지원됩니다. enableShadowUpdate 스위치는 파일과 LDAP 범위 둘 다에 정의된 사용자에게 일관된 계정 관리를 구현하는 방법을 제공합니다.

사용자가 자신의 계정 관리 데이터를 수정하여 암호 정책을 우회하는 것을 방지하기 위해 LDAP 서버는 사용자가 서버에 있는 자신의 섀도우 데이터에 대해 쓰기 작업을 수행하지 못하도록 구성됩니다. 관리자 자격 증명이 있는 관리자가 클라이언트 시스템에 대해 섀도우 데이터 업데이트를 수행합니다. 그러나 이러한 구성은 사용자가 암호를 수정할 수 있어야 하는 pam_ldap 모듈과 충돌합니다. 따라서 pam_ldappam_unix_* 모듈에 의한 계정 관리는 호환되지 않습니다.


주의

주의 - 동일한 LDAP 이름 지정 도메인에서 pam_ldap 모듈과 pam_unix_* 모듈을 함께 사용하지 마십시오. 모든 클라이언트가 pam_ldap 모듈을 사용하거나 모든 클라이언트가 pam_unix_* 모듈을 사용해야 합니다. 이 제한은 전용 LDAP 서버가 필요함을 나타낼 수 있습니다. 예를 들어, 웹 또는 전자 메일 응용 프로그램에서 사용자가 LDAP 서버의 해당 암호를 변경할 수 있어야 할 수 있습니다.


또한 enableShadowUpdate를 구현하려면 관리자 자격 증명(adminDNadminPassword)을 모든 클라이언트에 로컬로 저장해야 합니다. 이 정보는 svc:/network/ldap/client 서비스에 저장됩니다.

계정 관리에 pam_ldap을 사용하는 경우와 달리 계정 관리에 pam_unix_* 모듈을 사용할 때는 /etc/pam.conf 파일을 변경할 필요가 없습니다. 기본 /etc/pam.conf 파일을 사용해도 됩니다.