FreeS/WANによるIPSecの導入と運用[後編]
− LinuxでIPSecを使おう −
宮本 久仁男<kmiya@coe.nttdata.co.jp>
NTTデータ COEシステム本部
システム技術開発部第三技術開発担当
2002/3/5
事前共有鍵を利用した暗号化通信の設定
必要なファイルがそろったところで、暗号化通信のための設定を行いましょう。ここでは、暗号化通信に必要な最低限の設定を挙げて、動作確認を行います。
■動作確認用ネットワーク環境
本稿では、2台のLinuxマシン間で暗号化通信を行う環境を例に解説します。ホスト名やIPアドレスなどのネットワーク構成を図1に示します。 エンドツーエンドの暗号化通信のため、ひたすらシンプルな環境となっています。以下ではこの環境を前提に説明します。 |
■暗号化通信ポリシーの決定
設定に当たって、暗号化通信のポリシーを決定する必要があります。しかし、FreeS/WANの場合は、IKEによる通信時の暗号化方式などがすでにPLUTOに実装されていて選択できません。ここでは、以下に簡単なポリシーを挙げておきます。
- エンドツーエンドで暗号化通信を行う
- SAについてはIKEによる自動設定
- IPSec通信時にパケットを暗号化する方式は3DES
- Pre-shared Key(事前共有鍵)を利用する
■/etc/ipsec.confの設定
暗号化通信を行う各ホストで/etc/ipsec.confを書き換え、自ホスト、相手ホスト、IKEの動作やIPSec通信の設定を行います。実際の設定を以下に示します。
# /etc/ipsec.conf - FreeS/WAN IPSEC configuration file |
リスト2 tripmachineの/etc/ipsec.conf(事前共有鍵利用時) |
config setup |
リスト3 bomberの/etc/ipsec.conf(事前共有鍵利用時) |
■/etc/ipsec.secretsの設定
/etc/ipsec.secretsを編集して、IKEデーモンがネゴシエーション時に使う鍵を設定します。実際の設定を以下に示します。
: PSK "FreeS/WAN Connection" |
なお、このファイルは内容に事前共有鍵(Pre-shared Key)を含むので、管理者以外は読めないようにパーミッションを設定してください。
■暗号化通信のモニタリング
暗号化通信を行う準備ができました。tcpdumpを使って、通信が実際に暗号化されているかどうか確認しましょう。
パケットキャプチャ用のマシンで、tcpdumpを以下のようなコマンドラインで実行します。これを実行することで、tripmachineとbomber間の通信のみをキャプチャできます。
# tcpdump -x host tripmachine and bomber |
その後、両ホストでIPSecによる通信を有効にします。具体的には、以下のコマンドラインをbomberとtripmachineでそれぞれ実行します。
# /usr/local/sbin/ipsec setup stop |
この状態で、何でもよいのでTCP/IPによる通信を行います。以下は、tripmachineからbomberにtelnetしている様子です。
[kmiya@tripmachine /tmp]$ telnet bomber |
上記の通信をtcpdumpでパケットダンプすると、以下のようになります。
# tcpdump -x host tripmachine and bomber |
IKEによるネゴシエーションがUDP/500番経由で行われ、その後にIPSec通信が行われているのが分かります(注)。パケットダンプ中で「ip-proto-50」と表示されているのは、ESP通信がIPプロトコル50番で行われていることを意味します。
注:IPSec対応パッチを当てていないため、こういう表示になっています。KAMEなどに含まれているIPSec対応のtcpdumpを使用した場合は、SPIなどの情報も併せて表示されます。 |
■暗号化通信の内容のモニタリング
IPSecによる暗号化が施された通信は、どのような通信が行われているか不明なはずですが、FreeS/WANは「ipsec*」というインターフェイスをlistenすることにより、暗号化前の平文通信をモニタすることが可能です。インターフェイスと取得できるデータの関係を図2に示します。 tcpdumpは、-iオプションを付加することでモニタするインターフェイスを指定できます。これを使って、以下のtelnetの様子をモニタしてみましょう。 |
[kmiya@tripmachine kmiya]$ telnet bomber |
eth0上の暗号化通信の様子をモニタすると以下のようになります。
[root@bomber kmiya]# tcpdump host tripmachine
and bomber |
-iオプションでipsec0を指定した場合にモニタできる、暗号化前の平文通信は以下のようになります。
[root@bomber kmiya]# tcpdump -i ipsec0 |
前編へ |
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をサーバとクライアントにインストールすれば、インターネット上でも安全な通信が可能になる |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|