IPsec(サイト間トンネル)機能を用いた接続

動作確認バージョン:vSRX Version20.4R2, vSRX Version22.4R1
ファイアウォール(vSRX) では、IPsecがサポートされています。IPsecを利用してサイト間接続用トンネルの設定を紹介します。
IPsecのトンネルを構築することで、互いのサイト内ネットワークをIPsecトンネルを経由して接続し通信をすることが可能になります。

注釈

  • vSRX Version15.1X49-D105.1, vSRX Version19.2R1.8をご利用いただく際に、特定のシナリオでコントロールプレーンのCPU値が高くなる傾向があることが確認されております。発生条件や留意事項詳細は、 バージョン固有の留意事項について をご確認ください。

IPsec(site-to-siteモード)接続

サンプル設定のシナリオ

  • ファイアウォール間をVPN接続(トンネル接続)させ各ファイアウォール配下の仮想ルーター間で通信が可能にしたい
  • VPN接続の方式は、IPsec機能(site-to-site)を利用したい
  • IPsecの認証パラメータは、以下の表に基づいて設定したい
vsrx_ipsec-tunnel_fig1

注釈

  • IPsec設定前に2台のvSRX(ここではvSRX-01とvSRX-03)は互いにIP通信が可能な状態とします。
  • vSRXではIPsec接続方法について、ルートベースVPNとポリシーベースVPNとよばれる2種類の接続方法があります。 このチュートリアルでは、ルートベースVPNを利用した方法で紹介いたします。 ルートベースVPNは、ルーティング設定に従って該当する通信をIPsecトンネルを使って通信させる方法になります。
  • ポリシーベースVPNについては、 Juniper社公式サイト をご参照いただきますようお願い致します。
  • ルートベースVPNとポリシーベースVPNの設定を混在して利用することはできません。

IPsecパラメータ情報

ファイアウォールでIPsecネゴシエーションや暗号化に必要なパラメータは以下のとおり設定します。

パラメータ
Phase1  
Authentication Method Pre-shared key
Pre-shared key password IPSEC_KEY_1
DH group group14
Encryption Algorithm AES256-GCM
ISAKMP SA lifetime 28800 seconds
IKE version v2only
Phase2  
Security protocol ESP
Encryption Algorithm AES256-GCM
IPSEC SA lifetime 3600 seconds
perfect-forward-secrecy keys group14
Establish-tunnels immediately

シナリオにおける設定の流れ

1.ikeに関するプロポーザル(プロポーザル名:IKE_PROP1)の設定をします。
  • 「Authentication Method」「DH group」「Encryption Algorithm」「lifetime-seconds」を上記パラメータ表のとおり設定
2.ikeに関するポリシー(ポリシー名:IKE_POL1)の設定をします。
  • 「Pre-shared key」を上記パラメータ表のとおり設定
  • IKEの実行モードをメインモードで設定
  • ポリシーに適用するプロポーザル(IKE_PROP1)を設定
3.ikeに関するゲートウェイ(ゲートウェイ名:GW1)の設定をします。
  • 「IKE version」を上記パラメータ表のとおり設定
  • ゲートウェイに適用するポリシー(IKE_POL1)を設定
  • IPsec接続先IPアドレス(192.168.3.103)の設定
  • 送信元インターフェイスの設定
4.IPsecに関するプロポーザル(プロポーザル名:IPSEC_PROP1)の設定をします。
  • 「Security Protocol」「Encryption Algorithm」「IPSEC SA lifetime」を上記パラメータ表のとおり設定
5.IPsecに関するポリシー(ポリシー名:IPSEC_POL1)の設定をします。
  • 「perfect-forward-secrecy keys」を上記パラメータ表のとおり設定
  • ポリシーに適用するIPsecプロポーザル(IPSEC_PROP1)を設定
6.IPsecVPN(VPN名:VPN1)の設定をします。
  • 「Establish-tunnels」を上記パラメータ表のとおり設定
  • 設定したIKEのゲートウェイ(ここではGW1)を設定
  • IPsecポリシー(IPSEC_POL1)を設定
7.ルートベースVPNの設定
  • トンネルインターフェイス(st0.0)の作成とIPアドレス設定
  • 作成したst0.0をゾーン(ここでは Untrust)に適用
  • IPsecVPN設定で利用するための設定(VPN1配下で設定)
  • IPsec通信を通すためにスタティックルートを設定
8.ゾーンベースファイアウォール設定
  • ローカルNWとリモートNWを設定

  [vSRX-01] LOCAL_LAN: 192.168.11.0/24 , REMOTE_LAN: 192.168.33.0/24

  [vSRX-03] LOCAL_LAN: 192.168.33.0/24 , REMOTE_LAN: 192.168.11.0/24

  • IPsec通信のためのREMOTE_LAN(Untrustゾーン)からLOCAL_LAN(Trustゾーン)への通信許可の設定

注釈

  • ゾーンベースファイアウォールの設定ポリシーや設定するネットワークなどはご利用の環境に合わせた形で 設定をお願い致します。
  • 装置内Trustゾーンからの通信は全て許可する設定を想定しています。

CLIにて入力するコマンド

  • vSRX-01側に入力するコマンド
(設定の流れ1~3)
user01@vSRX-01# set security ike proposal IKE_PROP1 authentication-method pre-shared-keys
user01@vSRX-01# set security ike proposal IKE_PROP1 dh-group group14
user01@vSRX-01# set security ike proposal IKE_PROP1 encryption-algorithm aes-256-gcm
user01@vSRX-01# set security ike proposal IKE_PROP1 lifetime-seconds 28800
user01@vSRX-01# set security ike policy IKE_POL1 pre-shared ascii-text IPSEC_KEY_1
user01@vSRX-01# set security ike policy IKE_POL1 mode main
user01@vSRX-01# set security ike policy IKE_POL1 proposals IKE_PROP1
user01@vSRX-01# set security ike gateway GW1 version v2-only
user01@vSRX-01# set security ike gateway GW1 ike-policy IKE_POL1
user01@vSRX-01# set security ike gateway GW1 address 192.168.3.103
user01@vSRX-01# set security ike gateway GW1 external-interface ge-0/0/2.0

(設定の流れ4~6)
user01@vSRX-01# set security ipsec proposal IPSEC_PROP1 protocol esp
user01@vSRX-01# set security ipsec proposal IPSEC_PROP1 encryption-algorithm aes-256-gcm
user01@vSRX-01# set security ipsec proposal IPSEC_PROP1 lifetime-seconds 3600
user01@vSRX-01# set security ipsec policy IPSEC_POL1 perfect-forward-secrecy keys group14
user01@vSRX-01# set security ipsec policy IPSEC_POL1 proposals IPSEC_PROP1
user01@vSRX-01# set security ipsec vpn VPN1 establish-tunnels immediately
user01@vSRX-01# set security ipsec vpn VPN1 ike gateway GW1
user01@vSRX-01# set security ipsec vpn VPN1 ike ipsec-policy IPSEC_POL1

(設定の流れ7)
user01@vSRX-01# set interfaces st0 unit 0 family inet address 172.16.13.1/24
user01@vSRX-01# set security zones security-zone untrust interfaces st0.0
user01@vSRX-01# set security ipsec vpn VPN1 bind-interface st0.0
user01@vSRX-01# set routing-options static route 192.168.33.0/24 next-hop st0.0

(設定の流れ8)
user01@vSRX-01# set security address-book global address LOCAL_LAN 192.168.11.0/24
user01@vSRX-01# set security address-book global address REMOTE_LAN 192.168.33.0/24
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy fromIPSEC match source-address REMOTE_LAN
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy fromIPSEC match destination-address LOCAL_LAN
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy fromIPSEC match application any
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy fromIPSEC then permit
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy DENY-ALL match source-address any
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy DENY-ALL match destination-address any
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy DENY-ALL match application any
user01@vSRX-01# set security policies from-zone untrust to-zone trust policy DENY-ALL then deny
  • vSRX-03側に入力するコマンド
(設定の流れ1~3)
user01@vSRX-03# set security ike proposal IKE_PROP1 authentication-method pre-shared-keys
user01@vSRX-03# set security ike proposal IKE_PROP1 dh-group group14
user01@vSRX-03# set security ike proposal IKE_PROP1 encryption-algorithm aes-256-gcm
user01@vSRX-03# set security ike proposal IKE_PROP1 lifetime-seconds 28800
user01@vSRX-03# set security ike policy IKE_POL1 pre-shared ascii-text IPSEC_KEY_1
user01@vSRX-03# set security ike policy IKE_POL1 mode main
user01@vSRX-03# set security ike policy IKE_POL1 proposals IKE_PROP1
user01@vSRX-03# set security ike gateway GW1 version v2-only
user01@vSRX-03# set security ike gateway GW1 ike-policy IKE_POL1
user01@vSRX-03# set security ike gateway GW1 address 192.168.1.101
user01@vSRX-03# set security ike gateway GW1 external-interface ge-0/0/1.0

(設定の流れ4~6)
user01@vSRX-03# set security ipsec proposal IPSEC_PROP1 protocol esp
user01@vSRX-03# set security ipsec proposal IPSEC_PROP1 encryption-algorithm aes-256-gcm
user01@vSRX-03# set security ipsec proposal IPSEC_PROP1 lifetime-seconds 3600
user01@vSRX-03# set security ipsec policy IPSEC_POL1 perfect-forward-secrecy keys group14
user01@vSRX-03# set security ipsec policy IPSEC_POL1 proposals IPSEC_PROP1
user01@vSRX-03# set security ipsec vpn VPN1 establish-tunnels immediately
user01@vSRX-03# set security ipsec vpn VPN1 ike gateway GW1
user01@vSRX-03# set security ipsec vpn VPN1 ike ipsec-policy IPSEC_POL1

(設定の流れ7)
user01@vSRX-03# set interfaces st0 unit 0 family inet address 172.16.13.3/24
user01@vSRX-03# set security zones security-zone untrust interfaces st0.0
user01@vSRX-03# set security ipsec vpn VPN1 bind-interface st0.0
user01@vSRX-03# set routing-options static route 192.168.11.0/24 next-hop st0.0

(設定の流れ8)
user01@vSRX-03# set security address-book global address LOCAL_LAN 192.168.33.0/24
user01@vSRX-03# set security address-book global address REMOTE_LAN 192.168.11.0/24
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy fromIPSEC match source-address REMOTE_LAN
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy fromIPSEC match destination-address LOCAL_LAN
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy fromIPSEC match application any
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy fromIPSEC then permit
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy DENY-ALL match source-address any
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy DENY-ALL match destination-address any
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy DENY-ALL match application any
user01@vSRX-03# set security policies from-zone untrust to-zone trust policy DENY-ALL then deny

正しく設定が完了したときのコンフィグレーションは次のとおりです。

  • vSRX-01コンフィグレーション
security {
    ike {
        proposal IKE_PROP1 {
            authentication-method pre-shared-keys;
            dh-group group14;
            encryption-algorithm aes-256-gcm;
            lifetime-seconds 28800;
        }
        policy IKE_POL1 {
            mode main;
            proposals IKE_PROP1;
            pre-shared-key ascii-text "$9$Lf4x-bwY4ZDHfT3/tOhcXxNdbYDiqz6Cq."; ## SECRET-DATA
        }
        gateway GW1 {
            ike-policy IKE_POL1;
            address 192.168.3.103;
            external-interface ge-0/0/2.0;
            version v2-only;
        }
    }
    ipsec {
        proposal IPSEC_PROP1 {
            protocol esp;
            encryption-algorithm aes-256-gcm;
            lifetime-seconds 3600;
        }
        policy IPSEC_POL1 {
            perfect-forward-secrecy {
                keys group14;
            }
            proposals IPSEC_PROP1;
        }
        vpn VPN1 {
            bind-interface st0.0;
            ike {
                gateway GW1;
                ipsec-policy IPSEC_POL1;
            }
            establish-tunnels immediately;
        }
    }
    address-book {
        global {
            address REMOTE_LAN 192.168.33.0/24;
            address LOCAL_LAN 192.168.11.0/24;
        }
    }
    policies {
        from-zone untrust to-zone trust {
            policy fromIPSEC {
                match {
                    source-address REMOTE_LAN;
                    destination-address LOCAL_LAN;
                    application any;
                }
                then {
                    permit;
                }
            }
            policy DENY-ALL {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    deny;
                }
            }
        }
    }
    zones {
        security-zone trust {
            host-inbound-traffic {
                system-services {
                    all;
                }
                protocols {
                    all;
                }
            }
            interfaces {
                ge-0/0/1.0;
            }
        }
        security-zone untrust {
            host-inbound-traffic {
                system-services {
                    all;
                }
                protocols {
                    all;
                }
            }
            interfaces {
                ge-0/0/2.0;
                st0.0;
            }
        }
    }
}
interfaces {
    ge-0/0/1 {
        unit 0 {
            family inet {
                address 192.168.11.101/24;
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            family inet {
                address 192.168.1.101/24;
            }
        }
    }
    st0 {
        unit 0 {
            family inet {
                address 172.16.13.1/24;
            }
        }
    }
}
routing-options {
    static {
        route 192.168.33.0/24 next-hop st0.0;
    }
}
  • vSRX-03コンフィグレーション
security {
    ike {
        proposal IKE_PROP1 {
            authentication-method pre-shared-keys;
            dh-group group14;
            encryption-algorithm aes-256-gcm;
            lifetime-seconds 28800;
        }
        policy IKE_POL1 {
            mode main;
            proposals IKE_PROP1;
            pre-shared-key ascii-text "$9$Lf4x-bwY4ZDHfT3/tOhcXxNdbYDiqz6Cq."; ## SECRET-DATA
        }
        gateway GW1 {
            ike-policy IKE_POL1;
            address 192.168.1.101;
            external-interface ge-0/0/1.0;
            version v2-only;
        }
    }
    ipsec {
        proposal IPSEC_PROP1 {
            protocol esp;
            encryption-algorithm aes-256-gcm;
            lifetime-seconds 3600;
        }
        policy IPSEC_POL1 {
            perfect-forward-secrecy {
                keys group14;
            }
            proposals IPSEC_PROP1;
        }
        vpn VPN1 {
            bind-interface st0.0;
            ike {
                gateway GW1;
                ipsec-policy IPSEC_POL1;
            }
            establish-tunnels immediately;
        }
    }
    address-book {
        global {
            address REMOTE_LAN 192.168.11.0/24;
            address LOCAL_LAN 192.168.33.0/24;
        }
    }
    policies {
        from-zone untrust to-zone trust {
            policy fromIPSEC {
                match {
                    source-address REMOTE_LAN;
                    destination-address LOCAL_LAN;
                    application any;
                }
                then {
                    permit;
                }
            }
            policy DENY-ALL {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    deny;
                }
            }
        }
    }
    zones {
        security-zone trust {
            host-inbound-traffic {
                system-services {
                    all;
                }
                protocols {
                    all;
                }
            }
            interfaces {
                ge-0/0/2.0;
            }
        }
        security-zone untrust {
            host-inbound-traffic {
                system-services {
                    all;
                }
                protocols {
                    all;
                }
            }
            interfaces {
                ge-0/0/1.0;
                st0.0;
            }
        }
    }
}
interfaces {
    ge-0/0/1 {
        unit 0 {
            family inet {
                address 192.168.3.103/24;
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            family inet {
                address 192.168.33.103/24;
            }
        }
    }
    st0 {
        unit 0 {
            family inet {
                address 172.16.13.3/24;
            }
        }
    }
}
routing-options {
    static {
        route 192.168.11.0/24 next-hop st0.0;
    }
}

動作確認結果

vSRX-01とvSRX-03で、IPsecトンネル接続できていることをログから確認しており、配下の仮想ルーター間で IPsecトンネル内を通過した通信も可能であることを確認しました。

仮想ルーター(192.168.11.201)から仮想ルーター(192.168.33.203)宛ての通信結果

user01@vRouter-01:~$ ping 192.168.33.203 count 10
PING 192.168.33.203 (192.168.33.203) 56(84) bytes of data.
64 bytes from 192.168.33.203: icmp_seq=1 ttl=62 time=9.46 ms
64 bytes from 192.168.33.203: icmp_seq=2 ttl=62 time=2.87 ms
64 bytes from 192.168.33.203: icmp_seq=3 ttl=62 time=3.04 ms
64 bytes from 192.168.33.203: icmp_seq=4 ttl=62 time=3.57 ms
64 bytes from 192.168.33.203: icmp_seq=5 ttl=62 time=2.70 ms
64 bytes from 192.168.33.203: icmp_seq=6 ttl=62 time=3.25 ms
64 bytes from 192.168.33.203: icmp_seq=7 ttl=62 time=3.10 ms
64 bytes from 192.168.33.203: icmp_seq=8 ttl=62 time=2.55 ms
64 bytes from 192.168.33.203: icmp_seq=9 ttl=62 time=3.29 ms
64 bytes from 192.168.33.203: icmp_seq=10 ttl=62 time=2.93 ms

--- 192.168.33.203 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 2.552/3.680/9.468/1.950 ms
user01@vRouter-01:~$

仮想ルーター(192.168.33.203)から仮想ルーター(192.168.11.201)宛ての通信結果

user01@vRouter-03:~$ ping 192.168.11.201 count 10
PING 192.168.11.201 (192.168.11.201) 56(84) bytes of data.
64 bytes from 192.168.11.201: icmp_seq=1 ttl=62 time=13.3 ms
64 bytes from 192.168.11.201: icmp_seq=2 ttl=62 time=3.61 ms
64 bytes from 192.168.11.201: icmp_seq=3 ttl=62 time=3.22 ms
64 bytes from 192.168.11.201: icmp_seq=4 ttl=62 time=3.14 ms
64 bytes from 192.168.11.201: icmp_seq=5 ttl=62 time=2.90 ms
64 bytes from 192.168.11.201: icmp_seq=6 ttl=62 time=3.24 ms
64 bytes from 192.168.11.201: icmp_seq=7 ttl=62 time=3.60 ms
64 bytes from 192.168.11.201: icmp_seq=8 ttl=62 time=3.17 ms
64 bytes from 192.168.11.201: icmp_seq=9 ttl=62 time=2.91 ms
64 bytes from 192.168.11.201: icmp_seq=10 ttl=62 time=3.31 ms

--- 192.168.11.201 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9014ms
rtt min/avg/max/mdev = 2.905/4.253/13.387/3.053 ms
user01@vRouter-03:~$
  • vSRX-01のIPSEC接続状況確認
user01@vSRX-01> show security ike security-associations
Index   State  Initiator cookie  Responder cookie  Mode           Remote Address
137031  UP     4994f91cc5a7afd7  5e2c4c8cf061daa5  IKEv2          192.168.3.103

user01@vSRX-01> show security ipsec security-associations
  Total active tunnels: 1
  ID    Algorithm       SPI      Life:sec/kb  Mon lsys Port  Gateway
  <131073 ESP:aes-gcm-256/None 8e61521c 1799/ unlim - root 500 192.168.3.103
  >131073 ESP:aes-gcm-256/None fa047078 1799/ unlim - root 500 192.168.3.103
  • vSRX-03のIPSEC接続状況確認
user01@vSRX-03> show security ike security-associations
Index   State  Initiator cookie  Responder cookie  Mode           Remote Address
7856221 UP     4994f91cc5a7afd7  5e2c4c8cf061daa5  IKEv2          192.168.1.101

user01@vSRX-03> show security ipsec security-associations
  Total active tunnels: 1
  ID    Algorithm       SPI      Life:sec/kb  Mon lsys Port  Gateway
  <131073 ESP:aes-gcm-256/None fa047078 1633/ unlim - root 500 192.168.1.101
  >131073 ESP:aes-gcm-256/None 8e61521c 1633/ unlim - root 500 192.168.1.101