JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 でのネットワークのセキュリティー保護     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  仮想化環境でのリンク保護の使用

2.  ネットワークのチューニング (タスク)

3.  Web サーバーと Secure Sockets Layer プロトコル

SSL カーネルプロキシ は Web サーバー通信を暗号化する

SSL カーネルプロキシ を使用して Web サーバーを保護する (タスク)

SSL カーネルプロキシ を使用するように Apache 2.2 Web サーバーを構成する方法

SSL カーネルプロキシ を使用するように Oracle iPlanet Web Server を構成する方法

Apache 2.2 SSL にフォールバックするように SSL カーネルプロキシ を構成する方法

ゾーンで SSL カーネルプロキシ を使用する方法

4.  Oracle Solaris の IP フィルタ (概要)

5.  IP フィルタ (タスク)

6.  IP セキュリティーアーキテクチャー (概要)

7.  IPsec の構成 (タスク)

8.  IP セキュリティーアーキテクチャー (リファレンス)

9.  インターネット鍵交換 (概要)

10.  IKE の構成 (タスク)

11.  インターネット鍵交換 (リファレンス)

用語集

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

SSL カーネルプロキシ を使用して Web サーバーを保護する (タスク)

次の手順に、SSL カーネルプロキシ を使用するように Web サーバーを構成する方法を示します。

SSL カーネルプロキシ を使用するように Apache 2.2 Web サーバーを構成する方法

SSL カーネルプロキシ は Apache 2.2 Web サーバーでの SSL パケットの処理速度を向上できます。この手順では、図 3-1 に示す簡単なシナリオを実装します。

始める前に

Apache 2.2 Web サーバーを構成しています。この Web サーバーは Oracle Solaris に含まれています。

root 役割になる必要があります。

  1. Web サーバーを停止します。
    # svcadm disable svc:/network/http:apache22
  2. サーバー非公開鍵とサーバー証明書を 1 つのファイルに置きます。

    ssl.conf ファイルに SSLCertificateFile パラメータのみが指定されている場合、指定されたファイルは直接 SSL カーネルプロキシ で使用できます。

    SSLCertificateKeyFile パラメータも指定されている場合は、証明書ファイルと非公開鍵ファイルを組み合わせる必要があります。ファイルを組み合わせるには、次のようなコマンドを実行します。

    # cat cert.pem key.pem > cert-and-key.pem
  3. ksslcfg コマンドで使用するパラメータを決定します。

    すべてのオプションの一覧については、 ksslcfg(1M) のマニュアルページを参照してください。指定する必要があるパラメータは次のとおりです。

    • key-format-f オプションと一緒に使用して、証明書と鍵の形式を定義します。SSL カーネルプロキシ の場合、サポートされる形式は pkcs11pem、および pkcs12 です。

    • key-and-certificate-file-i オプションと一緒に使用して、サーバー鍵と pem および pkcs12 key-format オプションの証明書を格納するファイルの場所を設定します。

    • password-file-p オプションと一緒に使用して、pem または pkcs12 key-format オプションの非公開鍵を暗号化するために使用するパスワードを取得します。pkcs11 の場合、パスワードは PKCS #11 トークンに対して認証するために使用します。パスワードファイルは 0400 アクセス権で保護する必要があります。このファイルは無人リブート用に必要です。

    • token-label-T オプションと一緒に使用して、PKCS #11 トークンを指定します。

    • certificate-label-C オプションと一緒に使用して、PKCS #11 トークンの証明書オブジェクトのラベルを選択します。

    • proxy-port-x オプションと一緒に使用して、SSL プロキシポートを設定します。標準ポート 80 とは異なるポートを指定する必要があります。Web サーバーは暗号化されていないテキストトラフィックを 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 プロキシポート上で待機するように Web サーバーを構成します。

    /etc/apache2/2.2/http.conf ファイルを編集し、SSL プロキシポートを定義する行を追加します。サーバーの IP アドレスを使用した場合、Web サーバーはそのインタフェース上でのみ待機します。行は次のようになります。

    Listen proxy-port
  7. Web サーバーの SMF 依存関係を設定します。

    Web サーバーサービスは、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. Web サーバーサービスを有効にします。
    # svcadm enable svc:/network/http:apache22

SSL カーネルプロキシ を使用するように Oracle iPlanet Web Server を構成する方法

SSL カーネルプロキシ は Oracle iPlanet Web Server での SSL パケットの処理速度を向上できます。この手順では、図 3-1 に示す簡単なシナリオを実装します。

始める前に

Oracle iPlanet Web Server をインストールし、構成しています。サーバーは Oracle iPlanet Web Server からダウンロードできます。手順については、Oracle iPLANET WEB SERVER 7.0.15 を参照してください。

Network Security 権利プロファイルが割り当てられている管理者になる必要があります。詳細については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  1. Web サーバーを停止します。

    管理者の Web インタフェースを使ってサーバーを停止します。手順については、Oracle iPLANET WEB SERVER 7.0.15 を参照してください。

  2. ksslcfg コマンドで使用するパラメータを決定します。

    すべてのオプションの一覧については、 ksslcfg(1M) のマニュアルページを参照してください。指定する必要があるパラメータの一覧については、「SSL カーネルプロキシ を使用するように Apache 2.2 Web サーバーを構成する方法」手順 3 を参照してください。

  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 プロキシポート上で待機するように Web サーバーを構成します。

    手順については、Oracle iPLANET WEB SERVER 7.0.15 を参照してください。

  6. Web サーバーの SMF 依存関係を設定します。

    Web サーバーサービスは、SSL カーネルプロキシ インスタンスの起動後にのみ起動できます。Web サーバーサービスの 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. Web サーバーサービスを有効にします。
    # svcadm enable svc:/network/http:webserver7

Apache 2.2 SSL にフォールバックするように SSL カーネルプロキシ を構成する方法

この手順では、最初から Apache 2.2 Web サーバーを構成し、プライマリ SSL セッション処理メカニズムとして、SSL カーネルプロキシ を構成します。クライアントが提供する一連の SSL 暗号化に SSL カーネルプロキシ が提供する暗号化が含まれない場合、Apache 2.2 Web サーバーはフォールバックメカニズムとして機能します。この手順は、図 3-2 に示す複雑なシナリオを実装します。

始める前に

root 役割になる必要があります。詳細については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  1. Apache 2.2 Web サーバーで、サーバーの SSL カーネルプロキシ によって使用される鍵証明書を作成します。
    1. Certificate Signing Request (CSR) を生成します。

      次のコマンドは CSR とそれに関連付けられた SSL カーネルプロキシ の非公開鍵を作成します。

      # 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. 非公開鍵証明書と公開鍵証明書を 1つのファイルに組み合わせます。
      # 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 ポート上でテキストを待機するように Web サーバーを構成します。

    /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. Web サーバーが /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. Web サーバーの公開鍵証明書と非公開鍵証明書を正しい場所に置きます。

    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. (省略可能) 2 つのポートが機能しているかどうかを確認します。

    openssl s_client コマンドと kstat コマンドを使用して、パケットを表示します。

    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 Web サーバーによって処理されたことを証明します。

      # kstat -m kssl -s kssl_fallback_connections

例 3-1 SSL カーネルプロキシを使用するように Apache 2.2 Web サーバーを構成する

次のコマンドは、pem 鍵形式を使う SSL カーネルプロキシ のサービスインスタンスを作成します。

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

ゾーンで SSL カーネルプロキシ を使用する方法

SSL カーネルプロキシ は次の制限付きで、ゾーン内で動作します。

始める前に

Web サーバーサービスは非大域ゾーンで構成され、有効にされます。

Network Security および Zone Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細については、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  1. 非大域ゾーン内で Web サーバーを停止します。

    たとえば、apache-zone ゾーン内で Apache Web サーバーを停止するには、次のコマンドを実行します。

    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. 非大域ゾーンで、Web サービスインスタンスを有効にします。

    たとえば、apache-zone で Web サービスを有効にします。

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