はじめに
あまりIPSecについて理解が浅いので、実際に実機を使って環境構築して学んでみようと思います。
仕様
使用する機器
メーカー | 機器 | FWバージョン | 用途 |
---|---|---|---|
Juniper | SSG5 | 6.3.0r27.0 | 拠点側 |
YAMAHA | RTX1200 | 10.01.78 | 本社側(メイン) |
YAMAHA | RTX810 | 11.01.34 | 本社側(サブ) |
構成
構成図
SSG5を拠点側、RTX1200を本社側メイン、RTX830を本社側サブという建付けにします。
RTX1200とRTX830はVRRPによる冗長構成を取ります。
拠点側から本社側にアクセスする際にNAPTもかけます。
ネットワークアドレス
使用するネットワークセグメントは以下の通り。
ネットワークアドレス | 用途 |
---|---|
192.168.100.0/24 | 拠点側ネットワーク |
192.168.254.0/24 | IP-VPN(と見立てたネットワーク) |
172.16.1.0/24 | 本社側ネットワーク |
172.17.1.0/30 | SSG5とRTX1200のIPSec VPN |
172.17.1.4/30 | SSG5とRTX810のIPSec VPN |
設定
本社側メイン(RTX1200)
最低限の設定だけ抜粋しています。
# SSG5側のloopbackアドレス
ip route 172.17.1.254/32 gateway tunnel 2
ip lan1 address 172.16.1.253/24
ip lan2 address 192.168.254.1/24
ip lan1 vrrp 1 172.16.1.249 priority=200 preempt=on
ip lan1 vrrp shutdown trigger 1 route 172.17.1.254/32
ip keepalive 1 icmp-echo 5 3 172.17.1.2 log=on
tunnel select 2
ipsec tunnel 1
ipsec sa policy 1 2 esp aes256-cbc sha256-hmac
ipsec ike always-on 2 on
ipsec ike duration ipsec-sa 2 3600
ipsec ike encryption 2 aes256-cbc
ipsec ike group 2 modp1024
ipsec ike hash 2 sha256
ipsec ike keepalive use 2 on dpd
ipsec ike local address 2 192.168.254.1
ipsec ike pfs 2 on
ipsec ike pre-shared-key 2 RTX1200
ipsec ike remote address 2 192.168.254.254
ipsec auto refresh 2 on
ip tunnel address 172.17.1.1/30
tunnel enable 2
本社側サブ(RTX810)
最低限の設定だけ抜粋しています。
# SSG5側のloopbackアドレス
ip route 172.17.1.254/32 gateway tunnel 2 keepalive 1
ip icmp redirect send off
ip lan2 address 192.168.254.2/24
ip lan1 address 172.16.1.254/24
ip lan1 vrrp 1 172.16.1.249 priority=100 preempt=on
ip lan1 vrrp shutdown trigger 1 route 172.17.1.254/32
ip keepalive 1 icmp-echo 5 3 172.17.1.6 log=on
tunnel select 2
ipsec tunnel 1
ipsec sa policy 1 2 esp aes256-cbc sha256-hmac
ipsec ike always-on 2 on
ipsec ike duration ipsec-sa 2 3600
ipsec ike encryption 2 aes256-cbc
ipsec ike group 2 modp1024
ipsec ike hash 2 sha256
ipsec ike keepalive use 2 on dpd
ipsec ike local address 2 192.168.254.2
ipsec ike pfs 2 on
ipsec ike pre-shared-key 2 RTX810
ipsec ike remote address 2 192.168.254.254
ipsec auto refresh 2 on
ip tunnel address 172.17.1.5/30
tunnel enable 2
拠点側(SSG5)
最低限の設定だけ抜粋しています。
VPN monitorの送信元インタフェイスをloopbackインタフェイスとすることで、monitorで送出されるpingの送信元IPアドレスを指定しています。
当初送信元インタフェイスをe0/0に指定していたのですが、e0/0のインタフェイスIPアドレスが送信元IPアドレスになってしまって、本社側ルータからの戻りの通信ができなくなってしまっていました。
# 拠点側LANの設定
set interface "bgroup0" zone "Trust"
set interface bgroup0 port ethernet0/3
set interface bgroup0 ip 192.168.100.251/24
set interface "ethernet0/0" zone "Untrust"
set interface ethernet0/0 ip 192.168.254.254/24
# IPSec Tunnelの設定(本社メイン)
set interface "tunnel.1" zone "Untrust"
set interface tunnel.1 ip 172.17.1.2/30
# IPSec Tunnelの設定(本社サブ)
set interface "tunnel.2" zone "Untrust"
set interface tunnel.2 ip 172.17.1.6/30
# IPSec monitorの送信元インタフェイスとして使用するLoopbackインタフェイス
set interface "loopback.1" zone "Untrust"
set interface loopback.1 ip 172.17.1.254/32
# IPSec P1/P2の設定
set ike p1-proposal "pre-g2-aes256-sha256" preshare group2 esp aes256 sha2-256 second 28800
set ike p2-proposal "g2-esp-aes256-sha256" group2 esp aes256 sha2-256 second 3600
# IPSecの設定(本社メイン)
set ike gateway "RTX1200" address 192.168.254.1 Main outgoing-interface "ethernet0/0" preshare RTX1200 proposal "pre-g2-aes256-sha256"
set ike gateway "RTX1200" dpd-liveness interval 10
set ike gateway "RTX1200" dpd-liveness always-send
set ike gateway "RTX1200" dpd-liveness reconnect 60
set vpn "RTX1200" gateway "RTX1200" no-replay tunnel idletime 0 proposal "g2-esp-aes256-sha256"
set vpn "RTX1200" monitor source-interface loopback.1 destination-ip 172.17.1.1 rekey
set vpn "RTX1200" id 0x7 bind interface tunnel.1
# IPSecの設定(本社サブ)
set vpn "RTX810" gateway "RTX810" no-replay tunnel idletime 0 proposal "g2-esp-aes256-sha256"
set vpn "RTX810" monitor source-interface loopback.1 destination-ip 172.17.1.5 rekey
set vpn "RTX810" id 0x8 bind interface tunnel.2
set ike gateway "RTX810" address 192.168.254.2 Main outgoing-interface "ethernet0/0" preshare RTX810 proposal "pre-g2-aes256-sha256"
set ike gateway "RTX810" dpd-liveness interval 10
set ike gateway "RTX810" dpd-liveness always-send
set ike gateway "RTX810" dpd-liveness reconnect 60
# ポリシの設定(NAPTをかける)
set policy id 2 from "Trust" to "Untrust" "Any" "172.16.251.0/24" "ICMP-ANY" nat src permit log
set policy id 2
set dst-address "172.18.80.0/24"
exit
# ルーティングの設定
set route 0.0.0.0/0 interface bgroup0 gateway 192.168.100.1
set route 172.16.1.0/24 interface tunnel.1 metric 10
set route 172.16.1.0/24 interface tunnel.2 metric 20
検証
それでは状態確認して、検証していきます。
IPSecの状態
まずはそれぞれの機器のIPSecの状態を確認します。
本社側メイン(RTX1200)
RTX1200# show ipsec sa gateway
sgw flags local-id remote-id # of sa
--------------------------------------------------------------------------
2 U K 192.168.254.1 192.168.254.254 i:1 s:1 r:3
RTX1200# show ipsec sa gateway 2 detail
SA[1] Duration: 17577s
Local ID: 192.168.254.1
Remote ID: 192.168.254.254
Protocol: IKE
Algorithm: AES256-CBC, SHA2-256, MODP 1024bit
SPI: 1d 72 c7 62 86 bb 65 98 77 72 9d 61 6d c7 30 d5
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[2] Duration: 3236s
Local ID: 192.168.254.1
Remote ID: 192.168.254.254
Direction: send
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: 51 b5 0e 7b
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[3] Duration: 3195s
Local ID: 192.168.254.1
Remote ID: 192.168.254.254
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: bd f9 93 02
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[4] Duration: 3236s
Local ID: 192.168.254.1
Remote ID: 192.168.254.254
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: d9 7f 6d 1b
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[5] Duration: 3156s
Local ID: 192.168.254.1
Remote ID: 192.168.254.254
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: 7c 9e e8 a0
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
本社側サブ(RTX810)
RTX810# show ipsec sa gateway
sgw flags local-id remote-id # of sa
--------------------------------------------------------------------------
2 U K 192.168.254.2 192.168.254.254 i:1 s:1 r:3
RTX810# show ipsec sa gateway 2 detail
SA[1] Duration: 24411s
Local ID: 192.168.254.2
Remote ID: 192.168.254.254
Protocol: IKE
Algorithm: AES256-CBC, SHA2-256, MODP 1024bit
SPI: ff 85 90 fe 91 6c f5 de 20 20 6d f4 d5 80 4f ef
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[2] Duration: 3070s
Local ID: 192.168.254.2
Remote ID: 192.168.254.254
Direction: send
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: 51 b5 0e 7c
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[3] Duration: 3028s
Local ID: 192.168.254.2
Remote ID: 192.168.254.254
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: a2 dc 6a 3e
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[4] Duration: 3070s
Local ID: 192.168.254.2
Remote ID: 192.168.254.254
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: 85 4a 37 b9
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
SA[5] Duration: 2800s
Local ID: 192.168.254.2
Remote ID: 192.168.254.254
Direction: receive
Protocol: ESP (Mode: tunnel)
Algorithm: AES256-CBC (for Auth.: HMAC-SHA2-256)
SPI: 2f b9 16 e2
Key: ** ** ** ** ** (confidential) ** ** ** ** **
----------------------------------------------------
拠点側(SSG5)
SSG5-> get ike cookie
IKEv1 SA -- Active: 2, Dead: 0, Total 2
80102f/0003, 192.168.254.254:500->192.168.254.2:500, PRESHR/grp2/AES256/SHA2-256, xchg(5) (RTX810/grp-1/usr-1)
resent-tmr 322 lifetime 28800 lt-recv 28800 nxt_rekey 24749 cert-expire 0
initiator, err cnt 0, send dir 0, cond 0x0
nat-traversal map not available
ike heartbeat : disabled
ike heartbeat last rcv time: 0
ike heartbeat last snd time: 0
XAUTH status: 0
DPD seq local 603356368, peer 858920808
80102f/0003, 192.168.254.254:500->192.168.254.1:500, PRESHR/grp2/AES256/SHA2-256, xchg(5) (RTX1200/grp-1/usr-1)
resent-tmr 322 lifetime 28800 lt-recv 28800 nxt_rekey 17745 cert-expire 0
initiator, err cnt 0, send dir 0, cond 0x0
nat-traversal map not available
ike heartbeat : disabled
ike heartbeat last rcv time: 0
ike heartbeat last snd time: 0
XAUTH status: 0
DPD seq local 857176791, peer 2065584233
IKEv2 SA -- Active: 0, Dead: 0, Total 0
疎通確認
本社側メイン(RTX1200)経由
拠点側からpingを打ってみます。
C:\Users\doraemon>ping 172.16.1.249
172.16.1.249 に ping を送信しています 32 バイトのデータ:
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 2ms、最大 = 2ms、平均 = 2ms
本社側サブ(RTX810)経由
こんどは、本社側メインのLAN2を抜線してpingを打ってみます。
C:\Users\doraemon>ping 172.16.1.249
172.16.1.249 に ping を送信しています 32 バイトのデータ:
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 からの応答: バイト数 =32 時間 =2ms TTL=253
172.16.1.249 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 2ms、最大 = 2ms、平均 = 2ms