Go to main content

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

印刷ビューの終了

更新: 2022年7月27日
 
 

ipsecalgs(8)

名前

ipsecalgs - IPsec のプロトコルおよびアルゴリズムテーブルの構成

形式

ipsecalgs 
ipsecalgs -l
ipsecalgs -s
ipsecalgs -a [-P protocol-number | -p protocol-name] -k keylen-list
     [-i inc] [-K default-keylen] -b blocklen-list -n alg-names
     -N alg-number -m mech-name [-I initialization-vector_length]
     [-M MAC-length] [-S length-of-salt] [-F flags] [-f] [-s]
ipsecalgs -P protocol-number -p protocol-name
     [-e exec-mode] [-f] [-s]
ipsecalgs -r -p protocol-name -n alg-name [-s]
ipsecalgs -r -p protocol-name -N alg-number [-s]
ipsecalgs -R -P protocol-number [-s]
ipsecalgs -R -p protocol-name [-s]
ipsecalgs -e exec-mode -P protocol-number [-s]
ipsecalgs -e exec-mode -p protocol-name [-s]

説明

ipsecalgs コマンドは、/etc/inet/ipsecalgs に格納されている IPsec のプロトコルとアルゴリズムを照会および変更するために使用します。ipsecalgs コマンドを使用して次を実行できます。

  • 現在定義されている IPsec のプロトコルとアルゴリズムの一覧表示

  • IPsec のプロトコル定義の変更

  • IPsec のアルゴリズム定義の変更

/etc/inet/ipsecalgs ファイルは絶対に手動で編集しないでください。有効な IPsec のプロトコルおよびアルゴリズムは、ISAKMP DOI に記述されています。See RFC 2407.一般的な意味では、解釈ドメイン (DOI) はデータ形式、ネットワークトラフィック交換タイプ、およびセキュリティー関連情報 (セキュリティーポリシー、暗号化アルゴリズム、暗号化モードなど) の命名規約を定義します。ipsecalgs では、DOI はアルゴリズムとそれらが属するプロトコルの命名および番号設定の規約を定義します。これらの番号は、IANA (Internet Assigned Numbers Authority) によって定義されます。個々のアルゴリズムは 1 つのプロトコルに属します。アルゴリズムの情報には、サポートされている鍵長、ブロックまたは MAC 長、およびそのアルゴリズムに対応する暗号メカニズムの名前が含まれます。これらの情報は、IPsec モジュール ipsecesp(4P) および ipsecah(4P) が IPsec トラフィックに適用できる認証および暗号化アルゴリズムを決定するために使用します。

次のプロトコルが事前に定義されています。

IPSEC_PROTO_ESP

IPsec がデータの機密性を提供するために使用できる暗号化アルゴリズム (変換) を定義します。

IPSEC_PROTO_AH

IPsec が認証を提供するために使用できる認証アルゴリズム (変換) を定義します。

アルゴリズムエントリによって指定されたメカニズム名は、有効な Solaris 暗号化フレームワークのメカニズムと一致する必要があります。cryptoadm(8) コマンドを使用して、利用可能なメカニズムの一覧を取得できます。

アプリケーションは、getipsecalgbyname(3C)getipsecalgbynum(3C)getipsecprotobyname(3C)、および getipsecprotobynum(3C) の関数を使用すると、サポートされているアルゴリズムおよび関連したプロトコルを取得できます。

プロトコルおよびアルゴリズムに対する変更によって、デフォルトでは /etc/inet/ipsecalgs 構成ファイルの内容のみが更新されます。新しい定義を IPsec の処理で使用するためには、–s オプションを使用してカーネルに変更を伝達する必要があります。システム再起動時に ipsecalgs の構成をカーネルと同期する方法については、「ノート」を参照してください。

ipsecalgs を引数なしで呼び出すと、/etc/inet/ipsecalgs で現在定義されているマッピングの一覧が表示されます。対応するカーネルのプロトコルおよびアルゴリズムのテーブルは、–l オプションを使用して取得できます。

オプション

ipsecalgs は次のオプションをサポートします。

–a

–P オプションで指定されたプロトコルのアルゴリズムを追加します。アルゴリズム名は、–n オプションで指定されます。サポートされている鍵長とブロックサイズは、–k–i、および –b オプションで指定されます。

–b blocklen-list

アルゴリズムのブロックまたは MAC 長 (バイト単位) を指定します。複数のブロック長を設定するには、値をコンマで区切ります。

–e exec-mode

暗号化ハードウェアプロバイダが存在しない場合の、指定されたプロトコルに対する暗号化要求の実行モードを指定します。See cryptoadm(8). exec-mode can be one of the following values:

sync

暗号化ハードウェアプロバイダが存在しない場合に、暗号化要求が同期的に処理されます。この実行モードでは、使用可能な暗号化ハードウェアプロバイダが存在しない場合に、待ち時間の短縮につながります。

async

暗号化ハードウェアプロバイダが存在しない場合に、暗号化要求が常に非同期的に処理されます。この実行では、利用可能な暗号化ハードウェアプロバイダが存在しない場合に、マルチ CPU システムのリソース利用率が向上しますが、待ち時間が長くなる可能性があります。

このオプションは、新しいプロトコルを定義するとき、または既存のプロトコルの実行モードを変更するときに指定できます。デフォルトでは、暗号化ハードウェアプロバイダが存在しない場合は sync 実行モードが使用されます。

–f

–a オプションとともに使用すると、同じ名前または番号のエントリがすでに存在する場合に、アルゴリズムまたはプロトコルが強制的に追加されます。

–i inc

有効な鍵長の増分値 (ビット単位) を指定します。このオプションは、–k オプションによってアルゴリズムの有効な鍵長が範囲で指定された場合に使用する必要があります。

–K default-keylen

アルゴリズムのデフォルトの鍵長 (ビット単位) を指定します。–K オプションが指定されない場合は、最小の鍵長が次のように決定されます。

  • サポートされている鍵長が範囲で指定されている場合は、デフォルトの鍵長が最小の鍵長になります。

  • サポートされている鍵長が列挙で指定されている場合は、デフォルトの鍵長が最初に指定された鍵長になります。

–k keylen-list

アルゴリズムでサポートされている鍵長 (ビット単位) を指定します。サポートされている鍵長を列挙または範囲で指定できます。

–i オプションがない場合は、–k によってサポートされている鍵長を列挙で指定します。この場合、keylen-list は次のようにコンマで区切られた 1 つ以上の鍵長の一覧で構成されます。

128,192,256

指定される鍵長は増分的である必要はなく、–K オプションが使用されない場合は、最初に指定された鍵長がそのアルゴリズムのデフォルトの鍵長として使用されます。

–i オプションがある場合は、–k によってそのアルゴリズムでサポートされている鍵長の範囲を指定します。最小の鍵長と最大の鍵長は、次のようにダッシュ文字 (-) で区切られている必要があります。

32-448
–l

カーネルのアルゴリズムテーブルを表示します。

–m mech-name

アルゴリズムに対応する暗号化フレームワークのメカニズムの名前を指定します。暗号化フレームワークのメカニズムについては、cryptoadm(8) のマニュアルページを参照してください。

–N alg-number

アルゴリズム番号を指定します。プロトコルのアルゴリズム番号は一意である必要があります。アルゴリズム番号は IANA によって管理されています。See RFC 2407.

–n alg-names

アルゴリズムの名前を 1 つ以上指定します。–a オプションでアルゴリズムを追加するときは、次のように alg-names に 1 つの文字列または文字列のコンマ区切りリストを含めます。

aes-cbc,aes

–r オプションとともに使用してアルゴリズムを削除するときは、alg-names に有効なアルゴリズム名のいずれかを含めます。

–P protocol-number

protocol-number に指定した番号のプロトコルを、–p オプションに指定した名前で追加します。このオプションは、–a および –R オプションと組み合わせて IPsec のプロトコルを指定するときにも使用します。プロトコル番号は IANA によって管理されています。See RFC 2407.

–p protocol-name

IPsec プロトコルの名前を指定します。

–R

アルゴリズムテーブルから IPsec プロトコルを削除します。プロトコルは、–P オプションを使用して番号で指定することも、–p オプションを使用して名前で指定することもできます。このプロトコルに関連付けられたアルゴリズムも削除されます。

–r

アルゴリズムに対するマッピングを削除します。アルゴリズムは、–N オプションを使用すると、アルゴリズム番号で指定できます。

–s

カーネルを /etc/inet/ipsecalgs の内容と同期します。/etc/inet/ipsecalgs の内容は常に更新されますが、–s を使用しないかぎり新しい情報はカーネルに渡されません。システム再起動時に ipsecalgs の構成をカーネルと同期する方法については、「ノート」を参照してください。

次のオプションを使用して、省略可能なパラメータを構成できます。現在のところ、これらは 1 つの操作で暗号化と認証を提供する複合モードのアルゴリズムに対してのみ使用されます。

–I initialization-vector_length

初期化ベクトル (IV) の長さ (バイト単位)。デフォルトの IV 長はブロック長と同じです。

–M MAC-length

複合モードのアルゴリズムの MAC または ICV の長さ (バイト単位)。

–S length-of-salt

アルゴリズムに必要なソルトのバイト数。ソルトは、鍵管理メカニズムによって提供される必要があります。

–F flags

Algorithm flags.これらは、カーネル内でのセキュリティータスク (特に認証) の処理方法に影響を与えます。これらは、ipseckey(8) および ipsecconf(8) でも使用されます。フラグは、トークンのコンマ区切りリストとして指定できます。次の例を参照してください。次のトークンがサポートされています。

COUNTERMODE

このアルゴリズムはカウンタモードを使用します。

COMBINED

このアルゴリズムは暗号化と認証を同じ操作で提供します。

CCM

この暗号化フレームワークのメカニズムには crypto_ccm_params_t 構造体が必要です。

GMAC

この暗号化フレームワークのメカニズムには crypto_gmac_params_t 構造体が必要です。

GCM

この暗号化フレームワークのメカニズムには crypto_gcm_params_t 構造体が必要です。

CBC

このフラグは、アルゴリズムが暗号ブロック連鎖を使用することを示します。この暗号化フレームワークのメカニズムにはパラメータ構造体は必要ありません。これはデフォルトでもあり、このフラグは省略できます。

アルゴリズムのフラグは、–l オプションで表示できます。

使用例 1 IPsec 暗号化のプロトコルを追加する

次の例は、IPsec 暗号化のプロトコルを追加する方法を示しています。

example# ipsecalgs -P 3 -p "IPSEC_PROTO_ESP"
使用例 2 Blowfish アルゴリズムを追加する

次の理論的な例では、説明のために、サポート対象外の Blowfish アルゴリズムを追加する方法を示します。

example# ipsecalgs -a -P 3 -k 32-488 -K 128 -i 8 -n "blowfish" \
  -b 8 -N 7 -m CKM_BF_CBC
使用例 3 カーネルのアルゴリズムテーブルを更新する

次の例は、カーネルのアルゴリズムテーブルを現在定義されているプロトコルおよびアルゴリズム定義で更新します。

example# svcadm refresh ipsecalgs
使用例 4 AES Galois/Counter Mode (GCM) アルゴリズムを追加する

次のコマンドによって、このアルゴリズムが追加されます。

example# ipsecalgs -a -P3 -k 128-256 -K 128 -i 64 -N 20 -b 16 \
-n "aes-gcm16,aes-gcm" -m CKM_AES_GCM -M 16 -I 8 -S 4 \
     -F GCM,COMBINED,COUNTER

ファイル

/etc/inet/ipsecalgs

構成された IPsec プロトコルおよびアルゴリズム定義を含むファイル。このファイルは手動で編集しないでください。

属性

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

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

関連項目

getipsecalgbyname(3C), getipsecprotobyname(3C), ipsecah(4P), ipsecesp(4P), ike.config(5), attributes(7), smf(7), cryptoadm(8), ipsecconf(8), ipseckey(8), svcadm(8)

Piper, Derrell.RFC 2407, The Internet IP Security Domain of Interpretation for ISAKMP.Network Working Group.November 1998.

https://tools.ietf.org/html/rfc2407

プロトコルまたはアルゴリズム定義が削除または変更されると、それらの定義に依存するサービスが使用不可能になることがあります。たとえば、IPSEC_PROTO_ESP プロトコルが削除されると、IPsec でパケットを暗号化および復号化できません。

システム起動時の ipsecalgs の構成とカーネルとの同期は、次の smf(7) サービスによって提供されます。

svc:/network/ipsec/ipsecalgs:default

IPsec のサービスは次のように提供されます。

svc:/network/ipsec/policy:default (enabled)
svc:/network/ipsec/ipsecalgs:default (enabled)
svc:/network/ipsec/manual-key:default (disabled)
svc:/network/ipsec/ike:default (disabled)

無効な状態で提供されるサービスは、有効にする前にシステム管理者がそれらの構成ファイルを作成する必要があるため、そのような方法で提供されます。ipseckey(8) および ike.config(5) を参照してください。policy サービスのデフォルトポリシーでは、すべてのトラフィックが IPsec 保護なしで通過できます。See ipsecconf(8).

正しい管理手順としては、各サービスの構成ファイルを作成してから、次の例に示すように svcadm(8) を使用して各サービスを有効にします。

example# svcadm enable ipsecalgs

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

ipsecalgs の構成を変更した場合は、次のようにして新しい構成を再同期するべきです。

example# svcadm refresh ipsecalgs

有効化、無効化、リフレッシュ、再起動要求など、このサービスに対する管理アクションは、svcadm(8) を使用して実行できます。次に示す承認を割り当てられたユーザーは、これらの操作を実行できます。

solaris.smf.manage.ipsec

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

ipsecalgs smf(7) サービスにはユーザーが構成できるプロパティーはありません。

smf(7) フレームワークは、サービス固有のログファイルにエラーを記録します。logfile プロパティーを調べるには、次のいずれかのコマンドを使用します。

example# svcs -l ipsecalgs
example# svcprop ipsecalgs
example# svccfg -s ipsecalgs listprop

このコマンドは、動作するために sys_ip_config 特権が必要であり、したがって大域ゾーンおよび排他的 IP ゾーンで実行できます。すべての共有 IP ゾーンは同じ利用可能なアルゴリズムのセットを共有しますが、ipsecconf(8) を使用して、さまざまな共有 IP ゾーンで異なるアルゴリズムを使用するシステムポリシーを設定できます。すべての排他的 IP ゾーンには独自のアルゴリズムのセットがあります。