IPsec と IKE の管理

事前共有鍵による IKE の設定方法

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


    注 –

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


  2. システムごとに、/etc/inet/ike/config.sample ファイルを /etc/inet/ike/config にコピーします。

  3. システムごとに、規則とグローバルパラメータを ike/config ファイルに入力します。

    これらの規則やグローバルパラメータは、システムの ipsecinit.conf ファイルに設定されている IPsec ポリシーが正しく動作するものでなければなりません。次の ike/config の例は、2 つのシステム間のトラフィックを保護する方法ipsecinit.conf の例に対応しています。

    1. たとえば、enigma システムの /etc/inet/ike/config ファイルを次のように変更します。


      ### ike/config file on enigma, 192.168.116.16
      
      ## Global parameters
      #
      ## Phase 1 transform defaults
      p1_lifetime_secs 14400
      p1_nonce_len 40
      #
      ## Defaults that individual rules can override.
      p1_xform
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 2
      #
      ## The rule to communicate with partym
      
      { label "Enigma-Partym"
        local_addr 192.168.116.16
        remote_addr 192.168.13.213
        p1_xform
         { auth_method preshared oakley_group 5 auth_alg md5 encr_alg 3des }
        p2_pfs 5
      	}

      注 –

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


    2. partym システムのファイルを次のように変更します。


      ### ike/config file on partym, 192.168.13.213
      ## Global Parameters
      #
      p1_lifetime_secs 14400
      p1_nonce_len 40
      #
      p1_xform
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 2
      
      ## The rule to communicate with enigma
      
      { label "Partym-Enigma"
        local_addr 192.168.13.213
        remote_addr 192.168.116.16
        p1_xform
         { auth_method preshared oakley_group 5 auth_alg md5 encr_alg 3des }
        p2_pfs 5
      }

    注 –

    システム名は一例として使用しているだけです。実際にシステム間のトラフィックを保護する場合には、各自のシステムの名前とアドレスを使用してください。


  4. システムごとに、次のように指定してファイルが有効であるかどうかをチェックします。


    # /usr/lib/inet/in.iked -c -f /etc/inet/ike/config
    
  5. ランダム鍵を生成します。

    Solaris システムでは、od コマンドを使用できます。たとえば、次のコマンドを入力すると、16 進数の数値が 2 行に渡って表示されます。


    # od -X -A n /dev/random | head -2
             f47cb0f4 32e14480 951095f8 2b735ba8
             0a9467d0 8f92c880 68b6a40e 0efe067d

    コマンドの説明については、乱数を生成する方法od(1) のマニュアルページを参照してください。

  6. システムごとに /etc/inet/secret/ike.preshared ファイルを作成します。各ファイルに事前共有鍵を書き込みます。

    この例の認証アルゴリズムは MD5 です (手順 3 を参照)。事前共有鍵として推奨する最小のサイズは、ハッシュのサイズ (つまり、認証アルゴリズムの出力のサイズ) で決まります。MD5 アルゴリズムの出力は 128 ビットすなわち 32 文字です。鍵の長さは長いほうがよいので、この例の鍵の長さは 56 文字にします。

    1. たとえば、enigma システムの ike.preshared は次のようになります。


      # ike.preshared on enigma, 192.168.116.16
      #…
      { localidtype IP
      	localid 192.168.116.16
      	remoteidtype IP
      	remoteid 192.168.13.213
      	# enigma and partym's shared key in hex (192 bits)
      	key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e
      	}
    2. partym システムの ike.preshared は次のようになります。


      # ike.preshared on partym, 192.168.13.213
      #…
      { localidtype IP
      	localid 192.168.13.213
      	remoteidtype IP
      	remoteid 192.168.116.16
      	# partym and enigma's shared key in hex (192 bits)
      	key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e
      	}

    注 –

    事前共有鍵は同一にする必要があります。


    これで、IKE は IPsec で使用できるように構成されました。

例 — 事前共有鍵が同一であるか検査する

通信する各システムの事前共有鍵が同一でない場合は、次のエラーメッセージが表示されます。


# rup system2
system2: RPC: Rpcbind failure

事前共有鍵を表示するためには、in.iked デーモンが特権レベル 0x2 で動作していなければなりません。システムごとに、ikeadm コマンドを次のように実行して、事前共有鍵の情報をダンプします。


# /usr/sbin/ikeadm get priv
Current privilege level is 0x2, access to keying material enabled
# ikeadm dump preshared
PSKEY: Pre-shared key (24 bytes): f47cb…/192
LOCIP: AF_INET: port 0, 192.168.116.16 (enigma).
REMIP: AF_INET: port 0, 192.168.13.213 (partym).

両方のダンプを比較します。両者の事前共有鍵が同じでない場合は、/etc/inet/secret/ike.preshared ファイルで、一方の鍵を他方の鍵で置き換えます。