IPsec と IKE の管理

CA からの署名付き証明書による IKE の設定方法

  1. システムコンソールから、スーパーユーザーになるか、同等の役割を引き受けます。


    注 –

    リモートログインすると、セキュリティ上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システムのセキュリティがリモートログインセッションレベルに低下します。


  2. ikecert certlocal -kc コマンドを実行して証明書要求を作成します。

    コマンド引数の詳細については、自己署名付き公開鍵証明書による IKE の設定方法手順 2 を参照してください。


    # ikecert certlocal -kc -m keysize -t keytype \
    -D dname -A altname
    
    1. たとえば、次のコマンドでは、partym システム上に証明書要求が作成されます。


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany\, Inc., OU=US-Partym, CN=Partym" \
      > -A "DN=C=US, O=PartyCompany\, Inc., OU=US-Partym"
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/2.
      Enabling external key providers - done.
      Certificate Request: 
        Proceeding with the signing operation.
        Certificate request generated successfully (…/publickeys/0)
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
      …
      lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
      -----END CERTIFICATE REQUEST-----
    2. 次のコマンドでは、enigma システム上に証明書要求が作成されます。


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax, CN=Enigmax" \
      > -A "DN=C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax"
      Creating software private keys.
      …
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
      …
      8qlqdjaStLGfhDOO
      -----END CERTIFICATE REQUEST-----
  3. この証明書要求を PKI 機関に送信します。

    証明書要求の送信方法については PKI に問い合わせてください。ほとんどの機関は、Web サイトに送信フォームを掲載しています。フォームの記入に当たっては、その送信が正当なものであることを証明する必要があります。通常は、証明書要求をフォームに貼り付けます。要求を受け取った機関は、それをチェックしてから、次の 2 つの証明書オブジェクトと、証明書無効リストを発行します。

    • 公開鍵証明書 – この証明書は機関に送信した要求に基づいて作成される。送信した証明書要求も、公開鍵証明書の一部として含まれる。この証明書によって一意に識別される

    • 認証局 – 機関の署名。CA によって公開鍵証明書が正規のものであることが確認される

    • 証明書無効リスト – 機関が無効にした証明書の最新リスト。CRL へのアクセスが公開鍵証明書に組み込まれている場合には、CRL が別個の証明書オブジェクトとして送信されることはない

      CRL の URI が公開鍵証明書に組み込まれている場合には、IKE は CRL を自動的に取り出すことができる。同様に、DN (LDAP サーバー上のディレクトリ名) エントリが公開鍵証明書に組み込まれている場合には、IKE は、指定された LDAP サーバーから CRL を取得し、キャッシュすることができる

      公開鍵証明書に URI や DN エントリを組み込んだ例については、証明書無効リストを処理する方法を参照

  4. ikecert certdb -a コマンドを使って、各証明書をシステムに追加します。

    -a オプションを指定すると、貼り付けたオブジェクトが、システム内の適切な証明書データベースに追加されます。詳細は、IKE と公開鍵証明書を参照してください。

    1. システムコンソールから、スーパーユーザーになるか、同等の役割を引き受けます。

    2. PKI 機関から受け取った公開鍵証明書を追加します。


      # ikecert certdb -a
      Return キーを押す
      証明書を貼り付ける
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Return キーを押す
      <Control>-D
      
    3. PKI 機関の CA を追加します。


      # ikecert certdb -a
      Return キーを押す
      CA を貼り付ける
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Return キーを押す
      <Control>-D
      
    4. PKI 機関が証明書無効リスト (CRL) を送信してきている場合は、これを certrldb データベースに追加します。


      # ikecert certrldb -a
      Return キーを押す
      CRL を貼り付ける
      -----BEGIN CRL-----
      …
      -----END CRL----
      Return キーを押す
      <Control>-D
      
  5. /etc/inet/ike/config ファイルを編集して、PKI 機関が認識されるようにします。

    PKI 機関が提供する名前を使用します。

    1. たとえば、partym システムの ike/config ファイルは次のようになります。


      # Trusted root cert
      # This certificate is from Example PKI
      # This is the X.509 distinguished name for the CA that it issues.
      
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
       { auth_method rsa_sig oakley_group 1 auth_alg sha1 encr_alg des }
      p2_pfs 2
      
      {
       label "US-partym to JA-enigmax - Example PKI"
       local_id_type dn
       local_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_encrypt oakley_group 2 auth_alg md5 encr_alg 3des}
      }

      注 –

      auth_method パラメータのすべての引数は同じ行になければなりません。


    2. enigma システムで、ローカルパラメータに enigma 値、リモートパラメータに partym 値を使用します。

      キーワード label の値が一意であることを確認します。この値は、リモートシステムの label 値とは異なる値でなくてはなりません。


      …
      {
       label "JA-enigmax to US-partym - Example PKI"
       local_id_type dn
       local_id   "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …
  6. PKI 機関から CRL を受け取っていない場合は、キーワード ignore_crlsike/config ファイルに追加します。


    # Trusted root cert
    …
    cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
    ignore_crls
    …

    ignore_crls キーワードにより、IKE は CRL を検索しなくなります。

  7. PKI 機関から CRL の一元的なディストリビューションポイントを知らされている場合は、ike/config ファイルを変更してこの場所を指定することができます。

    例については、証明書無効リストを処理する方法 を参照してください。


    注 –

    次の手順は、/etc/inet/ike/config ファイル内の auth_methodrsa_encrypt が設定されている場合にのみ必要です。


  8. auth_method パラメータが rsa_encrypt に設定されているので、ピアの証明書を publickeys データベースに追加します。

    1. その証明書を、リモートシステムの管理者に送信します。

      証明書は、電子メールに貼り付けることもできます。

      1. たとえば、partym の管理者は次のような電子メールを送信します。


        To: admin@ja.enigmaexample.com
        From: admin@us.partyexample.com
        Message: -----BEGIN X509 CERTIFICATE-----
        MII…
        ----END X509 CERTIFICATE-----
      2. enigma の管理者は次のような電子メールを送信します。


        To: admin@us.partyexample.com
        From: admin@ja.enigmaexample.com
        Message: -----BEGIN X509 CERTIFICATE-----
        MII
        …
        -----END X509 CERTIFICATE-----
    2. システムごとに、電子メールで送信された証明書をローカルの publickeys データベースに追加します。


      # ikecert certdb -a
      Return キーを押す
      -----BEGIN X509 CERTIFICATE-----
      MII…
      -----END X509 CERTIFICATE-----
      Return キーを押す
      <Control>-D
      

    RSA 暗号化認証方式を使用すると、IKE の ID が盗聴者から保護されます。rsa_encrypt 方式では ID が隠されるため、IKE はピアを知りません。そのため、ピアの証明書を取り出すことはできません。したがって、その方式では、IKE ピアが互いの公開鍵を認識することが必要になります。よって、/etc/inet/ike/config ファイルの auth_method rsa_encrypt を指定する場合には、ピアの証明書を publickeys データベースに追加する必要があります。この結果、publickeys データベースには、通信するシステムペアごとに 3 つの証明書が存在することになります。

    • ユーザーの公開鍵証明書

    • CA 証明書

    • ピアの公開鍵証明書