OCI_WAFのフィルター_お家からの接続に絞る

WAF(Edge plicy)のフィルター

VPNのセキュリティーリストでお家のIPからのみ接続許可してたのだがWAFを挟んでしまったため出来なくなった。
代わりにWAFでフィルターすればいいやん。ということに気づいたので設定したという話。
(フィルターしたかったのはセキュリティ的な理由じゃなくテスト用のサイトでGoogleにインデックス登録されたくなかったから)

  • Web application firewall > OCI Edge policy resources > IP address lists
    →お家のIPを登録する
    ※Network address listsって言う登録箇所もあるが、そっちはv2WAF用だと思われる。Edge Policyで使う場合は、こっちの Edge policy resources 内のIP address listsに登録する
    image-26.png

Web application firewall > Policies > [WaF_for_Blogs_Ash] を選択
Access control > Add access ruleでルールを作成 ※最後Publishを忘れずに
お家アドレス以外はブロックというルール

image-27.png

※Access control > IP whitelistsタブ →こっちのリストは無条件OKのIPを指定するところなので用途が違う。

Nginxのアクセスログ

もう一点、WAFを挟んだことによりNginxのアクセスログに出力されるIPがWAFのIPになってしまった。
HTTPヘッダーにオリジナルのIPを格納していてNginxはそれをログに出す仕組みがあるが、設定には、どのIPから送られてきたヘッダーだったら信頼してオリジンIPを採用するっていうIPのレンジ指定をする必要がある。もともと クライアントPC → Traefik → Nginx という経路で、素のままだとTraefikの出口IPになってしまってたところ、TraefikのIPは信頼できますっている設定をしてHTTPヘッダーのクライアントPCのIPを取りだてログに出してた。ただ、ここにWAFが挟まってしまったため、WAFの出口IPも信頼できるっていう指定(set_real_ip_fromを追加していく)をしないとそこで信頼の連鎖が止まってしまってWAFの出口IPがログに出てしまう。ただ、WAFの出口IPのレンジいっぱいあって追加するの面倒だったので諦めた。

# Traefik コンテナ(bridge ネットワーク)を信頼
set_real_ip_from 172.18.0.0/16;

real_ip_header    X-Forwarded-For;
real_ip_recursive on;