はじめに
- FortiGate で PPPoE と IPsec を同時に使用する場合の設定例について記載します
- IPsec の終端アドレスとして PPPoE で取得した IP アドレスを使用します
作業環境
- FortiGate
- 型番: FortiGate 60E
- バージョン: 6.4.5
- PPPoE サーバ、対向側クライアント
- 型番: Cisco C891FJ-K9
- バージョン: 15.3(3)M5
検証構成
事前準備
IPsec VPN 設計
IPsec VPN を設定する場合は各種設定値を決めておく必要があります。
ここでは以下のような設定値とすることにします。
項目 | IKE フェーズ1 | IKE フェーズ2 |
物理インターフェース(FortiGate) | wan2 | – |
セキュリティプロトコル | – | esp |
暗号化アルゴリズム | 3des | 3des |
ハッシュアルゴリズム | sha1 | – |
認証方式/認証アルゴリズム | pre-share | esp-sha-hmac |
DH/PFS グループ | 1 | 無効 |
ISAKMP/IPsec SA ライフタイム | 86400秒 | 3600秒 |
Pre-shared Key | password | – |
IPsec 通信モード | – | tunnel |
IKE キープアライブ(DPD) | 無効 | – |
IPsec の対象トラフィック | – | ANY ⇔ ANY |
IKE モード | Main | Quick |
ISAKMP/IPsec のピアアドレス | 200.1.1.1 (200.1.1.2) | 200.1.1.1 (200.1.1.2) |
NAT トラバーサル | 無効 | – |
IPsec トンネルセグメント (IP アドレス) | – | 10.254.1.0/30 (.1 および .2) |
- WAN 側物理 IP アドレスについては PPPoE サーバから取得することとします
- 対向機器側で取得する IP アドレスを IPsec のピアアドレスとして指定します
C891FJ-K9 PPPoE サーバ設定
!# PPPoE 用ユーザの設定
username pppoe-user password pppoe-password
!# PPPoE 用 Loopback インターフェースの設定
interface Loopback1
ip address 100.110.120.1 255.255.255.255
!
interface Loopback2
ip address 100.110.120.2 255.255.255.255
!# IP アドレスプールの設定
ip local pool pool01 200.1.1.1
ip local pool pool02 200.1.1.2
!# Virtual-Template インターフェースの設定
interface Virtual-Template1
mtu 1454
ip unnumbered Loopback1
peer default ip address pool pool01
ppp authentication chap
interface Virtual-Template2
mtu 1454
ip unnumbered Loopback2
peer default ip address pool pool02
ppp authentication chap
!# bba-group (Broad Band Access グループ) の設定
bba-group pppoe PPPOE-GROUP1
virtual-template 1
bba-group pppoe PPPOE-GROUP2
virtual-template 2
!# 物理インターフェースの設定
interface GigabitEthernet8
no ip address
duplex auto
speed auto
pppoe enable group PPPOE-GROUP1
no shutdown
interface FastEthernet0
no ip address
duplex auto
speed auto
pppoe enable group PPPOE-GROUP2
no shutdown
C891FJ-K9 クライアント設定
PPPoE クライアント設定
!# Dialer インターフェースの設定
interface Dialer1
ip address negotiated
ip mtu 1454
encapsulation ppp
dialer pool 1
dialer-group 1
ppp authentication chap callin
ppp chap hostname pppoe-user
ppp chap password pppoe-password
dialer-list 1 protocol ip permit
!# 物理インターフェースの設定
interface FastEthernet0
pppoe-client dial-pool-number 1
no shutdown
!# デフォルトルートの設定
ip route 0.0.0.0 0.0.0.0 Dialer1
IPsec 設定
!# IKE ポリシーの設定
crypto isakmp policy 1
authentication pre-share
encryption 3des
group 1
hash sha
lifetime 86400
!# 共通鍵の指定 (password) と対向ルータのIPアドレス (200.1.1.1) の設定
crypto isakmp key password address 200.1.1.1
!# IPsec トランスフォーム (TF-SET) の設定
crypto ipsec transform-set TF-SET esp-3des esp-sha-hmac
mode tunnel
!# IPsec プロファイルの作成
crypto ipsec profile IPS-PRF
set security-association lifetime seconds 3600
set transform-set TF-SET
!# IPsec トンネルの作成
interface Tunnel0
ip address 10.254.1.2 255.255.255.252
tunnel source Dialer1
tunnel mode ipsec ipv4
tunnel destination 200.1.1.1
tunnel protection ipsec profile IPS-PRF
!# リモートサイトへのスタティックルートの設定
ip route 192.168.1.0 255.255.255.0 Tunnel0
PPPoE クライアント設定手順
FortiGate における PPPoE クライアント設定はインターフェースの設定画面で実施します。
例では wan2 インターフェースの設定画面にて以下の通り設定します。
- アドレス
- アドレッシングモード → PPPoE
- ユーザ名 → PPPoE 用のユーザ名
- パスワード → PPPoE 用のパスワード
- Unnumbered IP接続 → 0.0.0.0(デフォルト値)
- 初期Discタイムアウト → 1(デフォルト値)
- PPPoE ディスカバリーの開始を再試行する前に待機する秒単位の時間
- 0 はタイムアウトがないことを意味します
- 初期PADTタイムアウト → 1(デフォルト値)
- PPPoE Active Discovery Terminate(PADT)を使用してセッションを終了するまでのタイムアウト時間(秒単位)
- サーバからデフォルトゲートウェイを取得 → ON
- ディスタンス → 5(デフォルト値)
- 内部DNSを上書き → OFF
- FortiGate が使用する DNS サーバを PPPoE で取得した DNS サーバにする場合は ON
CLI で設定する場合はインターフェース設定の中で設定します。
上の GUI と同様の設定をする場合は以下のコマンドとなります。
config system interface
edit "wan2"
set mode pppoe
set username "pppoe-user"
set password "pppoe-password"
set ipunnumbered 0.0.0.0
set disc-retry-timeout 1
set padt-retry-timeout 1
set defaultgw enable
set distance 5
set dns-server-override disable
next
end
設定後のコンフィグは以下の通りです。
FG60E (wan2) # show
config system interface
edit "wan2"
set vdom "root"
set mode pppoe
set allowaccess ping https ssh http fgfm
set type physical
set role wan
set snmp-index 2
set username "pppoe-user"
set password ENC CYkgZ+0O/OVTVW+pXDzA1q3QB+Dhe9z/tOb7hqbUcvkXtu4lULsNiiIpcWkH9t9ZdCXBkgePYJxcNINrD7EsiZ47phyFvw30vJ31G1Iwf69bQ1Yu0vgh1B34ScrQUZUuYwZgB8sY5eENxaowB7dAD0Y9vwjcn6G75u1hb7Vjr3MSVGLHGimsQ3pLkwACXzuJEqUkmw==
set dns-server-override disable
next
end
※ allowaccess
は要件に合わせて設定してください
IPsec 設定手順
以下の手順で設定していきます。
- IKE フェーズ1 の設定
- この設定をした時点でトンネルインターフェースが自動で作成されます
- IKE フェーズ2 の設定
- トンネルインターフェースの設定
- ポリシーの設定
- スタティックルートの設定
また、設定は GUI と CLI のどちらでも可能ですが、ここでは CLI で行うこととします。
GUI で設定を行う場合は以下の記事を参考にしてください。
IKE フェーズ1 の設定
IKE フェーズ1 の設定に対応する設定項目は config vpn ipsec phase1-interface
です。
IPsec の各設定項目と CLI での設定内容の対応は以下の通りです。
項目 | 設定したい値 | CLI 設定内容 |
設定オブジェクト名 | Tunnel0 | edit "Tunnel0" |
物理インターフェース | wan2 | set interface "wan2" |
暗号化アルゴリズム | 3des | set proposal 3des-sha1 ※ハッシュアルゴリズムとセットで設定 |
ハッシュアルゴリズム | sha1 | set proposal 3des-sha1 ※暗号化アルゴリズムとセットで設定 |
認証方式 | pre-share | set authmethod psk |
DH グループ | 1 | set dhgrp 1 |
ISAKMP ライフタイム | 86400秒 | set keylife 86400 |
Pre-shared Key | password | set psksecret password |
IKE キープアライブ(DPD) | 無効 | set dpd disable |
IKE モード | Main | set mode main |
ISAKMP のピアアドレス | 200.1.1.2 | set remote-gw 200.1.1.2 |
NAT トラバーサル | 無効 | set nattraversal disable |
上の表の内容をまとめると CLI での設定コマンドは以下の様になります。
config vpn ipsec phase1-interface
edit "Tunnel0"
set interface "wan2"
set proposal 3des-sha1
set authmethod psk
set dhgrp 1
set keylife 86400
set psksecret password
set dpd disable
set mode main
set remote-gw 200.1.1.2
set nattraversal disable
next
end
設定後のコンフィグ内容
FG60E # show vpn ipsec phase1-interface
config vpn ipsec phase1-interface
edit "Tunnel0"
set interface "wan2"
set peertype any
set net-device disable
set proposal 3des-sha1
set dpd disable
set dhgrp 1
set nattraversal disable
set remote-gw 200.1.1.2
set psksecret ENC Mi08eMRVADp/cpG3qHx8nGjP33HrUAkVlJBU5lbJZ9FXeIs2f+j8o0eIkcUJESrn8mZDGdggHqnu2gYT+BnNRX0YOYN4wwinG1LhmCZvfOEwfSFsHDEYFthO7ETj6W/TB6B4zMQMwPjO0Gk4Qy1OSzNE2vUwm/dOVw/iIh8DjIOkUaAy/TdCaHbT+7Eh9BgXQxUR/w==
next
end
トンネルインターフェースについて
上の IKE フェーズ1 の設定を行うと以下コンフィグが自動で設定されトンネルインターフェースが作成されます。
config system interface
edit "Tunnel0"
set vdom "root"
set type tunnel
set snmp-index 8
set interface "wan2"
next
end
IKE フェーズ2 の設定
IKE フェーズ2 の設定に対応する設定項目は config vpn ipsec phase2-interface
です。
IPsec の各設定項目と CLI での設定内容の対応は以下の通りです。
項目 | 設定したい値 | CLI 設定内容 |
設定オブジェクト名 | Tunnel0 | edit "Tunnel0" |
対応付ける IKE フェーズ1 設定の オブジェクト名 | Tunnel0 | set phase1name "Tunnel0" |
セキュリティプロトコル | esp | なし(設定不要) |
暗号化アルゴリズム | 3des | set proposal 3des-sha1 ※認証アルゴリズムとセットで設定 |
認証アルゴリズム | esp-sha-hmac | set proposal 3des-sha1 ※暗号化アルゴリズムとセットで設定 |
PFS グループ | 無効 | set pfs disable |
IPsec SA ライフタイム | 3600秒 | set keylifeseconds 3600 |
IPsec 通信モード | tunnel | set encapsulation tunnel-mode |
IPsec の対象トラフィック | ANY ⇔ ANY | set src-subnet 0.0.0.0 0.0.0.0 |
IKE モード | Quick | なし(設定不要) |
IPsec のピアアドレス | 200.1.1.2 | なし(設定不要) |
上の表の内容をまとめると CLI での設定コマンドは以下の様になります。
config vpn ipsec phase2-interface
edit "Tunnel0"
set phase1name "Tunnel0"
set proposal 3des-sha1
set pfs disable
set keylifeseconds 3600
set encapsulation tunnel-mode
set src-subnet 0.0.0.0 0.0.0.0
set dst-subnet 0.0.0.0 0.0.0.0
next
end
設定後のコンフィグ内容
FG60E # show vpn ipsec phase2-interface
config vpn ipsec phase2-interface
edit "Tunnel0"
set phase1name "Tunnel0"
set proposal 3des-sha1
set pfs disable
set keylifeseconds 3600
next
end
トンネルインターフェースの設定
トンネルインターフェースに対して以下を設定します。
- IP アドレス: 10.254.1.1 255.255.255.255
- サブネットマスクは
255.255.255.255
にする必要があります
- サブネットマスクは
- リモートアドレス: 10.254.1.2 255.255.255.252
設定コマンドは以下の通りです。
config system interface
edit "Tunnel0"
set ip 10.254.1.1 255.255.255.255
set remote-ip 10.254.1.2 255.255.255.252
next
end
設定後のコンフィグ内容
FG60E (Tunnel0) # show
config system interface
edit "Tunnel0"
set vdom "root"
set ip 10.254.1.1 255.255.255.255
set type tunnel
set remote-ip 10.254.1.2 255.255.255.252
set snmp-index 8
set interface "wan2"
next
end
ポリシーの設定
IPsec トンネルを通る通信を許可するポリシーを設定します。
例では Internal インターフェースと Tunnel0(IPsec トンネル)間の通信をすべて許可します。
設定コマンドは以下の通りです。(edit 番号は任意の未使用番号にします。)
config firewall policy
edit 2
set name "VPN-in"
set srcintf "Tunnel0"
set dstintf "internal"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
next
edit 3
set name "VPN-out"
set srcintf "internal"
set dstintf "Tunnel0"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
next
end
スタティックルートの設定
リモートサイト宛の場合は IPsec トンネルを通るようスタティックルートを設定します。
設定コマンドは以下の通りです。(edit 番号は任意の未使用番号にします。)
config router static
edit 2
set dst 10.111.1.0 255.255.255.0
set device "Tunnel0"
next
end
ここまで設定すると端末間の疎通が可能となります。
GUI での設定確認
IPsec 設定
[VPN] > [IPsecトンネル] 画面で IPsec の設定を確認できます。
設定の編集画面で詳細な設定内容を確認できます。
トンネルインターフェース
[ネットワーク] > [インターフェース] 画面でトンネルインターフェースの設定を確認できます。
各種確認・操作コマンド
PPPoE
確認コマンド
get system interface physical
- 物理インターフェースの IP アドレス取得状況の確認
FG60E # get system interface physical
== [onboard]
#(中略)
==[wan2]
mode: pppoe
ip: 200.1.1.1 255.255.255.255
ipv6: ::/0
status: up
speed: 1000Mbps (Duplex: full)
#(後略)
操作コマンド
execute interface pppoe-reconnect <物理インターフェース名>
- PPPoE サーバへの再接続
FG60E # execute interface pppoe-reconnect wan2
Reconnecting to PPPoE on wan2
IPsec
確認コマンド
get vpn ike gateway
FG60E # get vpn ike gateway
vd: root/0
name: Tunnel0
version: 1
interface: ppp1 28
addr: 200.1.1.1:500 -> 200.1.1.2:500
created: 299s ago
IKE SA created: 1/1 established: 1/1 time: 0/0/0 ms
IPsec SA created: 1/1 established: 1/1 time: 0/0/0 ms
id/spi: 57 d1e65f16f90087ac/9b61e931d09f519e
direction: initiator
status: established 299-299s ago = 0ms
proposal: 3des-sha1
key: 9708255fa979a4e7-0522a5182e6dc484-afc2e38f2349a6ec
lifetime/rekey: 86400/85800
DPD sent/recv: 00000000/00000000
get vpn ipsec tunnel summary
get vpn ipsec tunnel details
diagnose vpn ike status summary
diagnose vpn ike status detailed
diagnose vpn ipsec status
diagnose vpn tunnel list
操作コマンド
diagnose vpn ike restart
- IKE の再起動
diagnose vpn ike gateway clear
- IKE ゲートウェイのクリア
―――――――――――――