Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

in.ikev2d(8)

名前

in.ikev2d - インターネット鍵交換バージョン 2 (IKEv2) のデーモン

形式

/usr/lib/inet/in.ikev2d [-d] [
-f filename]
/usr/lib/inet/in.ikev2d -c [
-f filename]

説明

in.ikev2d デーモンは、RFC 5996 で定義されているインターネット鍵交換バージョン 2 (IKEv2) プロトコルを使用して IPsec の自動鍵管理を実行します。

in.ikev2d では次をサポートしています。

  • 事前共有鍵、DSS 署名、RSA 署名、Elliptic Curve Digital Signature Algorithm (ECDSA) のいずれかによる IKE 認証。自己署名付き証明書と CA 署名付き証明書のどちらもサポートされています。

  • RFC 3526、RFC 5114、RFC 5903、および RFC 5996 で定義されている MODP グループ 2、5、14、15、16、22、23、24 と ECP グループ 19、20、21、25、26 を使用した Diffie-Hellman 鍵の派生。

  • 認証済み暗号化アルゴリズムを使用したセキュアな IKEv2 交換の保護。

    暗号化アルゴリズム: AES、3DES。

    認証アルゴリズム: HMAC-SHA-1、HMAC-SHA1-160、HMAC-SHA256、HMAC-SHA384、または HMAC-SHA512。

  • in.ikev2d での暗号化は、IKEv2 認証および鍵交換に限定されています。IPsec 保護の選択については、ipsecesp(4P) を参照してください。

  • 上記で定義されたアルゴリズムが、ピアとの交換を保護するために in.ikev2d によって使用されることに注意してください。実際の IPsec トラフィックの保護に使われるアルゴリズム (ESP/AH) とそれに関連付けられた鍵のネゴシエーションは、これらの IKEv2 交換の一環として行われます。IPsec で選ばれた実際のアルゴリズムは、このマニュアルページで説明している in.ikev2d 構成ファイルには定義されません (実際には IPsec ポリシーに定義されるため)。in.ikev2d と IPsec で使用されるアルゴリズムが異なる場合があります。IPsec ポリシーの詳細は、ipsecconf(8) および ipsecalgs(8) を参照してください。

in.ikev2d は、次の ike smf(7) サービスの ikev2 インスタンスによって管理されています。

svc:/network/ipsec/ike:ikev2

このサービスは、サービスを有効にする前に構成ファイルを作成する必要があるため、無効になっています。このファイルの形式については、ikev2.config(5) を参照してください。通常、このサービスは svc:/network/ipsec/policy サービスと組み合わせて使用されるため、そのサービスも構成して有効にしておく必要があります。そのサービスの詳細については、ipsecconf(8) を参照してください。

サービス管理機能については、smf(7) を参照してください。

in.ikev2d では、IKEv2 プロトコルを使用するピアシステムとの IKEv2 プロトコル交換を送信および処理します。これは、ポート 500 または 4500 上の UDP ソケットを使用して行われます。in.ikev2d では、カーネル内の IPsec モジュールから送られてくる鍵情報のリクエストも処理します。

in.ikev2d では、ネゴシエートされた SA をカーネルの SADB に追加したり、着信リクエストがローカルの IPsec ポリシーに適合していることをチェックしたりするために PF_KEY インタフェースも使用します。

すでに in.iked(8) IKEv1 デーモンが実行されている場合、in.ikev2d デーモンは共存モードで実行されます。in.iked は IKEv1 および IKEv2 トラフィックを待機し、IKEv2 トラフィックがあれば、in.ikev2d に転送します。in.ikev2d は、IKEv1 デーモンが終了しているかどうかを検出して、その場合はスタンドアロンモードに戻ります。共存モードが必要になるのは、両方のデーモンがネットワークトラフィックに同じ UDP ポート (500 および 4500) を使用するためです。

in.ikev2d は、RFC 5996 で定義されている IKEv2 プロトコルを使用してすべての IKE 交換を管理します。それは、RFC 2409 で定義されている IKE プロトコルのバージョンを使用して IKE 交換を管理する in.iked(8) と共存できます。

in.iked(8) の構成は、ike.config(5) に定義されています。in.ikev2d の構成は、ikev2.config(5) で定義されています。各デーモンには、独自の構成ファイルセットがあります。

両方のデーモンが同時に有効になっている場合は、構成ルール (つまり、両方のデーモンが同じローカルおよびリモートアドレスのペアに対してセッションを開始できるようにするルール) がオーバーラップしないよう注意してください。IKE/IKEv2 混在環境の IKE(v2) ルールの内側で接頭辞またはワイルドカードの remote_addr/local_addr 値が使用されるときは、特別な注意が必要です。

最小特権の原則を満たすために、IKEv2 の管理タスクはすべて、Network IPsec Management 権利プロファイルの下で行うようにしてください。rbac(7) を参照してください。適切なファイルアクセス権および所有権を保持するために、構成ファイルは pfedit(8) を使って変更するようにしてください。

例:

$ pfedit /etc/inet/ike/ikev2.config

in.ikev2dikeuser として実行され、そのすべての構成、ログ、および鍵と証明書ストアはその userid によって所有されます。その所有権およびアクセス権がこのように維持されることが必須であり、そうでない場合、実行中の in.ikev2d デーモンはその構成ファイルまたはキーストアの内容を読み取れません。

ikeadm(8) コマンドは、実行中の in.ikev2d デーモンを管理できます。詳細と例については、ikeadm(8) のマニュアルページを参照してください。

pktool(1) は、Solaris ユーザーのローカル証明書として X.509 証明書とそれに関連付けられた非公開鍵を管理するために使用されます。IKEv2 は、ikev2cert(8) を ikeuser (実行中の in.ikev2d デーモンのユーザー ID) のキーストアへのその証明書管理インタフェースとして使用します。ikev2cert(8) は、それを ikeuser として実行させ、IKEv2 キーストアへの書き出しやアクセスを行わせる pktool(1) のラッパーにすぎません。

証明書ポリシーは、Solaris Key Management Framework (KMF) によって制御されます。in.ikev2d 用に提供されているデフォルトのポリシーを変更するためには、IKEv2 役割の KMF 構成ファイルに対して kmfcfg(1) を実行する必要があります。たとえば、証明書に含まれる不明の拡張鍵用途拡張機能を無視するには、次のコマンドを実行します。

$ pfexec kmfcfg modify \
dbfile=/etc/inet/ike/kmf-policy.xml policy=default \
ignore-unknown-eku=true

有効な構成オプションについては、kmfcfg(1) を参照してください。

次のコマンドを実行することにより、in.ikev2d デーモンはその構成 (事前共有鍵や証明書など) に変更があれば、それを認識できます。

# svcadm refresh network/ipsec/ike:ikev2

前のコマンドの代わりに、ikeadm(8) コマンドのいずれか (read rulesread preshared など) を使用することもできます。

サービス管理機能

IKE デーモン (in.ikev2d) は、サービス管理機能 smf(7) によって管理されます。次の一連のサービスは、IPsec のコンポーネントを管理します。

  • svc:/network/ipsec/ipsecalgs (ipsecalgs(8) を参照)

  • svc:/network/ipsec/policy (ipsecconf(8) を参照)

  • svc:/network/ipsec/manual-key (ipseckey(8) を参照)

  • svc:/network/ipsec/ike:ikev2 (このマニュアルページを参照)

  • svc:/network/ipsec/ike:default (in.iked(8) を参照)

前述の各マニュアルページで説明されているように、manual-key および ike サービスは、システム管理者が各サービスの構成ファイルを作成する必要があるため、disabled 状態で提供されます。

正しい管理手順としては、サイトのセキュリティーポリシーに関連する一連のサービスの構成ファイルを作成してから、svcadm(8) を使用して各サービスを有効にします。

ike サービスは、ipsecalgs および policy サービスに対して依存関係があります。これらのサービスは、ike サービスより前に有効にすべきです。

後述のセクションでは、in.ikev2d によって使用されるいくつかの smf(7) プロパティーについて説明します。これらのプロパティーのデフォルト値を変更する必要はめったにありません。これらのプロパティーのいずれかを変更した場合は、ike:ikev2 サービスをリフレッシュして、それらの値が smf(7) データベース内で更新されるようにする必要があります。

デーモン in.ikev2d は起動時にしかこれらのプロパティーを読み取らないため、プロパティーが変更されたあとは、ike:ikev2 サービスを再起動する必要もあります。例:

example# svcadm refresh ike:ikev2
example# svcadm restart ike:ikev2

詳細な手順については、後述の特定のプロパティーを参照してください。

ikeadm(8) を使用することにより、もっとも一般的な構成変更を実行中のデーモンに適用できます。

デーモンを再起動すると、既存の IKEv2 SA とそれらの関連付けられた CHILD SA がすべて破棄されることに注意してください。削除通知が各ピアに送信され、SA をすべて再確立する必要があります。

ike サービスの ikev2 インスタンスには、次のプロパティーが定義されています。

config/config_file

使用する構成ファイルを定義します。デフォルト値は /etc/inet/ike/ikev2.config です。このファイルの形式については、ikev2.config(5) を参照してください。このプロパティーには –f フラグと同じ効果があります。「オプション」の –f の説明を参照してください。ユーザー ID ikeuser がこのファイルを所有している必要があることに注意してください。

実行中のデーモンに別のファイルを読み取らせる場合は、ikeadm(8) を参照してください。

config/debug_level

後述の debug_logfile ファイルに書き込まれるデバッグ出力の量を定義します。これに対するデフォルト値は op または operator です。このプロパティーは、構成ファイルの再読み取りなどのイベントに関する情報の記録を制御します。debug_level に設定可能な値は、ikeadm(8) のマニュアルページに一覧表示されています。値 verbose は一般的なプロトコルのトラブルシューティングに適しています。

例:

example# svccfg -s ike:ikev2 setprop config/debug_level = verbose

起動時のエラーメッセージは、smf(7) フレームワークによって記録され、サービス固有のログファイルに記録されます。SMF 起動ログの名前を調べるには、コマンド svcs -xv ike:ikev2 を使用します。

デバッグのために実行中のデーモンのデバッグレベルを変更する場合は、ikeadm(8) を参照してください。

config/debug_logfile

デバッグ出力の書き込み先を定義します。ここに書き込まれるメッセージは、in.ikev2d 内のデバッグコードに由来します。このパラメータが、ユーザー ikeuser の所有するディレクトリに設定されていることが重要です。そうでなければ、そのデーモンは起動に失敗します。logfile プロパティーを調べるには、次のコマンドを使用します。

example# svccfg -s ike:ikev2 listprop config/debug_logfile

SMF ログファイルとデバッグログファイルの両方でエラーを検査するようにしてください。

実行中のデーモンのデバッグ出力をリダイレクトする場合は、ikeadm(8) を参照してください。

config/ignore_errors

構成ファイルに構文エラー、構成エラー、不足している事前共有鍵、不足している証明書などがあった場合に in.ikev2d の動作を制御するブール値。デフォルト値は false で、構成が無効だった場合は in.ikev2d が保守モードに移行します。

この値を true に設定すると、IKE サービスはオンライン状態のままになりますが、正常に動作させるには、管理者が ikeadm(8) を使用して実行中のデーモンを構成する必要があります。

config/min_threads

デーモンの動的にサイズ変更されたスレッドプールに対して最小スレッド数を強制します。この値はヒューリスティックに設定され、通常は変更する必要はありません。

config/max_threads

デーモンの動的にサイズ変更されたスレッドプールに含まれる最大スレッド数を制限します。この値はヒューリスティックに設定され、通常は変更する必要はありません。in.ikev2d プロセスに含まれる少数のスレッドはこの制限に反してカウントされないため、実行中のデーモンに含まれる合計スレッド数が max_threads を超える可能性があります。同時に実行される未処理の CRL および OCSP 取得操作の合計数は、max_threads によって制限されます。これらの PKI 機能が使用されている場合は、max_threads を調整する前に、このことを熟慮するようにしてください。

config/response_wait_time

IKEv2 がそのいずれかのリクエストに対していピアからの応答を待機する秒数。通常はこの値をチューニングする必要はありません。ピアシステムでは、リクエストに応答するために CRL の取得など、時間のかかる操作を実行することが必要になる場合があるため、この値を単なるネットワーク往復時間の最悪の値とみなすべきではありません。

config/fragmentation_enable

IETF IKEv2 断片化が有効になっているかどうかを制御するブール値です。true の場合は、SA の確立時に in.ikev2d によって、この機能が各ピアでサポートされているかどうかが確認されます。サポートされている場合は、デーモンによって config/fragmentation_mtu プロパティーに従って、暗号化された IKEv2 メッセージが断片化されます。このプロパティーが無効になっている場合は、受信した IKEv2 断片化メッセージが無視されます。中間デバイスで IP 断片化が破棄される場合に、IP 層で IKEv2 メッセージが断片化されるのを回避するには、このプロパティーを有効にするようにしてください。デフォルト値は false です。

config/fragmentation_mtu

IPv4/IPv6 でカプセル化された IKEv2 パケットの最大サイズ (バイト) です (fragmentation_enabletrue の場合)。これは、パケットがインタフェースから送信されるときのレイヤー 2 フィールドよりも少ないパケットの合計フレームサイズと同等です。デフォルト値は 1350 です。有効な範囲は 576 - 9216 です。

pkcs11_token/uri

PKCS#11 URI 形式でのハードウェアトークン。例:

# svccfg -s ike:ikev2 setprop pkcs11_token/uri = \
'pkcs11:token=Hardware Token Name'

この値はデフォルトで Metaslot になり、PIN で保護された、ユーザー ikeuser のソフトトークンキーストアに鍵と証明書が格納されることを意味します。PKCS#11 ハードウェアトークンを指定するには、この値を変更します。ソフトトークンキーストアの詳細は、pkcs11_softtoken(7) を参照してください。

pkcs11_token/pin

PKCS#11 ソフトトークンキーストアの PIN。

この PIN は、in.ikev2d の無人起動用に設定する必要があります。この PIN がないと、in.ikev2d はそのキーストア内のどの非公開鍵にもアクセスできません。デフォルトでは、PIN は構成されず、キーストアは初期化されません。管理者は、ikev2cert(8) を実行して PIN を設定し、キーストアを初期化する必要があります。自動起動の場合は、特殊な smf(7) プロパティーに PIN の値が格納されている必要があります。

ソフトトークンの場合 (デフォルト):

# ikev2cert setpin

現在のトークンの状態は、次で表示できます。

# ikev2cert tokens

ハードウェアトークンの場合、ハードウェアトークンはファイルシステムの一部ではなく、アクセス権や所有権を持っていないため、ikev2cert(8) は使用されません。pktool(1) を使用すると、ハードウェアを直接操作できます。

# pktool setpin token=token_name

次に、読み取りまたは書き込みのために特別な承認を必要とする特殊な smf(7) プロパティーに PIN の値を格納します。smf_security(7) を参照してください。

# svccfg -s ike:ikev2 editprop

エディタで:

setprop pkcs11_token/pin = pin_value
refresh

セキュリティーポリシーで、PIN を SMF に格納できないことが定められている場合、このプロパティーは空のままになり、管理者は次のコマンドを実行して実行中のデーモンのソフトトークンを対話形式でロック解除できます。

# ikeadm -v2 token login "Sun Metaslot"

ハードウェアトークンの場合、上記コマンドのトークンラベル名を置き換えます。

デーモンがまだ実行されている状態で遡及的にトークンにログインするには、次の手順を使用します。

  1. まだ行なっていない場合は、トークンを初期化します。初期化されていないトークンのデフォルトの PIN は changeme です。プロンプトが表示されたら、この PIN を強力なパスフレーズに設定します。

    # ikev2cert setpin
  2. svccfg(8) を使用して PIN のプロパティーを設定します。

    # svccfg -s ike:ikev2 editprop

    その PIN を実行中のデーモンに渡して、トークンをロック解除します。

    # ikeadm -v2 token login "Sun Metaslot"

    後述するトークンのログイン承認に関する説明を参照してください。

これらのプロパティーは、Network IPsec Management 権利プロファイルを割り当てられたユーザーが svccfg(8) を使用して変更できます。prof_attr(5) のマニュアルページを参照してください。

その他のプロパティーは、svcprop(1) コマンドを使用して表示できます。それらの機能は未定義であり、それらの変更はサポートされていません。

PKCS#11 トークンオブジェクトをロック解除またはロックするには、ikeadm トークンのログインと ikeadm トークンのログアウトをそれぞれ使用します。Network IPsec Management 権利プロファイルによって、ユーザーは PKCS#11 トークンオブジェクトのログインおよびログアウトができます。prof_attr(5) のマニュアルページを参照してください。

auths(1)ikeadm(8)user_attr(5)rbac(7)ikev2cert(8) を参照してください。

新しいプロパティー値を有効にするには、svcadm(8) を使用してサービスをリフレッシュする必要があります。変更不可能な一般プロパティーは、svcprop(1) コマンドを使用して表示できます。

# svccfg -s ipsec/ike:ikev2 setprop config/config_file = \
/new/config_file
# svcadm refresh ike:ikev2

有効化、無効化、リフレッシュ、再起動要求など、このサービスに対する管理アクションは、svcadm(8) を使用して実行できます。Network IPsec Management 権利プロファイルを割り当てられたユーザーは、これらのアクションを実行できます。

サービスステータスを照会するには、svcs(1) コマンドを使用します。

in.ikev2d デーモンは、smf(7) の管理下で実行されるように設計されています。in.ikev2d コマンドはコマンド行から実行できますが、これは推奨されていません。in.ikev2d をコマンド行から実行する場合は、最初に ike smf(7) サービスを無効にするようにしてください。svcadm(8) を参照してください。

オプション

サポートしているオプションは、次のとおりです。

–c

構成ファイルの構文を検査します。

–d

デバッグモードを使用します。プロセスが制御端末に接続されたままになり、大量のデバッグ出力が生成されます。

–f filename

/etc/inet/ike/ikev2.config の代わりに filename を使用します。このファイルの形式については、ikev2.config(5) を参照してください。

セキュリティー

このプログラムのイメージには、機密性の高い秘密鍵情報が含まれています。実行中の in.ikev2d デーモンのコアダンプやシステムダンプには機密性の高い鍵情報が含まれているため、これらのファイルには注意してください。実行中の in.ikev2d デーモンによって生成されるコアファイルを制限するには、coreadm(8) コマンドを使用します。

ファイル

/etc/inet/ike/ikev2.config

デフォルトの構成ファイル。

/etc/inet/ike/ikev2.preshared

IKE SA 認証用のデフォルトの IKEv2 事前共有秘密ファイル。

/etc/inet/ike/kmf-policy.xml

デフォルトの IKEv2 KMF ポリシー構成ファイル。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/network/ike
インタフェースの安定性
確実

関連項目

auths(1)kmfcfg(1)pktool(1)svcprop(1)svcs(1)ipsecesp(4P)ike.config(5)ikev2.config(5)ikev2.preshared(5)prof_attr(5)user_attr(5)attributes(7)pkcs11_softtoken(7)rbac(7)smf(7)smf_security(7)coreadm(8)ikeadm(8)ikev2cert(8)、in.iked(8)ipsecalgs(8)ipsecconf(8)ipseckey(8)pfedit(8)svcadm(8)svccfg(8)

Dan Harkins および Dave Carrel 著、「RFC 2409, Internet Key Exchange (IKE)」、Network Working Group 発行、1998 年 11 月

Maughan、Douglas、Schertler, M.、Schneider, M.、Turner, J. 著、『RFC 2408, Internet Security Association and Key Management Protocol (ISAKMP)』、Network Working Group 発行、1998 年 11 月

Piper、Derrell 著、『RFC 2407, The Internet IP Security Domain of Interpretation for ISAKMP』、Network Working Group 発行、1998 年 11 月

Fu, D.、Solinos, J. 著、『RFC 4753, ECP Groups for IKE and IKEv2』、Network Working Group 発行、2007 年 1 月

Lepinski, M.、Kent, S. 著、『RFC 5114, Additional Diffie-Hellman Groups for Use with IETF Standards』、Network Working Group 発行、2008 年 1 月

Kaufman, C.、Hoffman, P.、Nir, Y.、および P.Eronen 著、『RFC 5996, Internet Key Exchange Protocol Version 2 (IKEv2)』、2010 年 9 月。