Linux カーネルにおける IPsec

Linux カーネルにおける IPsec

Linux カーネルの IPsec 実装とそのユーザー空間インターフェースに関連する問題 (質問) がいくつかあります。

  1. 最大の疑問は、Linux カーネル IPsec 実装の実際の公式プロジェクトはどれかということです。私の理解では、実装は Kame プロジェクトのフォークですが、友人によると、これは真実ではないそうです。公式 Web サイトとリポジトリはどれですか?
  2. カーネルドキュメントのソースのどこに関連メモがありますか?
  3. 最もよく使用されるユーザー空間フロントエンドはどれですか? ip-tools または iproute2 パッケージですか? これら 2 つは同じアプローチを採用していますか、それともどちらかのオーバーヘッドの方が大きいですか?
  4. 私が見たところ、iproute2 IPsec トランスポート モードのチュートリアルは、構成ファイルをロードするための「setkey」ユーティリティに関連しています。「setkey」は実際に iproute2 パッケージで使用されているのでしょうか、それとも誤解されているのでしょうか。「setkey」は ip-tools の「racoon」に接着されているのでしょうか、それとも構成をロードするための一般的なアプリケーションなのでしょうか。「setkey」は実際には何をするのでしょうか (私はこれについて非常に混乱しています)。

答え1

  1. Linuxカーネル2.6以降に統合されたIPsecスタック(NETKEY)は、もともとKAMEスタック(少なくともAPIに関しては)に基づいていました。ソースコードはカーネルリポジトリnet/xfrm、 Netlink/XFRM構成インターフェースの実装を含む主要なコンポーネントがフォルダ内にあります。代替および標準化された(ただし多少拡張されています) PF_KEYv2 インターフェイスの実装は、フォルダー内にありますnet/key
  2. ドキュメントはあまりありません。ただし、Documentation/networkingフォルダーを確認してください。
  3. IPsec SAとポリシーを手動で設定する場合(手動キー設定)は、iproute2より強力なNetlink/XFRMインターフェースを使用し、ほとんどのディストリビューションではデフォルトでパッケージがインストールされています。しかし、通常はユーザーランドが提供する自動キー生成を使用します。アイケーstrongSwan、Open/libreswan、racoon (ipsec-tools) などのデーモンを使用すると、SA とポリシーを手動でインストールする必要がなくなり、IKE 中に Diffie-Hellman を介して一時的な暗号化/整合性キーが確立されます。キーの再生成と呼ばれる、新しいキーの定期的な自動ネゴシエーションも可能です。
  4. setkeyは、ipsecツール手動キー入力用のパッケージは、iproute2パッケージ。iproute2SAとポリシーを手動で設定するには、コマンドを使用しますip xfrm。どちらのコマンドもSADとSPDと直接やり取りします(RFC 4301) をカーネルにインストールして、IPsec SA とポリシーを手動で管理します。 はsetkey、およびracoonその他の BSD ベースのツールと同様に、PF_KEYv2 インターフェイスを使用するため、ip xfrmコマンドほど強力ではありません。たとえば、Linux では、拡張シーケンス番号またはマークを PF_KEYv2 で構成することはできません。

関連情報