Chapter 7. IPSEC: インターネット越しの安全な IP

Table of Contents
7.1. 入門編: 手動での鍵処理
7.2. 自動での鍵処理
7.2.1. 理論
7.2.2.
7.2.3. X.509 証明書を用いた自動での鍵処理
7.3. IPSEC トンネル
7.4. 他の IPSEC ソフトウェア
7.5. 他のシステムとの IPSEC の相互運用

最近の Linux には 2 種類の IPSEC が存在します。 2.2 と 2.4 には FreeS/WAN があり、これが最初のメジャーな実装でした。 公式サイト非公式サイト があり、活発にメンテナンスされています。FreeS/WAN は様々な理由から、 これまでメインのカーネルにはマージされてきませんでした。 最も良く言及されてきたのはアメリカ人開発者の「政治的」な理由で、 暗号化に関して作業すると輸出規制がかかってしまうからでした。 さらに FreeS/WAN は Linux カーネルにあまりうまく統合することができず、 実際のマージにあたって、良い候補にはなりませんでした。

また、コードの品質に関しても多くの 団体から 懸念の声 があげられました。 FreeS/WAN の設定に関しては、多くの文書利用できます

Linux 2.5.47 の頃には、カーネルのネイティブな IPSEC 実装が存在していました。 これは Alexey Kuznetsov と Dave Miller によるもので、 USAGI IPv6 グループの成果から刺激を受けたものでした。 このマージにあたっては、James Morris の CryptoAPI もカーネルの一部となりました (これが実際の暗号化を行います)。

この HOWTO では、2.5+ 版の IPSEC のみを扱います。 Linux 2.4 のユーザには、現在のところは FreeS/WAN をお奨めしますが、 この設定はネイティブの IPSEC のものとは異なります。 関連ニュースですが、いまでは FreeS/WAN のユーザ空間のコードを、ネイティブな Linux IPSEC と動作させるための パッチ があるそうです。

2.5.49 からは、IPSEC はパッチを必要せずに動作できるようになりました。

Note: ユーザ空間のツールは こちら から入手できます。複数のプログラムが使えますが、 ここでリンクしたのは Racoon ベースのものです。

カーネルのコンパイルにあたっては、'PF_KEY', 'AH', 'ESP' その他、 CryptoAPI のすべてを有効にしてください!

Warning

この章の著者は、IPSEC に関してはど素人です! 必ずあるであろうミスをもし見つけたら、どうか bert hubert にメールしてください。

まず最初に、安全な通信を 2 つのホストの間で行う方法を示します。 この処理の大部分は自動化できますが、ここでは手動で行ってみて、 「箱の中で」なにが行われているのかについて、よく理解することにしましょう。

自動での鍵処理 (keying) にだけ興味があるのでしたら、 次の節は飛ばしてください。 しかし手動での鍵処理に関する理解は、きっと有益です。