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 に記述されています。『RFC 2407』を参照してください。一般的な意味では、解釈ドメイン (DOI) はデータ形式、ネットワークトラフィック交換タイプ、およびセキュリティー関連情報 (セキュリティーポリシー、暗号化アルゴリズム、暗号化モードなど) の命名規約を定義します。ipsecalgs では、DOI はアルゴリズムとそれらが属するプロトコルの命名および番号設定の規約を定義します。これらの番号は、IANA (Internet Assigned Numbers Authority) によって定義されます。個々のアルゴリズムは 1 つのプロトコルに属します。アルゴリズムの情報には、サポートされている鍵長、ブロックまたは MAC 長、およびそのアルゴリズムに対応する暗号メカニズムの名前が含まれます。これらの情報は、IPsec モジュール ipsecesp(7P) および ipsecah(7P) が IPsec トラフィックに適用できる認証および暗号化アルゴリズムを決定するために使用します。
次のプロトコルが事前に定義されています。
IPsec がデータの機密性を提供するために使用できる暗号化アルゴリズム (変換) を定義します。
IPsec が認証を提供するために使用できる認証アルゴリズム (変換) を定義します。
アルゴリズムエントリによって指定されたメカニズム名は、有効な Solaris 暗号化フレームワークのメカニズムと一致する必要があります。cryptoadm(1M) コマンドを使用して、利用可能なメカニズムの一覧を取得できます。
アプリケーションは、getipsecalgbyname(3NSL)、getipsecalgbynum(3NSL)、getipsecprotobyname(3NSL)、および getipsecprotobynum(3NSL) の各関数を使用して、サポートされているアルゴリズムとそれらに関連するプロトコルを取得できます。
プロトコルおよびアルゴリズムに対する変更によって、デフォルトでは /etc/inet/ipsecalgs 構成ファイルの内容のみが更新されます。新しい定義を IPsec の処理で使用するためには、–s オプションを使用してカーネルに変更を伝達する必要があります。システム再起動時に ipsecalgs の構成をカーネルと同期する方法については、「注意事項」を参照してください。
ipsecalgs を引数なしで呼び出すと、/etc/inet/ipsecalgs で現在定義されているマッピングの一覧が表示されます。対応するカーネルのプロトコルおよびアルゴリズムのテーブルは、–l オプションを使用して取得できます。
ipsecalgs は次のオプションをサポートします。
–P オプションで指定されたプロトコルのアルゴリズムを追加します。アルゴリズム名は、–n オプションで指定されます。サポートされている鍵長とブロックサイズは、–k、–i、および –b オプションで指定されます。
アルゴリズムのブロックまたは MAC 長 (バイト単位) を指定します。複数のブロック長を設定するには、値をコンマで区切ります。
暗号化ハードウェアプロバイダが存在しない場合の、指定されたプロトコルに対する暗号化要求の実行モードを指定します。cryptoadm(1M) を参照してください。exec-mode には次のいずれかの値を指定できます。
暗号化ハードウェアプロバイダが存在しない場合に、暗号化要求が同期的に処理されます。この実行モードでは、使用可能な暗号化ハードウェアプロバイダが存在しない場合に、待ち時間の短縮につながります。
暗号化ハードウェアプロバイダが存在しない場合に、暗号化要求が常に非同期的に処理されます。この実行では、利用可能な暗号化ハードウェアプロバイダが存在しない場合に、マルチ CPU システムのリソース利用率が向上しますが、待ち時間が長くなる可能性があります。
このオプションは、新しいプロトコルを定義するとき、または既存のプロトコルの実行モードを変更するときに指定できます。デフォルトでは、暗号化ハードウェアプロバイダが存在しない場合は sync 実行モードが使用されます。
–a オプションとともに使用すると、同じ名前または番号のエントリがすでに存在する場合に、アルゴリズムまたはプロトコルが強制的に追加されます。
有効な鍵長の増分値 (ビット単位) を指定します。このオプションは、–k オプションによってアルゴリズムの有効な鍵長が範囲で指定された場合に使用する必要があります。
アルゴリズムのデフォルトの鍵長 (ビット単位) を指定します。–K オプションが指定されない場合は、最小の鍵長が次のように決定されます。
サポートされている鍵長が範囲で指定されている場合は、デフォルトの鍵長が最小の鍵長になります。
サポートされている鍵長が列挙で指定されている場合は、デフォルトの鍵長が最初に指定された鍵長になります。
アルゴリズムでサポートされている鍵長 (ビット単位) を指定します。サポートされている鍵長を列挙または範囲で指定できます。
–i オプションがない場合は、–k によってサポートされている鍵長を列挙で指定します。この場合、keylen-list は次のようにコンマで区切られた 1 つ以上の鍵長の一覧で構成されます。
128,192,256
指定される鍵長は増分的である必要はなく、–K オプションが使用されない場合は、最初に指定された鍵長がそのアルゴリズムのデフォルトの鍵長として使用されます。
–i オプションがある場合は、–k によってそのアルゴリズムでサポートされている鍵長の範囲を指定します。最小の鍵長と最大の鍵長は、次のようにダッシュ文字 (-) で区切られている必要があります。
32-448
カーネルのアルゴリズムテーブルを表示します。
アルゴリズムに対応する暗号化フレームワークのメカニズムの名前を指定します。暗号化フレームワークのメカニズムについては、cryptoadm(1M) のマニュアルページを参照してください。
アルゴリズム番号を指定します。プロトコルのアルゴリズム番号は一意である必要があります。アルゴリズム番号は IANA によって管理されています。『RFC 2407』を参照してください。
アルゴリズムの名前を 1 つ以上指定します。–a オプションでアルゴリズムを追加するときは、次のように alg-names に 1 つの文字列または文字列のコンマ区切りリストを含めます。
des-cbs,des
–r オプションとともに使用してアルゴリズムを削除するときは、alg-names に有効なアルゴリズム名のいずれかを含めます。
protocol-number に指定した番号のプロトコルを、–p オプションに指定した名前で追加します。このオプションは、–a および –R オプションと組み合わせて IPsec のプロトコルを指定するときにも使用します。プロトコル番号は IANA によって管理されています。『RFC 2407』を参照してください。
IPsec プロトコルの名前を指定します。
アルゴリズムテーブルから IPsec プロトコルを削除します。プロトコルは、–P オプションを使用して番号で指定することも、–p オプションを使用して名前で指定することもできます。このプロトコルに関連付けられたアルゴリズムも削除されます。
アルゴリズムに対するマッピングを削除します。アルゴリズムは、–N オプションを使用してアルゴリズム番号で指定することも、–A オプションを使用してアルゴリズム名で指定することもできます。
カーネルを /etc/inet/ipsecalgs の内容と同期します。/etc/inet/ipsecalgs の内容は常に更新されますが、–s を使用しないかぎり新しい情報はカーネルに渡されません。システム再起動時に ipsecalgs の構成をカーネルと同期する方法については、「注意事項」を参照してください。
次のオプションを使用して、省略可能なパラメータを構成できます。現在のところ、これらは 1 つの操作で暗号化と認証を提供する複合モードのアルゴリズムに対してのみ使用されます。
初期化ベクトル (IV) の長さ (バイト単位)。デフォルトの IV 長はブロック長と同じです。
複合モードのアルゴリズムの MAC または ICV の長さ (バイト単位)。
アルゴリズムに必要なソルトのバイト数。ソルトは、鍵管理メカニズムによって提供される必要があります。
アルゴリズムのフラグ。これらは、カーネル内でのセキュリティータスク (特に認証) の処理方法に影響を与えます。これらは、ipseckey(1M) および ipsecconf(1M) でも使用されます。フラグは、トークンのコンマ区切りリストとして指定できます。次の例を参照してください。次のトークンがサポートされています。
このアルゴリズムはカウンタモードを使用します。
このアルゴリズムは暗号化と認証を同じ操作で提供します。
この暗号化フレームワークのメカニズムには CK_AES_CCM_PARAMS 構造体が必要です。
この暗号化フレームワークのメカニズムには CK_AES_GMAC_PARAMS 構造体が必要です。
この暗号化フレームワークのメカニズムには CK_AES_GCM_PARAMS 構造体が必要です。
このフラグは、アルゴリズムが暗号ブロック連鎖を使用することを示します。この暗号化フレームワークのメカニズムにはパラメータ構造体は必要ありません。これはデフォルトでもあり、このフラグは省略できます。
アルゴリズムのフラグは、–l オプションで表示できます。
次の例は、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
構成された IPsec プロトコルおよびアルゴリズム定義を含むファイル。このファイルは手動で編集しないでください。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
cryptoadm(1M), ipsecconf(1M), ipseckey(1M), svcadm(1M), getipsecalgbyname(3NSL), getipsecprotobyname(3NSL), ike.config(4), attributes(5), smf(5), ipsecah(7P), ipsecesp(7P)
Piper、Derrell 著、『RFC 2407, The Internet IP Security Domain of Interpretation for ISAKMP』、Network Working Group 発行、1998 年 11 月
プロトコルまたはアルゴリズム定義が削除または変更されると、それらの定義に依存するサービスが使用不可能になることがあります。たとえば、IPSEC_PROTO_ESP プロトコルが削除されると、IPsec でパケットを暗号化および復号化できません。
システム起動時の ipsecalgs の構成とカーネルとの同期は、次の smf(5) サービスによって提供されます。
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(1M) および ike.config(4) を参照してください。policy サービスのデフォルトポリシーでは、すべてのトラフィックが IPsec 保護なしで通過できます。ipsecconf(1M) を参照してください。
正しい管理手順では、各サービスの構成ファイルを作成してから、次の例に示すように svcadm(1M) を使用して各サービスを有効にします。
example# svcadm enable ipsecalgs
サービスステータスを照会するには、svcs(1) コマンドを使用します。
ipsecalgs の構成を変更した場合は、次のようにして新しい構成を再同期するべきです。
example# svcadm refresh ipsecalgs
有効化、無効化、リフレッシュ、再起動要求など、このサービスに対する管理操作は、svcadm(1M) を使用して実行できます。次に示す承認を割り当てられたユーザーは、これらの操作を実行できます。
solaris.smf.manage.ipsec
auths(1)、user_attr(4)、rbac(5) を参照してください。
ipsecalgs smf(5) サービスにはユーザーが構成できるプロパティーはありません。
smf(5) フレームワークは、サービス固有のログファイルにエラーを記録します。logfile プロパティーを調べるには、次のいずれかのコマンドを使用します。
example# svcs -l ipsecalgs example# svcprop ipsecalgs example# svccfg -s ipsecalgs listprop
このコマンドは、動作するために sys_ip_config 権限が必要であり、したがって大域ゾーンおよび排他的 IP ゾーンで実行できます。すべての共有 IP ゾーンは同じ利用可能なアルゴリズムのセットを共有しますが、ipsecconf(1M) を使用して、さまざまな共有 IP ゾーンで異なるアルゴリズムを使用するシステムポリシーを設定できます。すべての排他的 IP ゾーンには独自のアルゴリズムのセットがあります。