Go to main content
マニュアルページ セク ション 1M: シ ステム管理コマン ド

印刷ビューの終了

更新: 2016年12月6日
 
 

ikeadm(1M)

名前

ikeadm - インターネット鍵交換 (IKE) のパラメータおよび状態の操作

形式

ikeadm [-np] [-v {1|2}]
ikeadm [-np] [-v {1|2}] get [debug | priv | stats | defaults]
ikeadm [-np] [-v {1|2}] set [debug | priv] [level] [file]
ikeadm [-np] [-v {1|2}] [get | del] [p1 | ikesa | rule | preshared] [id]
ikeadm [-np] [-v {1|2}] add [rule | preshared] { 
description }
ikeadm [-np] [-v {1|2}] token [login | logout] 
PKCS#11_Token_Object
ikeadm [-np] [-v {1|2}] [read | write] [rule | preshared | certcache] 
file
ikeadm [-np] [-v {1|2}] dump [p1 | ikesa | rule | preshared | certcache | groups
     | encralgs | authalgs]
ikeadm [-v {1|2}] [-np] flush [p1 | ikesa | certcache]
ikeadm help
     [get | set | add | del | read | write | dump | flush | token]

説明

ikeadm ユーティリティーは、インターネット鍵交換 (IKE) プロトコルデーモン in.iked(1M) から情報を取得したり、その構成を操作したりします。

ikeadm ユーティリティーは、実行中のインターネット鍵交換 (IKE) デーモンと通信します。このユーティリティーは、実行中のデーモンを再起動することなく、そのデーモンから情報を取得したり、その構成を変更したりできます。IKE プロトコルデーモンには、それぞれインターネット鍵交換プロトコルのバージョン 1 と 2 をサポートする in.iked(1M)in.ikev2d(1M) の 2 つがあります。

ikeadm ユーティリティーは、ike.config(4) および ikev2.config(4) に記述されている構成ファイルに代替の構成メカニズムを提供します。さらに、実行中のデーモンからのみ取得できる統計情報やその他の情報を収集するための固有のインタフェースも提供します。

ikeadm は、サポートされる 1 つ以上のオブジェクトタイプに対して実行可能な一連の操作をサポートしています。ikeadm は、引数なしで呼び出されると対話型モードに入り、標準出力にプロンプトを出力したあと、ファイルの終わりに達するまで標準入力からコマンドを受け入れます。

ikeadm は機密性の高いキーイング情報を操作するため、このコマンドを使用するにはスーパーユーザーであるか、または Network IPsec Management 権利プロファイルが付与されている必要があります。さらに、使用可能なコマンドの一部では、デーモンが特権モードで動作している必要がありますが、その動作が確立されるのは、デーモンの起動時です。

このコマンドをセキュアに使用する方法の詳細は、「セキュリティー」を参照してください。

オプション

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

–n

アクションの報告時に、ホスト名やネットワーク名をシンボルで出力できないようにします。これは、すべてのネームサーバーが停止したか、またはその他の理由で到達不能になった場合などに役立ちます。

–p

パラノイド。セキュリティーアソシエーションを保存する場合でもキーイング材料を一切出力しません。このフラグが有効になると、実際の 16 進数値の代わりに X を出力します。

–v {1|2}

IKE バージョン番号。in.iked(1M) または in.ikev2d(1M) デーモンのいずれかのみが実行されている場合、このフラグはオプションです。それ以外の場合、このフラグは、IKE デーモンのどちらのバージョンがこの操作のターゲットであるかを指定します。

使用法

コマンド

次のコマンドがサポートされています。

add

指定されたオブジェクトを追加します。このオプションを使用すると、現在の (実行中の) IKE 構成に新しいポリシー規則または新しい事前共有鍵を追加できます。事前共有鍵の新しい値は、ikeadm を対話形式で実行することによってしか入力できません。「セキュリティー」を参照してください。追加される規則または鍵は、「ID 形式」セクションで説明されている適切な id-value のペアを使用して指定されます。

del

IKE デーモンの現在の構成から、特定の 1 つまたは複数のオブジェクトを削除します。この操作は、IKE (第 1 段階) SA、IKEv2 IKE SA、ポリシー規則、および事前共有鍵に対して使用できます。削除するオブジェクトの指定方法については、「ID 形式」を参照してください。

dump

IKE デーモンに認識されているタイプのうち、指定されたタイプのすべてのオブジェクトを表示します。このオプションを使用すると、第 1 段階 SA、IKEv2 IKE SA、ポリシー規則、事前共有鍵、実装されている Diffie-Helman グループ、第 1 段階や IKE SA で使用可能な暗号化および認証アルゴリズム、または証明書キャッシュをすべて表示できます。このコマンドでは大量の出力が生成される可能性があります。

flush

IKE デーモンから、IKE (第 1 段階) SA、IKEv2 IKE SA、またはキャッシュされた証明書をすべて削除します。

certcache をフラッシュすると、(その副作用として) IKEv1 も追加または削除されたすべての新しい証明書で更新されることに注意してください。IKEv2 には公開された証明書キャッシュがないことに注意してください。

get

指定されたオブジェクトを検索して表示します。現在のデバッグまたは特権レベル、デーモンのグローバル統計情報やデフォルト値、あるいは特定の IKE (第 1 段階) SA、IKEv2 IKE SA、ポリシー規則、または事前共有鍵を表示するために使用できます。最後の 3 つのオブジェクトタイプでは識別情報を渡す必要があります。各オブジェクトタイプの適切な指定方法については後述します。

help

コマンドの簡単なサマリーを出力します。ただし、特定のコマンドが指定された場合は、そのコマンドに関する情報を出力します。

read

デフォルトの場所または指定されたファイルのどちらかからポリシー規則または事前共有鍵を読み取ることによって、現在の IKE 構成を更新します。

set

現在のデバッグレベルまたは特権レベルを調整します。デバッグレベルを変更する場合、出力ファイルを指定することもできます。デーモンがバックグラウンドで動作しており、ファイルへの出力を現在行なっていない場合は、出力ファイルを指定する必要があります。特権レベルを変更する場合は、アクセスレベルを下げるための調整しか行うことができません。ikeadm を使用してアクセスレベルを上げることはできません。特権レベルは IKEv1 にのみ適用されることに注意してください。

write

現在の IKE/IKEv2 ポリシー規則セットまたは事前共有鍵セットを指定されたファイルに書き込みます。書き込み先のファイルを指定する必要があります。このコマンドは、既存の構成ファイルを上書きするために使用するべきではありません。

token

PKCS#11 トークンオブジェクトにログインしてキーイング材料へのアクセスを許可するか、ログアウトしてキーイング材料へのアクセスを無効にします。

token は、Network IPsec Management 権利プロファイルを持つ通常ユーザーとして実行できます。

オブジェクトタイプ

debug

デーモンのデバッグレベルを指定します。これにより、デーモンから提供される、操作に関する出力の量や種類が決まります。デバッグレベルは実際にはビットマスクであり、その個々のビットによってそれぞれ異なるタイプの情報が有効化されます。

IKEv1 and IKEv2

Certificate management   0x00000001               cert
Key management           0x00000002               key
Operational              0x00000004               op
Phase 1 SA creation      0x00000008               phase1
Phase 2 SA creation      0x00000010               phase2
PF_KEY interface         0x00000020               pfkey
Policy management        0x00000040               policy
Proposal construction    0x00000080               prop
Door interface           0x00000100               door
Config file processing   0x00000200               config
Label processing         0x00000400               label

IKEv2 only

Packet processing        0x00000800               packet
Audit interaction        0x00002000               audit
Additional Notes         0x00004000               note
Threading issues         0x00008000               thread
Extra PF_KEY dumps       0x00010000               pfkeymsg
Verbose                  0x00006204               verbose
All debug flags          0x0001ffff               all

デバッグレベルを指定する場合、数値 (10 進または 16 進)、ニックネーム文字列のどちらを指定してもかまいません。たとえば、880x58phase1+phase2+policy はすべて同等であり、第 1 段階 SA 作成、第 2 段階 SA 作成、およびポリシー管理のデバッグを有効にします。また、ニックネームの文字列を使用すると、特定のタイプの情報を削除することもできます。all-op には、操作メッセージを除くすべてのデバッグを有効にする効果があります。これは、10190x3fb の数値と同等です。

priv

IKEv1 のみ

デーモンのアクセス特権レベルを指定します。指定できる値は次のとおりです。


Description                  Level   Nickname
Base level                   0       base
Access to preshared key info 1       modkeys
Access to keying material    2       keymat

デフォルトでは、in.iked はベースレベルで起動されます。コマンド行オプションを使用すると、デーモンをより高いレベルで起動できます。ikeadm を使用してレベルを下げることはできますが、レベルを上げることはできません。

目的の特権レベルを指定する場合は、数値レベルとニックネームのどちらを使用してもかまいません。

config/admin_privilege SMF プロパティーについては、in.iked(1M) を参照してください。このプロパティーを使用すると、あとで ikeadm で変更できるベースラインの特権レベルを確立できます。

事前共有鍵の取得、追加、削除、ダンプ、読み取り、または書き込みを行うには、少なくとも事前共有鍵情報へのアクセスを許可する特権レベルが必要になります。ただし、(get または dump のいずれかのコマンドを使用して) 事前共有鍵を表示する際に鍵自体が使用可能になるのは、特権レベルがキーイング材料へのアクセスを許可する場合だけです。第 1 段階 SA を表示する場合も、これと同様です。

stats

デーモンからのグローバル統計情報。

IKEv1 の統計情報には、成功と失敗の両方の第 1 段階 SA 作成が含まれています。

報告される統計情報には次が含まれます。

  • ローカルエンティティーが開始した P1 SA の現在の数

  • ローカルエンティティーがレスポンダになった P1 SA の現在の数

  • ブート以降にローカルエンティティーが開始した P1 SA の合計数

  • ブート以降にローカルエンティティーがレスポンダになった P1 SA の合計数

  • ブート以降にローカルエンティティーがイニシエータになった試行 P1 SA の合計数。失敗した試行も含まれます。

  • ブート以降にローカルエンティティーがレスポンダになった試行 P1 SA の合計数。失敗した試行も含まれます。

  • P1 SA を開始しようとして失敗した合計回数 (ピアが応答しなかったためにエラーが発生した場合)

  • P1 SA を開始しようとして失敗した合計回数 (ピアが応答した場合)

  • ピアがイニシエータになった失敗 P1 SA の合計数

  • PKCS#11 ライブラリが使用中かどうかと、使用中の場合はその読み込まれた PKCS#11 ライブラリike.config(4) を参照してください。

IKEv2 の統計情報には、成功と失敗の両方の IKE SA 作成が含まれています。

  • 成功したすべての IKEv2 SA 作成回数

  • 失敗したすべての IKEv2 SA 作成回数

  • 成功したすべての IKEv2 鍵の変更回数

  • 失敗したすべての IKEv2 鍵の変更回数

  • すべてのメモリー割り当て失敗回数

defaults

IKEv1 のみ

in.iked デーモンで使用されるデフォルト値を表示します。一部の値は、デーモンの構成ファイルでオーバーライドできます (ike.config(4) を参照してください)。これらの値の場合は、get defaults の出力にトークン名が表示されます。出力には、構成トークンがデフォルトを変更した箇所が反映されます。

デフォルト値は、ピアシステムから有効な代替案が提出された場合は無視される可能性があります。また、ike.config で確立されたルール単位の値でオーバーライドされる可能性もあります。そのような場合も、get defaults コマンドは、デフォルトのオーバーライドに使用された値ではなく、デフォルト値を表示し続けます。

ikesa

IKEv2 IKE SA。ikesa オブジェクトは、IP アドレスペアまたはローカル SPI で識別されます。識別形式については後述します。

p1

IKE 第 1 段階 SA。p1 オブジェクトは、IP アドレスペアまたは cookie ペアで識別されます。識別形式については後述します。

rule

IKE ポリシー規則。指定されたローカルアイデンティティーとリモートアイデンティティーの間の第 1 段階または IKEv2 IKE SA で使用可能なセキュリティー特性を定義します。ルールはラベルで識別されますが、その識別形式については後述します。

preshared

事前共有鍵。適用可能な識別子を含みます。IKEv1 では、事前共有鍵は、IP アドレスペアまたはアイデンティティーペアで識別されます。IKEv2 では、事前共有鍵は、その規則ラベルで識別されます。識別形式については後述します。

ID 形式

adddelget などのコマンドでは、コマンド行で追加情報を指定する必要があります。削除コマンドと取得コマンドで必要になるのは、特定のオブジェクトを識別する最小限の情報だけです。追加コマンドでは完全なオブジェクトを指定する必要があります。

最小限の識別はほとんどの場合、値のペアによって実現されます。IP アドレスの場合、ローカルアドレスのあとにリモートアドレスを指定しますが、その形式は IPv4 アドレス用のドット表記、IPv6 アドレス用のコロン区切り 16 進数形式、またはホスト名データベース内に存在するホスト名のいずれかになります。複数のアドレスに展開されるホスト名を指定した場合、アドレスの可能な各組み合わせについて、要求された操作が1 度に複数回実行されます。

アイデンティティーペアは、ローカルのタイプ-値ペアとそれに続くリモートのタイプ-値ペアとで構成されます。有効なタイプは次のとおりです。

prefix

アドレスの接頭辞。

fqdn

完全修飾ドメイン名。

domain

ドメイン名。fqdn の同義語です。

user_fqdn

user@fqdn という形式のユーザーアイデンティティー。(IKEv1 のみ)

mailbox

user_fqdn の同義語。

cookie ペアは、第 1 段階セキュリティーアソシエーション (SA) の作成時にその SA に割り当てられた 2 つの cookie で構成され、1 つがイニシエータ用、もう 1 つがレスポンダ用です。cookie は 64 ビットの数値です。

最後に、(ポリシールールの識別子として使用される) ラベルは、ルール作成時にルールに割り当てられる文字列です。

追加コマンドのための規則または事前共有鍵の形式は、in.iked または in.ikev2d 構成ファイルの形式規則に従います。どちらも、中括弧 ({}) で囲まれた一連の ID-値ペアから構成されます。IKEv1 の場合は、形式の規則および事前共有鍵の詳細について ike.config(4) および ike.preshared(4) を参照してください。IKEv2 の場合は、その形式の規則について ikev2.config(4) および ikev2.preshared(4) を参照してください。

セキュリティー

ikeadm コマンドでは、Network IPsec Management 権利プロファイルを持つ承認されたユーザーは暗号化キーイング情報を入力できます。そのような情報に悪意のあるユーザーがアクセスできると、IPsec トラフィックのセキュリティーが損なわれます。ikeadm コマンドを使用する際には、次の問題を考慮するようにしてください。

  • TTY の情報がネットワーク上を流れるか (対話モード)

    そうである場合、キーイング材料のセキュリティーは、この TTY のトラフィックに対するネットワークパスのセキュリティーになります。平文の telnet または rlogin セッション経由で ikeadm を使用するのは危険です。ウィンドウイベントを読み取ることのできる隠密プログラムが存在する場合、ローカルウィンドウでもその攻撃には無防備となります。

  • ファイルがネットワーク経由でアクセスされたり、外部から読み取り可能であったりするか (読み取り/書き込みコマンド)

    ネットワーク上にマウントされたファイルを読み取る際に、悪意のあるユーザーがその情報を盗む可能性があります。外部から読み取り可能なファイルにキーイング材料が格納されている場合も危険です。

送信元アドレスがネットワーク経由で検索可能なホストである場合に、ネームシステム自体の安全性が損なわれると、使用されているすべての名前が信用できなくなります。

一般に、キーイング材料を管理するコマンドではコマンド行でキーイング材料を指定できません。これは、このキーイング材料が最終的にシェル履歴ファイルに格納されるか、または ps(1) を実行している別のユーザーに表示される場合があり、それによって危険にさらされる可能性があるためです。

セキュリティーの脆弱性はしばしば、ツール自体に原因があるのではなく、ツールの間違った適用方法に原因があります。管理者には、ikeadm コマンドの使用時に十分な注意を払うことをお勧めします。もっとも安全な操作モードはおそらく、コンソール上やその他の物理的に接続された TTY 上で作業を行うことです。

このテーマの追加情報については、Bruce Schneier 著『Applied Cryptography: Protocols, Algorithms, and Source Code in C』に含まれる Matt Blaze 氏の後書きを参照してください。

使用例 1 すべての第 1 段階または IKEv2 IKE セキュリティーアソシエーションの削除

IKEv1:

次のコマンドは、すべての第 1 段階セキュリティーアソシエーションを削除します。

example# ikeadm flush p1

IKEv2:

次のコマンドは、すべての IKEv2 IKE セキュリティーアソシエーションを削除します。

example# ikeadm flush ikesa
使用例 2 すべての第 1 段階または IKEv2 IKE セキュリティーアソシエーションの表示

IKEv1:

次のコマンドは、すべての第 1 段階セキュリティーアソシエーションを表示します。

example# ikeadm dump p1

IKEv2:

次のコマンドは、すべての IKEv2 IKE セキュリティーアソシエーションを表示します。

example# ikeadm dump ikesa
使用例 3 特定の第 1 段階セキュリティーアソシエーションの削除

次のコマンドは、指定された第 1 段階または IKEv2 IKE セキュリティーアソシエーションを削除します。

IKEv1:

example# ikeadm del p1 local_ip remote_ip

IKEv2:

example# ikeadm del ikesa local_ip remote_ip

または

example# ikeadm del ikesa 0x49bf01d5c7585ea8

前のコマンド例で、値 0x49bf01d5c7585ea8 は、ikeadm dump ikesa で表示される IKE SA のローカル SPI であることに注意してください。

使用例 4 ファイルからのルールの追加

次のコマンドはファイルからルールを追加します。

example# ikeadm add rule rule_file
使用例 5 事前共有鍵の追加

次のコマンドは事前共有鍵を追加します。

IKEv1:

example# ikeadm
     ikeadm> add preshared { localidtype ip localid local_ip
             remoteidtype ip remoteid remote_ip ike_mode main
             key 1234567890abcdef1234567890abcdef }

IKEv2:

example# ikeadm
     ikeadm> add preshared { label "existing rule label"
key 0x4b6562652e0a }
使用例 6 すべての事前共有鍵のファイルへの保存

次のコマンドは、すべての事前共有鍵をファイルに保存します。

example# ikeadm write preshared target_file
使用例 7 特定のルールの表示

次のコマンドは特定のルールを表示します。

example# ikeadm get rule rule_label
使用例 8 ike.config からの新しいルールの読み込み

次のコマンドは、ike.config ファイルから新しいルールを読み込みます。

example# ikeadm read rules
使用例 9 特権レベルの引き下げ

次のコマンドは、IKEv1 の特権レベルを下げます。

example# ikeadm set priv base
使用例 10 デバッグレベルの表示

次のコマンドは、現在のデバッグレベルを表示します。

example# ikeadm get debug
使用例 11 IKEv1 での統計情報を使用したハードウェアアクセラレータの確認

次の例は、統計情報の末尾に省略可能な行が含まれる様子を示したものです。この行は該当する場合に、IKE が PKCS#11 ライブラリを使用して公開鍵の処理を高速化しているかどうかを示します。

example# ikeadm get stats
Phase 1 SA counts:
Current:  initiator:     0    responder:      0
Total:    initiator:    21   responder:      27
Attempted:initiator:    21   responder:      27
Failed:   initiator:     0   responder:       0
	         initiator fails include 0 time-out(s)
PKCS#11 library linked in from /opt/system/core-osonn/lib/libpkcs11.so
example# 
使用例 12 IKEv1 での証明書キャッシュの表示

次のコマンドは証明書キャッシュを表示し、該当する場合は関連する秘密鍵のステータスも表示します。

example# ikeadm dump certcache
使用例 13 PKCS#11 トークンへのログイン

次のコマンドは、PKCS#11 トークンオブジェクトにログインして秘密鍵のロックを解除する方法を示したものです。

example# ikeadm token login "Sun Metaslot"
Enter PIN for PKCS#11 token:
ikeadm: PKCS#11 operation successful

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

0 以外

エラーが発生した。対応するエラーメッセージが標準エラーに書き込まれます。

属性

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

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

関連項目

ps(1), in.iked(1M), in.ikev2d(1M), ike.config(4), ikev2.config(4), ike.preshared(4), ikev2.preshared(4), attributes(5), ipsec(7P)

Schneier, Bruce 著『Applied Cryptography: Protocols, Algorithms, and Source Code in C』、第 2 版、John Wiley & Sons, New York, NY、1996 年

in.ikedin.ikev2d は大域ゾーンと排他的 IP ゾーンでしか実行できないため、このコマンドは共有 IP ゾーンでは役立ちません。