Security Gateway and IPsec release 3
作成日 | 1999/Jul/23 |
最終変更日 | 2018/Nov/06 |
文書サイズ | 21KB |
ここでは、IPsecリリース3のRTのコマンドを紹介しながら、具体的な利用方法
を説明します。
IPsecリリース1やIPsecリリース2(Rev.4.00.14以前のリビジョン)をご利用の場合は、
「IPsecリリース1とIPsecリリース2に対応したIPsec 利用の実践」をご覧ください。
なお、このドキュメントを読む前に、セキュリティ・ゲートウェイ機能の基礎知識を
一読されることをお勧めします。
設定する前には必ず、SAの自動更新機能をoffにし、 古いSAを全て削除して下さい。
#ipsec auto refresh off #ipsec sa delete all自動更新機能をonにして設定すると、設定中にも関わらず、 IPsecの各機能が働いてし まいます。 また、設定が変化するにも関わらず、古い設定に依存したSA が残っていると、災いの 種になるかも知れません。
まず、鍵交換のために必要な事前共有鍵を設定します。 事前共有鍵は、鍵交換の際に 相手を認証するための 情報として用います。 事前共有鍵は、対向のゲートウェイ ごとに設定します。もちろん、相手側でも同じ鍵 を 設定する必要があります。コマンドは、以下のように なります。
#ipsec pre-shared-key 192.168.101.1 text himitsu192.168.101.1は、対向のゲートウェイのアドレスです。 鍵は、テキスト形式か バイ ナリ形式で入力します。鍵の長さは、テキスト形式 の場合、最大32文字、バイナリ形 式の場合、最大32byte です。
[ ダイヤルアップVPNに関する補足 ]
ここで、鍵交換要求を受け付ける対向のゲートウェイを指定します。 その前に、あらかじめ、対向のゲートウェイには、 1から20まで(RT103iでは1から10まで)の番号を割り当ててください。 このドキュメントでは、この番号をゲートウェイ番号と呼び、 対向のゲートウェイを識別するために使います。
ゲートウェイ番号を決めたら、ゲートウェイ番号と、そのゲートウェイの IPアドレスを設定します。
#ipsec ike remote address ゲートウェイ番号 192.168.101.1IPアドレスは、もちろん、事前共有鍵の設定で使ったIPアドレスと 同じものを使います。
対向に複数のゲートウェイがある場合には、それぞれに別のゲートウェイ番号 を割り当てて、以下のように設定します。
#ipsec ike remote address 1 192.168.101.1 #ipsec ike remote address 2 192.168.102.1 #ipsec ike remote address 3 192.168.103.1 ・ ・ ・
SAの寿命を設定します。SAには、IPsec SAとISAKMP SAという2種類のSAが ありますが、それぞれに個別の寿命を設定することができます。
#ipsec ike duration ipsec-sa ゲートウェイ番号 10000 #ipsec ike duration isakmp-sa ゲートウェイ番号 10000以上のように設定すると、SAの寿命は生成されてから10,000秒となり、 10,000秒が経ったときに自動的に消滅します。
SAの属性のうち、ユーザが指定できるものを、 SAのポリシーと呼びます。なお、SAの 寿命も、 ユーザが指定できるので、SAのポリシーですが、 RTの実装ではSAの寿命を他 の属性と区別しています。 SAのポリシーの設定例を以下に示します。
#ipsec sa policy 101 133.176.200.199 ah md5-hmac [引数の説明] 101 ... SAのポリシーを管理するためのID 133.176.200.199 ... 対向のセキュリティ・ゲートウェイのアドレス ah ... AHで用いることを示す識別子 md5-hmac ... AHで用いる認証のアルゴリズムのように設定します。もうひとつの例を示します。
#ipsec sa policy 102 133.176.200.199 esp des-cbc sha-hmac [引数の説明] 102 ... SAのポリシーを管理するためのID 133.176.200.199 ... 対向のセキュリティ・ゲートウェイのアドレス esp ... ESPで用いることを示す識別子 des-cbc ... ESPで用いる暗号アルゴリズム sha-hmac ... ESPで用いる認証アルゴリズム(認証をしない場合は省略可)のように設定します。
以下では、図のようなVPNを構築したい場合を例に して、コマンドと設定例を説明しま す。
----------+-------------------- 192.168.100.0/24 | | 192.168.100.1 +----+----+ | RT140i | +----+----+ : pp local = 172.16.1.1 (SGWアドレス) : : : : pp local = 172.16.1.2 (SGWアドレス) +----+----+ | RT103i | +----+----+ | 192.168.101.1 | ----------+-------------------- 192.168.101.0/24トンネルモードを利用するためには、トンネルインタ フェースという仮想インタフェー スを用意し、 処理したいパケットがトンネルインタフェースに 流れるように、経路情 報を設定します。 経路表にトンネルインタフェースへ向けられた経路情報が ある場合、LANやPP向けの経 路情報より優先的に利用されます。 トンネルインタフェースに送られた パケットは、 AHかESPを付加されて、再びルーティング テーブルに戻されます。ただし、同じパケッ トが2回 トンネルインタフェースに送られることはありま せん。 上図の2台のRTの設定は例えば以下のようになります。
[RT140iの設定] #bri local address 1 03-123-4567 #ip lan address 192.168.100.1/24 #ipsec ike remote address 1 172.16.1.2 #ipsec pre-shared-key 172.16.1.2 text himitsu #ipsec sa policy 101 172.16.1.2 esp des-cbc md5-hmac #pp select 1 pp1#pp bind bri 1 pp1#isdn remote address call 06-111-9999 pp1#ip pp local address 172.16.1.1/24 pp1#ip pp remote address 172.16.1.2 pp1#pp enable 1 pp1#tunnel select 1 tunnel1#ip tunnel route add net 192.168.101.0/24 2 tunnel1#ipsec tunnel 101 tunnel1#tunnel enable 1192.168.101.0/24へ向かうパケットをトンネルインタフェースに 送り、101番のポリシー によって処理します。すなわち、 DES-CBCという暗号アルゴリズムとHMAC-MD5という認 証アルゴリズム を用いてESPを付加します。
[RT103iの設定] #isdn local address 06-111-9999 #ip lan address 192.168.101.1/24 #ipsec ike remote address 172.16.1.1 #ipsec pre-shared-key 172.16.1.1 text himitsu #ipsec sa policy 101 172.16.1.1 esp 3des-cbc sha-hmac #pp select 1 pp1#isdn remote address call 03-123-4567 pp1#ip pp local address 172.16.1.2/24 pp1#ip pp remote address 172.16.1.1 pp1#pp enable 1 pp1#tunnel select 1 tunnel1#ip tunnel route add net 192.168.100.0/24 2 tunnel1#ipsec tunnel 101 tunnel1#tunnel enable 1192.168.100.0/24へ向かうパケットをトンネルインタフェースに 送り、101番のポリシー によって処理します。すなわち、 3DES-CBCという暗号アルゴリズムとHMAC-SHAという 認証アルゴリズム を用いてESPを付加します。
ipsec ike remote addressや ipsec pre-shared-keyで設定するアドレスは、 互いに最も近いイン タフェースのアドレスを利用します。 例えば、上図のような環境では、LANのアドレス ではなく、 PPのアドレスを利用します。但し、Unnumberedで接続している 場合は、ip lan(1) addressで設定されたアドレスとなります。 また、トンネルインタフェースは鍵交換の終了後に有効になります。 したがって、鍵 交換のためのパケットがトンネルインタフェースに 流れないように、経路情報を設定 してください。具体的には、 相手先のセキュリティ・ゲートウェイのアドレスに対し て 相互にping応答があることを確かめてください。
トンネルモードの効果を試す場合、RT140iとRT103iの両方で、
#ipsec auto refresh onと入力します。正常な場合、 10秒程度で、鍵交換が終了し、必要なSAが生成されます。 鍵交換が終了した直後より、トンネルインタフェースが 有効になります。
現在管理されているSAの状態を見るためには、
#show ipsec saと入力します。以下では、この出力結果について 説明します。
# show ipsec sa SA[4] 寿命: 124秒 相手ホスト: 192.168.111.218, 送受信方向: 送受信 プロトコル: IKE SPI: b9 2c 6f e9 56 4b 66 97 52 8f 0d e1 60 e2 33 95 鍵 : eb fc 81 25 04 ee b7 e8 ---------------------------------------------------- SA[5] 寿命: 126秒 相手ホスト: 192.168.111.218, 送受信方向: 送信 プロトコル: ESP (モード: tunnel) アルゴリズム: DES-CBC (認証: none) SPI: b3 84 c6 02 鍵 : 85 78 23 e0 2f 89 37 49 4a 69 17 ac 88 92 df ca ----------------------------------------------------
ここでは、 AHやESPをトランスポートモードで利用する場合の設定を 説明します。ト ランスポートモードは、RT対RTの通信に 対してのみ有効であり、telnetでの遠隔設定 など特殊な 用途で利用します。また、後述のようにトンネルモード と複合的に利用す ることができます。
#ipsec sa policy 102 133.176.200.199 esp des-cbc sha-hmac #ipsec transport 1 102 tcp * telnetこの例では、このホストから対向のRTである133.176.200.199へ 向かうパケットのうち、 TCPの相手先ポートがtelnetであるような パケットに対して、ESPを付加します。また、 ESPの暗号アルゴリ ズムとして、DES-CBCを、認証アルゴリズムとして、HMAC-MD5を 用 います。 トランスポートモードでは、 ひとつのパケットに複数のAHとESPを付加することが で きます。 トランスポートモードの処理では、ipsec transport の設定をIDの小さいものから順に 調べ、処理中の パケットの内容と比較をします。そして、 IPヘッダの宛先、トランス ポート層(IPヘッダに続く 部分)のプロトコルなどをチェックし、処理が必要と 判断 された場合に、AHかESPを付加します。 ipsec transportの設定が残っている場合には、残り の設定についても順に比較をし、 随時AHやESPを付加 します。 次の例では、
#ipsec sa policy 101 133.176.200.199 esp 3des-cbc #ipsec sa policy 102 133.176.200.199 ah md5-hmac #ipsec sa policy 103 133.176.200.199 esp des-cbc #ipsec transport 1 101 icmp * * #ipsec transport 2 102 icmp * * #ipsec transport 3 103 icmp * *このルータから133.176.200.199へのICMPパケットに 対して、 #ipsec transport 1 101 icmp * *により、
[IPヘッダ][ESP {[ICMP]}]#ipsec transport 2 102 icmp * *により、
[IPヘッダ][AH][ESP {[ICMP]}]#ipsec transport 3 103 icmp * *により、
[IPヘッダ][ESP {[AH][ESP {[ICMP]}]}]のパケットが順に生成されます。 なお、ipsec transportの設定と、SAのポリシーの設定は 一対一に対応している必要は ありません。例えば
#ipsec sa policy 101 133.176.200.199 esp des-cbc #ipsec transport 1 101 icmp * * #ipsec transport 2 101 icmp * * #ipsec transport 3 101 icmp * *のような設定も可能です。この場合、各ipsec transport の設定に対する3つのSAが生 成され、ICMPのパケットに、3 つのESPが付加されることになります。
ここでは、ひとつのパケットに、トンネルモードと トランスポートモードの両方で、 AHやESPを付加する ための設定について説明します。 このためには、まず、以下に示すパケット処理の流れを 理解する必要があります。
IPパケットの待ち行列 | | フィルタ(in) | +------------------→| | | | トランスポートモードで | AHやESPを付加 | | | | | ルーティング | | | 宛先がトンネルI/F | であるか? | | | +------+-------+ | Yes | | No | | | | トンネルモードで フィルタ(out) | AHやESPを付加 | | | | | | 各I/Fへパケット +-------------+ を流す待ち行列から取り出されたパケットは、フィルタを くぐったあと、必要があればトラ ンスポートモードで AHやESPが付加されます。 その後、ルーティングの処理に移り、トンネルインタ フェースにルーティングされた 場合には、トンネルモー ドでAHやESPが付加されます。それ以外のパケットは、 その 他のインタフェースに送られます。経路表に トンネルインタフェースへ向けられた経 路情報が ある場合、LANやPP向けの経路情報より優先的に 利用されます。 トンネルモードの処理の済んだパケットは、再びトランス ポートモードの処理に移さ れます。その後、ルーティング の処理を受けますが、2回目のルーティングでは、 ト ンネルインタフェースにはルーティングしません。 例えば次の設定で
#ipsec sa policy 101 133.176.200.197 ah md5-hmac #ipsec sa policy 102 133.176.200.197 esp des-cbc #ipsec transport 1 101 esp * * #tunnel select 1 tunnel1#ip tunnel route add 192.168.1.0/24 2 tunnel1#ipsec tunnel 102 tunnel1#tunnel enable 1192.168.1.2へ向けられたパケットが来た場合、 トンネルモードの設定により、
[IPヘッダ(宛先:133.176.200.197)] [ESP {[IPヘッダ(宛先:192.168.1.2)] ...}]というパケットが生成され、その後、 トランスポートモードの設定により、
[IPヘッダ(宛先:133.176.200.197)] [AH] [ESP {[IPヘッダ(宛先:192.168.1.2)] ...}]というパケットが生成されることになります。
鍵交換に関係するログは、syslog debug onが設定されているときに 見ることができま す。鍵交換に関係するログは、行頭が[IKE] で表示されます。 基本的なログの説明は、こちらのドキュメント に記載しています。
寿命の切れたSAは自動的に消滅してしまうので、そのたびに SAを作り直すのは非常に 面倒です。そこで、RTでは、残り寿 命が少なくなったSAや、リブートなどによって消 滅してしま ったSAを自動的に生成する「自動更新機能」を実装していま す。
自動更新機能を利用するときには、
#ipsec auto refresh onというコマンドを設定します。
セキュリティ・ゲートウェイ間でIPアドレス変換処理(NATなど)が施されると IPsecの通信ができません。 もし、IPアドレス変換処理が施された場合、 IPsecの認証機能により「改竄された」と判断されることになります。
セキュリティ・ゲートウェイ間では、IPアドレス変換処理されない 通信路を確保してください。
RTシリーズでも、セキュリティ・ゲートウェイ機能とNAT機能やNATディスクリプタ機能を併用される時には、 IPsecパケットが通信相手のセキュリティ・ゲートウェイに届けられる経路で、 RTのNAT処理対象になることがあります。 そのような状況が想定される構成のときには、 NATのアドレス変換規則の設定コマンド(nat address global, nat address privateなど)により、IPsecパケットが変換対象にならないよう に設定する必要があります。