AWS EC2 ALB WAF(ウェブアプリケーションファイアウォール)設定方法
前提条件
EC2サーバーとALBの構成にWAFの設定をいたします。
※WEBアプリケーションやAPIをサイバー攻撃から保護するためのWEBアプリケーションファイアウォールサービスです。
構成図になります。

事前にALBとEC2サーバーを作成してください。
こちらの内容をご参考にしてください。
WAF(ウェブアプリケーションファイアウォール)設定方法
1. 「WAF & Shield」をクリックする。

2. 「Web ALCs」クリックし「Create web ACL」をクリックする。

3. 入力、選択して「Add AWS resources」をクリックする。
項目 | 説明(入力・選択) |
---|---|
Resource Type | 「Regional resources」を選択してください。 |
Region | お使いのリージョンを選択してください。 |
Name | お好きなアルファベットで入力してください。 |
CloudWatch metric name | お好きなアルファベットで入力してください。 |

4. 選択して「Add 」をクリックする。
項目 | 説明(選択) |
---|---|
Resource Type | 「Application Load Balancer」を選択してください。 |
Resources | 対象のALBを選択してださい。 |

5. 選択して「Next」をクリックする。
項目 | 説明(選択) |
---|---|
Resources level DDos protection - new | 「Active under DDoS」を選択してください。 |

6. 「Add rules」をクリックし「Add managed rule groups」をクリックする。

7. 選択して「Add rules」をクリックする。
項目 | 説明(選択) |
---|---|
AWS maneged rule groups | ※こちらのルールはすべて無料になっております。 「Amazon IP reputation list」を有効にしてください。 「Core rule set」を有効にしてください。 「Known bad inputs」を有効にしてください。 「SQL database」を有効にしてください。 |

8. 選択して「Next」をクリックする。
項目 | 説明(選択) |
---|---|
Default action | 「Allow」を選択してください。 |

9. 「Next」をクリックする。

10. デフォルト設定のまま「Next」をクリックする。

11. 「Create web ACL」をクリックする。

12. 対象EC2サーバーにログインしてApacheをインストールいたします。
以下のコマンドを実施してください。
コマンド | 説明 |
---|---|
$ sudo -i | rootになります。 |
# yum install -y httpd | Apacheをインストールいたします。 |
# systemctl enable httpd | サーバー再起動時にApacheを自動起動いたします。 |
# systemctl start httpd | Apacheを起動いたします。 |
# echo "test-server" > /var/www/html/index.html | ロードバランサーのエラーがでないようにindex.htmlを作成いたします。 1号機にこちらのコマンドを実施いたします。 |
# echo "test-server2" > /var/www/html/index.html | ロードバランサーのエラーがでないようにindex.htmlを作成いたします。 2号機にこちらのコマンドを実施いたします。 |
13. WAF設定完了後、コマンドかブラウザーでWAF動作を確認いたします。
もしWindowsのローカルにLinuxがインストールされている場合はcurlコマンドで確認できます。
Linux環境がない場合は、ブラウザーで確認可能です。
コマンド | 説明 |
---|---|
$ sudo -i | rootユーザーになります。 |
# curl -i "https://www.d1j.dev/?q=<script>alert(1)</script>" | XSS ブロックの確認になります。 403の表示がでていれば問題なくWAFは動作しております。 |

ブラウザーでの確認いたします。(エンコードしたもの貼り付けます。)
URL入力 | 説明 |
---|---|
https://www.d1j.dev/?q=%3Cscript%3Ealert%281%29%3C%2Fscript%3E | XSS ブロックの確認になります。 403の表示がでていれば問題なくWAFは動作しております。 |

以下のコマンドで実施いたします。
コマンド | 説明 |
---|---|
$ sudo -i | rootユーザーになります。 |
# curl -i "https://www.d1j.dev/?search=' OR '1'='1" | SQLインジェクションブロックの確認になります。 403の表示がでていれば問題なくWAFは動作しております。 |

ブラウザーでの確認いたします。(エンコードしたもの貼り付けます。)
URL入力 | 説明 |
---|---|
https://www.d1j.dev/?q=%3Cscript%3Ealert%281%29%3C%2Fscript%3E | XSS ブロックの確認になります。 403の表示がでていれば問題なくWAFは動作しております。 |

以上で「AWS EC2 ALB WAF(ウェブアプリケーションファイアウォール)設定方法」を完了いたします。