IPsec と IKE の管理

認証局による署名付き公開鍵による IKE の設定方法

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


    注 –

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


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

    このコマンドに対する引数は、 ikecert certlocal -ks コマンドで使用する引数と同じでなければなりません。


    # ikecert certlocal -kc -m keysize -t keytype \
    -D dname -A altname[ ... ] [-f output]
    

    -kc

    公開鍵と非公開鍵のペアを作成する。さらに、-kc は、生成された公開鍵に基づいて証明書要求を作成する

    keysize

    キーのサイズ。 keysize は、512、1024、2048、3072、4096 のいずれか

    keytype

    使用するアルゴリズムのタイプ。keytype は、rsa-sha1、rsa-md5、dsa-sha1 のいずれか

    dname

    証明書主体の X.509 識別名。dname の一般的な形式は次のとおり : C = country (国)、O = organization (組織)、OU = organizational unit (組織単位)、CN = common name (共通名)。有効なタグは、COOUCN

    altname

    証明書の代替名。altname の形式は tag=value でなければならない。有効なタグは、IPDNSEMAILURIDNRID

    output

    エンコーディング出力の形式。指定できる値は pem (PEM Base64) と ber (ASN.1 BER)。-f を指定しないと、 pem が使用される

    たとえば、次のコマンドを実行して証明書要求を作成します。


    # ikecert certlocal -kc -m 1024 -t rsa-md5 \
    > -D "C=US, O=ExampleCompany\, Inc., OU=US-Example, CN=Example" \
    > -A "DN=C=US, O=ExampleCompany\, Inc., OU=US-Example"
    Generating, please wait...
    Certificate request generated.
    -----BEGIN CERTIFICATE REQUEST-----
    MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
    …
    lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
    -----END CERTIFICATE REQUEST-----
  3. この証明書要求を、PKI を処理する機関に送信します。

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

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

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

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

      CRL の URI が公開鍵証明書に組み込まれている場合には、IKE は CRL を自動的に取り出すことができる。同様に、DN エントリが公開鍵証明書に組み込まれている場合には、IKE は、指定された LDAP サーバーから CRL を自動的に取り出すことができる

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

  4. 各証明書を 3 つの ikecert コマンドのどれかに対する引数として指定します。

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

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

    2. 次のように ikecert certdb -a コマンドと <Return> を入力します。


      # ikecert certdb -a <Return キーを押す>
      
    3. 機関から受け取った公開鍵証明書を貼り付け、<Return> を入力します。


      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----<Return キーを押す>
      
    4. <Control-D> を入力して入力を終了します。


      <Control-D>
      
    5. 次のように ikecert certdb -a コマンドと <Return> を入力します。


      # ikecert certdb -a <Return キーを押す>
      
    6. 機関の CA を貼り付けます。<Return> を入力します。次に <Control-D> を入力して入力を終了します。


      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE-----<Return キーを押す>
      <Control-D>
      
    7. 機関から CRL オブジェクトを受け取っている場合は、ikecert certrldb –a コマンドと <Return> を入力します。


      # ikecert certrldb -a <Return キーを押す>
      
    8. 機関の CRL を貼り付けます。<Return> を入力します。次に <Control-D> を入力して入力を終了します。

  5. /etc/inet/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-Example to UN-Example - Example PKI"
     local_id_type dn
     local_id  "C=US, O=ExampleCompany, OU=US-Example, CN=Example"
     remote_id "C=US, O=ExampleCompany, OU=UN-Example, CN=Example"
    
     local_addr 192.168.116.16
     remote_addr 192.168.13.213
    
     p1_xform
      { auth_method rsa_encrypt oakley_group 2  auth_alg md5  encr_alg 3des }
    }

    注 –

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


  6. PKI 機関から CRL を受け取っていない場合は、キーワード ignore_crlsike/config ファイルに追加します。

    ignore_crls を指定すると、IKE は CRL を検索しません。たとえば、次のように指定します。


    # Trusted root cert
    …
    cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
    ignore_crls
    
    …
  7. PKI 機関から CRL の一元的なディストリビューションポイントを知らされている場合は、ike/config ファイルを変更してこの場所を指定することができます。

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

  8. 通信するシステムで手順 1 から手順 7 を実行します。

    この例に従うなら、前に行ったように、“…OU=UN-Example…” システムで ikecert コマンドを実行します。“…OU=UN-Example…” システムの /etc/inet/ike/config ファイルでは、そのローカル情報をローカルパラメータとして使用します。さらに、システムでは、システムの情報をリモートパラメータとして使用します。

    たとえば、次のように指定します。


    # Trusted root cert
    # This certificate is from Example PKI
    
    cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
    ignore_crls
    
    ## 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 "UN-Example to US-Example - Example PKI"
     local_id_type dn
     local_id "C=US, O=ExampleCompany, OU=UN-Example, CN=Example"
     remote_id "C=US, O=ExampleCompany, OU=US-Example, CN=Example"
    
     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 }
    }
  9. auth_methodrsa_encrypt であるため、ピアの証明書を公開鍵データベースに追加します。


    注 –

    以下のサブステップは、/etc/inet/ike/config ファイルの p1_xformrsa_encrypt 認証方式を使用する場合にのみ必要です。


    1. その証明書を、通信するシステムの管理者に送信します。

      その証明書は、次のようにして電子メールにカット&ペーストできます。


      To: root@un.example.com
      From: root@us.example.com
      Message: -----BEGIN CERTIFICATE REQUEST-----
      MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
      …
      lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
      -----END CERTIFICATE REQUEST-----
    2. システムごとに、ピアの証明書をローカルの公開鍵データベースに追加します。

      たとえば、un.example.com システムで次のように入力してから、電子メールの内容を貼り付けます。


      # ikecert certdb -a <Type the Return key>
      -----BEGIN CERTIFICATE REQUEST-----
      MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
      …
      lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
      -----END CERTIFICATE REQUEST-----

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

    IKE デーモンは、次の処理が完了すると、公開鍵と CA を使って自身を認証します。

    1. 各システムの /etc/hosts ファイルに、保護されたインタフェースが追加されている

    2. 各システムの /etc/inet/ipsecinit.conf ファイルに、保護されたインタフェースが追加されている

    3. 両方のシステムがリブートされている