＜前頁 次頁＞ ＜＜ ＞＞ ↓ 目次 （番号順 (詳細)・ 回線別 (詳細)・ 機能別 (詳細)）

CentreCOM AR550S 設定例集 2.9 #133

# PPPoEインターネット接続環境における3点間IPsec VPN（支社間通信なし、支社はアドレス不定）

PPPoEでインターネットに接続している3つの拠点をIPsec（ESP）トンネルで結ぶVPN構築例です。この例では本社と各支社のみを接続する構成とし、支社間の通信は行わないものとします。またこの例では、本社にのみグローバルアドレス1個が固定的に割り当てられており、各支社のルーターのアドレスは不定（動的割り当て）であると仮定しています。

各拠点は、ISPから次の情報を提供されているものとします。

表 1：ISPから提供された情報
| ルーターA（本社） | ルーターB（支社） | ルーターC（支社）
PPPユーザー名 | user@ispA | user@ispB | user@ispC
PPPパスワード | isppasswdA | isppasswdB | isppasswdC
PPPoEサービス名 | 指定なし | 指定なし | 指定なし
使用できるIPアドレス | 200.100.10.1/32 | 接続時に割り当て | 接続時に割り当て
接続形態 | 端末型（アドレス1個固定） | 端末型（アドレス1個不定） | 端末型（アドレス1個不定）

本社、支社のルーター（A、B、C）は、ファイアウォールとダイナミックENATを使用した通常の端末型設定（Aはアドレス1個固定。BとCはアドレス不定）です。
以下、各ルーターの基本設定についてまとめます。

表 2：ルーターの基本設定
| ルーターA（本社） | ルーターB（支社） | ルーターC（支社）
WAN側物理インターフェース | eth0 | eth0 | eth0
WAN側IPアドレス | 200.100.10.1/32（ppp0） | 動的割り当て（ppp0） | 動的割り当て（ppp0）
LAN側IPアドレス | 192.168.10.1/24（vlan1） | 192.168.20.1/24（vlan1） | 192.168.30.1/24（vlan1）

IPsec関連の設定は次のようになります。

表 3：IKEフェーズ1（ISAKMP SAのネゴシエーション）
ルーター間の認証方式 | 事前共有鍵（pre-shared key）
IKE交換モード | Aggressiveモード
事前共有鍵(1) | secret-ab（ルーターA・B間）
事前共有鍵(2) | secret-ac（ルーターA・C間）
ルーターAの認証ID | IPアドレス：200.100.10.1（デフォルト）
ルーターBの認証ID | 名前：client_B
ルーターCの認証ID | 名前：client_C
Oakleyグループ | 1（デフォルト）
ISAKMPメッセージの暗号化方式 | DES（デフォルト）
ISAKMPメッセージの認証方式 | SHA1（デフォルト）
ISAKMP SAの有効期限（時間） | 86400秒（24時間）（デフォルト）
ISAKMP SAの有効期限（KByte数） | なし（デフォルト）
起動時のISAKMPネゴシエーション | 行わない

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

ルーターAの設定

1. セキュリティーモードで各種設定を行うことのできるSecurity Officerレベルのユーザー「secoff」を作成します。パスワードは「PasswordS」とします。

   `ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓`

   > Note - Security Officerレベルのユーザーを作成しておかないと、セキュリティーモードに移行できませんのでご注意ください。

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

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

   `SET PPP=0 OVER=eth0-ANY USER=user@ispA PASSWORD=isppasswdA LQR=OFF BAP=OFF ECHO=ON ↓`
4. IPモジュールを有効にします。

   `ENABLE IP ↓`
5. LAN側（vlan1）インターフェースにIPアドレスを設定します。

   `ADD IP INT=vlan1 IP=192.168.10.1 MASK=255.255.255.0 ↓`
6. WAN側（ppp0）インターフェースにISPから割り当てられたIPアドレスを設定します。

   `ADD IP INT=ppp0 IP=200.100.10.1 MASK=255.255.255.255 ↓`
7. デフォルトルートを設定します。

   `ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓`
8. ファイアウォール機能を有効にします。

   `ENABLE FIREWALL ↓`
9. ファイアウォールの動作を規定するファイアウォールポリシーを作成します。

   `CREATE FIREWALL POLICY=net ↓`
10. ICMPパケットはPing（Echo/Echo Reply）と到達不可能（Unreachable）のみ双方向で許可します。

    `ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE ↓`

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

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

    `DISABLE FIREWALL POLICY=net IDENTPROXY ↓`
12. ファイアウォールポリシーの適用対象となるインターフェースを指定します。
    - LAN側インターフェース（vlan1）をPRIVATE（内部）に設定します。

      `ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓`
    - WAN側インターフェース（ppp0）をPUBLIC（外部）に設定します。

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

    `ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓`
14. 相手ルーターから受信したIKEパケット（UDP500番）がファイアウォールを通過できるように設定します。

    `ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=ppp0 PROT=UDP PORT=500 IP=200.100.10.1 GBLIP=200.100.10.1 GBLPORT=500 ↓`
15. 支社（ルーターB側）宛パケット（192.168.10.0/24→192.168.20.0/24）をNATの対象から除外するよう設定します。

    `ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.10.1-192.168.10.254 ↓
    SET FIREWALL POLICY=net RULE=2 REMOTEIP=192.168.20.1-192.168.20.254 ↓
    `
16. 支社（ルーターC側）宛パケット（192.168.10.0/24→192.168.30.0/24）をNATの対象から除外するよう設定します。

    `ADD FIREWALL POLICY=net RULE=3 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.10.1-192.168.10.254 ↓
    SET FIREWALL POLICY=net RULE=3 REMOTEIP=192.168.30.1-192.168.30.254 ↓
    `
17. 基本ルールのままではIPsecパケットまで遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットの終点が192.168.10.1〜192.168.10.254、つまり、本社宛ならばNATの対象外とする」の意味になります。

    `ADD FIREWALL POLICY=net RULE=4 AC=NONAT INT=ppp0 PROT=ALL IP=192.168.10.1-192.168.10.254 ENCAP=IPSEC ↓`
18. ISAKMP用の事前共有鍵（pre-shared key）を作成します。ここでは鍵番号を「1」、「2」番とし、鍵の値は「secret-ab」、「secret-ac」という文字列で指定します（ルーターB、Cと同じに設定）。

    `CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret-ab" ↓
    CREATE ENCO KEY=2 TYPE=GENERAL VALUE="secret-ac" ↓
    `

    > Note - CREATE ENCO KEYコマンドは、コンソール上でログインしている場合のみ有効なコマンドです。そのため、EDITコマンド（内蔵スクリーンエディター）などで設定スクリプトファイル（.CFG）にこのコマンドを記述しても無効になりますのでご注意ください。

    > Note - CREATE ENCO KEYコマンドで作成された鍵は、ノーマルモードでは、ルーターの再起動によって消去されます。暗号鍵を使用する場合は、必ずセキュリティーモードに移行して鍵が保存されるようにしてください。

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

    `CREATE ISAKMP POLICY="i_B" PEER=ANY KEY=1 SENDN=TRUE REMOTEID="client_B" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓`
20. ルーターCとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i_C」を作成します。KEYには、前の手順で作成した事前共有鍵（鍵番号「2」）を、PEERにはルーターCのIPアドレスを指定します。また、この例では相手のアドレスが不定なため、PEERにANYを、REMOTEIDで相手の認証IDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。

    `CREATE ISAKMP POLICY="i_C" PEER=ANY KEY=2 SENDN=TRUE REMOTEID="client_C" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓`
21. IPsec通信の仕様を定義するSAスペック「1」を作成します。トンネルモード（デフォルト）、鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。

    `CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓`
22. SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。

    `CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓`
23. ISAKMPメッセージを素通しさせるIPsecポリシー「isa」を作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット（ISAKMP）に設定します。

    `CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓`

    > Note - ISAKMPを使用する場合は、必ず最初のIPsecポリシーでISAKMPメッセージが通過できるような設定を行ってください。「IPsecポリシー」は設定順に検索され、最初にマッチしたものが適用されるため、設定順序には注意が必要です。検索順はSHOW IPSEC POLICYコマンドで確認できます。また、検索順を変更するには、SET IPSEC POLICYコマンドのPOSITIONパラメーターを使用します。

24. ルーターBとのIPsec通信に使用するIPsecポリシー「vpn_B」をPPPインターフェース「0」に対して作成します。相手のIPアドレスが不定なので、ISAKMPの認証をパスしたものだけを指定する意味で、PEERにDYNAMICを指定します。

    `CREATE IPSEC POLICY="vpn_B" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓`
25. IPsecポリシー「vpn_B」に対して実際にIPsec通信を行うIPアドレスの範囲を指定します。コマンドが長くなるため、できるだけ省略形を用いてください。

    `SET IPSEC POLICY="vpn_B" LAD=192.168.10.0 LMA=255.255.255.0 RAD=192.168.20.0 RMA=255.255.255.0 ↓`
26. ルーターCとのIPsec通信に使用するIPsecポリシー「vpn_C」をPPPインターフェース「0」に対して作成します。相手のIPアドレスが不定なので、ISAKMPの認証をパスしたものだけを指定する意味で、PEERにDYNAMICを指定します。

    `CREATE IPSEC POLICY="vpn_C" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓`
27. IPsecポリシー「vpn_C」に対して実際にIPsec通信を行うIPアドレスの範囲を指定します。コマンドが長くなるため、できるだけ省略形を用いてください。

    `SET IPSEC POLICY="vpn_C" LAD=192.168.10.0 LMA=255.255.255.0 RAD=192.168.30.0 RMA=255.255.255.0 ↓`
28. インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0」に対して作成します。

    `CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓`

    > Note - インターネットにもアクセスしたい場合は、必ず最後のIPsecポリシーですべてのパケットを通過させる設定を行ってください。いずれのIPsecポリシーにもマッチしなかったトラフィックはデフォルトで破棄されてしまうため、上記の設定がないとVPN以外との通信ができなくなります。

29. IPsecモジュールを有効にします。

    `ENABLE IPSEC ↓`
30. ISAKMPモジュールを有効にします。

    `ENABLE ISAKMP ↓`
31. Security Officerレベルのユーザーでログインしなおします。

    `LOGIN secoff ↓`
32. 動作モードをセキュリティーモードに切り替えます。

    `ENABLE SYSTEM SECURITY_MODE ↓`

    > Note - セキュリティーモードでは、Security OfficerレベルでのTelnetログインが原則として禁止されています。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO（Remote Security Officer）の設定を行っておいてください（本章末尾のメモを参照）。

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

    `CREATE CONFIG=router.cfg ↓
    SET CONFIG=router.cfg ↓
    `

ルーターBの設定

1. セキュリティーモードで各種設定を行うことのできるSecurity Officerレベルのユーザー「secoff」を作成します。パスワードは「PasswordS」とします。

   `ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓`

   > Note - Security Officerレベルのユーザーを作成しておかないと、セキュリティーモードに移行できませんのでご注意ください。

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

   `CREATE PPP=0 OVER=eth0-ANY ↓`
3. ISPから通知されたPPPユーザー名とパスワードを指定し、接続時にIPアドレス割り当ての要求を行うように設定します。LQRはオフにし、代わりにLCP Echoパケットを使ってPPPリンクの状態を監視するようにします。また、ISDN向けの機能であるBAPはオフにします。

   `SET PPP=0 OVER=eth0-ANY USER=user@ispB PASSWORD=isppasswdB LQR=OFF BAP=OFF IPREQUEST=ON ECHO=ON ↓`
4. IPモジュールを有効にします。

   `ENABLE IP ↓`
5. IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。

   `ENABLE IP REMOTEASSIGN ↓`
6. LAN側（vlan1）インターフェースにIPアドレスを設定します。

   `ADD IP INT=vlan1 IP=192.168.20.1 MASK=255.255.255.0 ↓`
7. WAN側（ppp0）インターフェースにIPアドレス「0.0.0.0」を設定します。ISPとの接続が確立するまで、IPアドレスは確定しません。

   `ADD IP INT=ppp0 IP=0.0.0.0 ↓`
8. デフォルトルートを設定します。

   `ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓`
9. ファイアウォール機能を有効にします。

   `ENABLE FIREWALL ↓`
10. ファイアウォールの動作を規定するファイアウォールポリシーを作成します。

    `CREATE FIREWALL POLICY=net ↓`
11. ICMPパケットはPing（Echo/Echo Reply）と到達不可能（Unreachable）のみ双方向で許可します。

    `ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE ↓`

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

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

    `DISABLE FIREWALL POLICY=net IDENTPROXY ↓`
13. ファイアウォールポリシーの適用対象となるインターフェースを指定します。
    - LAN側インターフェース（vlan1）をPRIVATE（内部）に設定します。

      `ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓`
    - WAN側インターフェース（ppp0）をPUBLIC（外部）に設定します。

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

    `ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓`
15. 本社（ルーターA側）宛のパケット（192.168.20.0/24→192.168.10.0/24）をNATの対象から除外するよう設定します。

    `ADD FIREWALL POLICY=net RULE=1 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.20.1-192.168.20.254 ↓
    SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.10.1-192.168.10.254 ↓
    `
16. 基本ルールのままではIPsecパケットまで遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットの終点が192.168.20.1〜192.168.20.254、つまり、自拠点宛ならばNATの対象外とする」の意味になります。

    `ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=ppp0 PROT=ALL IP=192.168.20.1-192.168.20.254 ENCAP=IPSEC ↓`
17. ISAKMP用の事前共有鍵（pre-shared key）を作成します。ここでは鍵番号を「1」番とし、鍵の値は「secret-ab」という文字列で指定します（ルーターAと同じに設定）。

    `CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret-ab" ↓
    `

    > Note - CREATE ENCO KEYコマンドは、コンソール上でログインしている場合のみ有効なコマンドです。そのため、EDITコマンド（内蔵スクリーンエディター）などで設定スクリプトファイル（.CFG）にこのコマンドを記述しても無効になりますのでご注意ください。

    > Note - CREATE ENCO KEYコマンドで作成された鍵は、ノーマルモードでは、ルーターの再起動によって消去されます。暗号鍵を使用する場合は、必ずセキュリティーモードに移行して鍵が保存されるようにしてください。

18. ルーターAとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i_A」を作成します。KEYには、前の手順で作成した事前共有鍵（鍵番号「1」）を、PEERにはルーターAのIPアドレスを指定します。また、自分のアドレスが不定なため、LOCALIDで自分の認証IDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。

    `CREATE ISAKMP POLICY="i_A" PEER=200.100.10.1 KEY=1 SENDN=TRUE LOCALID="client_B" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓`
19. IPsec通信の仕様を定義するSAスペック「1」を作成します。トンネルモード（デフォルト）、鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。

    `CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓`
20. SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。

    `CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓`
21. ISAKMPメッセージを素通しさせるIPsecポリシー「isa」を作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット（ISAKMP）に設定します。

    `CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓`

    > Note - ISAKMPを使用する場合は、必ず最初のIPsecポリシーでISAKMPメッセージが通過できるような設定を行ってください。「IPsecポリシー」は設定順に検索され、最初にマッチしたものが適用されるため、設定順序には注意が必要です。検索順はSHOW IPSEC POLICYコマンドで確認できます。また、検索順を変更するには、SET IPSEC POLICYコマンドのPOSITIONパラメーターを使用します。

22. ルーターAとのIPsec通信に使用するIPsecポリシー「vpn_A」をPPPインターフェース「0」に対して作成します。
    鍵管理方式には「ISAKMP」を、PEERにはルーターAのIPアドレスを、BUNDLEにはSAバンドルスペック「1」を指定します。

    `CREATE IPSEC POLICY="vpn_A" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=200.100.10.1 ↓`
23. IPsecポリシー「vpn_A」に対して実際にIPsec通信を行うIPアドレスの範囲を指定します。コマンドが長くなるため、できるだけ省略形を用いてください。

    `SET IPSEC POLICY="vpn_A" LAD=192.168.20.0 LMA=255.255.255.0 RAD=192.168.10.0 RMA=255.255.255.0 ↓`
24. インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0」に対して作成します。

    `CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓`

    > Note - インターネットにもアクセスしたい場合は、必ず最後のIPsecポリシーですべてのパケットを通過させる設定を行ってください。いずれのIPsecポリシーにもマッチしなかったトラフィックはデフォルトで破棄されてしまうため、上記の設定がないとVPN以外との通信ができなくなります。

25. IPsecモジュールを有効にします。

    `ENABLE IPSEC ↓`
26. ISAKMPモジュールを有効にします。

    `ENABLE ISAKMP ↓`
27. Security Officerレベルのユーザーでログインしなおします。

    `LOGIN secoff ↓`
28. 動作モードをセキュリティーモードに切り替えます。

    `ENABLE SYSTEM SECURITY_MODE ↓`

    > Note - セキュリティーモードでは、Security OfficerレベルでのTelnetログインが原則として禁止されています。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO（Remote Security Officer）の設定を行っておいてください（本章末尾のメモを参照）。

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

    `CREATE CONFIG=router.cfg ↓
    SET CONFIG=router.cfg ↓
    `

ルーターCの設定

1. セキュリティーモードで各種設定を行うことのできるSecurity Officerレベルのユーザー「secoff」を作成します。パスワードは「PasswordS」とします。

   `ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓`

   > Note - Security Officerレベルのユーザーを作成しておかないと、セキュリティーモードに移行できませんのでご注意ください。

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

   `CREATE PPP=0 OVER=eth0-ANY ↓`
3. ISPから通知されたPPPユーザー名とパスワードを指定し、接続時にIPアドレス割り当ての要求を行うように設定します。LQRはオフにし、代わりにLCP Echoパケットを使ってPPPリンクの状態を監視するようにします。また、ISDN向けの機能であるBAPはオフにします。

   `SET PPP=0 OVER=eth0-ANY USER=user@ispC PASSWORD=isppasswdC LQR=OFF BAP=OFF IPREQUEST=ON ECHO=ON ↓`
4. IPモジュールを有効にします。

   `ENABLE IP ↓`
5. IPCPネゴシエーションで与えられたIPアドレスをPPPインターフェースで使用するように設定します。

   `ENABLE IP REMOTEASSIGN ↓`
6. LAN側（vlan1）インターフェースにIPアドレスを設定します。

   `ADD IP INT=vlan1 IP=192.168.30.1 MASK=255.255.255.0 ↓`
7. WAN側（ppp0）インターフェースにIPアドレス「0.0.0.0」を設定します。ISPとの接続が確立するまで、IPアドレスは確定しません。

   `ADD IP INT=ppp0 IP=0.0.0.0 ↓`
8. デフォルトルートを設定します。

   `ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓`
9. ファイアウォール機能を有効にします。

   `ENABLE FIREWALL ↓`
10. ファイアウォールの動作を規定するファイアウォールポリシーを作成します。

    `CREATE FIREWALL POLICY=net ↓`
11. ICMPパケットはPing（Echo/Echo Reply）と到達不可能（Unreachable）のみ双方向で許可します。

    `ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE ↓`

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

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

    `DISABLE FIREWALL POLICY=net IDENTPROXY ↓`
13. ファイアウォールポリシーの適用対象となるインターフェースを指定します。
    - LAN側インターフェース（vlan1）をPRIVATE（内部）に設定します。

      `ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓`
    - WAN側インターフェース（ppp0）をPUBLIC（外部）に設定します。

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

    `ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓`
15. 本社（ルーターA側）宛のパケット（192.168.30.0/24→192.168.10.0/24）をNATの対象から除外するよう設定します。

    `ADD FIREWALL POLICY=net RULE=1 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.30.1-192.168.30.254 ↓
    SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.10.1-192.168.10.254 ↓
    `
16. 基本ルールのままではIPsecパケットまで遮断されてしまうので、これらのパケットを通過させるためのルールを設定します。「ENCAP=IPSEC」は、IPsecパケットからオリジナルのパケットを取り出したあとでこのルールを適用することを示します。よって、以下のコマンドは、「取り出したパケットの終点が192.168.30.1〜192.168.30.254、つまり、自拠点宛ならばNATの対象外とする」の意味になります。

    `ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=ppp0 PROT=ALL IP=192.168.30.1-192.168.30.254 ENCAP=IPSEC ↓`
17. ISAKMP用の事前共有鍵（pre-shared key）を作成します。ここでは鍵番号を「1」番とし、鍵の値は「secret-ac」という文字列で指定します（ルーターAと同じに設定）。

    `CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret-ac" ↓
    `

    > Note - CREATE ENCO KEYコマンドは、コンソール上でログインしている場合のみ有効なコマンドです。そのため、EDITコマンド（内蔵スクリーンエディター）などで設定スクリプトファイル（.CFG）にこのコマンドを記述しても無効になりますのでご注意ください。

    > Note - CREATE ENCO KEYコマンドで作成された鍵は、ノーマルモードでは、ルーターの再起動によって消去されます。暗号鍵を使用する場合は、必ずセキュリティーモードに移行して鍵が保存されるようにしてください。

18. ルーターAとのIKEネゴシエーション要求を受け入れるISAKMPポリシー「i_A」を作成します。KEYには、前の手順で作成した事前共有鍵（鍵番号「1」）を、PEERにはルーターAのIPアドレスを指定します。また、自分のアドレスが不定なため、LOCALIDで自分の認証IDを指定し、「MODE=AGGRESSIVE」でAggressiveモードを使うよう設定します。

    `CREATE ISAKMP POLICY="i_A" PEER=200.100.10.1 KEY=1 SENDN=TRUE LOCALID="client_C" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓`
19. IPsec通信の仕様を定義するSAスペック「1」を作成します。トンネルモード（デフォルト）、鍵管理方式「ISAKMP」、プロトコル「ESP」、暗号化方式「DES」、認証方式「SHA」に設定します。

    `CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓`
20. SAスペック「1」だけからなるSAバンドルスペック「1」を作成します。鍵管理方式は「ISAKMP」を指定します。

    `CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓`
21. ISAKMPメッセージを素通しさせるIPsecポリシー「isa」を作成します。ポリシーの適用対象を、ローカルの500番ポートからリモートの500番ポート宛のUDPパケット（ISAKMP）に設定します。

    `CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓`

    > Note - ISAKMPを使用する場合は、必ず最初のIPsecポリシーでISAKMPメッセージが通過できるような設定を行ってください。「IPsecポリシー」は設定順に検索され、最初にマッチしたものが適用されるため、設定順序には注意が必要です。検索順はSHOW IPSEC POLICYコマンドで確認できます。また、検索順を変更するには、SET IPSEC POLICYコマンドのPOSITIONパラメーターを使用します。

22. ルーターAとのIPsec通信に使用するIPsecポリシー「vpn_A」をPPPインターフェース「0」に対して作成します。
    鍵管理方式には「ISAKMP」を、PEERにはルーターAのIPアドレスを、BUNDLEにはSAバンドルスペック「1」を指定します。

    `CREATE IPSEC POLICY="vpn_A" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=200.100.10.1 ↓`
23. IPsecポリシー「vpn_A」に対して実際にIPsec通信を行うIPアドレスの範囲を指定します。コマンドが長くなるため、できるだけ省略形を用いてください。

    `SET IPSEC POLICY="vpn_A" LAD=192.168.30.0 LMA=255.255.255.0 RAD=192.168.10.0 RMA=255.255.255.0 ↓`
24. インターネットへの平文通信を許可するIPsecポリシー「inet」をPPPインターフェース「0」に対して作成します。

    `CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓`

    > Note - インターネットにもアクセスしたい場合は、必ず最後のIPsecポリシーですべてのパケットを通過させる設定を行ってください。いずれのIPsecポリシーにもマッチしなかったトラフィックはデフォルトで破棄されてしまうため、上記の設定がないとVPN以外との通信ができなくなります。

25. IPsecモジュールを有効にします。

    `ENABLE IPSEC ↓`
26. ISAKMPモジュールを有効にします。

    `ENABLE ISAKMP ↓`
27. Security Officerレベルのユーザーでログインしなおします。

    `LOGIN secoff ↓`
28. 動作モードをセキュリティーモードに切り替えます。

    `ENABLE SYSTEM SECURITY_MODE ↓`

    > Note - セキュリティーモードでは、Security OfficerレベルでのTelnetログインが原則として禁止されています。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO（Remote Security Officer）の設定を行っておいてください（本章末尾のメモを参照）。

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

    `CREATE CONFIG=router.cfg ↓
    SET CONFIG=router.cfg ↓
    `

メモ

■ ファイアウォールで遮断されたパケットのログをとるには、次のコマンドを実行します。

`ENABLE FIREWALL POLICY=net LOG=DENY ↓`

記録されたログを見るには、次のコマンドを実行します。ここでは、「TYPE=FIRE」により、ファイアウォールが出力したログメッセージだけを表示させています。

`SHOW LOG TYPE=FIRE ↓`

■ インターネット側からのPING（ICMP Echo Requestパケット）を拒否するには、次のようなIPフィルターをWAN側インターフェースに設定します。この例では、「LOG=HEADER」により、フィルターで拒否したパケットをログに記録しています。

`ADD IP FILTER=0 SO=0.0.0.0 PROTO=ICMP ICMPTYPE=ECHO LOG=HEADER ACTION=EXCLUDE ↓
ADD IP FILTER=0 SO=0.0.0.0 ACTION=INCLUDE ↓
SET IP INT=ppp0 FILTER=0 ↓
`

記録されたログを見るには、次のコマンドを実行します。ここでは、「TYPE=IPFIL」により、IPフィルターが出力したログメッセージだけを表示させています。

`SHOW LOG TYPE=IPFIL ↓`

■ セキュリティーモードに移行すると、Security OfficerレベルでルーターにTelnetログインすることができなくなります。セキュリティーモードにおいて、Security OfficerレベルでTelnetログインしたい場合は、あらかじめRSO（Remote Security Officer）コマンドを使ってログインを許可するホストのIPアドレスを指定しておく必要があります。
たとえば、ネットワーク192.168.10.0/24、192.168.20.0/24、192.168.30.0/24上のすべてのホストからSecurity OfficerレベルでのTelnetログインを許可する場合は、次のようにします。

`ENABLE USER RSO ↓
ADD USER RSO IP=192.168.10.0 MASK=255.255.255.0 ↓
ADD USER RSO IP=192.168.20.0 MASK=255.255.255.0 ↓
ADD USER RSO IP=192.168.30.0 MASK=255.255.255.0 ↓
`

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

`SET USER SECUREDELAY=300 ↓`

まとめ

ルーターAのコンフィグ [テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル（.cfg）に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。

`ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓ CREATE PPP=0 OVER=eth0-ANY ↓ SET PPP=0 OVER=eth0-ANY USER=user@ispA PASSWORD=isppasswdA LQR=OFF BAP=OFF ECHO=ON ↓ ENABLE IP ↓ ADD IP INT=vlan1 IP=192.168.10.1 MASK=255.255.255.0 ↓ ADD IP INT=ppp0 IP=200.100.10.1 MASK=255.255.255.255 ↓ ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓ ENABLE FIREWALL ↓ CREATE FIREWALL POLICY=net ↓ ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE ↓ DISABLE FIREWALL POLICY=net IDENTPROXY ↓ ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓ ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓ ADD FIREWALL POLICY=net RULE=1 AC=ALLOW INT=ppp0 PROT=UDP PORT=500 IP=200.100.10.1 GBLIP=200.100.10.1 GBLPORT=500 ↓ ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.10.1-192.168.10.254 ↓ SET FIREWALL POLICY=net RULE=2 REMOTEIP=192.168.20.1-192.168.20.254 ↓ ADD FIREWALL POLICY=net RULE=3 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.10.1-192.168.10.254 ↓ SET FIREWALL POLICY=net RULE=3 REMOTEIP=192.168.30.1-192.168.30.254 ↓ ADD FIREWALL POLICY=net RULE=4 AC=NONAT INT=ppp0 PROT=ALL IP=192.168.10.1-192.168.10.254 ENCAP=IPSEC ↓ # CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret-ab" ↓ # CREATE ENCO KEY=2 TYPE=GENERAL VALUE="secret-ac" ↓ CREATE ISAKMP POLICY="i_B" PEER=ANY KEY=1 SENDN=TRUE REMOTEID="client_B" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓ CREATE ISAKMP POLICY="i_C" PEER=ANY KEY=2 SENDN=TRUE REMOTEID="client_C" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓ CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓ CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓ CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓ CREATE IPSEC POLICY="vpn_B" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓ SET IPSEC POLICY="vpn_B" LAD=192.168.10.0 LMA=255.255.255.0 RAD=192.168.20.0 RMA=255.255.255.0 ↓ CREATE IPSEC POLICY="vpn_C" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=DYNAMIC ↓ SET IPSEC POLICY="vpn_C" LAD=192.168.10.0 LMA=255.255.255.0 RAD=192.168.30.0 RMA=255.255.255.0 ↓ CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓ ENABLE IPSEC ↓ ENABLE ISAKMP ↓ # LOGIN secoff ↓ # ENABLE SYSTEM SECURITY_MODE ↓`

ルーターBのコンフィグ [テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル（.cfg）に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。

`ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓ CREATE PPP=0 OVER=eth0-ANY ↓ SET PPP=0 OVER=eth0-ANY USER=user@ispB PASSWORD=isppasswdB LQR=OFF BAP=OFF IPREQUEST=ON ECHO=ON ↓ ENABLE IP ↓ ENABLE IP REMOTEASSIGN ↓ ADD IP INT=vlan1 IP=192.168.20.1 MASK=255.255.255.0 ↓ ADD IP INT=ppp0 IP=0.0.0.0 ↓ ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓ ENABLE FIREWALL ↓ CREATE FIREWALL POLICY=net ↓ ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE ↓ DISABLE FIREWALL POLICY=net IDENTPROXY ↓ ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓ ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓ ADD FIREWALL POLICY=net RULE=1 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.20.1-192.168.20.254 ↓ SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.10.1-192.168.10.254 ↓ ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=ppp0 PROT=ALL IP=192.168.20.1-192.168.20.254 ENCAP=IPSEC ↓ # CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret-ab" ↓ CREATE ISAKMP POLICY="i_A" PEER=200.100.10.1 KEY=1 SENDN=TRUE LOCALID="client_B" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓ CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓ CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓ CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓ CREATE IPSEC POLICY="vpn_A" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=200.100.10.1 ↓ SET IPSEC POLICY="vpn_A" LAD=192.168.20.0 LMA=255.255.255.0 RAD=192.168.10.0 RMA=255.255.255.0 ↓ CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓ ENABLE IPSEC ↓ ENABLE ISAKMP ↓ # LOGIN secoff ↓ # ENABLE SYSTEM SECURITY_MODE ↓`

ルーターCのコンフィグ [テキスト版]
* 「#」で始まる行は、コンソールから入力しないと意味を持たないコマンドか、設定ファイル（.cfg）に記述しても無効なコマンドを示しています。詳細は本文の説明をご覧ください。

`ADD USER=secoff PASSWORD=PasswordS PRIVILEGE=SECURITYOFFICER ↓ CREATE PPP=0 OVER=eth0-ANY ↓ SET PPP=0 OVER=eth0-ANY USER=user@ispC PASSWORD=isppasswdC LQR=OFF BAP=OFF IPREQUEST=ON ECHO=ON ↓ ENABLE IP ↓ ENABLE IP REMOTEASSIGN ↓ ADD IP INT=vlan1 IP=192.168.30.1 MASK=255.255.255.0 ↓ ADD IP INT=ppp0 IP=0.0.0.0 ↓ ADD IP ROUTE=0.0.0.0 INT=ppp0 NEXTHOP=0.0.0.0 ↓ ENABLE FIREWALL ↓ CREATE FIREWALL POLICY=net ↓ ENABLE FIREWALL POLICY=net ICMP_F=PING,UNREACHABLE ↓ DISABLE FIREWALL POLICY=net IDENTPROXY ↓ ADD FIREWALL POLICY=net INT=vlan1 TYPE=PRIVATE ↓ ADD FIREWALL POLICY=net INT=ppp0 TYPE=PUBLIC ↓ ADD FIREWALL POLICY=net NAT=ENHANCED INT=vlan1 GBLINT=ppp0 ↓ ADD FIREWALL POLICY=net RULE=1 AC=NONAT INT=vlan1 PROT=ALL IP=192.168.30.1-192.168.30.254 ↓ SET FIREWALL POLICY=net RULE=1 REMOTEIP=192.168.10.1-192.168.10.254 ↓ ADD FIREWALL POLICY=net RULE=2 AC=NONAT INT=ppp0 PROT=ALL IP=192.168.30.1-192.168.30.254 ENCAP=IPSEC ↓ # CREATE ENCO KEY=1 TYPE=GENERAL VALUE="secret-ac" ↓ CREATE ISAKMP POLICY="i_A" PEER=200.100.10.1 KEY=1 SENDN=TRUE LOCALID="client_C" MODE=AGGRESSIVE HEARTBEATMODE=BOTH ↓ CREATE IPSEC SASPEC=1 KEYMAN=ISAKMP PROTOCOL=ESP ENCALG=DES HASHALG=SHA ↓ CREATE IPSEC BUNDLE=1 KEYMAN=ISAKMP STRING="1" ↓ CREATE IPSEC POLICY="isa" INT=ppp0 ACTION=PERMIT LPORT=500 RPORT=500 TRANSPORT=UDP ↓ CREATE IPSEC POLICY="vpn_A" INT=ppp0 ACTION=IPSEC KEYMAN=ISAKMP BUNDLE=1 PEER=200.100.10.1 ↓ SET IPSEC POLICY="vpn_A" LAD=192.168.30.0 LMA=255.255.255.0 RAD=192.168.10.0 RMA=255.255.255.0 ↓ CREATE IPSEC POLICY="inet" INT=ppp0 ACTION=PERMIT ↓ ENABLE IPSEC ↓ ENABLE ISAKMP ↓ # LOGIN secoff ↓ # ENABLE SYSTEM SECURITY_MODE ↓`

CentreCOM AR550S 設定例集 2.9 #133

(C) 2005-2012 アライドテレシスホールディングス株式会社

PN: J613-M0710-04 Rev.M

＜前頁 次頁＞ ＜＜ ＞＞ ↑ 目次 （番号順 (詳細)・ 回線別 (詳細)・ 機能別 (詳細)）