탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1에서 이름 지정 및 디렉토리 서비스 작업 Oracle Solaris 11.1 Information Library (한국어) |
4. Oracle Solaris Active Directory 클라이언트 설정(작업)
10. LDAP 이름 지정 서비스에 대한 계획 요구 사항(작업)
11. LDAP 클라이언트를 사용하여 Oracle Directory Server Enterprise Edition 설정(작업)
ldapclient 명령은 Oracle Solaris 시스템에서 LDAP 클라이언트를 설정하는 데 사용됩니다. 이 명령은 서버가 적절한 클라이언트 프로파일로 이미 구성되었다고 가정합니다. 클라이언트를 설정하려면 먼저 서버를 설치하고 적절한 프로파일로 구성해야 합니다.
주 - LDAP과 NIS는 network/nis/domain 서비스에서 정의된 동일한 도메인 이름 구성 요소를 사용하기 때문에 Oracle Solaris OS는 NIS 클라이언트와 고유 LDAP 클라이언트가 동일한 클라이언트 시스템에서 함께 사용되는 구성을 지원하지 않습니다.
ldapclient를 사용하여 클라이언트를 설정하는 두 가지 기본 방법이 있습니다.
프로파일
최소한 사용하려는 프로파일과 도메인은 포함된 서버 주소를 지정해야 합니다. 프로파일을 지정하지 않으면 “기본” 프로파일이 사용됩니다. 서버는 프록시 및 인증서 데이터베이스 정보를 제외하고 나머지 필요한 정보를 제공합니다. 클라이언트의 자격 증명 레벨이 proxy 또는 proxy anonymous인 경우 프록시 바인드 DN과 암호를 제공해야 합니다. 자세한 내용은 클라이언트 자격 증명 레벨 지정을 참조하십시오.
섀도우 데이터 업데이트를 사용으로 설정하려면 관리자 자격 증명(adminDN 및 adminPassword)을 제공해야 합니다.
설명서
클라이언트 자체에 프로파일을 구성하여 명령줄에서 모든 매개변수를 정의합니다. 따라서 프로파일 정보는 캐시 파일에 저장되며 서버에서 새로 고치지 않습니다.
주 - 엔터프라이즈 환경에서 LDAP 구성 프로파일을 사용하면 시스템 간에 프로파일이 공유되는 경우 복잡성을 줄일 수 있습니다.
자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# ldapclient init -a profileName=new \ -a domainName=west.example.com 192.168.0.1 System successfully configured
시작하기 전에
per-user 자격 증명을 사용하여 LDAP 클라이언트를 설정하기 전에 다음 항목이 이미 구성되어 있어야 합니다.
Kerberos KDC(키 배포 센터) 서버가 하나 이상 구성되어 실행 중이어야 합니다.
DNS, DNS 서버에 대한 클라이언트 액세스 및 하나 이상의 DNS 서버가 구성되어 실행 중이어야 합니다.
클라이언트 시스템의 Kerberos가 구성되고 사용으로 설정되어 있어야 합니다.
다음과 같은 Kerberos 클라이언트 설치 프로파일이 있어야 합니다.
# cat /usr/tmp/krb5.profile REALM EXAMPLE.COM KDC kdc.example.com ADMIN super/admin FILEPATH /usr/tmp/krb5.conf NFS 1 DNSLOOKUP none
LDAP 서버가 설치되고 sasl/GSSAPI를 지원하도록 구성되어 있어야 합니다.
적절한 ID 매핑 구성이 있어야 합니다.
디렉토리 서버 및 KDC에 대한 Kerberos 호스트 주체가 KDC에 설정되어 있어야 합니다.
사용할 디렉토리 서버 DIT에서 idsconfig 명령이 실행된 상태여야 합니다.
적절한 per-user gssapi 프로파일(예: gssapi_EXAMPLE.COM)이 만들어져 있어야 합니다.
idsconfig 명령의 per-user 프로파일에 대한 설명은 다음 부분 예에서 보여 줍니다.
# /usr/lib/ldap/idsconfig Do you wish to continue with server setup (y/n/h)? [n] y Enter the Directory Server's hostname to setup: kdc.example.com Enter the port number for DSEE (h=help): [389] <Enter your port> Enter the directory manager DN: [cn=Directory Manager] <Enter your DN> Enter passwd for cn=Directory Manager : <Enter your password> Enter the domainname to be served (h=help): [example.com] <Enter your domain> Enter LDAP Base DN (h=help): [dc=example,dc=com] <Enter your DN> GSSAPI is supported. Do you want to set up gssapi:(y/n) [n] y Enter Kerberos Realm: [EXAMPLE.COM] EXAMPLE.COM
주 - 또한 gssapi 프로파일의 경우 4 self 자격 증명 레벨과 6 sasl/GSSAPI 인증 방법을 제공해야 합니다.
필요한 사용자 주체가 KDC에 있어야 합니다.
클라이언트 시스템에서 Kerberos가 다음과 같은 명령과 클라이언트 프로파일을 사용하여 초기화되어 있어야 합니다.
# /usr/sbin/kclient -p /usr/tmp/krb5.profile
이름 서비스 스위치가 hosts에 대해 dns를 사용하도록 구성되어 있어야 합니다. 다음 명령은 현재 저장소 값을 확인합니다.
% svcprop -p config/host system/name-service/switch files\ dns\ nis
DNS가 구성되어 있어야 하고, DNS 서비스가 실행 중이어야 합니다. 자세한 내용은 본 문서의 DNS 장을 참조하십시오.
디렉토리 서버 DIT에 최소한 이 클라이언트 시스템의 사용자, 클라이언트 호스트 및 필요한 auto_home LDAP 항목이 미리 로드되어 있어야 합니다. ldapaddent 명령을 사용하여 항목을 추가하는 방법에 대한 자세한 내용은 본 설명서의 다른 절을 참조하십시오.
주 - 클라이언트 구성 파일을 직접 편집하지 마십시오. ldapclient 명령을 사용하여 이러한 파일의 내용을 만들거나 수정합니다.
# /usr/sbin/ldapclient init -a profilename=gssapi_EXAMPLE.COM -a \ domainname=example.com 9.9.9.50
syslog 파일에 libsldap: Status: 7 Mesg: openConnection: GSSAPI bind failed - 82 Local error 메시지가 표시되는 경우 Kerberos가 초기화되지 않았거나 티켓이 만료된 것입니다. klist 명령을 실행하여 찾습니다. 예를 들어, kinit -p foo 또는 kinit -R -p foo를 실행하고 다시 시도합니다.
원하는 경우 로그인할 때 kinit 명령이 자동으로 실행되도록 /etc/pam.conf에 pam_krb5.so.1을 추가할 수 있습니다.
예를 들면 다음과 같습니다.
login auth optional pam_krb5.so.1 rlogin auth optional pam_krb5.so.1 other auth optional pam_krb5.so.1
사용자가 kinit 명령을 실행했으며 syslog 메시지에 Invalid credential이 표시되는 경우 root 호스트 항목이나 사용자 항목이 LDAP 디렉토리에 없거나 매핑 규칙이 잘못된 것일 수 있습니다.
ldapclient init 명령을 실행하면 LDAP 프로파일에 self/sasl/GSSAPI 구성이 포함되어 있는지 확인합니다. 스위치 검사에 실패할 경우 일반적으로 DNS가 호스트 데이터베이스에 대한 검색 조건이 아니기 때문입니다.
DNS 클라이언트 ID가 사용으로 설정되지 않아 검사에 실패할 경우 svcs -l dns/client를 실행하여 서비스가 사용 안함으로 설정되었는지 확인합니다. svcadm enable dns/client를 실행하여 서비스를 사용으로 설정합니다.
sasl/GSSAPI 바인드 때문에 검사에 실패할 경우 syslog를 검사하여 문제를 확인합니다.
자세한 내용은 본 설명서와 Oracle Solaris 11.1 관리: 보안 서비스의 다른 참조를 참조하십시오.
주 - 클라이언트 구성 파일을 직접 편집하지 마십시오. ldapclient 명령을 사용하여 이러한 파일의 내용을 만들거나 수정합니다.
자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# ldapclient init \ -a proxyDN=cn=proxyagent,ou=profile,dc=west,dc=example,dc=com \ -a domainName=west.example.com \ -a profileName=pit1 \ -a proxyPassword=test1234 192.168.0.1 System successfully configured
사용할 프로파일에 proxy가 설정된 경우 -a proxyDN 및 -a proxyPassword가 필요합니다. 서버에 저장된 프로파일에 자격 증명이 저장되어 있지 않으므로 클라이언트를 초기화할 때 정보를 제공해야 합니다. 이 방법은 proxy 자격 증명을 서버에 저장하는 이전 방법보다 더 안전합니다.
프록시 정보는 config 및 cred 등록 정보 그룹의 svc:/network/ldap/client 서비스에 저장됩니다.
자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# ldapclient mod -a enableShadowUpdate=TRUE \ -a adminDN=cn=admin,ou=profile,dc=west,dc=example,dc=com \ -a adminPassword=admin-password System successfully configured
# ldapclient init \ -a adminDN=cn=admin,ou=profile,dc=west,dc=example,dc=com \ -a adminPassword=admin-password -a domainName=west.example.com \ -a profileName=WestUserProfile \ -a proxyDN=cn=proxyagent,ou=profile,dc=west,dc=example,dc=com \ -a proxyPassword=<proxy_password> \ 192.168.0.1 System successfully configured
출력은 다음과 유사하게 나타납니다.
# svcprop -p cred svc:/network/ldap/client cred/read_authorization astring solaris.smf.value.name-service.ldap.client cred/value_authorization astring solaris.smf.value.name-service.ldap.client cred/bind_dn astring cn=proxyagent,ou=profile,dc=west,dc=example,dc=com cred/bind_passwd astring {NS1}4a3788f8eb85de11 cred/enable_shadow_update boolean true cred/admin_bind_dn astring cn=admin,ou=profile,dc=west,dc=example,dc=com cred/admin_bind_passwd astring {NS1}4a3788f8c053434f
루트 사용자나 이에 상응하는 역할을 가진 관리자는 수동 LDAP 클라이언트 구성을 수행할 수 있습니다. 그러나 많은 검사는 프로세스 중에 생략되므로 시스템을 잘못 구성하기 쉽습니다. 또한 프로파일을 사용할 때와 같이 단일 중앙 장소가 아니라 모든 시스템에서 설정을 변경해야 합니다.
자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# ldapclient manual \ -a domainName=dc=west.example.com -a credentialLevel=proxy \ -a defaultSearchBase=dc=west,dc=example,dc=com \ -a proxyDN=cn=proxyagent,ou=profile,dc=west,dc=example,dc=com \ -a proxyPassword=testtest 192.168.0.1
# ldapclient list NS_LDAP_FILE_VERSION= 2.0 NS_LDAP_BINDDN= cn=proxyagent,ou=profile,dc=west,dc=example,dc=com NS_LDAP_BINDPASSWD= {NS1}4a3788e8c053424f NS_LDAP_SERVERS= 192.168.0.1 NS_LDAP_SEARCH_BASEDN= dc=west,dc=example,dc=com NS_LDAP_CREDENTIAL_LEVEL= proxy
자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# ldapclient mod -a authenticationMethod=simple
# ldapclient list NS_LDAP_FILE_VERSION= 2.0 NS_LDAP_BINDDN= cn=proxyagent,ou=profile,dc=west,dc=example,dc=com NS_LDAP_BINDPASSWD= {NS1}4a3788e8c053424f NS_LDAP_SERVERS= 192.168.0.1 NS_LDAP_SEARCH_BASEDN= dc=west,dc=example,dc=com NS_LDAP_AUTH= simple NS_LDAP_CREDENTIAL_LEVEL= proxy
일반 오류
mod 하위 명령을 사용하여 LDAP 클라이언트 구성의 일부 속성을 변경할 수 없습니다. 예를 들어, profileName 및 profileTTL 속성을 변경할 수 없습니다. 이러한 속성을 변경하려면 프로파일을 사용하여 LDAP 클라이언트를 초기화하는 방법에 설명된 대로 ldapclient init 명령을 사용하여 새 프로파일을 만듭니다. 또는 수동으로 LDAP 클라이언트를 초기화하는 방법에 설명된 대로 ldapclient manual 명령을 실행합니다.
ldapclient uninit 명령은 최근 init, modify 또는 manual 작업 이전의 상태로 클라이언트 이름 서비스를 복원합니다. 즉, 이 명령은 마지막으로 수행된 단계에 대해 “실행 취소”를 수행합니다. 예를 들어, 클라이언트가 profile1을 사용하도록 구성된 다음 profile2를 사용하도록 변경된 경우 ldapclient uninit를 사용하면 클라이언트가 다시 profile1을 사용합니다.
자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.
# ldapclient uninit System successfully recovered
주 - 모든 사용자가 보안 데이터베이스 파일을 읽을 수 있어야 합니다. key3.db 파일에 개인 키를 포함하지 마십시오.
TLS(전송 계층 보안)를 사용하는 경우 필요한 보안 데이터베이스를 설치해야 합니다. 특히 인증서와 키 데이터베이스 파일이 필요합니다. 예를 들어, Mozilla Firefox의 최신 데이터베이스 형식을 사용하는 경우 3개의 파일인 cert8.db, key3.db 및 secmod.db가 필요합니다. cert8.db 파일에 인증된 인증서가 포함되어 있으며, key3.db 파일에 클라이언트의 키가 포함되어 있습니다. LDAP 이름 지정 서비스 클라이언트가 클라이언트 키를 사용하지 않는 경우에도 이 파일은 있어야 합니다. secmod.db 파일에는 PKCS#11 모듈 등의 보안 모듈이 들어 있습니다. 이전 형식을 사용하는 경우에는 이 파일이 필요 없습니다.
주 - ldapclient를 실행하기 전에 이 절에 설명된 필요한 보안 데이터베이스 파일을 설정하고 설치해야 합니다.
사용 중인 Oracle Directory Server Enterprise Edition 버전의 관리자 설명서, “SSL 관리”에서 SSL 사용을 위해 LDAP 클라이언트 구성 절을 참조하십시오. 이러한 파일을 만들고 관리하는 방법에 대해 자세한 내용을 참조하십시오. 구성한 후에는 LDAP 이름 지정 서비스 클라이언트에 필요한 위치에 이러한 파일을 저장해야 합니다. certificatePath 속성은 이 위치를 결정하는 데 사용됩니다. 기본 위치는 /var/ldap입니다.
예를 들어, Mozilla Firefox를 사용하여 필요한 cert8.db, key3.db 및 secmod.db 파일을 설정한 후 다음과 같이 이 파일을 기본 위치에 복사합니다.
# cp $HOME/.mozilla/firefox/*.default/cert8.db /var/ldap # cp $HOME/.mozilla/firefox/*.default/key3.db /var/ldap # cp $HOME/.mozilla/firefox/*.default/secmod.db /var/ldap
모든 사용자에게 읽기 권한을 부여합니다.
# chmod 444 /var/ldap/cert8.db # chmod 444 /var/ldap/key3.db # chmod 444 /var/ldap/secmod.db
주 - Mozilla Firefox의 cert8.db, key3.db 및 secmod.db 파일은 $HOME/.mozilla의 하위 디렉토리에서 관리됩니다. 이러한 보안 데이터베이스의 복사본을 LDAP 이름 지정 서비스 클라이언트에 사용하는 경우 복사본이 로컬 파일 시스템에 저장되어 있어야 합니다.
pam_ldap 모듈은 LDAP에 대한 인증 및 계정 관리 PAM 모듈 옵션 중 하나입니다. 현재 pam_ldap에서 지원되는 기능에 대한 자세한 내용은 pam_ldap(5) 매뉴얼 페이지를 참조하십시오.
per-user 모드와 self 자격 증명 옵션을 모두 선택한 경우 PAM Kerberos pam_krb5 모듈도 사용으로 설정해야 합니다. 자세한 내용은 pam_krb5(5) 매뉴얼 페이지와 Oracle Solaris 11.1 관리: 보안 서비스 설명서를 참조하십시오.
UNIX policy를 사용하도록 PAM을 구성하려면 기본 /etc/pam.conf 파일을 사용합니다. 변경할 필요가 없습니다. 자세한 내용은 pam.conf(4) 매뉴얼 페이지를 참조하십시오.
그러나 shadow 데이터로 제어되는 암호 에이징 및 암호 정책이 필요한 경우 enableShadowUpdate 스위치를 사용하여 클라이언트를 구성하고 실행해야 합니다. 자세한 내용은 LDAP 클라이언트를 초기화하여 섀도우 데이터 업데이트를 사용으로 설정하는 방법을 참조하십시오.
LDAP server_policy를 사용하도록 PAM을 구성하려면 계정 관리에 pam_ldap 모듈을 사용하는 pam_conf 파일 예의 샘플을 따르십시오. pam_ldap.so.1이 포함된 라인을 클라이언트의 /etc/pam.conf 파일에 추가합니다. 또한 샘플 pam.conf 파일의 PAM 모듈에 binding 플래그와 server_policy 옵션을 지정하는 경우 클라이언트의 /etc/pam.conf 파일에서 해당 모듈에 대해 동일한 플래그와 옵션을 사용합니다. 또한 서비스 모듈 pam_authtok_store.so.1이 포함된 라인에 server_policy 옵션을 추가합니다.
주 - 이전에는 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
binding 제어 플래그
binding 제어 플래그를 사용하면 원격(LDAP) 암호의 로컬 암호 대체가 가능합니다. 예를 들어, 로컬 파일과 LDAP 이름 공간 둘 다에 사용자 계정이 있는 경우 로컬 계정과 연관된 암호가 원격 암호보다 우선 적용됩니다. 따라서 로컬 암호가 만료되면 원격 LDAP 암호가 유효해도 인증에 실패합니다.
server_policy 옵션
server_policy 옵션을 사용하면 pam_unix_auth, pam_unix_account 및 pam_passwd_auth가 LDAP 이름 공간에서 찾은 사용자를 무시하고 pam_ldap에서 인증 또는 계정 검증을 수행할 수 있게 합니다. pam_authtok_store의 경우 새 암호가 암호화 없이 LDAP 서버로 전달됩니다. 따라서 암호가 서버에 구성된 암호 보안 처리 체계에 따라 디렉토리에 저장됩니다. 자세한 내용은 pam.conf(4) 및 pam_ldap(5)를 참조하십시오.