[アップデート] AWS Network Firewall で GeoIP フィルタリングがサポートされました
こんにちは、中川です。
AWS Network Firewall で GeoIP フィルタリングがサポートされました。
GeoIP フィルタリングを使うことで、特定の国からのトラフィックや特定の国へのトラフィックをブロックできるようになります。
これまで特定の国へのトラフィックを制御したいときには、特定の国に関する IP アドレスのリストを管理し、ファイアウォールルールを定期的に更新しなくてはいけませんでした。
GeoIP フィルタリングを使えるようになったことで、より簡単に特定の国に関するトラフィックを制御できるようになりました。
GeoIP フィルタリングは、Suricata 互換のルールグループで設定でき、geoip: <オプション>,<国コード>;
のように指定します。
オプションではsrc
またはdst
を指定することで送信元 IP または宛先 IP をフィルタリングし、both
またはany
を指定することで AND または OR ロジックで 2 つのタイプをフィルタリングできます。
国コードは ISO 3166-1 で発行されるアルファベット 2 文字が使用されます。
参考:ISO 3166-1国名コード - CyberLibrarian
それでは、実際に GeoIP フィルタリングを使って特定の国へのトラフィックを制御してみます。
やってみた
以下のような構成を作りました。
東京リージョンの EC2 からバージニアリージョンに立てた EC2 の Web サーバ宛にリクエストを投げ、フィルタリング設定していないとき設定したときで比較します。
フィルタリングを設定していない状態で、東京リージョン側からリクエストを投げるとレスポンスが返ってきます。
次に GeoIP フィルタリングを設定します。
ルールグループの中で以下のように US 宛のトラフィックをドロップするように指定します。
drop ip any any -> any any (msg:"GeoIP is US, United State"; geoip:dst,US; sid:1;)
先ほどと同じように東京リージョンからレスポンスを投げると接続不通になります。
CloudWatch Logs でログを確認してみると GeoIP シグネチャでブロックされていることを確認できました。
さいごに
AWS Network Firewall で GeoIP フィルタリングがサポートされ、特定の国へのトラフィックを制御できるようになりました。
これまでも特定の国からトラフィックを制御することは CloudFront や AWS WAF といった選択肢がありましたが、特定の国宛のトラフィックを制御するのは困難でした。
ネットワーク出口を集約しているような組織にとっては、このアップデートで特定の国に関するトラフィックの制御が容易になり、セキュリティとコンプライアンスの強化に役立つのではないでしょうか。