次の手順では、「IPsec で 2 つのシステム間のトラフィックを保護するには」の手順で使用するキー作成素材を提供します。partym と enigma という 2 つのシステムの鍵を生成しようとしています。一方のシステムで鍵を生成してから、このシステムの鍵を両方のシステムで使用します。
共有 IP ゾーンのキー情報の手動管理は、大域ゾーンで行う必要があります。
SA の鍵情報を生成します。
16 進のアウトバウンドトラフィックと、同じく 16 進のインバウンドトラフィックには、それぞれ 3 種類の乱数が必要です。
つまり、1 台のシステムで次の数値を生成する必要があります。
spi キーワードの値として、2 つの 16 進数の乱数。1 つはアウトバウンドトラフィック用です。もう 1 つはインバウンドトラフィック用です。それぞれの乱数の最大桁数は 8 桁です。
認証の SHA1 アルゴリズム用として、2 つの 16 進数の乱数。160 ビットのキーの場合、各乱数は 40 桁でなければなりません。1 つは dst enigma 用です。もう 1 つは dst partym 用です。
ESP 暗号化の AES アルゴリズム用として、2 つの 16 進数の乱数。256 ビットのキーの場合、各乱数は 64 桁でなければなりません。1 つは dst enigma 用です。もう 1 つは dst partym 用です。
乱数発生関数がすでにある場合は、それを使用してください。ない場合は、od コマンドを使用できます。手順については、「Solaris System で乱数を生成するには」を参照してください。
いずれかのシステムのシステムコンソールで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
リモートログインすると、セキュリティー上重要なトラフィックが盗聴される恐れがあります。何らかの方法でリモートログインを保護していても、システムのセキュリティーがリモートログインセッションレベルに低下します。セキュリティー保護されたリモートログインには、ssh コマンドを使用してください。
SA を作成します。
次のコマンドを入力して ipseckey コマンドモードを有効にします。
# ipseckey > |
既存の SA を置き換える場合は、現在の SA を消去してください。
> flush > |
攻撃者に SA を破る時間を与えないように、キー作成素材は置き換えが必要です。
管理者は、通信システム上のキーの置き換えを調整する必要があります。あるシステムの SA を置き換える場合は、それと通信しているリモートシステムの SA も置き換える必要があります。
SA を作成するには、次のコマンドを実行します。
> add protocol spi random-hex-string \ src addr dst addr2 \ protocol-prefix_alg protocol-algorithm \ protocol-prefixkey random-hex-string-of-algorithm-specified-length |
次の構文で、フラッシュした SA を置き換えることもできます。
esp または ah を指定します。
16 進数形式の最大 8 桁の乱数を指定します。0x が前置されます。セキュリティーパラメータインデックス (SPI) が受け取る以上の桁数を入力すると、超過部分は無視されます。SPI が受け取るより少ない桁数を入力すると、パディングが行われます。
システムの IP アドレスを指定します。
addr のピアシステムの IP アドレスを指定します。
encr または auth を指定します。encr 接頭辞は esp プロトコルとともに使用されます。auth 接頭辞は ah プロトコルとともに、そして、esp プロトコルを認証する場合に使用されます。
ESP または AH のアルゴリズムを指定します。それぞれのアルゴリズムには、特定の長さのキーが必要です。
認証アルゴリズムには MD5 と SHA1 があります。Solaris 10 4/09 リリース以降では、SHA256 と SHA512 がサポートされています。暗号化アルゴリズムには、DES、3DES、AES、および Blowfish があります。
アルゴリズムによって必要とされる長さをもつ 16 進数の乱数を指定します。たとえば、MD5 アルゴリズムでは、128 ビットキーのため 32 桁の乱数が必要です。3DES アルゴリズムでは、192 ビットキーのため 48 桁の乱数が必要です。
たとえば、enigma システムで出力パケットを保護します。
手順 1 で生成した乱数を使用します。
Solaris 10 1/06 の場合:
> add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \ authkey 6fab07fec4f2895445500ed992ab48835b9286ff > |
ピアシステムでは、同じ鍵情報および同じ SPI を使用する必要があります。
enigma システムの ipseckey コマンドモードでは、入力パケットを保護します。
パケットを保護するには、次のコマンドを入力します。
> add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \ authkey c80984bc4733cc0b7c228b9b74b988d2b7467745 > |
これらのキーと SPI は、SA ごとに変更できます。SA ごとに異なるキーと異なる SPI を割り当てるべきです。
ipseckey コマンドモードを終了するには、Control-D キーを押すか、quit と入力します。
/etc/inet/secret/ipseckeys ファイルに鍵情報を追加します。
Solaris 10 4/09 リリースより前のリリースでは、この手順により、リブート時に IPsec で鍵情報を確実に使用できるようになります。
/etc/inet/secret/ipseckeys ファイルの行と ipseckey コマンド行の言語が同じになるようにします。
たとえば、enigma システム上の /etc/inet/secret/ipseckeys ファイルは次のようになります。
# ipseckeys - This file takes the file format documented in # ipseckey(1m). # Note that naming services might not be available when this file # loads, just like ipsecinit.conf. # # for outbound packets on enigma add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \ authkey 6fab07fec4f2895445500ed992ab48835b9286ff # # for inbound packets add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \ authkey c80984bc4733cc0b7c228b9b74b988d2b7467745 |
# chmod 400 /etc/inet/secret/ipseckeys |
partym システムでこの手順を繰り返します。
enigma システムの場合と同じ鍵情報を使用します。
両システムの鍵情報は同じでなければなりません。次の例のように、ipseckeys ファイル内のコメントだけが異なります。コメントが異なるのは、dst enigma が enigma システム上ではインバウンド、partym システム上ではアウトバウンドになるからです。
# partym ipseckeys file # # for inbound packets add esp spi 0x8bcd1407 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \ authkey 6fab07fec4f2895445500ed992ab48835b9286ff # # for outbound packets add esp spi 0x122a43e4 \ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \ authkey c80984bc4733cc0b7c228b9b74b988d2b7467745 |
manual-key サービスを有効にします。
# svcadm enable svc:/network/ipsec/manual-key |
現在のリリースで鍵を置き換える方法については、例 20–4 を参照してください。
この例では、管理者が現在の Solaris 10 リリースを実行しているシステムを構成しようとしています。管理者は新しい鍵を生成し、ipseckeys ファイルの鍵情報を変更してから、サービスを再起動します。
まず、管理者は 「Solaris System で乱数を生成するには」を実行して鍵を生成します。
次に、生成された鍵を /etc/inet/secret/ipseckeys ファイルで使用します。
管理者は同じアルゴリズムを使用しました。そのため、SPI、encrkey、および authkey の値だけを変更します。
add esp spi 0x8xzy1492 \ src 192.168.116.16 dst 192.168.13.213 \ encr_alg aes \ auth_alg sha1 \ encrkey 0a1f3886b06ebd7d39f6f89e4c29c93f2741c6fa598a38af969907a29ab1b42a \ authkey a7230aabf513f35785da73e33b064608be41f69a # # add esp spi 0x177xce34\ src 192.168.13.213 dst 192.168.116.16 \ encr_alg aes \ auth_alg sha1 \ encrkey 4ef5be40bf93498017b2151d788bb37e372f091add9b11149fba42435fefe328 \ authkey 0e1875d9ff8e42ab652766a5cad49f38c9152821 |
最後に、管理者は manual-key サービスを再起動します。restart コマンドにより、新しい鍵を追加する前に古い鍵が消去されます
# svcadm restart manual-key |