サーバー構築を任されたとき、ufwとwaf の違いがいまいちピンとこなかったので、ちょっと勉強してみました。
両者の違いをわからないままノリで進めていくと大恥かくので先に学んでおく事をおすすめします。
UFW(Uncomplicated Firewall)とは
UFWは、Linuxベースのシステムでファイアウォールを設定するためのツールです。
UFWは、iptablesと呼ばれるより高度なファイアウォール設定を簡略化したもので、コマンドラインを通じて簡単に設定できます。
主な特徴は以下です
- ポートベースのファイアウォール設定をサポート
- 特定のポートへのアクセスを制御
- IPアドレス、サブネット、アプリケーションなどの設定が可能。
- シンプルな構文
- ufwは非常に簡単な構文を持っており、コマンドラインで簡単に設定できる
- ufwはシステム全体のファイアウォールとして機能する。
- ネットワークトラフィックを制御するために使用される。
- 特にWebアプリケーションのセキュリティには直接関係なし。
使用例
サーバーに対してセキュリティに関わる制限を設ける。
#HTTPS の port 開放
sudo ufw allow 443
#MySQL の port 開放
sudo ufw allow 3306
#sshの port 閉鎖
sudo ufw deny 22
ufw にてポートの開閉を明示的に指示ができる。
ufw にて ssh のポートを閉じた場合、当たり前ですが ssh を用いてサーバーに接続することができなくなります。
当時の私の権限では、コントロールパネルから操作する権限を与えられていないアカウントで作業を行っていたため、構築作業が何もできない状況に陥りました。
サーバー管理者に申請を出す時間がないくらい案件を掛け持ちしていたため、サーバーを削除して最初から構築するという事態に陥りました。
ssh 周りの設定は注意しながら進めましょう。笑
WAF(Web Application Firewall)とは
WAFは、Webアプリケーションのセキュリティを強化するためのセキュリティツールです。
WAFは、Webトラフィックに対する特定のセキュリティルールを適用し、Webアプリケーション攻撃(例:SQLインジェクション、クロスサイトスクリプティングなど)から保護します。
主な特徴は以下です
- Webアプリケーションに対するトラフィックフィルタリング
- WAFは、HTTPおよびHTTPSトラフィックを対象として、不正なリクエストや攻撃を検出し、遮断します。
- パターンマッチング:WAFは特定の攻撃パターンや脆弱性に対する署名またはルールを使用して攻撃を検出します。
- ロギングと監視:WAFは攻撃試行をログに記録し、セキュリティエンジニアがそれを監視および対応できるようにします。
WAFはWebサーバーとWebアプリケーションの間に配置され、攻撃をブロックしてWebアプリケーションを保護します。
WAFは販売されている
今回の勉強をするまでは、WAFの防御する内容が SQLインジェクションや XSS などであったため、自分で記述するプログラムにて防御するものだと思っていました。(自分で書くべきプログラムの総称と思っていた…
内容を深掘っていくとWAFはかなりの数が外反されており、運用を楽にするためにたくさんの企業が導入しているということがわかりました。
独自のルールを付加させる事のできるAWS WAF はその内勉強しないといけないなぁという印象です…
用途の異なるセキュリティツール
UFW(Uncomplicated Firewall)とWAF(Web Application Firewall)は、異なるセキュリティ関連のツールであり、異なる用途と機能を持っています。
簡単にまとめると以下のとおりですー。
- UFWはシステムのファイアウォール設定を簡単に行うためのツール
- WAFはWebアプリケーションのセキュリティを向上させるための特化したセキュリティツール