Sun Java System Web Proxy Server 4.0.8 관리 설명서

클라이언트 보안 요구 사항 설정

서버 보안 단계를 모두 수행한 후, 클라이언트에 대한 추가 보안 요구 사항을 설정할 수 있습니다.

클라이언트 인증이 SSL 연결에 반드시 필요한 것은 아니지만 암호화된 정보를 올바른 대상에게 전송하는 데 도움이 될 수 있습니다. 역방향 프록시에서 클라이언트 인증을 사용하여 내용 서버가 권한이 없는 프록시나 클라이언트와 정보를 공유하지 않도록 할 수 있습니다.

이 절은 다음 내용으로 구성되어 있습니다.

클라이언트 인증 요구

Administration Server용 청취 소켓을 사용하도록 설정하고 각 서버 인스턴스가 클라이언트 인증을 요청하도록 할 수 있습니다. 클라이언트 인증을 활성화하면 서버가 쿼리에 대한 응답을 전송하기 전에 클라이언트에 인증서를 요구합니다.

Proxy Server는 클라이언트 인증서에 있는 CA와 클라이언트 인증서 서명용으로 신뢰된 CA를 비교하여 클라이언트 인증서를 인증합니다. 클라이언트 인증서 서명용으로 신뢰된 CA의 목록은 Security 탭을 통해 Manage Certificates 페이지에서 볼 수 있습니다.

신뢰할 수 있는 CA의 클라이언트 인증서를 보유하지 않은 클라이언트를 거부하도록 프록시 서버를 구성할 수 있습니다. 신뢰할 수 있는 CA를 수락하거나 거부하려면 CA에 대해 클라이언트 트러스트를 설정해야 합니다. 자세한 내용은 인증서 관리를 참조하십시오.

인증서의 유효 기간이 만료된 경우 프록시 서버는 오류를 기록하고 인증서를 거부하며 클라이언트에게 메시지를 반송합니다. 또한 Manage Certificates 페이지에서 만료된 인증서를 볼 수 있습니다.

서버가 인증서 클라이언트에서 정보를 수집하여 이를 LDAP 디렉토리에 있는 사용자 항목과 비교하도록 구성할 수 있습니다. 이 프로세스는 클라이언트에 유효한 인증서가 있고 LDAP 디렉토리에 항목이 있는지 확인합니다. 또한 클라이언트 인증서가 LDAP 디렉토리의 항목 중 하나와 일치되도록 합니다. 이에 대한 방법은 클라이언트 인증서를 LDAP로 매핑을 참조하십시오.

클라이언트 인증서를 액세스 제어와 조합할 수 있으므로 신뢰된 CA의 요구 사항 이외에 인증서에 연결된 사용자는 반드시 액세스 제어 규칙(ACL)과 일치되어야 합니다. 자세한 내용은 액세스 제어 파일 사용을 참조하십시오.

Procedure클라이언트 인증 요구 방법

  1. Administration Server 또는 Server Manager에 액세스하고 Preferences 탭을 누릅니다.

  2. Edit Listen Sockets 링크를 누릅니다.

  3. 클라이언트 인증을 요구할 청취 소켓에 대한 링크를 누릅니다.

  4. Client Authentication 드롭다운 목록을 사용하여 청취 소켓에 대한 클라이언트 인증을 요구하고 OK를 누릅니다.

역방향 프록시에서의 클라이언트 인증

역방향 프록시에서는 다음 시나리오 중 하나에 따라 클라이언트 인증을 구성할 수 있습니다.

이러한 시나리오를 구성하는 방법에 대한 자세한 내용은 역방향 프록시에서의 클라이언트 인증 설정을 참조하십시오.

역방향 프록시에서의 클라이언트 인증 설정

보안 역방향 프록시에서의 클라이언트 인증은 연결의 보안을 더욱 강화할 수 있습니다. 다음 지침에서는 선택한 시나리오에 따라 클라이언트 인증을 구성하는 방법에 대해 설명합니다.


주 –

각 시나리오에서는 보안 클라이언트-프록시 연결 및 보안 프록시-내용 서버 연결을 모두 사용한다고 가정합니다.


ProcedureProxy-Authenticates-Client 시나리오 구성 방법

  1. 14 장역방향 프록시 사용의 "역방향 프록시 설정"에 있는 보안 클라이언트-프록시 및 보안 프록시-내용 서버 시나리오 구성 지침을 따릅니다.

  2. 서버 인스턴스에 대한 Server Manager에 액세스하고 Preferences 탭을 누릅니다.

  3. Edit Listen Sockets 링크를 누른 다음 나타나는 표에서 원하는 청취 소켓에 대한 링크를 누릅니다.

    청취 소켓을 구성하고 추가하려면 Add Listen Socket 링크를 사용합니다.

  4. 클라이언트 인증 요구 사항을 지정합니다.

    1. 유효한 인증서가 있는 모든 사용자에게 액세스를 허용하는 방법

      Security 섹션에서 Client Authentication 설정을 사용하여 이 청취 소켓에 대해 클라이언트 인증을 요구합니다. 서버 인증서가 설치되어 있지 않으면 이 설정이 표시되지 않습니다.

    2. 두 개의 유효한 인증서가 모두 있고 액세스 제어에 승인된 사용자로 지정된 사용자에게만 액세스를 허용하는 방법

      1. Security 섹션에서 Client Authentication 설정을 off로 유지합니다. 서버 인증서가 설치되어 있지 않으면 이 설정이 표시되지 않습니다.

      2. 이 서버 인스턴스에 대한 Server Manager Preferences 탭에서 Administer Access Control 링크를 누릅니다.

      3. ACL을 선택한 다음 Edit 버튼을 누릅니다.

        Access Control Rules For 페이지가 표시됩니다(프롬프트가 표시되면 인증 필요).

      4. 액세스 제어를 사용하도록 설정합니다(아직 선택되어 있지 않으면 Access control Is On 확인란 선택).

      5. 역방향 프록시로 인증하도록 Proxy Server를 설정합니다.

        자세한 내용은 역방향 프록시 설정을 참조하십시오.

      6. 원하는 액세스 제어 규칙에 대한 Rights 링크를 누르고 아래 창에서 액세스 권한을 지정한 다음 Update를 눌러 이 항목을 업데이트합니다.

      7. Users/Groups 링크를 누릅니다. 아래 창에서사용자 및 그룹을 지정하고 인증 방법으로 SSL을 선택한 다음 Update를 눌러 이 항목을 업데이트합니다.

      8. 위 창에서 Submit를 눌러 항목을 저장합니다.

        액세스 제어 설정에 대한 자세한 내용은 8 장서버 액세스 제어를 참조하십시오.

ProcedureContent Server-Authenticates-Proxy 시나리오를 구성하는 방법

  1. 역방향 프록시 설정의 보안 클라이언트-프록시 및 프록시-내용 서버 시나리오를 구성하는 지침을 따릅니다.

  2. 내용 서버에서 클라이언트 인증을 사용하도록 설정합니다.

    Proxy Server에 대한 비보안 클라이언트 연결 및 내용 서버에 대한 보안 연결을 수행하고 내용 서버가 프록시 서버를 인증하도록 이 시나리오를 수정할 수 있습니다. 이렇게 하려면 다음 절차에 설명된 대로 암호화의 사용 설정을 해제하고 프록시가 인증서만 초기화하도록 해야 합니다.

ProcedureProxy-Authenticates-Client and Content Server-Authenticates-Proxy 시나리오를 구성하는 방법

  1. Proxy-Authenticates-Client 시나리오 구성 방법의 프록시-인증-클라이언트 시나리오를 구성하는 방법에 대한 지침을 따릅니다.

  2. 내용 서버에서 클라이언트 인증을 사용하도록 설정합니다.

클라이언트 인증서를 LDAP로 매핑

이 절에서는 Proxy Server가 클라이언트 인증서를 LDAP 디렉토리의 항목으로 매핑하는 프로세스에 대해 설명합니다. 클라이언트 인증서를 LDAP에 매핑하기 전에 필수 ACL을 구성해야 합니다. 자세한 내용은 8 장서버 액세스 제어를 참조하십시오.

서버가 클라이언트의 요청을 수신하면 이를 처리하기 전에 클라이언트의 인증서를 요구합니다. 클라이언트에 따라 서버에 요청과 함께 클라이언트를 전송하는 경우도 있습니다.

서버는 CA를 Administration Server에 있는 신뢰할 수 있는 CA의 목록과 일치시키려 합니다. 일치 항목이 없으면 Proxy Server는 연결을 종료합니다. 일치 항목이 있으면 서버가 요청 처리를 계속합니다.

신뢰할 수 있는 CA의 인증서임을 확인한 후 서버는 다음과 같이 인증서를 LDAP 항목으로 매핑합니다.

서버는 certmap.conf라는 인증서 매핑 파일을 사용하여 LDAP 검색이 수행되는 방법을 결정합니다. 서버는 매핑 파일에 따라 클라이언트 인증서에서 가져올 값(예: 최종 사용자의 이름, 전자 메일 주소 등)을 결정합니다. 서버는 이 값을 사용하여 LDAP 디렉토리에서 사용자 항목을 검색하지만, 우선 서버가 LDAP 디렉토리에서 검색을 시작할 위치를 결정해야 합니다. 서버는 또한 인증서 매핑 파일에서 시작 위치를 알 수 있습니다.

서버가 검색을 시작할 위치와 검색할 항목을 결정하면 LDAP 디렉토리에서 검색을 수행합니다(두 번째 지점). 일치 항목이 없거나 일치 항목이 여러 개인 경우 인증서를 확인하도록 매핑이 설정되지 않고 검색은 실패합니다.

예상되는 검색 결과의 목록은 다음 표와 같습니다. ACL에서 예상 동작을 지정할 수 있습니다. 예를 들어, 인증서 일치에 실패하면 Proxy Server가 해당사용자만 허용하도록 지정할 수 있습니다. ACL 기본 설정을 지정하는 방법에 대한 자세한 내용은 액세스 제어 파일 사용을 참조하십시오.

표 5–1 LDAP 검색 결과

LDAP 검색 결과 

인증서 검증 ON 

인증서 검증 OFF 

검색된 항목 없음 

인증 실패 

인증 실패 

정확히 한 개 항목 일치 

인증 실패 

인증 성공 

여러 항목 일치 

인증 실패 

인증 실패 

서버가 LDAP 디렉토리에서 일치 항목과 인증서를 찾으면 서버는 해당 정보를 사용하여 트랜잭션을 처리할 수 있습니다. 예를 들어 서버에 따라 인증서 LDAP 매핑을 사용하여 서버에 대한 액세스를 결정합니다.

certmap.conf 파일 사용

인증서 매핑에 따라 서버가 LDAP 디렉토리에서 사용자 항목을 찾는 방법이 결정됩니다. certmap.conf 파일을 사용하여 이름으로 명시된 인증서를 LDAP 항목에 매핑하는 방법을 구성할 수 있습니다. 이 파일을 편집하고 항목을 추가하여 LDAP 디렉토리의 조직과 일치시키고 사용자에게 부여할 인증서 목록을 표시할 수 있습니다. 사용자는 사용자 아이디, 전자 메일 주소 또는 subjectDN에 사용되는 다른 모든 값을 기반으로 인증될 수 있습니다. 특히, 매핑 파일에는 다음의 정보가 정의됩니다.

인증서 매핑 파일은 다음에 있습니다.

server-root/userdb/certmap.conf

파일에는 하나 이상의 이름 매핑이 있으며, 각각의 매핑은 서로 다른 CA에 적용됩니다. 매핑의 구문은 다음과 같습니다.

certmap name issuerDNname :property [ value]

첫 번째 줄은 항목의 이름과 CA 인증서에 있는 고유 이름을 구성하는 속성을 지정합니다. name은 임의이며 원하는 값으로 정의할 수 있습니다. 그러나 issuerDN은 클라이언트 인증서를 발행한 CA의 발행자 DN과 정확하게 일치해야 합니다. 예를 들어, 아래의 발행자 DN 행의 차이는 단지 속성을 구분하는 공백이지만 서버는 이 두 항목을 서로 다른 것으로 처리합니다.

certmap sun1 ou=Sun Certificate Authority,o=Sun,c=UScertmap sun2 ou=Sun Certificate Authority, o=Sun, c=US


주 –

Sun Java System Directory Server를 사용하고 발행자 DN을 일치시키는 데 문제가 발생하는 경우에는 디렉토리 서버 오류 로그에 유용한 정보가 있는지 확인하십시오.


이름 매핑의 두 번째 및 이후 줄은 등록 정보를 값과 매핑합니다. certmap.conf 파일에는 6개의 기본 등록 정보가 있습니다. 인증서 API를 사용하여 자체 등록 정보를 직접 사용자 정의할 수도 있습니다. 기본 등록 정보는 다음과 같습니다.

표 5–2 x509v3 인증서의 속성

속성 

설명 

c

국가 

o

조직 

cn

공통 이름 

l

위치 

st

상태 

ou

조직 단위 

uid

UNIX/Linux 사용자 아이디 

email

전자 메일 주소 

이러한 등록 정보에 대한 자세한 내용은 매핑 예제에 설명된 예를 참조하십시오.

사용자 정의 등록 정보 생성

클라이언트 인증서 API는 자체 등록 정보를 만드는 데 사용할 수 있습니다. 사용자 정의 매핑이 있는 경우 매핑은 다음과 같이 참조합니다.

name:library path_to_shared_libraryname :InitFN name_of_ init_function

예:

certmap default1 o=Sun Microsystems, c=US default1:library /usr/sun/userdb/plugin.so default1:InitFn plugin_init_fn default1:DNComps ou o c default1:FilterComps l default1:verifycert on

매핑 예제

certmap.conf 파일에는 항목이 한 개 이상 있어야 합니다. 다음 예는 certmap.conf를 사용할 수 있는 다양한 방법을 보여줍니다.

예제 #1 한 개의 기본 매핑만 포함된 certmap.conf 파일

certmap default defaultdefault:DNComps ou, o, cdefault:FilterComps e, uiddefault:verifycert on

이 예제를 사용하면 서버는 ou=orgunit, o=org, c=country 항목을 포함하는 LDAP 분기점에서 검색을 시작하며, 여기서 기울임체로 표시된 텍스트는 클라이언트 인증서에 있는 대상 DN의 값으로 대체됩니다.

이후, 서버는 인증서에 있는 전자 메일 주소와 사용자 아이디 값을 사용하여 LDAP 디렉토리에 일치하는 항목이 있는지 검색합니다. 항목이 검색되면 서버는 클라이언트가 전송한 인증서와 디렉토리에 있는 인증서를 비교하여 인증서를 검증합니다.

예제 #2 두 가지 매핑이 있는 certmap.conf 파일

다음 예제 파일에는기본값 및 미국 우편 서비스에 대한 두 가지 매핑이 있습니다.

certmap default defaultdefault:DNCompsdefault:FilterComps e, uid

certmap usps ou=United States Postal Service, o=usps, c=USusps:DNComps ou,o,cusps:FilterComps eusps:verifycert on

서버에 미국 우편 서비스가 아닌 다른 인증서가 수신되면 기본 매핑을 사용합니다. 이 경우 LDAP 트리의 상단에서 시작하여 클라이언트의 전자 메일 및 사용자 아이디와 일치하는 항목을 검색합니다. 미국 우편 서비스의 인증서인 경우 서버는 조직 단위를 포함하는 LDAP 분기에서 검색을 시작하며 일치하는 전자 메일 주소를 검색합니다. 또한 서버는 인증서를 확인합니다. 다른 인증서는 확인되지 않습니다.


주의 – 주의 –

인증서의 발행자 DN(즉, CA 정보)은 반드시 매핑의 첫 번째 행 목록에 있는 발행자 DN과 동일해야 합니다. 앞의 예제에서 o=United States Postal Service,c=US인 발행자 DN의 인증서는 oc 속성 사이에 공백이 없으므로 일치되지 않습니다.


예제 #3 LDAP 데이터베이스 검색

다음 예제에서는 CmapLdapAttr 등록 정보를 사용하여 LDAP 데이터베이스에서 certSubjectDN이라는 속성을 검색합니다. 이 속성의 값은 클라이언트 인증서에서 가져온 전체 대상 DN과 정확하게 일치합니다. 이 예제에서는 LDAP 디렉토리에 certSubjectDN 속성이 있는 항목이 포함된 것으로 가정합니다.

certmap myco ou=My Company Inc, o=myco, c=USmyco:CmapLdapAttr certSubjectDNmyco:DNComps o, c myco:FilterComps mail, uid myco:verifycert on

클라이언트 인증서 대상이 다음인 경우,

uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

서버는 우선 다음 정보를 포함한 항목을 검색합니다.

certSubjectDN=uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

일치하는 항목이 하나 이상인 경우에는 서버가 항목을 검증합니다. 일치 항목이 없는 경우 서버는 DNComps FilterComps를 사용하여 일치하는 항목을 검색합니다. 이 예제에서 서버는 o=LeavesOfGrass Inc, c=US의 모든 항목에서 uid=Walt Whitman을 검색합니다.