<前頁 次頁> << >> 目次 (番号順 (詳細)回線別 (詳細)機能別 (詳細)

CentreCOM AR300/AR700 シリーズ 設定例集 2.3 #90

NAT機器をはさむ2点間IPsec VPN(ESP over UDP)


インターネット上に暗号化されたトンネルを張り、2つの拠点をIP接続するIPsec VPNの設定例です(自動鍵管理)。この例は、IPsecルーター間に既設のNAT機器(ダイヤルアップルーターなど)が存在する場合の基本設定です。ここでは、NAT機器の設定を変更することなくNAT経由でIPsec(ESP)を使用するため、ESPパケットをUDPでカプセル化するESP over UDPを使用しています。

なお、この構成では常にルーターBから通信が開始されるため、NAT機器に特別な設定を施す必要はありません。ただし、無通信時にセッション情報がNAT変換テーブルから消えてしまわないよう、ルーターB側から定期的にUDPパケットを送信するようにします(UDPハートビート機能)。

ここでは、次のようなネットワーク構成を例に解説します。

Note - IPsecを使用するには、通信データの暗号化と復号化を行うすべてのルーターに別売の暗号ボード(AR010)または暗号・圧縮ボード(AR011)を装着する必要があります。

表 1
 
ルーターA
ルーターB
WAN側物理インターフェース eth1
PPPユーザー名 user@isp
PPPパスワード isppasswd
PPPoEサービス名 指定なし
WAN側(ppp0)IPアドレス 12.34.56.78/32
LAN側(eth0)IPアドレス(1) 192.168.10.1/24 192.168.20.1/24
LAN側(eth1)IPアドレス(2) 192.168.100.254/24
デフォルトゲートウェイ ppp0(WAN側) 192.168.100.1(NATボックス)


表 2:IKEフェーズ1(ISAKMP SAのネゴシエーション)
ルーター間の認証方式 事前共有鍵(pre-shared key)
IKE交換モード Aggressiveモード
事前共有鍵 secret(文字列)
ルーターAの認証ID IPアドレス:12.34.56.78(デフォルト)
ルーターBの認証ID 名前:client
Oakleyグループ 1(デフォルト)
ISAKMPメッセージの暗号化方式 DES(デフォルト)
ISAKMPメッセージの認証方式 SHA1(デフォルト)
ISAKMP SAの有効期限(時間) 86400秒(24時間)(デフォルト)
ISAKMP SAの有効期限(Kbyte数) なし(デフォルト)
起動時のISAKMPネゴシエーション 行わない


表 3:IKEフェーズ2(IPsec SAのネゴシエーション)
SAモード トンネルモード
セキュリティープロトコル ESP(暗号+認証)
暗号化方式 DES
認証方式 SHA1
IPComp 使わない
IPsec SAの有効期限(時間) 28800秒(8時間)(デフォルト)
IPsec SAの有効期限(Kbyte数) なし(デフォルト)
トンネリング対象IPアドレス 192.168.10.0/24 ←→ 192.168.20.0/24
トンネル終端アドレス 12.34.56.78(A)・不定(B)
インターネットとの平文通信 行なう




ルーターAの設定

  1. IPsecはセキュリティーモードでないと動作しないので、同モードで管理設定を行うことのできるSecurity Officerレベルのユーザーをあらかじめ登録しておきます。


    Note - Security Officerのパスワードは厳重に管理してください。

  2. WAN側Ethernetインターフェース(eth1)上にPPPインターフェースを作成します。「OVER=eth1-XXXX」の「XXXX」の部分には、ISPから通知されたPPPoEの「サービス名」を記述します。ISPから指定がない場合は、どのサービス名タグでも受け入れられるよう、「any」を設定します。


  3. ISPから通知されたPPPユーザー名とパスワードを指定します。LQRはオフにし、代わりにLCP Echoパケットを使ってPPPリンクの状態を監視するようにします。また、ISDN向けの機能であるBAPはオフにします。


  4. IPモジュールを有効にします。


  5. LAN側(eth0)インターフェースにIPアドレスを設定します。


  6. WAN側(ppp0)インターフェースにISPから割り当てられたIPアドレスを設定します。


  7. デフォルトルートを設定します。


  8. PPPoEセッションを自動再接続するためのトリガースクリプトを作成します。


    Note - ADD SCRIPTコマンドは、コンソールなどからログインした状態で、コマンドラインから実行するコマンドです。そのため、EDITコマンド(内蔵フルスクリーンエディター)等を使って設定スクリプトファイル(.CFG)にこのコマンドを記述しても意図した結果にならない場合がありますのでご注意ください。

  9. トリガー機能を有効にします。


  10. PPPoEセッションを自動再接続するためのトリガーを作成します。


  11. ファイアウォール機能を有効にします。


  12. ファイアウォールの動作を規定するファイアウォールポリシー「net」を作成します。


  13. ICMPパケットはPing(Echo/Echo Reply)と到達不可能(Unreachable)のみ双方向で許可します。


    Note - デフォルト設定では、ICMPはファイアウォールを通過できません。

  14. ルーターのidentプロキシー機能を無効にし、外部のメール(SMTP)サーバーなどからのident要求に対して、ただちにTCP RSTを返すよう設定します。


  15. ファイアウォールポリシーの適用対象となるインターフェースを指定します。


  16. LAN側ネットワークに接続されているすべてのコンピューターがENAT機能を使用できるよう設定します。グローバルアドレスには、ppp0のIPアドレスを使用します。


  17. このままでは、対向ルーターからのISAKMPパケットがファイアウォールを通過できないので、穴をあける設定を施します。


  18. また、ISAKMPパケットと同様に、ESPパケットをカプセル化しているUDPパケット(ESP over UDP)も通すよう設定します。ESP over UDPは、デフォルトでUDPのポート2746番を使用します。


  19. ローカルLANからリモートLANへのパケットにはNATをかけないよう設定します。


  20. 基本ルールのままではIPsecパケットまで遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットの終点が192.168.10.1〜192.168.10.254、つまり、ローカル側LANならばNATの対象外とする」の意味になります。


  21. ここからがIPsecの設定になります。最初にISAKMPで使用する事前共有鍵(pre-shared key)を作成します。


    Note - このコマンドはコンソールから直接入力したときだけ有効で、エディター等で設定ファイルに記述した場合は無効になります。

  22. ルーターBとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i」を作成します。KEYには、前の手順で作成した事前共有鍵(鍵番号「1」)を指定します。また、この例では相手のアドレスが不定なため、PEERにANYを、REMOTEIDで相手の認証IDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。


  23. IPsec通信の基本仕様を定義するSAスペック「1」を作成します。セキュリティープロトコル、暗号、ハッシュの両アルゴリズムを指定します。UDPトンネリングを使うときは、セキュリティープロトコルAHは使用できませんのでご注意ください。


  24. SAスペックをとりまとめるSAバンドルスペック「1」を作成します。ESPとAHを併用する場合などは、複数のSAスペックを作成して、本コマンドのSTRINGパラメーターで「1 and 2」のように指定します。この例ではSAスペックが1つだけなので、単に「1」と指定します。


  25. ESP over UDPパケットを通過させるためのIPsecポリシー「udp」を作成します。ESP over UDP使用時は必ずこのポリシーを作成してください。


  26. ISAKMPパケットを通過させるためのIPsecポリシー「isa」を作成します。ISAKMP使用時は必ず最初にこのポリシーを作成してください。


  27. IPsec通信の範囲を指定するIPsecポリシーを作成します。ここで指定した条件に一致するパケットに対して、BUNDLEパラメーターで指定したSAバンドルスペックに基づくIPsec処理が行われます。INTERFACEパラメーターで指定したインターフェースを通過するときに、IPsecの暗号化、復号化処理が行われます。相手がNATを使っているため、ISAKMPの認証をパスしたものだけを指定する意味で、PEERにDYNAMICを指定します。


  28. UDPトンネリングを有効にします。これにより、UDPのポート2746番でESP over UDPパケットをリスニングするようになります。


  29. インターネットとの通信を素通しさせるIPsecポリシー「inet」を作成します。


  30. IPsecを有効化します。


  31. ISAKMPを有効化します。


  32. Security Officerレベルのユーザーでログインしなおします。


  33. セキュリティーモードに移行します。


    Note - セキュリティーモードに移行したあとで、再度ノーマルモードに戻すと、暗号鍵などの情報は失われます。

  34. 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。



ルーターBの設定

  1. IPsecはセキュリティーモードでないと動作しないので、同モードで管理設定を行うことのできるSecurity Officerレベルのユーザーをあらかじめ登録しておきます。


    Note - Security Officerのパスワードは厳重に管理してください。

  2. 通常のIP設定を行います。クライアント側のルーターBは、NATボックス背後のLAN上に設置されているため、WAN側(eth1)、LAN側(eth0)ともプライベートアドレスであるとします。ルーターBのデフォルトルートとなるNATボックスのLAN側インターフェースは、192.168.100.1とします。


  3. ここからがIPsecの設定になります。最初にISAKMPで使用する事前共有鍵(pre-shared key)を作成します。


    Note - このコマンドはコンソールから直接入力したときだけ有効で、エディター等で設定ファイルに記述した場合は無効になります。

  4. ルーターAとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i」を作成します。KEYには、前の手順で作成した事前共有鍵(鍵番号「1」)を指定します。PEERには相手ルーターのIPアドレスを指定します。また、自分のアドレスがNATボックスで変換されてしまうため、LOCALIDで自分の認証IDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。


  5. IPsec通信の基本仕様を定義するSAスペック「1」を作成します。セキュリティープロトコル、暗号、ハッシュの両アルゴリズムを指定します。UDPトンネリングを使うときは、セキュリティープロトコルAHは使用できませんのでご注意ください。


  6. SAスペックをとりまとめるSAバンドルスペック「1」を作成します。


  7. ESP over UDPパケットを通過させるためのIPsecポリシー「udp」を作成します。ESP over UDP使用時は必ずこのポリシーを作成してください。


  8. ISAKMPパケットを通過させるためのIPsecポリシー「isa」を作成します。ISAKMP使用時は必ず最初にこのポリシーを作成してください。


  9. IPsec通信の範囲を指定するIPsecポリシーを作成します。ここで指定した条件に一致するパケットに対して、BUNDLEパラメーターで指定したSAバンドルスペックに基づくIPsec処理が行われます。INTERFACEパラメーターで指定したインターフェースを通過するときに、IPsecの暗号化、復号化処理が行われます。PEERには相手のIPアドレスを指定します。


  10. UDPトンネリングを有効にします。さらに、UDPハートビートを有効にして、無通信時にNATボックスからNAT変換テーブルが消えてしまわないようにします。


  11. インターネットとの通信を素通しさせるIPsecポリシー「inet」を作成します。


  12. IPsecを有効化します。


  13. ISAKMPを有効化します。


  14. Security Officerレベルのユーザーでログインしなおします。


  15. セキュリティーモードに移行します。


    Note - セキュリティーモードに移行したあとで、再度ノーマルモードに戻すと、暗号鍵などの情報は失われます。

  16. 設定は以上です。設定内容をファイルに保存し、SET CONFIGコマンドで起動時設定ファイルに指定します。



メモ

■ セキュリティーモードに移行すると、Security OfficerレベルでルーターにTelnetログインすることができなくなります。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO(Remote Security Officer)コマンドを使ってログインを許可するホストのIPアドレスを指定しておく必要があります。

たとえば、ネットワーク192.168.10.0/24、192.168.20.0/24上のすべてのホストからSecurity OfficerレベルでのTelnetログインを許可する場合は、次のようにします。


■ セキュリティーモードでは、たとえSecurity Officerでログインした場合であっても、セキュリティーコマンドを一定期間入力しないでいると、次回セキュリティーコマンドを入力したときにパスワードの再入力を求められます。このタイムアウト値は、下記コマンドによって変更できますが、IPsecの設定を行うときは、ノーマルモードで設定を行った後、セキュリティーモードに変更することをおすすめします。


■ セキュリティー関連コマンドのタイムアウトは、次のコマンドで変更できます。SECUREDELAYパラメーターには、10〜600(秒)を指定します。デフォルトは60秒です。

まとめ

ルーターAのコンフィグ [テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル(.cfg)に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。
ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER
CREATE PPP=0 OVER=eth1-any
SET PPP=0 OVER=eth1-any USER=user@isp PASSWORD=isppasswd BAP=OFF LQR=OFF ECHO=ON
ENABLE IP
ADD IP INT=eth0 IP=192.168.10.1 MASK=255.255.255.0
ADD IP INT=ppp0 IP=12.34.56.78 MASK=255.255.255.255
ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0
ENABLE TRIGGER
CREATE TRIGGER=1 PERIODIC=3 SCRIPT=reset.scp
CREATE TRIGGER=2 INTERFACE=ppp0 EVENT=UP CP=IPCP SCRIPT=up.scp
CREATE TRIGGER=3 INTERFACE=ppp0 EVENT=DOWN CP=IPCP SCRIPT=down.scp
ENABLE FIREWALL
CREATE FIREWALL POLICY=net
ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACH
DISABLE FIREWALL POLICY=net IDENTPROXY
ADD FIREWALL POLICY=net INT=eth0 TYPE=PRIVATE
ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC
ADD FIREWALL POLICY=net NAT=ENHANCED INT=eth0 GBLINT=ppp0
ADD FIREWALL POLICY=net RULE=1 ACTION=ALLOW INT=ppp0 PROT=UDP GBLPORT=500 GBLIP=12.34.56.78 PORT=500 IP=12.34.56.78
ADD FIREWALL POLICY=net RULE=2 ACTION=ALLOW INT=ppp0 PROT=UDP GBLPORT=2746 GBLIP=12.34.56.78 PORT=2746 IP=12.34.56.78
ADD FIREWALL POLICY=net RULE=3 ACTION=NONAT INT=eth0 PROT=ALL IP=192.168.10.1-192.168.10.254
SET FIREWALL POLICY=net RULE=3 REMOTEIP=192.168.20.1-192.168.20.254
ADD FIREWALL POLICY=net RULE=4 ACTION=NONAT INT=ppp0 PROT=ALL IP=192.168.10.1-192.168.10.254 ENCAP=IPSEC
# CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret"
CREATE ISAKMP POLICY=i PEER=ANY KEY=1 SENDN=TRUE REMOTEID="client" MODE=AGGRESSIVE
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROT=ESP ENCALG=DES HASHALG=SHA
CREATE IPSEC BUNDLESPEC=1 KEYMAN=ISAKMP STRING="1"
CREATE IPSEC POLICY=udp INT=ppp0 ACTION=PERMIT LPORT=2746 TRANSPORT=UDP
CREATE IPSEC POLICY=isa INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP
CREATE IPSEC POLICY=vpn INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC
SET IPSEC POLICY=vpn LAD=192.168.10.0 LMA=255.255.255.0 RAD=192.168.20.0 RMA=255.255.255.0
SET IPSEC POLICY=vpn UDPTUNNEL=TRUE
CREATE IPSEC POLICY=inet INT=ppp0 ACTION=PERMIT
ENABLE IPSEC
ENABLE ISAKMP
# LOGIN secoff
# ENABLE SYSTEM SECURITY_MODE


スクリプト「reset.scp」 [テキスト版]
RESET PPP=0


スクリプト「up.scp」 [テキスト版]
DISABLE TRIGGER=1


スクリプト「down.scp」 [テキスト版]
ENABLE TRIGGER=1


ルーターBのコンフィグ [テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル(.cfg)に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。
ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER
ENABLE IP
ADD IP INT=eth0 IP=192.168.20.1 MASK=255.255.255.0
ADD IP INT=eth1 IP=192.168.100.254
ADD IP ROUTE=0.0.0.0 INT=eth1 NEXT=192.168.100.1
# CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret"
CREATE ISAKMP POLICY=i PEER=12.34.56.78 KEY=1 SENDN=TRUE LOCALID="client" MODE=AGGRESSIVE
CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROT=ESP ENCALG=DES HASHALG=SHA
CREATE IPSEC BUNDLESPEC=1 KEYMAN=ISAKMP STRING="1"
CREATE IPSEC POLICY=udp INT=eth1 ACTION=PERMIT LPORT=2746 TRANSPORT=UDP
CREATE IPSEC POLICY=isa INT=eth1 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP
CREATE IPSEC POLICY=vpn INT=eth1 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=12.34.56.78
SET IPSEC POLICY=vpn LAD=192.168.20.0 LMA=255.255.255.0 RAD=192.168.10.0 RMA=255.255.255.0
SET IPSEC POLICY=vpn UDPTUNNEL=TRUE UDPHEARTBEAT=TRUE
CREATE IPSEC POLICY=inet INT=eth1 ACTION=PERMIT
ENABLE IPSEC
ENABLE ISAKMP
# LOGIN secoff
# ENABLE SYSTEM SECURITY_MODE





CentreCOM AR300/AR700 シリーズ 設定例集 2.3 #90

Copyright (C) 1997-2003 アライドテレシス株式会社

PN: J613-M0507-00 Rev.G

<前頁 次頁> << >> 目次 (番号順 (詳細)回線別 (詳細)機能別 (詳細)