5. ファイアウォール・ロードバランサー・Managed WAF構成例(ワンアーム)※クライアントのIPアドレス変換なし¶
5.1. 前提条件¶
WEBサーバーを外部に公開するため、以下の方針でファイアウォール(以下FW)とロードバランサー(以下LB)とManaged WAFを設定します。
ファイアウォール
VRRPを使用して2台冗長構成とします。すべてのネットワークセグメントでVRRPを設定します。
FWルールは外部セグメントからの通信は基本すべて拒否し、特定のHTTP通信・HTTPS通信のみ許可します。信頼されたセグメントからの通信はすべて許可とします。
外部セグメントからはLBのバーチャルサーバーのIPアドレスではなく、FWのグローバルIPアドレスにアクセスさせ、NAT変換で宛先をバーチャルサーバーのIPアドレスに変換します。
ロードバランサー
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を冗長化させることができます。本構成はこの方法で冗長構成としています。
WebサーバーのデフォルトゲートウェイはLBのInterfce 1/2側のVIPとしてください。SDPFでは通信が往復で同じ経路を通る構成としてください。
Managed WAF
2台冗長構成とします。LBでヘルスチェックを設定します。
クライアントの接続を受け付けリアルサーバー(WEBサーバー)に受け渡すバーチャルサーバーのIPアドレスを設定します。
リアルサーバー(WEBサーバー)へ受け渡すプロトコルはHTTPを前提とした構成をとっております。
DoSプロテクション機能の利用を想定し、LBではSNATを利用しない構成としています。
注釈
LBでSNATを設定すると、変換されたIPアドレスが単一と認識されるため、Managed WAFのDoSプロテクション機能を有効に利用できません。WAFではなくWebサーバーにClient端末のIPアドレスを通知したい場合は、LBでX-Forwarded-For機能を利用できます。この設定はデフォルトで無効です。
設定概念のイメージ
5.2. システム構成図¶
注釈
その他のコンポーネントの利用OSやVersionは以下のとおりです。
WebServer01,02
OS CentOS7.3.1611
Webサーバー Apache 2.4.6
Client端末
Windows Server 2012R2
5.3. ファイアウォール設定の内容¶
ファイアウォールインターフェイス設定
注釈
vSRXへのインターフェイスへのIPアドレス設定前に、Smart Data Platformポータル(以下SDPFポータル)画面で利用インターフェイスとIPアドレスを設定します。
インターフェイス(ge-0/0/3)は「FWセグメント」に接続するインターフェイスとして設定します。
インターフェイス(ge-0/0/1)は「信頼されたセグメント」に接続するインターフェイスとして設定します。
インターフェイス(ge-0/0/2)は「外部セグメント」に接続するインターフェイスとして設定します。
FW-01
# 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
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24
FW-02
# 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
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24
ファイアウォールインターフェイスをゾーンに割り当て
注釈
FWのインターフェイスではVRRPを利用していますので、VRRPの管理パケットを着信するために必ずVRRPは許可する設定にします。その他、お使いの環境に合わせて必要なルールを設定してください。
FW-01/FW-02
# set security zones security-zone trust interfaces ge-0/0/1.0
# set security zones security-zone trust interfaces ge-0/0/3.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設定
FW-01
インターフェイス(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
インターフェイス(ge-0/0/3)のVRRP設定
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 virtual-address 192.168.20.254
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 priority 110
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 preempt
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 accept-data
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 advertise-interval 5
FW-02
インターフェイス(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
インターフェイス(ge-0/0/3)のVRRP設定
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 virtual-address 192.168.20.254
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 priority 90
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 preempt
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 accept-data
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 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 192.168.200.100/32
# set security nat destination pool HTTPS_NAT address 192.168.200.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
セキュリティポリシーの設定
アドレスブックの作成(FW-01/FW-02)
LBのバーチャルサーバーのIPアドレスを定義します。
# set security address-book global address WEB_ADDRESS 192.168.200.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)
# 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 192.168.200.0/24 next-hop 192.168.20.251
設定内容の確認
前述の設定が正しく投入されている場合、以下の出力を確認できます。
FW-01
user01@FW-01> show configuration
(中略)
security {
address-book {
global {
address WEB_ADDRESS 192.168.200.0/24;
}
}
nat {
destination {
pool HTTP_NAT {
address 192.168.200.100/32;
}
pool HTTPS_NAT {
address 192.168.200.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/1.0;
ge-0/0/3.0;
}
}
security-zone untrust {
host-inbound-traffic {
system-services {
ping;
}
protocols {
vrrp;
}
}
interfaces {
ge-0/0/2.0;
}
}
}
}
interfaces {
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;
}
}
}
}
}
ge-0/0/3 {
unit 0 {
family inet {
address 192.168.20.253/24 {
vrrp-group 50 {
virtual-address 192.168.20.254;
priority 110;
advertise-interval 5;
preempt;
accept-data;
}
}
}
}
}
}
routing-options {
static {
route 192.168.200.0/24 next-hop 192.168.20.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 192.168.200.0/24;
}
}
nat {
destination {
pool HTTP_NAT {
address 192.168.200.100/32;
}
pool HTTPS_NAT {
address 192.168.200.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/1.0;
ge-0/0/3.0;
}
}
security-zone untrust {
host-inbound-traffic {
system-services {
ping;
}
protocols {
vrrp;
}
}
interfaces {
ge-0/0/2.0;
}
}
}
}
interfaces {
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;
}
}
}
}
}
ge-0/0/3 {
unit 0 {
family inet {
address 192.168.20.252/24 {
vrrp-group 50 {
virtual-address 192.168.20.254;
priority 90;
advertise-interval 5;
preempt;
accept-data;
}
}
}
}
}
}
routing-options {
static {
route 192.168.200.0/24 next-hop 192.168.20.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;
}
}
5.4. Managed WAF設定の内容¶
注釈
SDPFポータル上でのみManaged WAFの設定ができます。
インターフェース設定
設定項目 |
設定値(M-WAF-01) |
設定値(M-WAF-02) |
---|---|---|
Port |
Port[2] |
Port[2] |
Enable Port |
チェックします |
チェックします |
IP Address [CIDR] |
192.168.20.21/24 |
192.168.20.22/24 |
MTU Size |
1500 |
1500 |
Network Id |
tutorial-1arm-server-nw |
tutorial-1arm-server-nw |
Subnet Id |
192.168.20.0/24 |
192.168.20.0/24 |
Port Id |
(自動付与) |
(自動付与) |
注釈
Network id : ロジカルネットワークで作成した、該当するサブネットネットワークアドレスを持つ、ロジカルネットワーク名を指定ください。
設定確認(インターフェース設定)
M-WAF-01
M-WAF-02
ルーティング設定
設定項目 |
設定値(M-WAF-01, M-WAF-02共通) |
---|---|
ID |
(自動付与) |
Destination IP |
0.0.0.0 |
Subnet Mask |
0 |
Gateway |
192.168.20.251 |
注釈
デフォルトルートとして、LBのReal IPではなくLBで設定したVRRPのVIPを指定ください。
設定確認(ルーティング設定)
M-WAF-01、M-WAF-02共通
リアルサーバー設定
設定項目 |
設定値(M-WAF-01, M-WAF-02共通) |
設定値(M-WAF-01, M-WAF-02共通) |
---|---|---|
Server Name |
Real_WebServer01_192.168.20.11 |
Real_WebServer02_192.168.20.12 |
Server IP |
192.168.20.11 |
192.168.20.12 |
Port |
80 |
80 |
SSL |
Disable |
Disable |
Status |
enable |
enable |
Comments |
(任意のコメント) |
(任意のコメント) |
設定確認(リアルサーバー設定)
M-WAF-01、M-WAF-02共通
バーチャルサーバー設定
設定項目 |
設定値(M-WAF-01) |
設定値(M-WAF-01) |
設定値(M-WAF-02) |
設定値(M-WAF-02) |
---|---|---|---|---|
Virtual Server Name |
VIP_WebServer01_192.168.20.111 |
VIP_WebServer02_192.168.20.112 |
VIP_WebServer01_192.168.20.211 |
VIP_WebServer02_192.168.20.212 |
Virtual IP |
192.168.20.111 |
192.168.20.112 |
192.168.20.211 |
192.168.20.212 |
Status |
enable |
enable |
enable |
enable |
設定確認(バーチャルサーバー設定)
M-WAF-01
M-WAF-02
ポリシーとプロファイル設定
設定項目 |
設定値(M-WAF-01, M-WAF-02共通) |
---|---|
Name |
WebServer01_02_Protection_Profile |
X-Forwareded-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つ転送されます。
設定確認(ポリシーとプロファイル設定)
M-WAF-01、M-WAF-02共通
サーバーポリシー設定
設定項目 |
設定値(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_192.168.20.111 |
VIP_WebServer01_192.168.20.112 |
VIP_WebServer02_192.168.20.211 |
VIP_WebServer02_192.168.20.212 |
Real Server |
Real_WebServer01_192.168.20.11 |
Real_WebServer02_192.168.20.12 |
Real_WebServer01_192.168.20.11 |
Real_WebServer02_192.168.20.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 |
(任意のコメント) |
(任意のコメント) |
(任意のコメント) |
(任意のコメント) |
設定確認(サーバーポリシー設定)
M-WAF-01、M-WAF-02
注釈
M-WAF-01とM-WAF-02に入っている設定は異なります。確認したい項目にカーソルを合わせると、設定情報が表示されます。
これでManaged WAFの設定が完了しました。
5.5. ロードバランサー設定の内容¶
ロードバランサーインターフェイス設定
設定内容の確認のためにインターフェイス設定を示していますが、実際のインターフェイス設定はSDPFポータル上で設定する必要があります。
注釈
SDPFポータル上でのみインターフェイス設定ができます。
設定項目 |
設定値(LB01) |
設定値(LB02) |
---|---|---|
Interface 1/1 |
192.168.20.250/24 |
192.168.20.249/24 |
設定確認
LB01
LB02
VRRP設定(Interface 1/1側)
以下のパラメータでVMAC設定を行ってください。
設定項目 |
設定値(LB01) |
設定値(LB02) |
---|---|---|
VRID |
30 |
30 |
Priority値 |
110 |
90 |
Preemption |
チェックします |
チェックします |
続いてVIPを設定し、先ほど作成したVMACにバインドします。
設定項目 |
設定値(LB01) |
設定値(LB02) |
---|---|---|
VirtualIP |
192.168.20.251/24 |
192.168.20.251/24 |
Netmask |
255.255.255.0 |
255.255.255.0 |
IP Type |
Virtual IP |
Virtual IP |
Virtual Router ID |
40 |
40 |
Traffic Domain |
10 |
10 |
設定確認(Virtual IP)
メニューの[System]―[Network]―[IPs]―[IPV4s]を選択し、VIP設定を確認します。
LB01
LB02
設定確認(VRRP)
メニューの[System]―[Network]―[VMAC]を選択し、VRRP設定を確認します。
LB01
LB02
ルーティング設定
設定項目 |
設定値(LB01) |
設定値(LB02) |
---|---|---|
宛先 |
0.0.0.0 |
0.0.0.0 |
サブネットマスク |
0.0.0.0 |
0.0.0.0 |
ゲートウェイアドレス |
192.168.20.254 |
192.168.20.254 |
Traffic Domain |
10 |
10 |
注釈
デフォルトゲートウェイ設定はSDPFポータルで実施してください。
設定確認
メニューの[System]―[Network]―[Routes]を選択し、ルーティング設定を確認します。
LB01 LB02 共通設定項目
Managed WAFの登録設定
設定項目 |
設定値(LB01,LB02共通) |
設定値(LB01,LB02共通) |
設定値(LB01,LB02共通) |
設定値(LB01,LB02共通) |
---|---|---|---|---|
Name |
WAF-01 |
WAF-02 |
WAF-03 |
WAF-04 |
IPAddress |
192.168.20.111 |
192.168.20.211 |
192.168.20.112 |
192.168.20.212 |
Traffic Domain |
10 |
10 |
10 |
10 |
注釈
設定方法の詳細は、サーバーを登録・編集・削除する機能 をご覧ください。
設定確認
LB01 LB02 共通設定項目
サービスグループ設定
設定項目 |
設定値(LB01,LB02) |
Service Name |
WAF-HTTP |
EXisting Server |
WAF-01(192.168.20.111)
WAF-02(192.168.20.211)
WAF-03(192.168.20.112)
WAF-04(192.168.20.212)
|
Protocol |
HTTP |
Port |
80 |
Monitors |
http |
Traffic Domain |
10 |
設定確認
メニューの[Traffic Management]-[Load Balancing]-[Service Group]を選択し、右メニューに表示された登録済みのサービスグループをダブルクリックして設定を確認します。
LB01 LB02 共通設定項目
Service Group Members
上記画像中のA部分をクリックし、振り分け先となるのManaged WAF設定を確認します。
Enable Use Client IP
下記画像中のA部分をクリックし、Use Client IPを有効化します。
Monitors
上記画像中のB部分をクリックし、Monitorが設定されていることを確認します。
注釈
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 |
192.168.200.100 |
Port |
80 |
Traffic Domain |
10 |
設定確認
メニューの[Traffic Management]-[Load Balancing]-[Virtual Servers]を選択し、右メニューに表示された登録済みのサービスグループ名[http-vserver]をダブルクリックして設定を確認します。
LB01 LB02 共通設定項目
Load Balancing Virtual Server Service Group Binding
上記画像中の赤枠部分をクリックし、サービスグループが指定されていることを確認します。
SSLオフロード通信用バーチャルサーバー設定
設定項目 |
設定値(LB01,LB2共通) |
---|---|
Name |
ssl-vserver |
Protocol |
SSL |
IP Address Type |
IP Address |
IP Address |
192.168.200.200 |
Port |
443 |
Server Certificate |
WEBSERVER-keyPair |
CA Certificate |
INTERCA-keyPair |
Traffic Domain |
10 |
注釈
必ず認証局が発行したSSLサーバー証明書をご使用ください。
設定方法は、証明書を登録する方法 、SSLオフロードの設定 をご覧ください。
設定確認
メニューの[Traffic Management]-[Load Balancing]-[Virtual Servers]を選択し、右メニューに表示された登録済みのサービスグループ名[ssl-vserver]をダブルクリックして設定を確認します。
LB01 LB02 共通設定項目
Load Balancing Virtual Server Service Group Binding
上記画像中のA部分をクリックし、サービスグループが指定されていることを確認します。
SSL Virtual Server Service Certificate Binding
上記画像中のB部分をクリックし、SSLサーバー証明書が設定されていることを確認します。
SSL Virtual Server CA Certificate Binding
上記画像中のC部分をクリックし、CA証明書が設定されていることを確認します。
サーバー振り分け方式(ROUND ROBIN)の設定
2台のWEBサーバーにClient端末からの通信をラウンドロビン方式で分散する設定を行います。
注釈
設定方法は、ROUND ROBIN方式の設定 をご覧ください。
これでLBの設定が完了しました。
5.6. 通信の流れ¶
正常通信時の状態確認
正常通信時のFWの状態は以下のように確認できます。
VRRPの状態
FW-01がMasterであることを確認します。
user01@FW-01> show vrrp
Interface State Group VR state VR Mode Timer Type Address
ge-0/0/1.0 up 20 master Active A 0.022 lcl 192.168.0.253
vip 192.168.0.254
ge-0/0/2.0 up 10 master Active A 0.669 lcl 10.0.10.253
vip 10.0.10.254
ge-0/0/3.0 up 50 master Active A 0.727 lcl 192.168.20.253
vip 192.168.20.254
FW-02がBackupであることを確認します。
user01@FW-02> show vrrp
Interface State Group VR state VR Mode Timer Type Address
ge-0/0/1.0 up 20 backup Active D 2.909 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 2.992 lcl 10.0.10.252
vip 10.0.10.254
mas 10.0.10.253
ge-0/0/3.0 up 50 backup Active D 3.279 lcl 192.168.20.252
vip 192.168.20.254
mas 192.168.20.253
正常通信時のLBの状態は以下のように確認できます。
VRRPの状態
メニューの[System]-[Network]-[VMAC]を選択し、VRRP設定を確認します。
LB-01がMasterであることを確認します。
LB-02がBackupであることを確認します。
バーチャルサーバーの状態
メニューの[Traffic Management]―[Load Balancing]―[Virtual Servers]―[statistics]を選択し、バーチャルサーバーの状態がそれぞれUPであることを確認します。
正常通信時のWAFの状態は以下のように確認できます。
デバイスの状態
「Managed WAF Operation」-[デバイス管理]を選択し、デバイスの状態を確認します。
M-WAF-01およびM-WAF-02のステータスが正常(緑) であることを確認します。
Client端末の接続確認
外部Client端末から HTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。
外部セグメントClient端末のブラウザー画面(HTTP通信)
外部セグメントClient端末のブラウザー画面(HTTPS通信)
信頼されたClient端末からHTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。
信頼されたClient端末のブラウザー画面(HTTP通信)
信頼されたClient端末のブラウザー画面(HTTPS通信)
以上で正常時の確認を終了します。
5.7. ファイアウォール障害発生時の通信の流れ¶
FW-01の障害発生時はFW-02に経路が切り替わります。
障害発生時の状態確認
障害発生時の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/1.0 up 20 master Active A 0.724 lcl 192.168.0.252
vip 192.168.0.254
ge-0/0/2.0 up 10 master Active A 0.301 lcl 10.0.10.252
vip 10.0.10.254
ge-0/0/3.0 up 50 master Active A 0.853 lcl 192.168.20.252
vip 192.168.20.254
注釈
LBの状態確認は正常時と変わらないので省略します。
Client端末の接続確認
FW障害発生時でも経路が切り替わり問題なく通信が可能なことを確認するため、外部セグメントClient端末からHTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。
外部セグメントClient端末のブラウザー画面(HTTP通信)
外部セグメントClient端末のブラウザー画面(HTTPS通信)
続いて、信頼されたClient端末からHTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認します。
信頼されたClient端末のブラウザー画面(HTTP通信)
信頼されたClient端末のブラウザー画面(HTTPS通信)
以上で、FW障害発生時の確認を終了します。
5.8. ロードバランサー障害発生時の通信の流れ¶
LB-01障害発生時はLB-02に経路が切り替わります。
注釈
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であることを確認します。
LB-02がMasterであることを確認します。
バーチャルサーバーの状態
メニューの[Traffic Management]―[Load Balancing]―[Virtual Servers]―[statistics]を選択し、バーチャルサーバーの状態がそれぞれUPであることを確認します。
Client端末の接続確認
LB障害発生時でも問題なく通信できることを確認するため外部セグメントのClient端末からHTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」 に振り分けられていることを確認できます。
外部セグメントClient端末のブラウザー画面(HTTP通信)
外部セグメントClient端末のブラウザー画面(HTTPS通信)
続いて、信頼されたClient端末からHTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」に振り分けられていることを確認できます。
信頼されたClient端末のブラウザー画面(HTTP通信)
信頼されたClient端末のブラウザー画面(HTTPS通信)
以上でLB障害発生時の確認を終了します。
5.9. Managed WAF障害発生時の通信の流れ¶
M-WAF-01の障害発生時はLBのヘルスチェック機能により、M-WAF-02に経路が切り替わります。
注釈
Managed WAFはVRRPなどを利用していません。そのため、今回はデバイスを手動で停止させることでインスタンス障害を再現しています。
手動によるデバイス停止および再起動方法は、こちら をご覧ください。
障害発生時の状態確認
Managed WAFの状態はデバイス管理画面から確認できます。 障害発生時は状態が黄色、または赤色で表示されます。
項目 |
説明 |
---|---|
状態 |
デバイスのステータスを表します。
お客さまのデバイスがHA構成の場合、HAグループにまとめて表示されます。 |
種別 |
デバイスが管理対象であることを表します。 |
名前 |
お客さまデバイスのデバイス名です。
|
ロードバランサーのバーチャルサーバーの状態
メニューの[Traffic Management]―[Load Balancing]―[Virtual Servers]―[statistics]を選択し、バーチャルサーバーの状態がそれぞれUPであることを確認します。
Client端末の接続確認
LB障害発生時でも問題なく通信できることを確認するため外部セグメントのClient端末からHTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」 に振り分けられていることを確認できます。
外部セグメントClient端末のブラウザー画面(HTTP通信)
外部セグメントClient端末のブラウザー画面(HTTPS通信)
続いて、信頼されたClient端末からHTTP通信・HTTPS通信を行います。
HTTP通信・HTTPS通信(それぞれ2回通信)[OK]
通信がバーチャルサーバー「http-vserver」「ssl-vserver」へヒットし「WebServer01,02」 に振り分けられていることを確認できます。
信頼されたClient端末のブラウザー画面(HTTP通信)
信頼されたClient端末のブラウザー画面(HTTPS通信)
以上でManaged WAF障害発生時の確認を終了します。