4. ファイアウォール・ロードバランサー・Managed WAF 構成例(ツーアーム)※クライアントのIPアドレス変換なし



4.1. 前提条件

WEBサーバーを外部に公開するため、以下の方針でファイアウォール(以下FW)とロードバランサー(以下LB)とManaged WAFを設定します。

ファイアウォール

  • VRRPを使用して2台冗長構成とします。すべてのネットワークセグメントでVRRPを設定します。
  • FWルールは外部セグメントからの通信は基本すべて拒否し、特定のHTTP通信・HTTPS通信のみ許可します。信頼されたセグメントからの通信はすべて許可とします。
  • 外部セグメントからはLBのバーチャルサーバーのIPアドレスではなく、FWのグローバルIPアドレスにアクセスさせ、NAT変換で宛先をバーチャルサーバーのIPアドレスに変換します。
  • VRRPのpreemptはデフォルトのまま有効(True)としてしてください。preemptが無効になっていると全インターフェイスでステータスが一致せず、通信断が継続することがあります。

ロードバランサー

  • VRRPを使用して2台冗長構成とします。FWセグメントでVRRPを構築します。
  • HTTP通信・HTTPS通信用のバーチャルサーバーを立て、2台のWEBサーバーにラウンドロビンで通信を分散します。HTTPS通信はSSLオフロードを行います。
  • SDPFのLB(NetScalerVPX)では、1つのインターフェイスに対して登録可能なVRRP設定(仮想IPアドレスとVRRPグループIDのペア)は1つであり、複数のVRRPグループの登録はできません。代替方法としてVRRP用に登録したVirtual IPアドレス(以下VIP)とは別のセグメントに仮想IPアドレスを登録し、それを振り分け対象IPアドレスに設定することで複数VIPを冗長化させることができます。本構成はこの方法で冗長構成としています。
  • VRRPのpreemptはデフォルトのまま有効(True)としてください。preemptが無効になっている場合、全インターフェイスでステータスが一致せず、通信断が継続することがあります。
  • WebサーバーのデフォルトゲートウェイはLBのInterfce 1/2側のVIPとしてください。SDPFでは通信が往復で同じ経路を通る構成としてください。

Managed WAF

  • 2台冗長構成とします。LBでヘルスチェックを設定します。
  • クライアントの接続を受け付けリアルサーバー(WEBサーバー)に受け渡すVIPを設定します。
  • リアルサーバー(WEBサーバー)へ受け渡すプロトコルはHTTPを前提とした構成としています。
  • DoSプロテクション機能の利用を想定し、LBではSNATを利用しない構成としています。

注釈

LBでSNATを設定すると、変換されたIPアドレスが単一と認識されるため、Managed WAFのDoSプロテクション機能を有効に利用できません。WAFではなくWebサーバーにClient端末のIPアドレスを通知したい場合は、LBでX-Forwarded-For機能を利用できます。この設定はデフォルトで無効です。

設定概念のイメージ

two_snatoff_fig1.png


4.2. システム構成図

以下はシステムの全体構成図です。外部セグメントはインターネットからのアクセスを想定しており、FWのゾーンでuntrust設定にしています。
その他のFWインターフェイスはすべて組織内ネットワークの想定なのでtrustゾーンに設定しています。
vsrx_usecase_fig2

注釈

その他のコンポーネントの利用OSやVersionは以下のとおりです。

  • WebServer01,02
    • OS CentOS7.3.1611
    • Webサーバー Apache 2.4.6
  • Client端末
    • Windows Server 2012R2


4.3. ファイアウォール設定の内容

ファイアウォールインターフェイス設定

注釈

vSRXへのインターフェイスへのIPアドレス設定前に、Smart Data Platformポータル(以下SDPFポータル)画面で利用インターフェイスとIPアドレスを設定します。

  • インターフェイス(ge-0/0/0)は「FWセグメント」に接続するインターフェイスとして設定します。
  • インターフェイス(ge-0/0/1)は「信頼されたセグメント」に接続するインターフェイスとして設定します。
  • インターフェイス(ge-0/0/2)は「外部セグメント」に接続するインターフェイスとして設定します。
  • FW-01
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.253/24
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24
  • FW-02
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.252/24
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24

ファイアウォールインターフェイスをゾーンに割り当て

「FWセグメント」ならびに「信頼されたセグメント」に接続するインターフェイス(ge-0/0/0.0,ge-0/0/1.0)は「trust」ゾーンに設定します。
「外部セグメント」に接続するインターフェイス(ge-0/0/2.0)は「untrust」ゾーンに設定します。
インターフェイスに着信する通信の設定は、「untrust」インターフェイスではVRRPパケットとPINGに限定し「trust」への着信パケットはすべてを許可する設定にします。

注釈

FWのインターフェイスではVRRPを利用していますので、VRRPの管理パケットを着信するために必ずVRRPを許可する設定にします。その他、お使いの環境に合わせて必要なルールを設定してください。

  • FW-01/FW-02
# set security zones security-zone trust interfaces ge-0/0/0.0
# set security zones security-zone trust interfaces ge-0/0/1.0
# set security zones security-zone trust host-inbound-traffic system-services all
# set security zones security-zone trust host-inbound-traffic  protocols all
# set security zones security-zone untrust interfaces ge-0/0/2.0
# set security zones security-zone untrust host-inbound-traffic system-services ping
# set security zones security-zone untrust host-inbound-traffic  protocols vrrp

VRRP設定

VRRP設定前に、必ずSDPFポータル上でVRRP通信許可設定を実施してください。
設定方法については、VRRP設定 をご覧ください。
  • FW-01

インターフェイス(ge-0/0/0)のVRRP設定

# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.253/24 vrrp-group 30 virtual-address 192.168.10.254
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.253/24 vrrp-group 30 priority 110
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.253/24 vrrp-group 30 preempt
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.253/24 vrrp-group 30 accept-data
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.253/24 vrrp-group 30 advertise-interval 5

インターフェイス(ge-0/0/1)のVRRP設定

# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 virtual-address 192.168.0.254
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 priority 110
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 preempt
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 accept-data
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 advertise-interval 5

インターフェイス(ge-0/0/2)のVRRP設定

# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 virtual-address 10.0.10.254
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 priority 110
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 preempt
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 accept-data
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 advertise-interval 5
  • FW-02

インターフェイス(ge-0/0/0)のVRRP設定

# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.252/24 vrrp-group 30 virtual-address 192.168.10.254
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.252/24 vrrp-group 30 priority 90
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.252/24 vrrp-group 30 preempt
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.252/24 vrrp-group 30 accept-data
# set interfaces ge-0/0/0 unit 0 family inet address 192.168.10.252/24 vrrp-group 30 advertise-interval 5

インターフェイス(ge-0/0/1)のVRRP設定

# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 virtual-address 192.168.0.254
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 priority 90
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 preempt
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 accept-data
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 advertise-interval 5

インターフェイス(ge-0/0/2)のVRRP設定

# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 virtual-address 10.0.10.254
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 priority 90
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 preempt
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 accept-data
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 advertise-interval 5

ファイアウォールフィルタの設定

外部セグメント側から来る通信のアクセス制御を行うルールを作成します。

  • 基本はすべて拒否
  • FW-01とFW-02間のVRRP通信は許可
  • Webアクセスに利用するIPアドレス(10.0.10.254)へは、HTTP(80),HTTPS(443)通信のみ許可

  • FW-01
# set firewall filter WEB-ACCESS term 1 from destination-address 10.0.10.254/32
# set firewall filter WEB-ACCESS term 1 from protocol tcp
# set firewall filter WEB-ACCESS term 1 from destination-port http
# set firewall filter WEB-ACCESS term 1 from destination-port https
# set firewall filter WEB-ACCESS term 1 then accept
# set firewall filter WEB-ACCESS term 2 from source-address 10.0.10.252/32
# set firewall filter WEB-ACCESS term 2 from protocol vrrp
# set firewall filter WEB-ACCESS term 2 then accept
# set firewall filter WEB-ACCESS term 3 then discard
  • FW-02
# set firewall filter WEB-ACCESS term 1 from destination-address 10.0.10.254/32
# set firewall filter WEB-ACCESS term 1 from protocol tcp
# set firewall filter WEB-ACCESS term 1 from destination-port http
# set firewall filter WEB-ACCESS term 1 from destination-port https
# set firewall filter WEB-ACCESS term 1 then accept
# set firewall filter WEB-ACCESS term 2 from source-address 10.0.10.253/32
# set firewall filter WEB-ACCESS term 2 from protocol vrrp
# set firewall filter WEB-ACCESS term 2 then accept
# set firewall filter WEB-ACCESS term 3 then discard

作成したFWルールをインターフェイスに適用します。

  • FW-01/FW-02
# set interfaces ge-0/0/2 unit 0 family inet filter input WEB-ACCESS

NATの設定

外部セグメントからFWに対するHTTP通信先・HTTPS通信先をLBに設定されているバーチャルサーバーのアドレスへ変更するNATの設定を行います。

  • FW-01/FW-02
# set security nat destination pool HTTP_NAT address 172.16.100.100/32
# set security nat destination pool HTTPS_NAT address 172.16.100.200/32
# set security nat destination rule-set 1 from zone untrust
# set security nat destination rule-set 1 rule 1 match destination-address 10.0.10.254/32
# set security nat destination rule-set 1 rule 1 match destination-port 80
# set security nat destination rule-set 1 rule 1 match protocol tcp
# set security nat destination rule-set 1 rule 1 then destination-nat pool HTTP_NAT
# set security nat destination rule-set 1 rule 2 match destination-address 10.0.10.254/32
# set security nat destination rule-set 1 rule 2 match destination-port 443
# set security nat destination rule-set 1 rule 2 match protocol tcp
# set security nat destination rule-set 1 rule 2 then destination-nat pool HTTPS_NAT

セキュリティポリシーの設定

vSRXを通過するトラフィックを制御するポリシー(ゾーンベースFW)を設定します。ゾーンベースFWは宛先NAT後に有効になるため、宛先IPアドレスはNAT変換後のバーチャルサーバーIPアドレスを指定します。
  • アドレスブックの作成(FW-01/FW-02)

LBのバーチャルサーバーのIPアドレスを定義します。

# set security address-book global address WEB_ADDRESS 172.16.100.0/24
  • アプリケーションセットの作成(FW-01/FW-02)

使用するアプリケーションのポート番号をグループ化します。

# set applications application HTTP protocol tcp
# set applications application HTTP destination-port 80
# set applications application HTTPS protocol tcp
# set applications application HTTPS destination-port 443
# set applications application-set WEB-SERVICE application HTTP
# set applications application-set WEB-SERVICE application HTTPS
  • ポリシーへの割り当て(FW-01/FW-02)
上記で作成したアドレスブックとアプリケーションセットをゾーンベースFWのuntrustからtrust方向へ設定します。
その他のuntrustからtrust方向の通信は許可しません。
# set security policies from-zone untrust to-zone trust policy WEB_ACCESS match source-address any
# set security policies from-zone untrust to-zone trust policy WEB_ACCESS match destination-address WEB_ADDRESS
# set security policies from-zone untrust to-zone trust policy WEB_ACCESS match application WEB-SERVICE
# set security policies from-zone untrust to-zone trust policy WEB_ACCESS then permit
# set security policies from-zone untrust to-zone trust policy ALL-DENY match source-address any
# set security policies from-zone untrust to-zone trust policy ALL-DENY match destination-address any
# set security policies from-zone untrust to-zone trust policy ALL-DENY match application any
# set security policies from-zone untrust to-zone trust policy ALL-DENY then deny

注釈

trustゾーンからの通信はデフォルトで許可するポリシー(default-permit)設定がされているのでそのまま利用します。

ルーティングの設定

FWからのバーチャルサーバーへのルーティングは、LBに設定されているVRRPのVIPをネクストホップとするスタティックルートを作成します。

  • FW-01/FW-02
# set routing-options static route 172.16.100.0/24 next-hop 192.168.10.251

設定内容の確認

前述の設定が正しく投入されている場合、以下の出力を確認できます。

  • FW-01
user01@FW-01> show configuration

(中略)

security {
    address-book {
        global {
            address WEB_ADDRESS 172.16.100.0/24;
        }
    }
    nat {
        destination {
            pool HTTP_NAT {
                address 172.16.100.100/32;
            }
            pool HTTPS_NAT {
                address 172.16.100.200/32;
            }
            rule-set 1 {
                from zone untrust;
                rule 1 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            80;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTP_NAT;
                            }
                        }
                    }
                }
                rule 2 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            443;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTPS_NAT;
                            }
                        }
                    }
                }
            }
        }
    }
    policies {
        from-zone trust to-zone trust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone trust to-zone untrust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone untrust to-zone trust {
            policy WEB_ACCESS {
                match {
                    source-address any;
                    destination-address WEB_ADDRESS;
                    application WEB-SERVICE;
                }
                then {
                    permit;
                }
            }
            policy ALL-DENY {
                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/0.0;
                ge-0/0/1.0;
            }
        }
        security-zone untrust {
            host-inbound-traffic {
                system-services {
                    ping;
                }
                protocols {
                    vrrp;
                }
            }
            interfaces {
                ge-0/0/2.0;
            }
        }
    }
}
interfaces {
    ge-0/0/0 {
        unit 0 {
            family inet {
                address 192.168.10.253/24 {
                    vrrp-group 30 {
                        virtual-address 192.168.10.254;
                        priority 110;
                        advertise-interval 5;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/1 {
        unit 0 {
            family inet {
                address 192.168.0.253/24 {
                    vrrp-group 20 {
                        virtual-address 192.168.0.254;
                        priority 110;
                        advertise-interval 5;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            family inet {
                filter {
                    input WEB-ACCESS;
                }
                address 10.0.10.253/24 {
                    vrrp-group 10 {
                        virtual-address 10.0.10.254;
                        priority 110;
                        advertise-interval 5;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
}
routing-options {
    static {
        route 172.16.100.0/24 next-hop 192.168.10.251;
    }
}
firewall {
    filter WEB-ACCESS {
        term 1 {
            from {
                destination-address {
                    10.0.10.254/32;
                }
                protocol tcp;
                destination-port [ http https ];
            }
            then accept;
        }
        term 2 {
            from {
                source-address {
                    10.0.10.252/32;
                }
                protocol vrrp;
            }
            then accept;
        }
        term 3 {
            then {
                discard;
            }
        }
    }
}
applications {
    application HTTP {
        protocol tcp;
        destination-port 80;
    }
    application HTTPS {
        protocol tcp;
        destination-port 443;
    }
    application-set WEB-SERVICE {
        application HTTP;
        application HTTPS;
    }
}
  • FW-02
user01@FW-02> show configuration

(中略)

security {
    address-book {
        global {
            address WEB_ADDRESS 172.16.100.0/24;
        }
    }
    nat {
        destination {
            pool HTTP_NAT {
                address 172.16.100.100/32;
            }
            pool HTTPS_NAT {
                address 172.16.100.200/32;
            }
            rule-set 1 {
                from zone untrust;
                rule 1 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            80;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTP_NAT;
                            }
                        }
                    }
                }
                rule 2 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            443;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTPS_NAT;
                            }
                        }
                    }
                }
            }
        }
    }
    policies {
        from-zone trust to-zone trust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone trust to-zone untrust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone untrust to-zone trust {
            policy WEB_ACCESS {
                match {
                    source-address any;
                    destination-address WEB_ADDRESS;
                    application WEB-SERVICE;
                }
                then {
                    permit;
                }
            }
            policy ALL-DENY {
                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/0.0;
                ge-0/0/1.0;
            }
        }
        security-zone untrust {
            host-inbound-traffic {
                system-services {
                    ping;
                }
                protocols {
                    vrrp;
                }
            }
            interfaces {
                ge-0/0/2.0;
            }
        }
    }
}
interfaces {
    ge-0/0/0 {
        unit 0 {
            family inet {
                address 192.168.10.252/24 {
                    vrrp-group 30 {
                        virtual-address 192.168.10.254;
                        priority 90;
                        advertise-interval 5;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/1 {
        unit 0 {
            family inet {
                address 192.168.0.252/24 {
                    vrrp-group 20 {
                        virtual-address 192.168.0.254;
                        priority 90;
                        advertise-interval 5;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            family inet {
                filter {
                    input WEB-ACCESS;
                }
                address 10.0.10.252/24 {
                    vrrp-group 10 {
                        virtual-address 10.0.10.254;
                        priority 90;
                        advertise-interval 5;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
}
routing-options {
    static {
        route 172.16.100.0/24 next-hop 192.168.10.251;
    }
}
firewall {
    filter WEB-ACCESS {
        term 1 {
            from {
                destination-address {
                    10.0.10.254/32;
                }
                protocol tcp;
                destination-port [ http https ];
            }
            then accept;
        }
        term 2 {
            from {
                source-address {
                    10.0.10.253/32;
                }
                protocol vrrp;
            }
            then accept;
        }
        term 3 {
            then {
                discard;
            }
        }
    }
}
applications {
    application HTTP {
        protocol tcp;
        destination-port 80;
    }
    application HTTPS {
        protocol tcp;
        destination-port 443;
    }
    application-set WEB-SERVICE {
        application HTTP;
        application HTTPS;
    }
}


4.4. Managed WAF設定の内容

注釈

  • SDPFポータル上でのみManaged WAFの設定ができます。

インターフェイス設定

デバイスのインターフェイスを設定して、ロジカルネットワークに接続します。
詳しくは、Managed WAFのインターフェイスの設定 をご覧ください。
以下のパラメータでインターフェイス設定を行ってください。
設定項目 設定値(M-WAF-01) 設定値(M-WAF-02)
Port Port[2] Port[2]
Enable Port チェックします チェックします
IP Address [CIDR] 172.16.10.21/24 172.16.10.22/24
MTU Size 1500 1500
Network Id tutorial-2arm-server-nw tutorial-2arm-server-nw
Subnet Id 172.16.10.0/24 172.16.10.0/24
Port Id (自動付与) (自動付与)

注釈

  • Network id : ロジカルネットワークで作成した、該当するサブネットネットワークアドレスを持つ、ロジカルネットワーク名を指定ください。


設定確認(インターフェイス設定)

「Managed WAF Operation」-「WAF Port Management」を選択し、インターフェイス設定を確認します。
  • M-WAF-01
c_waf01_interface
  • M-WAF-02
c_waf02_interface


ルーティング設定

デバイスのデフォルトゲートウェイを設定します。
詳しくは、Managed WAFのルーティングの設定 をご覧ください。
以下のパラメータでルーティング設定を行ってください。

設定項目 設定値(M-WAF-01, M-WAF-02共通)
ID (自動付与)
Destination IP 0.0.0.0
Subnet Mask 0
Gateway 172.16.10.251

注釈

  • デフォルトルートとして、LBのReal IPではなくLBで設定したVRRPのVIPを指定ください。


設定確認(ルーティング設定)

「Managed WAF Operation」-[デバイス名]を右クリックし、[デバイス管理]-[オブジェクト]-[Networking]-[Routing]を選択し、ルーティング設定を確認します。
  • M-WAF-01、M-WAF-02共通
c_waf01_02_routing


リアルサーバー設定

実際の接続先となるリアルサーバー(WEBサーバー)のIPアドレスを設定します。
詳しくは、Managed WAFのリアルサーバーの設定 をご覧ください。
以下のパラメータでリアルサーバー設定を行ってください。
設定項目 設定値(M-WAF-01, M-WAF-02共通) 設定値(M-WAF-01, M-WAF-02共通)
Server Name Real_WebServer01_172.16.10.11 Real_WebServer02_172.16.10.12
Server IP 172.16.10.11 172.16.10.12
Port 80 80
SSL Disable Disable
Status enable enable
Comments (任意のコメント) (任意のコメント)


設定確認(リアルサーバー設定)

「Managed WAF Operation」-[デバイス名]を右クリックし、[デバイス管理]-[オブジェクト]-[Object]-[Real Server]を選択し、リアルサーバー設定を確認します。
  • M-WAF-01、M-WAF-02共通
c_waf01_02_realserver


バーチャルサーバー設定

クライアントの接続を受け付けリアルサーバー(WEBサーバー)に受け渡すバーチャルサーバーのIPアドレスを設定します。
詳しくは、Managed WAFのバーチャルサーバーの設定 をご覧ください。
以下のパラメータでバーチャルサーバー設定を行ってください。
設定項目 設定値(M-WAF-01) 設定値(M-WAF-01) 設定値(M-WAF-02) 設定値(M-WAF-02)
Virtual Server Name VIP_WebServer01_172.16.10.111 VIP_WebServer02_172.16.10.112 VIP_WebServer01_172.16.10.211 VIP_WebServer02_172.16.10.212
Virtual IP 172.16.10.111 172.16.10.112 172.16.10.211 172.16.10.212
Status enable enable enable enable


設定確認(バーチャルサーバー設定)

「Managed WAF Operation」-[デバイス名]を右クリックし、[デバイス管理]-[オブジェクト]-[Object]-[Virtual Server]を選択し、バーチャルサーバー設定を確認します。
  • M-WAF-01
c_waf01_virtualserver
  • M-WAF-02
c_waf02_virtualserver


ポリシーとプロファイル設定

WAF機能のルール、ポリシー、リストを用意し、プロファイルを作成・設定します。
詳しくは、Managed WAFのポリシーとプロファイル の設定 をご覧ください。
以下のパラメータでサーバーポリシー設定を行ってください。
設定項目 設定値(M-WAF-01, M-WAF-02共通)
Name WebServer01_02_Protection_Profile
X-Forwarded-For Mgt チェックをいれる
Signatures Mgt チェックをいれる
Signature Template_Signature_Profile
File Upload Policy Mgt チェックをいれない
DoS Protection Mgt チェックをいれる
Dos Protection Template_DoS_Protection
IP List Mgt Mgt チェックをいれない
IP Reputation チェックをいれる
Comment (自由記載)

注釈

  • 本構成では、Managed WAF作成後に利用できるテンプレートプロファイルを選択しています。実際の構築の際には、お客さまの環境にあったポリシーの作成および適用する機能をご検討ください。
  • WebサーバーにClient端末のIPアドレスを通知する場合は、LBのX-Forwarded-For機能の設定を有効化してください。LBで設定されている場合、Managed WAFのX-Forwarded-For Mgtにチェックを入れる必要はありません。LBおよびManaged WAF両方のX-Forwarded-For機能を有効化すると、Webサーバーへは同一のクライアントIPが2つ転送されます。


設定確認(ポリシーとプロファイル設定)

「Managed WAF Operation」-[デバイス名]を右クリックして[デバイス管理]-[オブジェクト]-[Protection Profile]-[Web Protection Profile]を選択し、Webプロテクションプロファイル設定を確認します。
  • M-WAF-01、M-WAF-02共通
cd_waf01_02_profile


サーバーポリシー設定

バーチャルサーバーとリアルサーバーを組み合わせ、プロテクションプロファイルなど通信のために必要な設定を割り当てます。
詳しくは、Managed WAFのサーバーポリシーの設定 をご覧ください。
以下のパラメータでサーバーポリシー設定を行ってください。
設定項目 設定値(M-WAF-01) 設定値(M-WAF-01) 設定値(M-WAF-02) 設定値(M-WAF-02)
Name WebServer01_Policy WebServer02_Policy WebServer01_Policy WebServer02_Policy
Virtual Server VIP_WebServer01_172.16.10.111 VIP_WebServer01_172.16.10.112 VIP_WebServer02_172.16.10.211 VIP_WebServer02_172.16.10.212
Real Server Real_WebServer01_172.16.10.11 Real_WebServer02_172.16.10.12 Real_WebServer01_172.16.10.11 Real_WebServer02_172.16.10.12
HTTP Service HTTP HTTP HTTP HTTP
HTTPS Service 選択しない 選択しない 選択しない 選択しない
Protection Profile WebServer01_02_Protection_Profile WebServer01_02_Protection_Profile WebServer01_02_Protection_Profile WebServer01_02_Protection_Profile
Monitor Mode チェックしない チェックしない チェックしない チェックしない
Comments (任意のコメント) (任意のコメント) (任意のコメント) (任意のコメント)


設定確認(サーバーポリシー設定)

「Managed WAF Operation」-[デバイス名]を右クリックして[デバイス管理]-[オブジェクト]-[Policy]-[Server Policy]を選択し、サーバーポリシー設定を確認します。
  • M-WAF-01、M-WAF-02
c_waf01_02_serverpolicy

注釈

  • M-WAF-01とM-WAF-02に入っている設定は異なります。確認したい項目にカーソルを合わせると、設定情報が表示されます。


これでManaged WAFの設定が完了しました。



4.5. ロードバランサー設定の内容

ロードバランサーインターフェイス設定

設定内容の確認のためにインターフェイス設定を示していますが、実際のインターフェイス設定はSDPFポータル上で設定する必要があります。

注釈

  • SDPFポータル上でのみインターフェイス設定ができます。
設定項目 設定値(LB01) 設定値(LB02)
Interface 1/1 192.168.10.250/24 192.168.10.249/24
Interface 1/2 172.16.10.250/24 172.16.10.249/24

設定確認

  • LB01
vsrx_usecase1_fig3
  • LB02
vsrx_usecase1_fig4

VRRP設定

以下に冗長ゲートウェイとなるLBのVRRP設定内容について記載します。
VRRP設定前に、必ずSDPFポータル上でVRRP通信許可設定を実施してください。
詳しくは、VRRPによる冗長化設定 をご覧ください。

以下のパラメータで2組のVMAC設定を行ってください。

設定項目 設定値(LB01-Interface 1/1) 設定値(LB02-Interface 1/1)
VRID 40 40
Priority値 110 90
Preemption チェックします チェックします
設定項目 設定値(LB01-Interface 1/2) 設定値(LB02-Interface 1/2)
VRID 60 60
Priority値 110 90
Preemption チェックします チェックします

続いてVIPを設定し、先ほど作成したVMACにバインドします。

設定項目 設定値(LB01,LB2共通) 設定値(LB01,LB2共通)
VirtualIP 192.168.10.251/24 172.16.10.251/24
Netmask 255.255.255.0 255.255.255.0
IP Type Virtual IP Virtual IP
Virtual Router ID 40 60
Traffic Domain 10 10

設定確認(Virtual IP)

メニューの[System]―[Network]―[IPs]―[IPV4s]を選択し、VIP設定を確認します。

  • LB01
vsrx_usecase1_fig5
  • LB02
vsrx_usecase1_fig6

設定確認(VRRP)

メニューの[System]―[Network]―[VMAC]を選択し、VRRP設定を確認します。

  • LB01
vsrx_usecase1_fig7
  • LB02
vsrx_usecase1_fig8

ルーティング設定

LBに直接接続されていないネットワークへのルーティングとしてデフォルトゲートウェイを設定します。
ネクストホップはFWのLB側のVRRP VIPを指定します。
設定項目 設定値(LB01) 設定値(LB02)
宛先 0.0.0.0 0.0.0.0
サブネットマスク 0.0.0.0 0.0.0.0
ゲートウェイアドレス 192.168.10.254 192.168.10.254
Traffic Domain 10 10

注釈

  • デフォルトゲートウェイ設定はSDPFポータルで実施してください。

設定確認

メニューの[System]―[Network]―[Routes]を選択し、ルーティング設定を確認します。

  • LB01 LB02 共通設定項目
vsrx_usecase1_fig9

Managed WAFの登録設定

通信の振り分け先となるManaged WAFをLBに登録します。
[Configuration]メニューの[Traffic Management]―[Load Balancing]―[Servers]を選択し、以下のパラメータを設定します。
設定項目 設定値(LB01,LB02共通) 設定値(LB01,LB02共通) 設定値(LB01,LB02共通) 設定値(LB01,LB02共通)
Name WAF-01 WAF-02 WAF-03 WAF-04
IPAddress 172.16.10.111 172.16.10.211 172.16.10.112 172.16.10.212
Traffic Domain 10 10 10 10

注釈

設定確認

  • LB01 LB02 共通設定項目
two_snatoff_vsrx_usecase1_fig10

サービスグループ設定

通信の振り分け先となるWAFをLBに登録します。
[Configuration]メニューの[Traffic Management]―[Load Balancing]―[Service Groups]を選択し、以下のパラメータを設定します。
設定項目 設定値(LB01,LB02)
Service Name WAF-HTTP
Existing Server
WAF-01(172.16.10.111)
WAF-02(172.16.10.211)
WAF-03(172.16.10.112)
WAF-04(172.16.10.212)
Protocol HTTP
Port 80
Monitors http
Traffic Domain 10

注釈

設定確認

メニューの[Traffic Management]-[Load Balancing]-[Service Group]を選択し、右メニューに表示された登録済みのサービスグループをダブルクリックして設定を確認します。

  • LB01 LB02 共通設定項目
two_snatoff_vsrx_usecase1_fig11

Service Group Members

上記画像中のA部分をクリックし、振り分け先となるManaged WAF設定を確認します。

two_snatoff_vsrx_usecase1_fig12

Enable Use Client IP

下記画像中のA部分をクリックし、Use Client IPを有効化します。

two_snatoff_vsrx_usecase1_fig47

Monitors

上記画像中のB部分をクリックし、Monitorが設定されていることを確認します。

vsrx_usecase1_fig13

注釈

  • Use Client IPを有効化することでClient端末のIPアドレスは、バランシングされる際にLBのIPアドレスにSNAT変換されません。この設定はデフォルトで無効です。
  • WebサーバーにClient端末のIPアドレスが通知されます。

バーチャルサーバー設定

実際に外部から通信する宛先となるバーチャルサーバーを設定します。


HTTP通信用バーチャルサーバー設定

外部からHTTP通信を行うバーチャルサーバーを設定します。

使用するパラメータは以下のとおりです。

設定項目 設定値(LB01,LB02共通)
Name http-vserver
Protocol HTTP
IP Address Type IP Address
IP Address 172.16.100.100
Port 80
Traffic Domain 10

設定確認

メニュー[Traffic Management]-[Load Balancing]-[Virtual Servers]を選択し、右メニューに表示された登録済みのサービスグループ名[http-vserver]をダブルクリックして設定を確認します。

  • LB01 LB02 共通設定項目
vsrx_usecase1_fig14

Load Balancing Virtual Server Service Group Binding

上記画像中の赤枠部分をクリックし、サービスグループが指定されていることを確認します。

vsrx_usecase1_fig15

SSLオフロード通信用バーチャルサーバー設定

外部からSSL通信を行うバーチャルサーバーを設定します。今回はSSLオフロードを使用するため、振り分け先の仮想WebサーバーにはHTTP通信が届きます。
使用するパラメータは以下のとおりです。
設定項目 設定値(LB01,LB2共通)
Name ssl-vserver
Protocol SSL
IP Address Type IP Address
IP Address 172.16.100.200
Port 443
Server Certificate WEBSERVER-keyPair
CA Certificate INTERCA-keyPair
Traffic Domain 10

注釈

設定確認

メニュー[Traffic Management]-[Load Balancing]-[Virtual Servers]を選択し、右メニューに表示された登録済みのサービスグループ名[ssl-vserver]をダブルクリックして設定を確認します。

  • LB01 LB02 共通設定項目
vsrx_usecase1_fig16

Load Balancing Virtual Server Service Group Binding

上記画像中のA部分をクリックし、サービスグループが指定されていることを確認します。

two_snatoff_vsrx_usecase1_fig17

SSL Virtual Server Service Certificate Binding

上記画像中のB部分をクリックし、SSLサーバー証明書が設定されていることを確認します。

vsrx_usecase1_fig18

SSL Virtual Server CA Certificate Binding

上記画像のC部分をクリックし、CA証明書が設定されていることを確認します。

vsrx_usecase1_fig19

これでLBの設定が完了しました。



4.6. 通信の流れ

正常時はFW-01、LB-01、WAF-01を経由して通信します。
外部Client端末、信頼されたClient端末からWebサーバーへ通信できることを確認します。
vsrx_usecase1_fig20

正常通信時の状態確認

正常通信時のFW状態は以下のように確認できます。

  • VRRPの状態

FW-01 が Master であることを確認します。

user01@FW-01> show vrrp
Interface     State       Group   VR state VR Mode   Timer    Type   Address
ge-0/0/0.0    up             30   master   Active      A  0.371 lcl    192.168.10.253
                                                                vip    192.168.10.254
ge-0/0/1.0    up             20   master   Active      A  0.359 lcl    192.168.0.253
                                                                vip    192.168.0.254
ge-0/0/2.0    up             10   master   Active      A  0.899 lcl    10.0.10.253
                                                                vip    10.0.10.254

FW-02がBackupであることを確認します。

user01@FW-02> show vrrp
Interface     State       Group   VR state VR Mode   Timer    Type   Address
ge-0/0/0.0    up             30   backup   Active      D  3.349 lcl    192.168.10.252
                                                                vip    192.168.10.254
                                                                mas    192.168.10.253
ge-0/0/1.0    up             20   backup   Active      D  3.531 lcl    192.168.0.252
                                                                vip    192.168.0.254
                                                                mas    192.168.0.253
ge-0/0/2.0    up             10   backup   Active      D  3.027 lcl    10.0.10.252
                                                                vip    10.0.10.254
                                                                mas    10.0.10.253

正常通信時のLBの状態は以下のように確認できます。

  • VRRPの状態

メニューの[System]-[Network]-[VMAC]を選択し、VRRP設定を確認します。

LB-01がMasterであることを確認します。

vsrx_usecase1_fig21

LB-02がBackupであることを確認します。

vsrx_usecase1_fig22
  • バーチャルサーバーの状態

メニューの[Traffic Management]―[Load Balancing]―[Virtual Servers]―[statistics]を選択し、バーチャルサーバーの状態がそれぞれUPであることを確認します。

vsrx_usecase1_fig23

正常通信時のWAFの状態は以下のように確認できます。

  • デバイスの状態

「Managed WAF Operation」-「デバイス管理」を選択し、デバイスの状態を確認します。

M-WAF-01およびM-WAF-02のステータスが正常(緑) であることを確認します。

cd_waf01_02_status_green

Client端末の接続確認

外部Client端末から HTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。

vsrx_usecase1_fig24

外部セグメントClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig25

外部セグメントClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig26

信頼されたClient端末からHTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。

vsrx_usecase1_fig27

信頼されたClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig28

信頼されたClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig29

以上で正常時の確認を終了します。



4.7. ファイアウォール障害発生時の通信の流れ

FW-01の障害発生時はFW-02に経路が切り替わります。

two_snatoff_fwfault_fig4.png

障害発生時の状態確認

障害発生時のFWの状態は以下のように確認できます。

  • VRRPの状態

FW-01のVRRPが起動していないことを確認します。

user01@FW-01> show vrrp
VRRP is not running

注釈

FW-01のVRRPは停止中のため、状態は表示されません。

FW-02がMasterであることを確認します。

user01@FW-02> show vrrp
Interface     State       Group   VR state VR Mode   Timer    Type   Address
ge-0/0/0.0    up             30   master   Active      A  0.066 lcl    192.168.10.252
                                                                vip    192.168.10.254
ge-0/0/1.0    up             20   master   Active      A  0.744 lcl    192.168.0.252
                                                                vip    192.168.0.254
ge-0/0/2.0    up             10   master   Active      A  0.778 lcl    10.0.10.252
                                                                vip    10.0.10.254

注釈

LBの状態確認は正常時と変わりありませんので省略します。

Client端末の接続確認

FW障害発生時でも経路が切り替わり問題なく通信が可能なことを確認するため、外部セグメントClient端末からHTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。

vsrx_use-2arm31

外部セグメントClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig32

外部セグメントClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig33

続いて、信頼されたClient端末からHTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。

vsrx_usecase1_fig34

信頼されたClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig35

信頼されたClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig36

以上で、FW障害発生時の確認を終了します。



4.8. ロードバランサー障害発生時の通信の流れ

LB-01の障害発生時はLB-02に経路が切り替わります。

two_snatoff_lbfault_fig5.png

注釈

LBはFWとは異なり製品仕様として手動でVRRPを無効化できません。そのため、今回はPriority値変更にてインスタンス障害を再現しています。

その他、強制的にVRRPを切り替えるには以下の方法があります。

  • すべてのVIPをdisableにし、VMAC設定を削除する。
  • インスタンスを再起動する。(Preemptionを有効にしている場合はPriorityに従い切り戻りが発生します)

※VMAC削除でVRRPを停止し、すべてのIPリソースを停止させておくと確実に切り替わり先で応答できます。

障害発生時の状態確認

障害発生時のLBの状態は以下のように確認できます。

※VRRPの切り替えのためLB01のPriority値を110から50へ変更しています。LB-02のPriority値は90です。

  • VRRPの状態

メニューの[System]―[Network]―[VMAC]を選択し、VRRP設定を確認します。

LB-01がBackupであることを確認します。

vsrx_usecase1_fig38

LB-02がMasterであることを確認します。

vsrx_usecase1_fig39
  • バーチャルサーバーの状態

メニューの[Traffic Management]―[Load Balancing]―[Virtual Servers]―[statistics]を選択し、バーチャルサーバーの状態がそれぞれUPであることを確認します。

two_snatoff_vsrx_usecase1_fig40

Client端末の接続確認

LB障害発生時でも問題なく通信できることを確認するため外部セグメントのClient端末からHTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」 に振り分けられていることを確認できます。

vsrx_usecase1_fig41

外部セグメントClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig42

外部セグメントClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig43

続いて、信頼されたClient端末からHTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認できます。

vsrx_usecase1_fig44

信頼されたClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig45

信頼されたClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig46

以上でLB障害発生時の確認を終了します。



4.9. Managed WAF障害発生時の通信の流れ

M-WAF-01の障害発生時はLBのヘルスチェック機能により、M-WAF-02に経路が切り替わります。

two_snatoff_mfwfault_fig6.png

注釈

Managed WAFはVRRPなどを利用していません。そのため、今回はデバイスを手動で停止させることでインスタンス障害を再現しています。

手動によるデバイス停止および再起動方法は、こちら をご覧ください。

障害発生時の状態確認

Managed WAFの状態はデバイス管理画面から確認できます。 障害発生時は状態が黄色、または赤色で表示されます。

cd_waf01_02_status

デバイス管理画面のステータスを説明します。
項目 説明
状態

デバイスのステータスを表します。

  • 緑:デバイスは正常に応答します。
  • 黄:デバイスからの応答がありません。応答がない状態が続くとオフライン状態(赤)になります。
  • 赤:デバイスはオフライン状態です。
  • 青:デバイスは一度も管理対象になっていません(未接続の状態です)。

お客さまのデバイスがHA構成の場合、HAグループにまとめて表示されます。

種別 デバイスが管理対象であることを表します。
名前

お客さま端末のデバイス名です。

  • openstack:お客さまのネットワーク情報の参照用です。
  • ロードバランサーのバーチャルサーバーの状態

メニューの[Traffic Management]―[Load Balancing]―[Virtual Servers]―[statistics]を選択し、バーチャルサーバーの状態がそれぞれUPであることを確認します。

vsrx_usecase1_fig40

Client端末の接続確認

LB障害発生時でも問題なく通信できることを確認するため外部セグメントのClient端末からHTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」 に振り分けられていることを確認できます。

vsrx_usecase1_fig41

外部セグメントClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig42

外部セグメントClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig43

続いて、信頼されたClient端末からHTTP通信・HTTPS通信を行います。

  • HTTP通信・HTTPS通信(それぞれ2回通信)[OK]

通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」 に振り分けられていることを確認できます。

vsrx_usecase1_fig44

信頼されたClient端末のブラウザー画面(HTTP通信)

vsrx_usecase1_fig45

信頼されたClient端末のブラウザー画面(HTTPS通信)

vsrx_usecase1_fig46

以上でManaged WAF障害発生時の確認を終了します。