JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1의 네트워크 보안     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

1.  가상화된 환경에서 링크 보호 사용

2.  네트워크 조정(작업)

3.  웹 서버 및 Secure Sockets Layer 프로토콜

SSL 커널 프록시로 웹 서버 통신 암호화

SSL 커널 프록시를 통한 웹 서버 보호(작업)

SSL 커널 프록시를 사용하도록 Apache 2.2 웹 서버를 구성하는 방법

SSL 커널 프록시를 사용하도록 Oracle iPlanet 웹 서버를 구성하는 방법

Apache 2.2 SSL로 폴백하도록 SSL 커널 프록시를 구성하는 방법

영역에서 SSL 커널 프록시를 사용하는 방법

4.  Oracle Solaris의 IP 필터(개요)

5.  IP 필터(작업)

6.  IP 보안 아키텍처(개요)

7.  IPsec 구성(작업)

8.  IP 보안 아키텍처(참조)

9.  Internet Key Exchange(개요)

10.  IKE 구성(작업)

11.  Internet Key Exchange(참조)

용어집

색인

SSL 커널 프록시를 통한 웹 서버 보호(작업)

다음 절차에서는 SSL 커널 프록시를 사용하도록 웹 서버를 구성하는 방법을 보여 줍니다.

SSL 커널 프록시를 사용하도록 Apache 2.2 웹 서버를 구성하는 방법

SSL 커널 프록시는 Apache 2.2 웹 서버에서 SSL 패킷 처리 속도를 높일 수 있습니다. 이 절차에서는 그림 3-1에서 보여 주는 간단한 시나리오를 구현합니다.

시작하기 전에

Apache 2.2 웹 서버를 구성했습니다. 이 웹 서버는 Oracle Solaris에 포함되어 있습니다.

root 역할이 있어야 합니다.

  1. 웹 서버를 중지합니다.
    # svcadm disable svc:/network/http:apache22
  2. 서버 개인 키와 서버 인증서를 한 파일에 저장합니다.

    ssl.conf 파일에서 SSLCertificateFile 매개변수만 지정한 경우 SSL 커널 프록시에 대해 지정한 파일을 직접 사용할 수 있습니다.

    SSLCertificateKeyFile 매개변수도 지정한 경우 인증서 파일과 개인 키 파일을 결합해야 합니다. 다음과 유사한 명령을 실행하여 파일을 결합합니다.

    # cat cert.pem key.pem > cert-and-key.pem
  3. ksslcfg 명령과 함께 사용할 매개변수를 결정합니다.

    ksslcfg(1M) 매뉴얼 페이지에서 전체 옵션 목록을 참조하십시오. 제공해야 하는 매개변수는 다음과 같습니다.

    • key-format – 인증서 및 키 형식을 정의하기 위해 -f 옵션과 함께 사용합니다. SSL 커널 프록시의 경우 지원되는 형식은 pkcs11, pempkcs12입니다.

    • key-and-certificate-filepempkcs12 key-format 옵션에 대한 서버 키 및 인증서를 저장하는 파일의 위치를 설정하기 위해 -i 옵션과 함께 사용합니다.

    • password-filepem 또는 pkcs12 key-format 옵션에 대한 개인 키를 암호화하는 데 사용되는 암호를 가져오기 위해 -p 옵션과 함께 사용합니다. pkcs11의 경우 암호를 사용하여 PKCS #11 토큰에 인증합니다. 0400 권한으로 암호 파일을 보호해야 합니다. 이 파일은 무인 재부트에 필요합니다.

    • token-label – PKCS #11 토큰을 지정하기 위해 -T 옵션과 함께 사용합니다.

    • certificate-label – PKCS #11 토큰에서 인증서 객체의 레이블을 선택하기 위해 -C 옵션과 함께 사용합니다.

    • proxy-port – SSL 프록시 포트를 설정하기 위해 -x 옵션과 함께 사용합니다. 표준 포트 80과 다른 포트를 지정해야 합니다. 웹 서버는 암호화 해제된 일반 텍스트 트래픽을 위한 SSL 프록시 포트에서 수신 대기합니다. 일반적으로 값은 8443입니다.

    • ssl-port – SSL 커널 프록시에 대한 수신 포트를 지정합니다. 일반적으로 값은 443입니다.

  4. SSL 커널 프록시에 대한 서비스 인스턴스를 만듭니다.

    다음 형식 중 하나를 사용하여 SSL 프록시 포트와 관련 매개변수를 지정합니다.

    • PEM 또는 PKCS #12를 키 형식으로 지정합니다.
      # ksslcfg create -f key-format -i key-and-certificate-file \
      -p password-file -x proxy-port ssl-port
    • PKCS #11을 키 형식으로 지정합니다.
      # ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ 
      -p password-file -x proxy-port ssl-port
  5. 서비스 인스턴스가 온라인 상태인지 확인합니다.
    # svcs svc:/network/ssl/proxy
    STATE          STIME    FMRI
    online         02:22:22 svc:/network/ssl/proxy:default

    다음 출력은 감사 서비스 인스턴스가 만들어지지 않았음을 나타냅니다.

    svcs: Pattern 'svc:/network/ssl/proxy' doesn't match any instances
    STATE          STIME    FMRI
  6. 웹 서버를 SSL 프록시 포트에서 수신 대기하도록 구성합니다.

    /etc/apache2/2.2/http.conf 파일을 편집하고 SSL 프록시 포트를 정의하도록 행을 추가합니다. 서버 IP 주소를 사용하는 경우 웹 서버는 해당 인터페이스에 대해서만 수신합니다. 행은 다음과 유사합니다.

    Listen proxy-port
  7. 웹 서버에 대한 SMF 종속성을 설정합니다.

    웹 서버 서비스는 SSL 커널 프록시 인스턴스가 시작된 후에만 시작할 수 있습니다. 다음 명령은 이러한 종속성을 설정합니다.

    # svccfg -s svc:/network/http:apache22
    svc:/network/http:apache22> addpg kssl dependency
    ...apache22> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443
    ...apache22> setprop kssl/grouping = astring: require_all
    ...apache22> setprop kssl/restart_on = astring: refresh
    ...apache22> setprop kssl/type = astring: service
    ...apache22> end
  8. 웹 서버 서비스를 사용으로 설정합니다.
    # svcadm enable svc:/network/http:apache22

SSL 커널 프록시를 사용하도록 Oracle iPlanet 웹 서버를 구성하는 방법

SSL 커널 프록시는 Oracle iPlanet 웹 서버에서 SSL 패킷 처리 속도를 높일 수 있습니다. 이 절차에서는 그림 3-1에서 보여 주는 간단한 시나리오를 구현합니다.

시작하기 전에

Oracle iPlanet 웹 서버를 설치 및 구성했습니다. 서버는 Oracle iPlanet Web Server에서 다운로드할 수 있습니다. 지침은 Oracle iPLANET WEB SERVER 7.0.15를 참조하십시오.

Network Security 권한 프로파일에 지정된 관리자여야 합니다. 자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. 웹 서버를 중지합니다.

    관리자 웹 인터페이스를 사용하여 서버를 중지합니다. 지침은 Oracle iPLANET WEB SERVER 7.0.15를 참조하십시오.

  2. ksslcfg 명령과 함께 사용할 매개변수를 결정합니다.

    ksslcfg(1M) 매뉴얼 페이지에서 전체 옵션 목록을 참조하십시오. 제공해야 하는 매개변수 목록은 단계 3 in SSL 커널 프록시를 사용하도록 Apache 2.2 웹 서버를 구성하는 방법를 참조하십시오.

  3. SSL 커널 프록시에 대한 서비스 인스턴스를 만듭니다.

    다음 형식 중 하나를 사용하여 SSL 프록시 포트와 관련 매개변수를 지정합니다.

    • PEM 또는 PKCS #12를 키 형식으로 지정합니다.
      # ksslcfg create -f key-format -i key-and-certificate-file \
      -p password-file -x proxy-port ssl-port
    • PKCS #11을 키 형식으로 지정합니다.
      # ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ 
      -p password-file -x proxy-port ssl-port
  4. 인스턴스가 온라인 상태인지 확인합니다.
    # svcs svc:/network/ssl/proxy
    STATE          STIME    FMRI
    online         02:22:22 svc:/network/ssl/proxy:default
  5. 웹 서버를 SSL 프록시 포트에서 수신 대기하도록 구성합니다.

    지침은 Oracle iPLANET WEB SERVER 7.0.15를 참조하십시오.

  6. 웹 서버에 대한 SMF 종속성을 설정합니다.

    웹 서버 서비스는 SSL 커널 프록시 인스턴스가 시작된 후에만 시작할 수 있습니다. 다음 명령은 웹 서버 서비스의 FMRI가 svc:/network/http:webserver7이라고 가정하여 이러한 종속성을 설정합니다.

    # svccfg -s svc:/network/http:webserver7
    svc:/network/http:webserver7> addpg kssl dependency
    ...webserver7> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443
    ...webserver7> setprop kssl/grouping = astring: require_all
    ...webserver7> setprop kssl/restart_on = astring: refresh
    ...webserver7> setprop kssl/type = astring: service
    ...webserver7> end
  7. 웹 서버 서비스를 사용으로 설정합니다.
    # svcadm enable svc:/network/http:webserver7

Apache 2.2 SSL로 폴백하도록 SSL 커널 프록시를 구성하는 방법

이 절차에서는 Apache 2.2 웹 서버를 처음부터 구성하고 SSL 커널 프록시를 기본 SSL 세션 처리 방식으로 구성합니다. 클라이언트가 제공하는 SSL 암호 세트에 SSL 커널 프록시에서 제공되는 암호가 없으면 Apache 2.2 웹 서버가 폴백 방식으로 사용됩니다. 이 절차에서는 그림 3-2에서 보여 주는 복잡한 시나리오를 구현합니다.

시작하기 전에

root 역할이 있어야 합니다. 자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. Apache 2.2 웹 서버에서 서버의 SSL 커널 프록시에서 사용되는 키 인증서를 만듭니다.
    1. CSR(인증서 서명 요청)을 생성합니다.

      다음 명령은 SSL 커널 프록시에 대한 CSR 및 관련 개인 키를 생성합니다.

      # cd /root
      # openssl req \
      > -x509 -new \
      > -subj "/C=CZ/ST=Prague region/L=Prague/CN=`hostname`" \
      > -newkey rsa:2048 -keyout webkey.pem \
      > -out webcert.pem
      Generating a 2048 bit RSA private key
      .+++
      ........+++
      writing new private key to 'webkey.pem'
      Enter PEM pass phrase: JohnnyCashIsCool
      Verifying - Enter PEM pass phrase:  JohnnyCashIsCool
      #
      # chmod 440 /root/webcert.pem ; chown root:webservd /root/webcert.pem

      자세한 내용은 openssl(5) 매뉴얼 페이지를 참조하십시오.

    2. CSR을 CA(인증 기관)에 보냅니다.
    3. webcert.pem 파일을 CA에서 받은 서명된 인증서로 바꿉니다.
  2. 문장암호 및 공개/개인 키 인증서로 SSL 커널 프록시를 구성합니다.
    1. 문장암호를 만들고 저장하며 보호합니다.
      # echo "RefrigeratorsAreCool" > /root/kssl.pass
      # chmod 440 /root/kssl.pass; chown root:webservd /root/kssl.pass

      주 - 문장암호에는 공백을 포함할 수 없습니다.


    2. 개인 키 및 공개 키 인증서를 한 파일로 결합합니다.
      # cat /root/webcert.pem /root/webkey.pem > /root/webcombo.pem
    3. 공개/개인 키 인증서 및 문장암호로 SSL 커널 프록시를 구성합니다.
      # ksslcfg create -f pem -i /root/webcombo.pem -x 8443 -p /root/kssl.pass 443
  3. 웹 서버가 8443 포트에서 일반 텍스트를 수신 대기하도록 구성합니다.

    /etc/apache2/2.2/httpd.conf 파일에서 Listen 행을 편집합니다.

    # pfedit /etc/apache2/2.2/httpd.conf
    ...
    ## Listen 80
    Listen 8443
  4. SSL 모듈 템플리트인 ssl.conf를 Apache 구성 디렉토리에 추가합니다.
    # cp /etc/apache2/2.2/samples-conf.d/ssl.conf /etc/apache2/2.2/ssl.conf

    이 모듈은 암호화된 연결을 위해 443 수신 대기 포트를 추가합니다.

  5. 웹 서버가 /root/kssl.pass 파일의 문장암호를 해독할 수 있도록 합니다.
    1. kssl.pass 파일을 읽는 셸 스크립트를 만듭니다.
      # pfedit /root/put-passphrase.sh
      #!/usr/bin/ksh -p
      ## Reads SSL kernel proxy passphrase
      /usr/bin/cat /root/kssl.pass
    2. 스크립트를 실행 가능하게 설정하고 파일을 보호합니다.
      # chmod 500 /root/put-passphrase.sh
      # chown webservd:webservd /root/put-passphrase.sh
    3. ssl.conf 파일의 SSLPassPhraseDialog 매개변수를 수정하여 이 셸 스크립트를 호출합니다.
      # pfedit /etc/apache2/2.2/ssl.conf
      ...
      ## SSLPassPhraseDialog  builtin
      SSLPassPhraseDialog exec:/root/put-passphrase.sh
  6. 웹 서버의 공개 및 개인 키 인증서를 올바른 위치에 저장합니다.

    ssl.conf 파일의 SSLCertificateFile SSLCertificateKeyFile 매개변수 값에 올바른 위치 및 이름이 포함됩니다. 올바른 위치로 인증서를 복사하거나 연결할 수 있습니다.

    # ln -s  /root/webcert.pem /etc/apache2/2.2/server.crtSSLCertificateFile default location
    # ln -s /root/webkey.pem /etc/apache2/2.2/server.keySSLCertificateKeyFile default location
  7. Apache 서비스를 사용으로 설정합니다.
    # svcadm enable apache22
  8. (옵션) 두 개의 포트가 작동 중인지 확인합니다.

    openssl s_clientkstat 명령을 사용하여 패킷을 확인합니다.

    1. SSL 커널 프록시에 사용할 수 있는 암호를 사용합니다.
      # openssl s_client -cipher RC4-SHA -connect web-server:443

      kstat 카운터 kssl_full_handshakes1이 증가하면 SSL 커널 프록시에서 SSL 세션이 처리되었는지 확인합니다.

      # kstat -m kssl -s kssl_full_handshakes
    2. SSL 커널 프록시에 사용할 수 없는 암호를 사용합니다.
      # openssl s_client -cipher CAMELLIA256-SHA -connect web-server:443

      kstat 카운터 kssl_fallback_connections1이 증가하면 패킷이 도달했지만 SSL 세션이 Apache 웹 서버에서 처리되었는지 확인합니다.

      # kstat -m kssl -s kssl_fallback_connections

예 3-1 SSL 커널 프록시를 사용하도록 Apache 2.2 웹 서버 구성

다음 명령은 pem 키 형식을 사용하는 SSL 커널 프록시 서비스 인스턴스를 만듭니다.

# ksslcfg create -f pem -i cert-and-key.pem -p kssl.pass -x 8443 443

영역에서 SSL 커널 프록시를 사용하는 방법

SSL 커널 프록시는 다음 제한 사항과 함께 영역에서 작동합니다.

시작하기 전에

웹 서버 서비스는 비전역 영역에서 구성되고 사용으로 설정됩니다.

Network Security 및 Zone Management 권한 프로파일에 지정된 관리자여야 합니다. 자세한 내용은 Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  1. 비전역 영역에서 먼저 웹 서버를 중지합니다.

    예를 들어 apache-zone 영역에서 Apache 웹 서버를 중지하려면 다음 명령을 실행합니다.

    apache-zone # svcadm disable svc:/network/http:apache22
  2. 전역 영역에서 영역의 SSL 커널 프록시에 대한 서비스 인스턴스를 만듭니다.

    apache-zone에 대한 서비스 인스턴스를 만들려면 다음과 유사한 명령을 사용합니다.

    # ksslcfg create -f pem -i /zone/apache-zone/root/keypair.pem \
    -p /zone/apache-zone/root/skppass -x 8443 apache-zone 443
  3. 비전역 영역에서 웹 서비스 인스턴스를 사용으로 설정합니다.

    예를 들어 apache-zone에서 웹 서비스를 사용으로 설정합니다.

    apache-zone # svcadm enable svc:/network/http:apache22