Sun Ray クライアントでの IPsec に必要な基本構成は IKE 構成ファイル (racoon.conf ファイルから派生したもの) です。IKE 構成ファイルは、racoon デーモンを使用して 2 つのホスト間にセキュアな接続を確立する方法を定義します。Sun Ray Software の場合、IKE 構成ファイル内の指令と文のサブセットのみが必要です。IKE 構成ファイルの完全なドキュメントは、racoon.conf のマニュアルページから入手できます。
IKE 構成ファイルには、それぞれが 1 つのキーワードと 1 組のパラメータで構成される、一連の指令が含まれています。一部の指令は、その後ろに一連のネストされた文を続けることができます。IKE 構成ファイルは、ファームウェアの Trivial File System の /ike/default.conf に格納する必要があります。/ike ディレクトリの使用は、ファイルを含むディレクトリがそのタイプまたは形式を示すという方針と一致しています。
Sun Ray IKE 構成ファイルに必要な指令は 2 つのみです。
remote - IKE ネゴシエーション用のパラメータを指定します。
sainfo - 実際の IPsec トラフィックを保護するためのパラメータを指定します。
通常は、名前、アドレス、またはデフォルトの anonymous キーワードでタグ付けされた remote および sainfo の指令が複数存在する可能性があります。Sun Ray Software の実装では、各指令を 1 つだけ指定できます。
次の指令は必須ではありませんが、より詳細な構成を行うためにサポートされています。
padding - トラフィックのパディングパラメータを指定します。
timer - 構成タイマーを指定します。
その他のパラメータ (さまざまな付属ファイルおよびポートの場所など) は値が固定されています。
remote 指令は、IKE ネゴシエーション用のパラメータを指定します。
次の文がサポートされています。必要に応じて、特定の注意事項や制限事項が示されています。
ca_type - ルート証明書タイプ (X509 のみ) およびルート証明書ファイル名。
certificate_type - クライアント証明書タイプ (X509 のみ)、非公開鍵ファイル名、および証明書ファイル名。
dpd - Dead Peer Detection (DPD) を有効にするためのスイッチ。デフォルト値はオンです。
dpd_delay - ライブネスの要求の間隔。0 はチェックを無効にします。デフォルト値は 0 です。
dpd_maxfail - dpd_delay が設定されている場合は、ピアが消滅したとみなすまでに (応答なしで) 要求する、ライブネスの証明の最大数をこの文で設定します。デフォルト値は 5 です。
dpd_retry - dpd_delay が設定されている場合は、ライブネスの証明が失敗したとみなし、別の要求を送信するまでに、その証明を待機する遅延時間 (秒) をこの文で設定します。デフォルト値は 5 です。
exchange_mode - IKE イニシエータとして使用する交換モード。値: main、aggressive、または base。aggressive モードは Oracle Solaris ではサポートされていません。
ike_frag - IKE 断片化を有効にするためのスイッチ。
lifetime - 提案される IKE 有効期間。
my_identifier - フェーズ 1 の IKE 識別子のタイプおよび値。次の識別子タイプが許可されています。
address - IP アドレス。これがデフォルトです (ただし、DHCP を使用してアドレスを取得する Sun Ray クライアントには適していない)。
asn1dn - ASN.1 識別名。値が指定されていない場合、この値は証明書の「件名」フィールドから取得されます。
fqdn - 完全修飾ドメイン名。
keyid - 任意の文字列。
subnet - IP サブネット。
user_fqdn - ユーザーの完全修飾名。
nat_traversal - NAT トラバーサルを有効にするためのスイッチ。
nonce_size - IKE 交換で使用されるノンスのサイズ。デフォルト値は 16 バイトです。
peers_certfile - ローカルで保存されたピア証明書タイプ (X509 のみ) および証明書ファイル名。
peers_identifier - 期待されるピア識別子のタイプおよび値。次の識別子タイプが許可されています。
address - IP アドレス。これはデフォルト値です。
asn1dn - ASN.1 識別名。値が指定されていない場合、この値は証明書の「件名」フィールドから取得されます。
fqdn - 完全修飾ドメイン名。
keyid - 任意の文字列。
subnet - IP サブネット。
user_fqdn - ユーザーの完全修飾名。
proposal - proposal 文のリスト。許可されている proposal 文は 1 つのみです。
authentication_method - 使用される認証方法を指定します。値は pre_shared_key または rsasig です。
事前共有鍵ファイルは、認証モードが pre_shared_key の場合に使用され、ファームウェアの Trivial File System の /preshared/keys ファイルに格納する必要があります。事前共有鍵ファイルは、いくつかの空白またはタブ文字で区切られた、ID と鍵のペアを含む行で構成されています。「0x」で始まる鍵は 16 進文字列として解釈されます。参照される証明書ファイルはすべて /certs ディレクトリに格納し、ファイルで提供される公開鍵と非公開鍵のペアは /keys ディレクトリに格納する必要があります。
dh_group - Diffie-Hellman の指数関数に使用されるグループを指定します。値は modp768、modp1024、modp1536、modp2048、modp3072、modp4096、modp6144、またはそれに対応する DH グループ番号 1、2、5、14、15、16、17、18 です。
encryption_algorithm - フェーズ 1 のネゴシエーションに使用される暗号化アルゴリズムを指定します。値は aes、3des、または null です。aes のあとに、空白で区切られた鍵のサイズ 128、192、または 256 が続くこともあります。
hash_algorithm - フェーズ 1 のネゴシエーションに使用されるハッシュアルゴリズムを指定します。値は md5 (非推奨)、sha1、sha256、sha384、または sha512 です。Oracle Linux 5.8 と Oracle Linux 6.3 では、sha384 または sha512 ハッシュアルゴリズムをサポートしていません。
lifetime - IKE 有効期間を指定します。
remote_address - 接続の相手側のリモート IP アドレス。
proposal_check - 提案のチェックの種類。値は claim、exact、obey、または strict です。
send_cert - クライアント証明書の送信を可能にするためのスイッチ。デフォルト値はオンです。
send_cr - 証明書要求の送信を可能にするためのスイッチ。デフォルト値はオンです。
verify_cert - ピアの証明書を検証するためのスイッチ。デフォルト値はオンです。
verify_identifier - ID と証明書の間での識別情報の検証を可能にするためのスイッチ。デフォルトはオフです。
sainfo 指令は、関連トラフィックの保護に使用される IPsec セキュリティーアソシエーション (SA) を作成するためのセキュリティーパラメータの指定に使用します。Sun Ray Software では、カプセル化セキュリティーペイロード (ESP) プロトコルのみがサポートされ、認証ヘッダー (AH) プロトコルはサポートされていません。
Sun Ray クライアントとほかのピアとの通信に必要なスイッチ選択はごくわずかで、それらはファームウェアの構成 GUI の IPsec 構成メニューに組み込まれているため、Sun Ray Software 用のセキュリティーポリシーデータベース (SPD) の完全な実装は必要ありません。
次の文がサポートされています。必要に応じて、特定の注意事項や制限事項が示されています。
authentication_algorithm - コンマで区切られた認証アルゴリズムのリストを指定します。値には、hmac 形式の hash_algorithm 値 (hmac_md5、hmac_sha1、hmac_sha256、hmac_sha384、hmac_sha512 など) があります。
encryption_algorithm - フェーズ 2 の提案で使用できる、コンマで区切られた暗号化アルゴリズムのセットを指定します。値は aes または 3des です。aes 値のあとに鍵のサイズが続くこともあります (aes 256 など)。
lifetime - IPsec SA が使用される期間を定義します。
pfs_group - フェーズ 2 で Perfect Forward Secrecy (PFS) に使用されるグループを定義します。dh_group と同じ値が使用されます。省略した場合、PFS は使用されません。
sha2_trunc - SHA-2 ハッシュの切り捨てを、RFC 4868 に指定されている 128 ビットではなく 96 ビットに設定するスイッチ。これにより、この動作を示す一部の Oracle Linux システムとの相互運用が可能になります。Oracle Linux に sha256 ハッシュアルゴリズムを使用する場合は、これを設定する必要があります。
フェーズ 2 のネゴシエーション中に生成される提案は、encryption_algorithm と authentication_algorithm の考えられるすべての組み合わせから成ります。
固定 IP アドレス (10.213.25.230) を持つ Sun Ray クライアントと、事前共有鍵を使用する Sun Ray サーバー (10.213.21.43) の接続を指定するために使われる Sun Ray IKE 構成ファイルの例を次に示します。
remote address 10.213.21.43 {
my_identifier address 10.213.25.230;
exchange_mode main;
proposal {
authentication_method pre_shared_key;
encryption_algorithm aes;
hash_algorithm sha1;
dh_group 2;
}
proposal_check claim;
}
sainfo address 10.213.25.230 address 10.213.21.43 {
lifetime time 12 hour;
encryption_algorithm aes;
authentication_algorithm hmac_sha1;
} exchange_mode 文に main を指定した場合は、事前共有鍵の使用時に IKE 接続の識別子が IP アドレスになっている必要があります。
証明書ベースの認証に使われる Sun Ray IKE 構成ファイルの別の例を次に示します。
remote anonymous {
exchange_mode main;
my_identifier asn1dn;
ca_type x509 "cacert.pem";
certificate_type x509 "mycert.pem" "mykey.pem";
proposal {
authentication_method rsasig;
encryption_algorithm 3des;
hash_algorithm md5;
dh_group modp1024;
}
lifetime time 24 hour;
proposal_check claim;
}
sainfo anonymous {
authentication_algorithm hmac_sha1;
encryption_algorithm aes;
lifetime time 8 hour;
}