
Linux以外のIPSecスタックとの相互接続[前編]
− LinuxでIPSecを使おう −
宮本 久仁男<miyamotokn@nttdata.co.jp>
NTTデータ システム開発事業本部
基盤システム事業部 第一ソリューション技術担当
2002/4/20
本番はこれから
FreeS/WANによるIPSecの導入と運用で、Linux用のIPSecスタックであるFreeS/WANの設定と接続について紹介しました。ただ、「FreeS/WANの間だけで接続ができても……」という方もいると思います。また、IPSec自体が「オープンな規格である」ということもあり、FreeS/WAN以外の実装ともつないでみたいという方もいるでしょう。
今回はFreeS/WANの環境を基に、よく使われる(もしくは使いやすいと思われる)IPSecスタックとの相互接続についてお話しします。実験的要素が多分に強い内容ではありますが、相互接続を念頭に置いて考えている方も多いと思いますので、ここで述べておく意味はあるでしょう。
「以前の記事の内容では物足りない」と思われた方もいると思いますが、実は今回の記事につなぐための前振りだったと思っていただければ幸いです。
IPSecスタックの種類
IPSecと一口にいっても、ハード/ソフトウェア、有償/無償配布、オープンソースなどなど、さまざまな形で実装、配布されています。無償配布あるいはOSに含まれているものをざっと挙げるだけでも、取りあえず、
- KAME
*BSDのためのIPSecスタック
- pipsec
トンネルデバイスが実装されているOSのための、ユーザーランドで動作するIPSecスタック
*BSDなどで使用可能
- PGPNet
PGP Version 6.5に含まれるIPSecスタック
Windows 98などで使用可能
- Windows 2000/XP
すでにIPSecがOSに実装されている
などがあります。VPN-1などの商用製品に接続するためのクライアントもありますが、ライセンスなどで自社製品以外のものとの接続を認めていないケースがあるため、今回取り上げる対象からは外しました。
本稿は前編/後編という構成にさせていただき、前編ではUNIX系OSのIPSecスタック(KAME)、後編ではWindows系OS上のIPSecスタック(主にWindows 2000)との接続を取り上げます。
KAMEとFreeS/WANの相互接続
「KAME」は、KAME ProjectによるIPv6、IPv4/v6 IPSecスタックの名称であり、*BSD系OSをターゲットに開発されています。
最新のFreeBSDにはKAMEのスナップショットが取り込まれており、提供されているカーネルソースでも、オプションの指定を追加して再構成するだけでIPSecによる通信の準備ができてしまいます。ここでは、IPSecによる通信の準備と事前共有鍵を使用した通信の設定について解説します。
■KAMEの事前準備
今回は、FreeS/WANをインストールしたコンピュータの通信相手として、FreeBSD-4.4Rをインストールしたコンピュータを想定します。
●カーネルの再構築
FreeBSDのカーネルは、デフォルトではIPSecが有効になっていません(注)。従って、カーネルの再構成を実施してIPSec機能を有効にしてやる必要があります。
| 注:IPv6は有効になっていますが……。 |
以下の作業は、すべてスーパーユーザー権限で実行するので操作には注意が必要です。
OPTIONSの設定
FreeBSDのカーネルコンフィグレーションファイルは、/usr/src/sys/i386/conf下に存在します。GENERICカーネルのコンフィグレーションファイルをIPSECという名前のファイルにコピーして、OPTIONS設定に以下に示す行を追加します(注)。
options IPSEC |
| 注:すでにカーネルの再構成をしたことがある場合は、そのファイルに対して設定を追加するような形になります。 |
カーネルの再構成とインストール
下記の手順を実施することで、新しいカーネルがインストールされます。
# cd /usr/src/sys/i386/conf |
リブート
までの作業が完了したら、
# shutdown -r now |
として、新しいカーネルでブートします。ブートした後、
# sysctl -a | grep ipsec |
を実行して、それらしい行が出力されればカーネルへのIPSecスタックの組み込みは成功です。筆者の環境での例をリスト1に示します。
# sysctl -a | grep ipsec |
| リスト1 このような出力(まったく同一とは限らない)が得られれば、組み込み成功 |
●IKEデーモンの作成
カーネルを再構築すれば、一応IPSecによる接続は可能です。しかし、IPSecの使われ方などを考えると、実用上はIKEによる鍵交換が行える必要があります。FreeS/WANにPLUTOがあるように、KAMEで使用するIKEデーモンの実装として「racoon」と呼ばれるプログラムがあります。このデーモンをインストールしましょう。
racoonのmake
portsやpackagesを使うのが楽でしょう。KAMEプロジェクトのFTPサーバからracoonのソースコードを取得してもいいのですが、若干修正を行わないとmakeできません。(注)。
| 注:本稿では具体的には述べません。 |
racoonのinstall
make installを実行すると、/usr/local/sbin/racoonという実行ファイルと/usr/local/etc/racoonというディレクトリが作成されます。このディレクトリにはracoonの設定ファイルのサンプルが格納されています。
■事前共有鍵(Pre-Shared Key)を用いた場合
図1のような構成(かなりシンプルです)に置かれたホスト間で暗号化通信を実施する例を考えてみましょう。
![]() |
| 図1 KAMEとFreeS/WANの接続環境例 |
まず、FreeS/WAN側はかなり制限のきつい実装になっているため、この制限を考慮した接続条件をKAMEにも適用する必要があります。
- エンドツーエンドの暗号化を行う
- IKE間の鍵交換は、ISAKMP/Oakley Group 2を使用
- 暗号化アルゴリズムはDES3
- 事前共有鍵を設定する
これらを考慮したFreeBSD側(KAME)の設定をリスト2a〜2dに、Linux(FreeS/WAN)側の設定ファイルをリスト3a、3bに示します。
path include "/usr/local/etc/racoon" ; |
| リスト2a /usr/local/etc/racoon/racoon.conf |
192.168.1.2 testtestkey |
| リスト2b /usr/local/etc/racoon/psk.txt(事前共有鍵を格納) |
# ls -l /usr/local/etc/racoon/racoon.conf |
| リスト2c racoon.confとpsk.txtのパーミッション設定 |
spdflush; |
| リスト2d /usr/local/etc/racoon/kame.conf |
# basic configuration |
| リスト3a /etc/ipsec.conf |
192.168.1.2 192.168.1.50 "testtestkey" |
| リスト3b /etc/ipsec.secrets |
FreeBSD側では、racoon以外にセキュリティポリシーデータベース(SPD)の設定が必要なので注意してください。racoonの設定はracoon.conf(リスト2a)とpsk.txt(リスト2b)に、SPDの設定内容はkame.conf(リスト2d)にそれぞれ記述してあります。また、psk.txtには読まれてはならない情報が格納されているので、ファイルのパーミッションに注意してください。
■暗号化通信の開始
ここまでの記述で、暗号化通信を行う準備ができました。実際に通信してみましょう。
●FreeBSD側での操作
FreeBSD側では、SPDの設定およびIKEデーモンの起動という2つの操作が必要です。
- SPDの設定
setkeyコマンドを以下のように実行します。
# setkey -f /usr/local/etc/racoon/kame.conf
- racoonの起動
# /usr/local/sbin/racoon
●Linux側での操作
以下のコマンドラインを実行します(編注)。
# /usr/local/sbin/ipsec setup start |
これで暗号化通信を行うことができます。
| 編注:FreeS/WANによるIPSecの導入と運用[後編]参照。 |
■実際の通信の様子
ここまできたら、後は実際に通信が暗号化されているかどうか、tcpdumpを使って確認するだけです。筆者の環境ではリスト4a、4bのようになります。
[root@webdav1 /etc]# telnet spica |
| リスト4a 実際の通信内容(telnetを使用) |
spica# tcpdump host webdav1 and spica |
| リスト4b tcpdumpによるパケットダンプの結果 |
ISAKMPポートで鍵交換が行われた後、暗号化通信が始まっているのが分かります。
|
1/2
|
|
||||
|
||||
| Linux Square全記事インデックス |
| Linux Squareフォーラム セキュリティ関連記事 |
| 連載:習うより慣れろ! iptablesテンプレート集(全4回) 初心者にとって、iptablesは難しい。そこで、学習の第1歩としてテンプレートを自分の環境に適応させることから始めよう |
|
| 連載:ゼロから始めるLinuxセキュリティ(全11回) 奥が深いセキュリティ対策の世界をゼロから解説。ホストレベルのセキュリティからファイアウォール、IDSの構築、ログ管理方法まで、システム管理者必見 |
|
| 特集:WebDAV時代のセキュリティ対策[前編] WebDAVのメソッドは便利な反面、セキュリティホールとなり得る。しかし、適切な対策を講じることでメソッドの危険性は取り除くことができる |
|
| 特集:FreeS/WANによるIPSecの導入と運用[前編] LinuxでIPSecを利用するには、「FreeS/WAN」というIPSecスタックを用いることになる。まず、これをインストールすることから始めよう |
|
| 特集:Linux以外のIPSecスタックとの相互接続[前編] 別のOSや異なるIPSecスタックとの相互接続が可能なら、その用途は大幅に広がる。前編では、FreeBSDのKAMEと相互接続を試みる |
|
| 特集:sshでセキュアネットワーク サーバにリモートログインする場合は、暗号化して転送するsshを使おう。sshをサーバとクライアントにインストールすれば、インターネット上でも安全な通信が可能になる |
|
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成・2 (2010/3/11)
IPパケットのディスティネーションアドレスを書き換える「DNAT」を使って、透過型プロキシを構築します - 一歩進んだ監視のカスタマイズ (2010/3/3)
スクリプトの実行結果などを取得できるユーザーパラメータを用いて、自分のニーズにぴったり合った監視を実現 - OSSライセンス順守の第一歩 (2010/2/18)
企業として、OSSライセンス違反を犯さないためには、どのような手順が必要か、いくつかアドバイスします - 無視できないフラグメンテーション問題への解答は? (2010/2/10)
今回は、メモリコンパクション、そしてメモリバリアを発行するシステムコールという2つのパッチについて深く紹介します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |







