3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Network FirewallとLoad Balancerの組み合わせ①

Last updated at Posted at 2025-10-09

Network Firewallのネットワーク構成は様々なパターンが存在しますが、今回はLoad Balancerと組み合わせた場合の構成を紹介します。Load Balancerは、Public Load Balancerとしてインターネットからのアクセスを処理するのですが、Network FirewallをLoad Balancerの前に配置する、後ろに配置するによって設定や動作に違いがあります。

まず最初にLoad BalancerをNetwork Firewallの前に配置する構成を考えてみます。こちらのスライドをご覧ください。
image.png

Network Firewallをパブリック・サブネットに配置し、Load BalancerへのすべてのアクセスをNetwork Firewallが一旦全部受けるようになります。メリット、デメリットもそれぞれ記載していますが、Load Balancer以外のパブリック・サブネットにあるコンピュートもNetwork Firewallによってインターネットへの送受信を保護されるので、特にパブリック・サブネットに多くのリソースを配置している環境には適しているかと思います。

では実際に作成するための手順を紹介します。

VCNの作成

VCNウィザードを使用して下記アドレスのVCNを作成する

VCN名 CIDR パブリック・サブネット プライベート・サブネット
任意 172.16.0.0/21 172.16.0.0/24 172.16.1.0/24

下記のように、Load BalancerとNetwork Firewall用のパブリック・サブネットをそれぞれ追加で作成する
image.png

Network Firewallの作成

今回は、Network FirewallをIPSとしての動作テストを行うので、通信をブロックさせるポリシーを作成する
まず最初にNetwork Firewallのポリシーをひとつ作成。作成後、ポリシーの詳細設定画面からセキュリティルールの作成をクリックし、すべてデフォルトのままで、最後のアクションだけを侵入防止を指定する
image.png

Network FirewallをNFW用のパブリック・サブネットに作成する。ポリシーは上記で作成したものを指定し、NATは有効化せずに作成。作成が完了したらNFWに割り当てられるプライベートIPアドレスを控えておく
image.png

ルート・ルールの設定

まず、新規で3つのルート・ルールを作成する

Load Balancerのサブネット用にルート・ルールを作成。すべてのトラフィックは、Network Firewallへ
image.png

Network Firewallのサブネット用にルート・ルールを作成。すべてのトラフィックは、Internet Gatewayへ
image.png

Internet Gateway用にでルート・ルールを作成。LBのサブネットへのアクセスは、Network Firewallへ
image.png

次に、作成したそれぞれのルート・ルールを適用していく
Load Balancerのサブネットの編集から、作成したルート表に変更する
image.png

NFWのサブネットのサブネットの編集から、作成したルート表に変更する
image.png

インターネット・ゲートウェイのルート表の関連付けを選択し、作成したルート表を割り当てる
image.png

デフォルトのパブリックとプライベートのセキュリティリストのイングレス・ルールを下記のように変更する
image.png

WEBサーバーの設定

下記の2つのVMを指定のサブネットに作成する

VM名 サブネット 用途
PublicVM Load Balancerのパブリック・サブネット 通信確認用&踏み台
PrivateVM デフォルトのプライベート・サブネット LBのバックエンド・サーバ

まず、作成したPublicVMのインスタンスに接続できるか確認する。この接続は、Network Firewallを経由したアクセスになっているので、接続できない場合は上記のルート・ルールの設定が間違っている。
PublicVMからPrivateVMにログインして、以下のWEBサーバ関連の設定を実行

$ sudo systemctl stop firewalld
$ sudo yum install httpd
$ sudo systemctl start httpd

テスト用のhtmlを作成して配置

$ sudo vi /var/www/html/test.html

<!doctype html>
<html>
<head><meta charset="utf-8"><title>XSS Demo</title></head>
<body>
<h1>XSS Demo</h1>
<form><input name="name"><button>送信</button></form>
<div><script>let p=new URLSearchParams(location.search).get('name'); if(p)document.write(p);</script></div>
</body>
</html>

PublicVMからURLアクセスできるか確認しておく

$ curl http://PrivateVM IP/test.html
<!doctype html>
<html>
<head><meta charset="utf-8"><title>XSS Demo</title></head>
<body>
<h1>XSS Demo</h1>
<form><input name="name"><button>送信</button></form>
<div><script>let p=new URLSearchParams(location.search).get('name'); if(p)document.write(p);</script></div>
</body>

Load Balancerの作成

名前は、任意。サブネットは、LBのパブリック・サブネットを指定
image.png

バックエンド・サーバーは、PrivateVMを指定。ヘルスチェックポリシーは、プロトコルをHTTPに変更し、URLパスをHTMLのある/test.htmlにする
image.png

リスナーのトラフィック・タイプはHTTPに変更。以降は、ログ・グループなどの指定なので、お好みで指定してLBを作成する
image.png

バックエンド・セットのヘルスがOKになっていれば、OK
image.png

http://Load BalancerのPublic IP/test.htmlでアクセスできれば準備完了

image.png

以下のJava Scriptを入力して送信し、接続がリセットされればNetwork FirewallがXSSとして認識してブロックしていることになる

<script>alert("It's XSS ")</script>

image.png

Network FirewallのThereat Logを有効化しておけば、ログの詳細を確認できる。ログについて詳しくは、こちらのチュートリアルを参考に
image.png

手順としては以上です。プライベートIPからのアウトバウンド・アクセスは、Squidなどのプロキシ・サーバーをロードバランサーのパブリック・サブネットに作成し、そこを経由させることで Private VM -> Squid -> Network Firewall -> Internetという流れで、Network Firewallのトラフィックを検査させることが可能です。

次回は、Network FirewallをLoad Balancerを後ろに配置した構成を紹介します。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?