IPsecとは、Internet Protocol Securityの略です。2つのシステム間(host-to-host)、または2つのネットワーク間(network-to-network)で 確立される暗号化接続における仮想プライベートネットワークのソリューションです。
![]() | ヒント |
---|---|
IPsecについての詳細は、http://www.ipsec-howto.org/をご覧ください。 |
ホスト間のIPsec接続とは、同じ認証キーを持ちIPsecを実行している2つのシステム間での 暗号化された接続です。IPsec 接続を起動していると、2つのホスト間でのネットワーク通信は 暗号化されます。
ホスト間のIPsec接続を設定するには、各ホストに次の手順を行ないます。
ネットワーク管理ツールを起動します。
IPsecタブで、新規を選択します。
進むをクリックしてホスト間のIPsec接続の設定を開始します。
接続にipsec0など空白なしの単語でニックネームを付けます。 コンピュータが起動したときに、この接続が自動的に起動されるべきか選択します。 進むをクリックします。
接続タイプにホスト間の暗号化を選択します。 進むをクリックします。
使用する暗号化のタイプを選択します、手動/自動。
手動を選択した場合は、暗号化キーが後で必要になります。 自動を選択した場合は、racoonデーモンが暗号化キーを管理するのに 使用されます。racoonが使用される場合は、 ipsec-toolsパッケージがインストールされていなければなりません。
進むをクリックして続けます。
他のホストのIPアドレスを指定します。
他のシステムのIPアドレスがわからない場合は、 そのシステムで/sbin/ifconfig <device>コマンドを実行します。 <device>には、 他のホストに接続するために使用するイーサネットデバイスを入れます。 システムにあるイーサネットカードが1枚だけなら、デバイス名はeth0になります。 IPアドレスはinet addr:ラベルの後に続く数字です。
進むをクリックして続けます。
6の手順で手動による暗号化を選択した場合、 使用する暗号化キーを指定するか、生成をクリックして作成します。
認証キーを指定するか、生成をクリックして作成します。 数字と文字の組み合わせならなんでも構いません。
進むをクリックして続けます。
IPsec — 概要ページで情報を確認し、適用をクリックします。
ファイル => 保存を選択して 設定を保存します。
一覧からIPsec接続を選択して、 起動ボタンをクリックします。
他のホストにもくり返します。8の手順と 同じキーを他のホストにも使用することが非常に重要となります。 キーが同じでないとIPsecは機能しません。
IPsec接続の設定が完了したら、図19-22で示すように IPsec一覧に表示されます。
/etc/sysconfig/network-scripts/ でファイルが2つ作成されます — ifcfg-<nickname> と keys-<nickname>です。自動暗号化が選択された場合、/etc/racoon/racoon.confも作成されます。
インターフェースが起動されると、<remote-ip>.conf と psk.txtが /etc/racoon/で作成され、racoon.conf が<remote-ip>.confを含むよう変更されます。
IPsec接続が正しく確立されているか確認するには、 項19.14.3を参照してください。
プライベートサブネットのネットワーク通信はルーティングされるため、 ネットワーク間のIPsec接続は、各ネットワークに1つづつ、2つのIPsecルーターを使用します。
例えば、図19-23で示すように、 192.168.0/24 プライベートネットワークがネットワーク通信を 192.168.2.0/24 プライベートネットワークに送信する場合、 パケットは gateway0、ipsec0 を通り、インターネットを介して ipsec1、gateway1 を通って192.168.2.0/24 サブネットに到達します。
IPsec ルータはパブリックにアドレス可能なIPアドレス、そのプライベートネットワークに 接続されている別のイーサネットデバイスが必要になります。 暗号化された接続を持つ他のIPsecルータに対して通信が行なわれる場合、 その通信はルータを介してのみ伝送されます。
代替となるネットワーク設定オプションには、各IPルータとインターネット間のファイアウォール、 各IPsecルータとサブネットゲートウェイ間のイントラネットファイアウォールがあります。 サブネットのIPsecルータとゲートウェイは、2つのイーサネットデバイスを持つシステム、 IPsecルータとして動作する1つの公開IPアドレスを持つシステム、 プライベートサブネット用のゲートウェイとして動作するプライベートIPアドレスを持つシステム いずれでも構いません。各IPsecルータはそのプライベートネットワークにゲートウェイを使用するか、 他のIPsecルータにパケットを送信するために公開ゲートウェイを使用します。
ネットワーク間 IPsec接続を設定するには、次の手順を行ないます。
ネットワーク管理ツールを起動します。
IPsecタブで、新規を選択します。
進むをクリックしてネットワーク間 IPsec 接続の設定を開始します。
接続にipsec0など空白なしの単語でニックネームを付けます。 コンピュータが起動したときに、この接続が自動的に起動されるべきか選択します。 進むをクリックします。
ネットワーク間の暗号化(VPN)を選択して、 進むをクリックします。
使用する暗号化のタイプを選択します、手動/自動。
手動を選択する場合は、暗号化キーが後で必要になります。 自動を選択する場合は、racoonデーモンが暗号化キーを管理するのに 使用されます。racoonが使用される場合、 ipsec-toolsパッケージがインストールされている必要があります。 進むをクリックして続けます。
ローカルネットワークのページで、 次の情報を入力します。
ローカルネットワークアドレス — プライベートネットワークに接続されているIPsecルータ上のデバイスのIPアドレスです。
ローカルサブネットマスク — ローカルネットワークIPアドレスのサブネットマスクです。
ローカルネットワークゲートウェイ — プライベートサブネットのゲートウェイです。
進むをクリックして続けます。
リモートネットワークのページで、 次の情報を入力します。
リモートIPアドレス — 他のプライベートネットワーク用IPsecルータの パブリックにアドレス可能なIPアドレスです。例えば、ipsec0には、 ipsec1のパブリックにアドレス可能なIPアドレスを入力します。その逆も同じです。
リモートネットワークアドレス — 他のIPsecルータの背後にあるプライベートサブネットの ネットワークアドレスです。例えば、ipsec1を設定しているなら 192.168.1.0を入力します。 ipsec0を設定しているなら192.168.2.0を入力します。
リモートサブネットマスク — リモートIPアドレスのサブネットマスクです。
リモートネットワークゲートウェイ — リモートネットワークアドレス用ゲートウェイのIPアドレスです。
6の手順で示すように、 手動暗号化を選択した場合は、使用する暗号化キーを指定するか、 生成をクリックして作成します。
認証キーを指定するか、生成をクリックして作成します。 数字と文字の組み合わせならなんでも構いません。
進むをクリックして続けます。
IPsec — 概要ページで情報を確認し、適用をクリックします。
ファイル => 保存を選択して 設定を保存します。
一覧からIPsec接続を選択して、 起動ボタンをクリックします。
rootとして、シェルプロンプトでIPフォワーディングを有効にします。
/etc/sysctl.confを編集して、 net.ipv4.ip_forwardを1 に設定します。
次のコマンドを実行して変更を有効にします。
sysctl -p /etc/sysctl.conf |
IPsec接続を起動するネットワークスクリプトは、自動的にネットワークルートを 作成して、必要に応じてIPsecルータからパケットを送信します。
IPsec接続が正しく確立されているか確認するには、 項19.14.3を参照してください。
tcpdumpユーティリティを使って、 ホスト間(またはネットワーク間)でやりとりされているネットワークパケットを表示させ、 IPsecで暗号化されていることを確認します。パケットはAHヘッダを含み、 ESPパケットとして表示されているはずです。ESPなら暗号化されているということです。 例えば、
17:13:20.617872 pinky.example.com > ijin.example.com: \ AH(spi=0x0aaa749f,seq=0x335): ESP(spi=0x0ec0441e,seq=0x335) (DF) |
IPsec接続がブート時に起動するよう設定されていなかった場合、 コマンドラインからrootとして開始/停止します。
接続を開始するには、ホスト間 IPsec には rootとして各ホストで次のコマンドを実行するか、 ネットワーク間 IPsec には各IPsecルータで次のコマンドを実行します (<ipsec-nick>には、ipsec0など、すでに設定している空白なしのニックネームを入れます)。
/sbin/ifup <ipsec-nick> |
接続を停止するには、ホスト間 IPsec にはrootとして各ホストで次のコマンドを実行するか、 ネットワーク間 IPsec にはIPsecルータで次のコマンドを実行します<ipsec-nick>には、ipsec0など、すでに設定しているニックネームを入れます)。
/sbin/ifdown <ipsec-nick> |