IP セキュリティーアーキテクチャー (IPsec) は、IPv4 および IPv6 ネットワークパケットで IP データグラムを暗号化して保護します。
この章では、次の内容について説明します。
IPsec をネットワークに実装する方法については、第 20 章IPsec の構成 (手順)を参照してください。参考情報については、第 21 章IP セキュリティーアーキテクチャー (リファレンス)を参照してください。
Solaris 10 4/09: このリリース以降、サービス管理機能 (SMF) は IPsec を一連のサービスとして管理します。
デフォルトでは、システムの起動時に次の 2 つの IPsec サービスが有効になります。
svc:/network/ipsec/policy:default
svc:/network/ipsec/ipsecalgs:default
デフォルトでは、システムの起動時に鍵管理サービスは無効になっています。
svc:/network/ipsec/manual-key:default
svc:/network/ipsec/ike:default
SMF の下で IPsec ポリシーを有効にするには、次の手順を実行します。
ipsecinit.conf ファイルに IPsec ポリシーエントリを追加します。
Internet Key Exchange (IKE) を構成するか、鍵を手動で構成します。
IPsec ポリシーサービスを更新します。
鍵管理サービスを有効にします。
SMF の詳細については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。smf(5) および svcadm(1M) のマニュアルページも参照してください。
このリリース以降では、ipsecconf コマンドと ipseckey コマンドに -c オプションが追加されており、それぞれの構成ファイルの構文をチェックできます。また、IPsec と IKE を管理するための Network IPsec Management 権利プロファイルが用意されています。
Solaris 10 7/07: このリリース以降、IPsec はトンネルモードのトンネルを完全に実装し、トンネルをサポートするユーティリティーは変更されます。
IPsec は、仮想プライベートネットワーク (VPN) 用のトンネルモードのトンネルを実装します。トンネルモードでの IPsec は、単一の NAT の背後にある複数のクライアントをサポートします。トンネルモードでの IPsec は、ほかのベンダーによって実装された IP 内 IP トンネルと相互運用できます。IPsec は、引き続きトランスポートモードのトンネルをサポートするので、以前の Solaris リリースとの互換性を持っています。
トンネルを作成するための構文が簡素化されます。IPsec ポリシーを管理するために、ipsecconf コマンドが拡張されました。IPsec ポリシーの管理に ifconfig コマンドは推奨されなくなりました。
このリリース以降、/etc/ipnodes ファイルは削除されます。ネットワークの IPv6 アドレスを構成するには、/etc/hosts ファイルを使用してください。
Solaris 10 1/06: このリリース以降では、IKE は完全に NAT-Traversal サポート (RFC 3947 とRFC 3948 を参照) に準拠します。IKE 操作は暗号化フレームワークから PKCS #11 ライブラリを使用し、パフォーマンスを向上させます。
この暗号化フレームワークは、メタスロットを使用するアプリケーションにソフトトークンキーストアを提供します。IKE がメタスロットを使用するとき、キーを格納する場所として、ディスク、接続したボード、またはソフトトークンキーストアを選択できます。
ソフトトークンキーストアを使用する方法については、cryptoadm(1M) のマニュアルページを参照してください。
Solaris の新機能の完全な一覧や各 Solaris リリースの説明については、『Oracle Solaris 10 9/10 の新機能』を参照してください。
IPsec は、パケットの認証または暗号化、もしくはこの両方を実行することで、IP パケットを保護します。IPsec は、アプリケーション層よりかなり下の IP モジュール内で実行されます。したがって、インターネットアプリケーションは、IPsec を使用するために自分自身を設定することなく、IPsec を利用できます。正しく使用すれば、IPsec は、ネットワークトラフィックの保護に有効なツールとなります。
IPsec による保護では、次の 5 つのコンポーネントが主に使用されます。
セキュリティープロトコル – IP データグラムの保護機構です。認証ヘッダー (AH) は、IP パケットに署名を行い、完全性を保証します。データグラムの内容は暗号化されませんが、パケットの内容が変更されていないことが受信側に保証されます。また、パケットが送信側によって送られたことも保証されます。カプセル化セキュリティーペイロード (ESP)は、IP データを暗号化し、パケット転送中に内容が分からないようにします。ESP は、認証アルゴリズムオプションによってデータの完全性も保証します。
セキュリティーアソシエーションデータベース (SADB) – IP 宛先アドレスと索引番号にセキュリティープロトコルを関連付けるデータベースです。この索引番号は、セキュリティーパラメータインデックス (SPI)と呼ばれます。これらの 3 つの要素 (セキュリティープロトコル、宛先アドレスおよび SPI) は、正当な IPsec パケットを一意に識別します。セキュリティーアソシエーションデータベースにより、パケットの宛先に届いた保護対象のパケットは確実に受信側に認識されます。また、受信側は、このデータベースの情報を使用して、通信を復号化し、パケットが変更されていないことを確認し、パケットを再度組み立て、そのパケットを最終的な宛先に届けます。
鍵管理 – 暗号化アルゴリズムおよび SPI 用のキーの生成と配布です。
セキュリティーポリシーデータベース (SPD) – パケットに適用される保護レベルを指定するデータベースです。SPD は、IP トラフィックをフィルタリングし、パケットの処理方法を決定します。パケットは破棄したり、問題ない場合は、通過させたりできます。また、IPsec で保護することも可能です。出力パケットの場合、SPD と SADB が適用する保護レベルを決定します。入力パケットの場合、パケットの保護レベルを許容できるかどうかの決定に SPD が役立ちます。パケットが IPsec によって保護されている場合は、パケットを復号化し、確認したあとに、SPD が参照されます。
IPsec は、セキュリティー機構を IP 宛先アドレスに転送される IP データグラムに適用します。受信側ユーザーは、SADB の情報を使用して、到着パケットが正当なことを確認し、それらを復号化します。アプリケーションで IPsec を呼び出すと、ソケット単位レベルでも IP データグラムにセキュリティー機構が適用されます。
ソケットの動きはポートとは異なりますので注意してください。
ソケットごとの SA によって、SPD 内の対応するポートエントリが無効になります。
また、ポートのソケットが接続され、そのあとで IPsec ポリシーがそのポートに適用された場合、IPsec は、そのソケットを使用するトラフィックを保護しません。
当然、IPsec ポリシーがポートに適用された「あとに」ポート上で開かれたソケットは、IPsec ポリシーの保護対象となります。
インターネットエンジニアリングタスクフォース (IETF) は、IP 層のセキュリティーアーキテクチャーを説明するいくつかの RFC (Requests for Comments) を公表しています。すべての RFC の著作権は、インターネット協会が有しています。RFC へのリンクについては、http://www.ietf.org/を参照してください。次の RFC リストは、比較的一般的な IP セキュリティーの参考文献です。
RFC 2411、『IP Security Document Roadmap』、1998 年 11 月
RFC 2401、『Security Architecture for the Internet Protocol』、1998 年 11 月
RFC 2402、『IP Authentication Header』、1998 年 11 月
RFC 2406、『IP Encapsulating Security Payload (ESP)』、1998 年 11 月
RFC 2408、『Internet Security Association and Key Management Protocol (ISAKMP)』、1998 年 11 月
RFC 2407、『The Internet IP Security Domain of Interpretation for ISAKMP』、1998 年 11 月
RFC 2409、『The Internet Key Exchange (IKE)』、1998 年 11 月
RFC 3554、『On the Use of Stream Control Transmission Protocol (SCTP) with IPsec』、2003 年 7 月、[Solaris 10 リリースでは実装せず]
IPsec RFC は、IPsec をシステムに実装する際に分かっていると便利な用語を多数定義しています。次の例は、IPsec の用語、それらの一般的に使用されている用語を示し、各用語を定義しています。キーのネゴシエーションで使用する用語の一覧は、表 22–1 を参照してください。
表 19–1 IPsec の用語、略語、および使用方法
IPsec の用語 |
略語 |
定義 |
---|---|---|
セキュリティーアソシエーション |
SA |
ネットワーク上の 2 つのノード間の一意の接続。接続は、 セキュリティープロトコル、セキュリティーパラメータインデックス、および IP 宛先の 3 つで定義されます。IP 宛先は、IP アドレスまたはソケットのどちらでもかまいません。 |
セキュリティーアソシエーションデータベース |
SADB |
アクティブなセキュリティーアソシエーションをすべて含むデータベース。 |
セキュリティーパラメータインデックス |
SPI |
セキュリティーアソシエーションの索引値。SPI は、同じ IP 宛先およびセキュリティープロトコルを持つ SA を区別する 32 ビットの値です。 |
SPD |
出力パケットと入力パケットの保護レベルが指定どおりかを判断するデータベース。 |
|
キー交換 |
|
非対称暗号化アルゴリズムのキーを生成する処理。主な手法には RSA プロトコルと Diffie-Hellman プロトコルがあります。 |
Diffie-Hellman プロトコル |
DH |
キー生成とキー認証に関るキー交換プロトコル。しばしば「認証されたキー交換」と呼ばれます。 |
RSA プロトコル |
RSA |
キーの生成とキーの配布に関係するキー交換プロトコル。このプロトコル名は、作成者の Rivest、Shamir、Adleman の三氏に因んでいます。 |
インターネットセキュリティーアソシエーションおよび鍵管理プロトコル |
ISAKMP |
SA 属性の形式を設定し、SA のネゴシエーション、変更、削除を行うための共通フレームワーク。ISAKMP は、IPsec SA 処理の IETF 標準です。 |
図 19–1 は、IPsec が出力パケットで呼び出されたときに、IP アドレスを持つパケットが IP データグラムの一部としてどのように処理されるかを示しています。フロー図は、認証ヘッダー (AH) とカプセル化されたセキュリティーペイロード (ESP) エンティティーがどこでパケットに適用されるかを示しています。これらのエンティティーの適用方法とアルゴリズムの選択方法については、これ以降の節で説明します。
図 19–2 は、IPsec 入力プロセスを示しています。
IPsec の セキュリティーアソシエーション (SA) は、通信するホストが認識するセキュリティープロパティーを示します。1 つの SA は、1 方向のデータを保護します。つまり、1 つのホストかグループ (マルチキャスト) アドレスのどちらかです。大部分の通信がピアツーピアかクライアントサーバーなので、両方向のトラフィックの安全性を確保するために 2 つの SA が必要です。
次の 3 つの要素は、IPsec SA を一意に識別します。
セキュリティープロトコル (AH または ESP)
宛先 IP アドレス
任意の 32 ビット値の SPI は、AH パケットまたは ESP パケットで転送されます。AH および ESP によって保護される範囲については、 ipsecah(7P) と ipsecesp(7P) のマニュアルページを参照してください。完全性チェックサム値を使用して、パケットを認証します。認証が失敗すると、パケットがドロップされます。
SA は、セキュリティーアソシエーションデータベース (SADB) に格納されます。ソケットベースの管理エンジン PF_KEY インタフェースにより、特権を持つアプリケーションでそのデータベースを管理できます。たとえば、IKE アプリケーションと ipseckeys コマンドは PF_KEY ソケットインタフェースを使用します。
IPsec SADB のより完全な説明については、「IPsec のセキュリティーアソシエーションデータベース」を参照してください。
SADB の管理については、pf_key(7P) のマニュアルページを参照してください。
セキュリティーアソシエーション (SA) は、認証および暗号化で使用するキー作成素材を必要とします。この「キーを作成する素材」の管理を「鍵管理」と呼びます。IKE (インターネットキー交換) プロトコルにより、鍵管理が自動的に行われます。また、ipseckey コマンドを指定して、鍵管理を手動で行うこともできます。
IPv4 と IPv6 パケットの SA は、どちらの鍵管理方法も使用できます。手動で鍵管理を行う決定的な理由がない限り、自動の鍵管理をお勧めします。たとえば、Solaris システム以外のシステムと相互運用する場合などは、手動の鍵管理が必要な場合もあります。
現在のリリースでは、SMF は次の IPsec 鍵管理サービスを提供します。
svc:/network/ipsec/ike:default サービス – 自動鍵管理のための SMF サービスです。 ike サービスは in.iked デーモンを実行して自動鍵管理を提供します。IKE については、第 22 章インターネットキー交換 (概要)を参照してください。in.iked デーモンの詳細については、in.iked(1M) のマニュアルページを参照してください。ike サービスについては、「サービス管理機能」を参照してください。
svc:/network/ipsec/manual-key:default サービス – 手動での鍵管理のための SMF サービスです。manual-key サービスは ipseckey コマンドを各種オプションで実行して、鍵を手動で管理します。ipseckey コマンドについては、「IPsec キー生成ユーティリティー」を参照してください。ipseckey コマンドオプションの詳細な説明については、ipseckey(1M) のマニュアルページを参照してください。
Solaris 10 4/09 リリースより前のリリースでは、in.iked コマンドと ipseckey コマンドで鍵情報を管理します。
in.iked デーモンは、自動的な鍵管理を提供します。IKE については、第 22 章インターネットキー交換 (概要)を参照してください。in.iked デーモンの詳細については、in.iked(1M) のマニュアルページを参照してください。
ipseckey コマンドを使用すると、手動でキーを管理できます。このコマンドの説明については、「IPsec キー生成ユーティリティー」を参照してください。ipseckey コマンドオプションの詳細な説明については、ipseckey(1M) のマニュアルページを参照してください。
IPsec は、データを保護するために次の 2 つのセキュリティープロトコルを提供しています。
認証ヘッダー (AH)
カプセル化セキュリティーペイロード (ESP)
AH は、認証アルゴリズムでデータを保護します。ESP は、暗号化アルゴリズムでデータを保護します。オプションとして、ESP は、認証アルゴリズムでデータを保護します。アルゴリズムの各実装は、「機構」と呼ばれます。
認証ヘッダーは、IP データグラムに対するデータ認証、強力な完全性、再送保護を供給します。AH では大部分の IP データグラムを保護します。次の図に示されているように、AH は IP ヘッダーとトランスポートヘッダーの間に挿入されます。
トランスポートヘッダーは、TCP、UDP、SCTP、または ICMP のいずれかです。トンネルを使用している場合は、トランスポートヘッダーがこれ以外の IP ヘッダーである場合もあります。
カプセル化セキュリティーペイロード (ESP)モジュールは、ESP がカプセル化した対象の機密性を守ります。また、AH が提供するサービスも提供します。ただし、保護される対象は、データグラムのうち ESP がカプセル化した部分だけです。ESP は、保護されたパケットの完全性を保証するオプションの認証サービスを提供します。ESP は暗号化対応技術を使用するため、ESP を提供するシステムは輸出入管理法の対象となります。
ESP はデータをカプセル化します。したがって、次の図に示されているように、ESP が保護するのはデータグラム内の EPS の開始点以降のデータのみです。
TCP パケットでは、ESP は TCP ヘッダーとそのデータだけをカプセル化します。パケットが IP 内 IP データグラムの場合、ESP は内部 IP データグラムを保護します。ソケット別ポリシーでは、「自己カプセル化」ができるため、必要に応じて ESP では IP オプションをカプセル化できます。
自己カプセル化が設定されている場合は、IP 内 IP データグラムを構築するために IP ヘッダーのコピーが作成されます。たとえば、TCP ソケットに自己カプセル化が設定されていない場合、データグラムは次の形式で送信されます。
[ IP(a -> b) options + TCP + data ] |
TCP ソケットに自己カプセル化が設定されている場合、データグラムは次の形式で送信されます。
[ IP(a -> b) + ESP [ IP(a -> b) options + TCP + data ] ] |
さらに詳しくは、「IPsec のトランスポートモードとトンネルモード」を参照してください。
次の表では、AH と ESP が提供する保護を比較しています。
表 19–2 IPsec で AH と ESP が提供する保護
IPsec セキュリティープロトコルは、認証と暗号化という 2 種類のアルゴリズムを提供しています。AH モジュールは、認証アルゴリズムを使用します。ESP モジュールは、暗号化アルゴリズムと認証アルゴリズムを使用します。ipsecalgs コマンドを使用すると、システムのアルゴリズムとプロパティーの一覧を取得できます。詳細は、ipsecalgs(1M) のマニュアルページを参照してください。getipsecalgbyname(3NSL) のマニュアルページで説明されている機能を使用して、アルゴリズムのプロパティーを検索することもできます。
Solaris システムの IPsec は、Solaris 暗号フレームワークを使用して、アルゴリズムにアクセスします。このフレームワークは、その他のサービスに加えて、アルゴリズムの中央リポジトリを提供します。このフレームワークによって、IPsec は、高性能な暗号ハードウェアアクセラレータを利用できます。このフレームワークは、リソース制御機能も提供しています。たとえば、このフレームワークを使用すると、カーネルでの暗号処理に費やされる CPU 時間を制限できます。
詳細については、次を参照してください。
『Solaris のシステム管理 (セキュリティサービス)』の第 13 章「Solaris の暗号化フレームワーク (概要)」
『Oracle Solaris セキュリティーサービス開発ガイド』の第 8 章「Oracle Solaris 暗号化フレームワークの紹介」
認証アルゴリズムは、データとキーを基に整合性チェックサムの値、つまり、「ダイジェスト」を生成します。AH モジュールは、認証アルゴリズムを使用します。ESP モジュールも、認証アルゴリズムを使用します。
暗号化アルゴリズムは、キーでデータを暗号化します。 IPsec の ESP モジュールは、暗号化アルゴリズムを使用します。暗号化アルゴリズムでは、「ブロックサイズ」ごとにデータを処理します。
デフォルトで使用される暗号化アルゴリズムは、Solaris 10 OS のリリースによって異なります。
Solaris 10 7/07 リリース以降では、システムに Solaris Encryption Kit を追加しないでください。このキットはシステムにおける暗号化のパッチレベルを低下させます。このキットはシステム上の暗号化と互換性がありません。
Solaris 10 7/07 リリース以降では、Solaris Encryption Kit の内容は Solaris インストールメディアによってインストールされます。このリリースでは、SHA2 認証アルゴリズム sha256、sha384、および sha512 が追加されています。SHA2 の実装は RFC 4868 仕様に適合しています。このリリースでは、Diffie-Hellman グループ 2048 ビット (グループ 14)、3072 ビット (グループ 15)、および 4096 ビット (グループ 16) も追加されています。ただし、CoolThreads テクノロジを備えた Sun システムでは、2048 ビットグループだけが高速化されます。
Solaris 10 7/07 より前のリリースでは、Solaris インストールメディアによって基礎アルゴリズムが提供され、ユーザーは Solaris Encryption Kit からより強固なアルゴリズムを追加できます。
デフォルトでは、DES-CBC、3DES-CBC、AES-CBC、および Blowfish-CBC アルゴリズムがインストールされます。AES-CBC および Blowfish-CBC アルゴリズムがサポートするキーの大きさは、128 ビットに限られています。
Solaris Encryption Kit をインストールすると、128 ビットより大きいキーをサポートする AES-CBC および Blowfish-CBC アルゴリズムを IPsec で使用できます。ただし、米国以外では、すべての暗号化アルゴリズムを使用できるとは限りません。このキットは、Solaris 10 インストールボックスには含まれていない別の CD から入手できます。『Solaris 10 Encryption Kit Installation Guide』に、このキットのインストール方法が説明されています。詳細は、Sun ダウンロード Web サイトを参照してください。キットをダウンロードするには、「Downloads A-Z」タブをクリックし、文字「S」をクリックします。Solaris 10 Encryption Kit は最初の 20 エントリの中にあります。
IPsec の保護ポリシーは、どのセキュリティー機構も使用できます。IPsec ポリシーは、次のレベルで適用できます。
システム規模レベル
ソケット単位レベル
IPsec は、システム共通ポリシーを出力データグラムと入力データグラムに適用します。出力データグラムは、保護付きまたは保護なしで送信されます。保護が適用されると、特定アルゴリズムか汎用アルゴリズムのどちらかになります。システムで認識されるデータがあるため、出力データグラムにはその他の規則も適用できます。入力データグラムの処理は、受理されるか拒絶されるかのどちらかです。入力データグラムの受理か拒絶を決定する基準はいくつかありますが、場合によってはその基準が重複したり競合することがあります。競合の解決に当たっては、どの規則の構文解析を最初に行うかが決定されます。ポリシーのエントリによって、そのトラフィックがすべてのほかのポリシーを省略すると指示されている場合を除いて、トラフィックは自動的に受理されます。
データグラムを保護する通常のポリシーを省略することもできます。それには、システム規模ポリシーに例外を指定するか、ソケット単位ポリシーで省略を要求します。システム内トラフィックの場合、ポリシーは実施されますが、実際のセキュリティー機構は適用されません。その代わりに、イントラシステム内パケットの出力ポリシーが、セキュリティー機能の適用された入力パケットになります。
ipsecinit.conf ファイルと ipsecconf コマンドを使用して、IPsec ポリシーを設定します。詳細と例については、ipsecconf(1M) のマニュアルページを参照してください。
IPsec 規格では、IPsec の動作モードとして「トランスポートモード」と「トンネルモード」という 2 つの異なるモードが定義されています。これらのモードは、パケットの符号化には影響を与えません。各モードで、パケットは AH または ESP、あるいはその両方によって保護されます。内側のパケットが IP パケットである場合に、モードによってポリシーの適用方法が次のように異なります。
トランスポートモードでは、外側のヘッダーによって、内側の IP パケットを保護する IPsec ポリシーが決まります。
トンネルモードでは、内側の IP パケットによって、その内容を保護する IPsec ポリシーが決まります。
トランスポートモードでは、外側のヘッダー、次のヘッダー、および次のヘッダーでサポートされるすべてのポートを使用して、IPsec ポリシーを決定できます。実際、IPsec は 2 つの IP アドレスの間で異なるトランスポートモードポリシーを適用でき、ポート単位まで細かく設定できます。たとえば、次のヘッダーが TCP であれば、ポートをサポートするので、外側の IP アドレスの TCP ポートに対して IPsec ポリシーを設定できます。同様に、次のヘッダーが IP ヘッダーであれば、外側のヘッダーと内側の IP ヘッダーを使用して IPsec ポリシーを決定できます。
トンネルモードは IP 内 IP データグラムに対してのみ機能します。トンネルモードのトンネリングは、自宅のコンピュータから中央コンピュータに接続する場合に役立ちます。トンネルモードでは、IPsec ポリシーは内側の IP データグラムの内容に適用されます。内側の IP アドレスごとに異なる IPsec ポリシーを適用できます。つまり、内側の IP ヘッダー、その次のヘッダー、および次のヘッダーでサポートされるポートを使用して、ポリシーを適用することができます。トランスポートモードとは異なり、トンネルモードでは、外側の IP ヘッダーによって内側の IP データグラムのポリシーが決まることはありません。
したがって、トンネルモードでは、ルーターの背後にある LAN のサブネットや、そのようなサブネットのポートに対して、IPsec ポリシーを指定することができます。これらのサブネット上の特定の IP アドレス (つまり、ホスト) に対しても、IPsec ポリシーを指定することができます。これらのホストのポートに対しても、固有の IPsec ポリシーを適用できます。ただし、トンネルを経由して動的経路制御プロトコルが実行されている場合は、サブネットやアドレスは選択しないでください。ピアネットワークでのネットワークトポロジのビューが変化する可能性があるためです。そのような変化があると、静的な IPsec ポリシーが無効になります。静的ルートの構成を含むトンネリング手順の例については、「IPsec による VPN の保護」を参照してください。
Solaris OS では、IP トンネルネットワークインタフェース上でのみトンネルモードを実施できます。ipsecconf コマンドには、IP トンネルネットワークインタフェースを選択するための tunnel キーワードがあります。規則内に tunnel キーワードが含まれている場合は、その規則に指定されているすべてのセレクタが内側のパケットに適用されます。
トランスポートモードでは、ESP または AH、あるいはその両方を使用してデータグラムを保護できます。
次の図は、IP ヘッダーと保護されていない TCP パケットを示します。
トランスポートモードで、ESP は次の図のようにデータを保護します。網かけされた領域は、パケットの暗号化された部分を示します。
トランスポートモードで、AH は次の図のようにデータを保護します。
AH はデータがデータグラムに出現する前に、実際データを保護します。その結果、 AH による保護は、トランスポートモードでも、IP ヘッダーの一部をカバーします。
トンネルモードでは、データグラム全体が IPsec ヘッダーの保護下にあります。図 19–3 のデータグラムは、トンネルモードでは外側の IPsec ヘッダー (この例では ESP) によって保護され、次の図のようになります。
ipsecconf コマンドには、トンネルをトンネルモードまたはトランスポートモードで設定するためのキーワードが用意されています。
ソケットごとのポリシーの詳細については、ipsec(7P) のマニュアルページを参照してください。
ソケットごとのポリシーの例については、「IPsec を使って Web 以外のトラフィックから Web サーバーを保護する方法」を参照してください。
トンネルの詳細については、ipsecconf(1M) のマニュアルページを参照してください。
トンネル設定の例については、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」を参照してください。
設定したトンネルは、ポイントツーポイントインタフェースです。トンネルによって、IP パケットを別の IP パケット内にカプセル化できます。トンネルの設定には、トンネルソースとトンネル宛先が必要です。詳細は、tun(7M) のマニュアルページと、IPv6 サポート用のトンネルの構成を参照してください。
トンネルは、IP への物理インタフェースのようなものを作成します。この物理的リンクの完全性は、基本になるセキュリティープロトコルによって異なります。セキュリティーアソシエーション (SA) を確実に行えば、信頼性の高いトンネルになります。トンネルのデータパケットのソースはトンネル宛先で指定したピアでなければなりません。この信頼関係があるかぎり、インタフェース別 IP 送信を利用して仮想プライベートネットワーク (VPN)を作成できます。
IPsec を使用して、VPN を構築できます。IPsec が接続の安全性を確保します。たとえば、それぞれのネットワークとともに独立したオフィスを持つ組織があって、オフィス間が VPN テクノロジで接続されている場合、IPsec を利用すれば、2 つのオフィス間でトラフィックを安全にやりとりできます。
次の図は、ネットワークシステムに配置した IPsec で、2 つのオフィスがインターネットを利用して VPN を形成する方法を示します。
設定手順の詳細な例については、「IPv4 トンネルモードの IPsec トンネルで VPN を保護する方法」を参照してください。
IPv6 アドレスを使用する同様の例については、「IPv6 トンネルモードの IPsec トンネルで VPN を保護する方法」を参照してください。
IKE は、NAT ボックスを通して IPsec SA とネゴシエートできます。この機能により、システムは、システムが NAT デバイスの背後にある場合も、リモートネットワークから安全に接続を行うことができます。たとえば、自宅で働く社員や会議場からログオンする社員も IPsec で自分のトラフィックを保護できます。
NAT は、Network Address Translation (ネットワークアドレス変換) の略語です。NAT ボックスは、プライベートな内部アドレスを一意のインターネットアドレスに変換します。NAT は、ホテルなどのインターネットへの公共のアクセスポイントでは非常によく使用されています。詳細は、「Oracle Solaris IP フィルタの NAT 機能の使用」を参照してください。
NAT ボックスが通信システム間にある場合に IKE を使用する機能は、NAT traversal、または NAT-T と呼ばれます。Solaris 10 リリースでは、NAT-T には次の制限があります。
NAT-T は IPv4 ネットワーク上でのみ機能します。
NAT-T は、Sun Crypto Accelerator 4000 ボードが提供する IPsec ESP の高速化を利用できません。ただし、Sun Crypto Accelerator 4000 ボードによる IKE の高速化は可能です。
AH プロトコルは不変の IP ヘッダーに依存しますので、AH を NAT-T と連係させることはできません。NAT-T を使用する場合は、ESP プロトコルが使用します。
NAT ボックスには特別な処理規則はありません。特別な IPsec 処理規則を持つ NAT ボックスは、NAT-T の実装の障害となる場合があります。
NAT-T が機能するのは、IKE イニシエータが NAT ボックスの背後にあるシステムの場合だけです。ボックスが、ボックスの背後の適切なシステム各自に IKE パケットを転送するようにプログラムされていない場合は、IKE の応答者が NAT ボックスの背後にいることはできません。
次の RFC は、NAT 機能と NAT-T の制限事項について説明しています。RFC のコピーは、http://www.rfc-editor.org から入手できます。
RFC 3022、『Traditional IP Network Address Translator (Traditional NAT)』、2001 年 1 月
RFC 3715、『IPsec-Network Address Translation (NAT) Compatibility Requirements』、2004 年 3 月
RFC 3947、『Negotiation of NAT-Traversal in the IKE』、2005 年 1 月
RFC 3948、『UDP Encapsulation of IPsec Packets』、2005 年 1 月
NAT を通して IPsec を使用するには、「移動体システム用の IKE の設定 (作業マップ)」を参照してください。
Solaris OS は、SCTP (Streams Control Transmission Protocol) をサポートしています。STCP プロトコルと SCTP ポート番号を使用して IPsec ポリシーを指定することもできますが、頑丈ではありません。RFC 3554 に指定されている SCTP の IPsec 拡張は、まだ実装されていません。これらの制限事項によって SCTP 向けの IPsec ポリシーの作成が複雑になる場合もあります。
SCTP は、単独の SCTP アソシエーションのコンテキストで、複数の発信元アドレスと宛先アドレスを利用できます。1 つの発信元アドレスまたは 1 つの宛先アドレスに IPsec ポリシーを適用すると、SCTP がそのアソシエーションの発信元アドレスまたは宛先アドレスを切り替えたときに、通信が失敗する恐れがあります。IPsec ポリシーは、元のアドレスしか認識しません。SCTP については、RFC および「SCTP プロトコル」をお読みください。
共有 IP ゾーンについては、IPsec の構成は大域ゾーンから行います。IPsec ポリシー構成ファイル ipsecinit.conf は、大域ゾーンだけに存在します。このファイルには、大域ゾーンに適用するエントリだけでなく、非大域ゾーンに適用するエントリも含めることができます。
排他的 IP ゾーンについては、IPsec の構成は非大域ゾーンで行います。
IPsec をゾーンで使用する方法については、「IPsec によるトラフィックの保護」を参照してください。ゾーンについては、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 16 章「Solaris ゾーンの紹介」を参照してください。
IPsec は論理ドメインで動作します。論理ドメインは、IPsec を含む Solaris OS バージョン (Solaris 10 リリースなど) を実行している必要があります。
論理ドメインを作成するには、Oracle VM Server for SPARC (以前の名称は Logical Domains) を使用する必要があります。論理ドメインを構成する方法については、『Logical Domains 1.2 管理ガイド』または『Oracle VM Server for SPARC 2.0 Administration Guide』を参照してください。
表 19–3 は、IPsec を構成および管理するために使用するファイル、コマンド、およびサービス識別子について説明しています。完全性を期すために、鍵管理ファイルとコマンドも含めました。
Solaris 10 4/09 リリース以降では、IPsec は SMF によって管理されます。For more information about service identifiers, see 『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」.
IPsec をネットワークに実装する手順については、「IPsec によるトラフィックの保護 (作業マップ)」を参照してください。
IPsec ユーティリティーとファイルについての詳細は、第 21 章IP セキュリティーアーキテクチャー (リファレンス)を参照してください。
IPsec ユーティリティー、ファイル、またはサービス |
説明 |
マニュアルページ |
---|---|---|
svc:/network/ipsec/ipsecalgs |
現在のリリースでは、IPsec アルゴリズムを管理する SMF サービス。 | |
svc:/network/ipsec/manual-key |
現在のリリースでは、手動でのセキュリティーアソシエーション (SA) を管理する SMF サービス。 | |
svc:/network/ipsec/policy | ||
svc:/network/ipsec/ike |
現在のリリースでは、IPsec SA の自動管理のための SMF サービス。 | |
/etc/inet/ipsecinit.conf ファイル |
IPsec ポリシーファイル。Solaris 10 4/09 リリースより前のリリースでは、このファイルが存在する場合、IPsec は起動時にアクティブになります。 現在のリリースでは、SMF policy サービスはシステムの起動時にこのファイルを使用して IPsec ポリシーを構成します。 | |
ipsecconf コマンド |
IPsec ポリシーコマンド。現在の IPsec ポリシーの表示および変更や、テストを行うときに役立ちます。Solaris 10 4/09 リリースより前のリリースでは、ブートスクリプトは ipsecconf を使用して /etc/inet/ipsecinit.conf ファイルを読み込み、IPsec を有効にします。 現在のリリースでは、ipsecconf は、システムの起動時に IPsec ポリシーを構成するために SMF policy サービスで使用されます。 | |
PF_KEY ソケットインタフェース | ||
ipseckey コマンド |
IPsec SA キー作成コマンド。ipseckey は、PF_KEY インタフェースに対するコマンド行フロントエンドです。ipseckey は、SA を作成、破棄、または修正できます。 | |
/etc/inet/secret/ipseckeys ファイル |
IPsec SA のキー。Solaris 10 4/09 リリースより前のリリースでは、ipsecinit.conf ファイルが存在する場合、起動時に ipseckeys ファイルが自動的に読み込まれます。 現在のリリースでは、ipseckeys は、システムの起動時に SA を手動で構成するために SMF manual-key サービスで使用されます。 | |
ipsecalgs コマンド |
IPsec アルゴリズムコマンド。IPsec アルゴリズムとそのプロパティーの一覧を参照および変更するときに役立ちます。 現在のリリースでは、システムの起動時に既知の IPsec アルゴリズムをカーネルと同期するために SMF ipsecalgs サービスで使用されます。 | |
/etc/inet/ipsecalgs ファイル |
構成されている IPsecプロトコルとアルゴリズム定義を含みます。このファイルは、ipsecalgs コマンドによって管理されます。手動では絶対に編集しないでください。 | |
/etc/inet/ike/config ファイル |
IKE の構成とポリシーファイル。デフォルトでは、このファイルはありません。Solaris 10 4/09 リリースより前のリリースでは、このファイルが存在する場合、IKE デーモン in.iked は自動鍵管理を提供します。/etc/inet/ike/config ファイル内の規則およびグローバルパラメータに基づいて管理が行われます。「IKE ユーティリティーおよび IKE ファイル」を参照してください。 現在のリリースでは、このファイルが存在する場合、svc:/network/ipsec/ike サービスは IKE デーモン in.iked を起動して自動鍵管理を提供します。 |
Solaris の新機能の完全な一覧や各 Solaris リリースの説明については、『Oracle Solaris 10 9/10 の新機能』を参照してください。Solaris 9 リリースから、IPsec には次の機能が追加されました。
Sun Crypto Accelerator 4000 ボードを接続すると、ボードは、ボードの Ethernet インタフェースを使用するパケットの IPsec SA を自動的にキャッシュします。ボードは、IPsec SA の処理速度も速めます。
IPsec は、IPv6 ネットワーク上の IKE での自動鍵管理を利用できます。詳細については、第 22 章インターネットキー交換 (概要)を参照してください。
IKE の新機能については、「Solaris 10 リリースにおける IKE の変更」を参照してください。
ipseckey コマンドのパーサは、より明確なヘルプを提供します。ipseckey monitor コマンドは、各イベントにタイムスタンプをつけます。詳細については、ipseckey(1M) のマニュアルページを参照してください。
IPsec アルゴリズムが中央の記憶場所である Solaris 暗号フレームワークから実行されます。ipsecalgs(1M) のマニュアルページは、使用可能なアルゴリズムの特徴を説明しています。アルゴリズムは、実行するアーキテクチャーに対して最適化されます。フレームワークの説明については、『Solaris のシステム管理 (セキュリティサービス)』の第 13 章「Solaris の暗号化フレームワーク (概要)」を参照してください。
IPsec は、大域ゾーンで動作します。IPsec ポリシーは、非大域ゾーンに対して大域ゾーンで管理されます。非大域ゾーンのキー作成素材は、大域ゾーンで作成され、手動で管理されます。IKE は、非大域ゾーンのキーの生成には使用できません。ゾーンについては、『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 16 章「Solaris ゾーンの紹介」を参照してください。
IPsec ポリシーは、SCTP (Streams Control Transmission Protocol) と SCTP ポート番号と組み合わせて使用できます。ただし、実装は不完全です。RFC 3554 に指定されている SCTP の IPsec 拡張は、まだ実装されていません。これらの制限事項によって SCTP 向けの IPsec ポリシーの作成が複雑になる場合もあります。詳細は、RFC を参照してください。また、「IPsec と SCTP」および「SCTP プロトコル」をお読みください。
IPsec と IKE は、NAT ボックスの背後で発生したトラフィックを保護します。詳細と制限については、「IPsec と NAT 越え」を参照してください。手順については、「移動体システム用の IKE の設定 (作業マップ)」を参照してください。