Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서

보안 개요

보안이란 데이터를 보호하는 것이며 데이터를 저장하거나 전송할 때 해당 데이터에 대한 인증 되지않은 액세스나 손상을 방지하는 방법입니다. Application Server에는 J2EE 표준을 기반으로 하는 확장 가능한 동적 보안 구조가 있습니다. 내장된 보안 기능에는 암호화 도구 인증 및 권한 부여 공개 키 인프라가 포함됩니다. Application Server는 시스템이나 사용자에 대한 잠재적인 위험 없이 응용 프로그램을 안전하게 실행할 수 있는 샌드 박스를 사용하는 Java 보안 모델에 구축되어 있습니다. 이 장은 다음 내용으로 구성되어 있습니다.

응용 프로그램 및 시스템 보안 이해

대개, 다음과 같은 두 종류의 응용 프로그램 보안이 있습니다.

응용 프로그램 보안 외에 Application Server 시스템의 모든 응용 프로그램에 영향을 미치는 시스템 보안도 있습니다.

프로그래밍 방식의 보안은 응용 프로그램 개발자가 제어하므로 이 문서에서 설명하지 않습니다. 선언적 보안의 경우 덜 제어되므로 이 문서에서 가끔 다룹니다. 이 문서는 기본적으로 시스템 관리자를 대상으로 하므로 시스템 보안에 대해 중점적으로 설명합니다.

보안 관리 도구

Application Server에서는 보안을 관리하기 위한 다음 도구를 제공합니다.

Java 2 Platform, Standard Edition(J2SE)에서는 보안을 관리하기 위한 다음 두 가지 도구를 제공합니다.

keytool, policytool 및 다른 Java 보안 도구 사용에 대한 자세한 내용은 http://java.sun.com/j2se/1.4.2/docs/tooldocs/tools.html#security에 있는 Java 2 SDK Tools and Utilities를 참조하십시오.

Enterprise Edition의 경우 NSS(Network Security Services)를 구현하는 다른 두 개의 도구를 보안 관리에 사용할 수 있습니다. NSS에 대한 자세한 내용을 보려면 http://www.mozilla.org/projects/security/pki/nss/로 이동하십시오. 보안 관리 도구는 다음과 같습니다.

certutil, pk12util 및 다른 NSS 보안 도구 사용에 대한 자세한 내용은 http://www.mozilla.org/projects/security/pki/nss/tools에 있는 NSS Security Tools를 참조하십시오.

비밀번호 보안 관리

Application Server의 이번 릴리스에서 특정 도메인에 대한 사양을 포함하는 domain.xml 파일에는 기본적으로 Sun Java System 메시지 대기열 브로커의 비밀번호가 일반 텍스트로 포함되어 있습니다. 이 비밀번호를 포함하는 domain.xml 파일의 요소는 jms-host 요소의 admin-password 속성입니다. 설치 시, 이 비밀번호를 변경할 수 없기 때문에 보안에 큰 영향을 미치지 않습니다.

그러나 관리 콘솔을 사용하여 사용자와 자원을 추가하고 이 사용자와 자원에 비밀번호를 지정합니다. 예를 들어, 데이터베이스에 액세스하기 위한 비밀번호처럼 이 비밀번호 중 일부는 domain.xml 파일에 일반 텍스트로 기록됩니다. 이 비밀번호를 domain.xml 파일에 일반 텍스트로 기록하면 보안 위험이 있을 수 있습니다. 다음 절차를 수행하여 admin-password 속성이나 데이터베이스 비밀번호를 포함하여 domain.xml의 비밀번호를 암호화할 수 있습니다.

Proceduredomain.xml의 비밀번호를 암호화하는 방법

  1. domain.xml 파일이 있는 디렉토리(기본적으로 domain-dir/config)에서 다음의 asadmin 명령을 실행합니다.


    asadmin create-password-alias --user admin alias-name
    

    예를 들면 다음과 같습니다.


    asadmin create-password-alias --user admin jms-password

    비밀번호 프롬프트(이 경우 admin)가 표시됩니다. 자세한 내용은 create-password-alias, list-password-aliases, delete-password-alias 명령에 대한 설명서 페이지를 참조하십시오.

  2. domain.xml의 비밀번호를 제거하고 바꿉니다. asadmin set 명령을 사용하여 이를 수행합니다. 다음은 이러한 용도로 set 명령을 사용하는 예입니다.


    asadmin set --user admin server.jms-service.jms-host.
    default_JMS_host.admin-password=${ALIAS=jms-password}
  3. 관련 도메인을 위해 Application Server를 다시 시작합니다.

암호화된 비밀번호를 사용하여 파일 보호

일부 파일에는 파일 시스템 권한을 사용하여 보호해야 하는 암호화된 비밀번호가 포함되어 있습니다. 이 파일에는 다음 내용이 포함되어 있습니다.

Procedure마스터 비밀번호를 변경하는 방법

마스터 비밀번호(MP)는 전체적으로 공유하는 비밀번호입니다. 마스터 비밀번호는 인증에 사용되지 않고 네트워크를 통해 전송되지 않습니다. 이 비밀번호는 전체적인 보안의 억제 지점입니다. 필요할 경우 수동으로 입력하도록 선택하거나 파일에 숨길 수 있습니다. 비밀번호는 시스템에서 가장 중요한 데이터입니다. 이 파일을 제거하여 MP 요구를 강제로 실행할 수 있습니다. 마스터 비밀번호를 변경한 경우 마스터 비밀번호 키 저장소에 다시 저장됩니다.

  1. 도메인의 Application Server를 중지합니다. asadmin change-master-password 명령을 사용하여 이전 비밀번호와 새 비밀번호에 대한 메시지를 표시한 다음 모든 하위 종속 항목을 다시 암호화합니다. 예를 들면 다음과 같습니다.


    asadmin change-master-password>
    Please enter the master password>
    Please enter the new master password>
    Please enter the the new master password again>
  2. Application Server를 다시 시작합니다.


    주의 – 주의 –

    이 때 실행 중인 서버 인스턴스를 시작해서는 안되며, 해당 노드의 SMP 에이전트가 변경될 때까지 실행 중인 서버 인스턴스를 다시 시작해서는 안 됩니다. SMP를 변경하기 전에 서버 인스턴스를 다시 시작한 경우 서버 인스턴스가 시작되지 않습니다.


  3. 노드 에이전트 및 관련된 서버를 한 번에 하나씩 중지합니다. asadmin change-master-password 명령을 다시 실행한 다음 노드 에이전트 및 관련된 서버를 다시 시작합니다.

  4. 모든 노드 에이전트를 주소 지정할 때까지 다음 노드 에이전트를 계속합니다. 이런 방법으로 변경 사항 롤백이 수행됩니다.

Procedure관리 비밀번호를 변경하는 방법

관리 비밀번호 암호화는 비밀번호 보안 관리에 설명되어 있습니다. 관리 비밀번호를 암호화할 것을 강력하게 권장합니다. 암호화하기 전에 관리 비밀번호를 변경하려면 asadmin set 명령을 사용합니다. 다음은 이러한 용도로 set 명령을 사용하는 예입니다.


asadmin set --user admin 
server.jms-service.jms-host.default_JMS_host.admin-password=new_pwd

다음 절차와 같이 관리 콘솔를 사용하여 관리 비밀번호를 변경할 수도 있습니다.

  1. 관리 콘솔 트리 구성 요소에서 구성 노드를 확장합니다.

  2. 구성할 인스턴스를 선택합니다.

    • 특정 인스턴스를 구성하려면 해당 인스턴스의 구성 노드를 확장합니다. 예를 들어, 기본 인스턴스 server에 대해 server-config 노드를 확장합니다.

    • 모든 인스턴스의 기본 설정을 구성하려면 default-config 노드를 확장합니다.

  3. 보안 노드를 확장합니다.

  4. 영역 노드를 확장합니다.

  5. admin-realm 노드를 선택합니다.

  6. 영역 편집 페이지에서 사용자 관리 버튼을 누릅니다.

  7. admin이라는 사용자를 선택합니다.

  8. 새로운 비밀번호를 입력하고 비밀번호를 확인합니다.

  9. 저장을 눌러 저장하거나 닫기를 눌러 저장하지 않고 닫습니다.

보안 책임 지정

다음 항목에 보안 책임이 지정됩니다.

응용 프로그램 개발자

응용 프로그램 개발자의 책임은 다음과 같습니다.

응용 프로그램 개발자는 deploytool 같은 도구를 사용하여 응용 프로그램 배포 설명자를 편집할 수 있습니다. 이 보안 작업에 대해서는 http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html에서 볼 수 있는 J2EE 1.4 TutorialSecurity 장에 자세히 설명되어 있습니다.

응용 프로그램 배포자

응용 프로그램 배포자의 책임은 다음과 같습니다.

응용 프로그램 배포자는 deploytool 같은 도구를 사용하여 응용 프로그램 배포 설명자를 편집할 수 있습니다. 이 보안 작업에 대해서는 http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html에서 볼 수 있는 J2EE 1.4 TutorialSecurity 장에 자세히 설명되어 있습니다.

시스템 관리자

시스템 관리자의 책임은 다음과 같습니다.

시스템 관리자는 관리 콘솔을 사용하여 서버 보안 설정을 관리하고 certutil을 사용하여 인증서를 관리합니다. 이 문서는 기본적으로 시스템 관리자를 대상으로 합니다.