ファイアウォールとは、コンピュータネットワークのガードマンのような役割を果たすシステムのことです。超・ざっくり言えば「危険な通信を遮断することで、ウイルスなどの脅威から守ります!」という役割を担うのがファイアウォールです。
インターネット上からの不正なアクセスを防ぐことは勿論、内部からの許可されていない通信をシャットダウンする役割も同時に担うことが一般的です。
ファイアウォールは、許可された通信と不正な通信を区別するために特定のルールやポリシーを必要とします。これらのルールは、組織や個人のセキュリティ要件に応じてカスタマイズすることが可能で、特定のIPアドレス、ポート番号、プロトコル、アプリケーションなどに対するアクセス制御を行うことができます。
またファイアウォールと一言にいっても、その仕組みや種類によって多種多様です。そのため、結局ファイアウォールの実体が良くわからない人が多いのだと思います。
このページではファイアウォールの基本知識を網羅的にわかりやすく解説します。
ネットワークエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
ファイアウォールとは?
ファイアウォールとは、コンピュータネットワークのセキュリティを高めるために設計されたシステムであり、外部からの不正アクセスやウイルス、マルウェアなどの脅威からネットワーク内のデバイスを保護する役割を担います。
ファイアウォールは、コンピュータネットワークの歴史と発展に伴ってその技術も進化してきました。
簡単にファイアウォールの歴史と発展を整理してみました↓
世代 | 時期 | 特徴 |
---|---|---|
初期ファイアウォール | 1980年代後半~1990年代初頭 | ・パケットフィルタリングによる通信制御 |
・IPアドレスとポート番号を基にしたルールによる不正アクセスのブロック | ||
ステートフルインスペクションファイアウォール | 1990年代中頃 | ・通信の状態(ステート)を追跡してセッションごとにルールを適用 |
・より効率的な通信制御とセキュリティ強化 | ||
アプリケーションレベルファイアウォール | 1990年代後半 | ・特定のアプリケーションを通じた通信の制御 |
・アプリケーションの挙動やプロトコルを解析して不正なアクセスを検出・ブロック | ||
次世代ファイアウォール(NGFW) | 2000年代~現在 | ・インテリジェントなアプリケーション制御 |
・統合された侵入防御システム(IDS)/侵入防止システム(IPS) | ||
・高度なマルウェア対策とサンドボックス技術 | ||
・ユーザー認証とアクセス制御機能 |
ご覧のように、ファイアウォールと一言で言っても発展とともに様々な種類があることが分かるかと思います。
が、基本的な思想はどの時代も同じで「危険にさらすのは、特定のサーバやルータに限定する」ということ。つまり、セキュリティ的に外部からの脅威にさらされてOKなものとそうでないものを区別し、外部からの脅威にさらされるサーバやルータに対して集中的にセキュリティを強化するという考え方です。
ここからは具体的にファイアウォールの仕組みを見ていきながら、より詳細にファイアウォールについてご説明します。
パケットフィルタリング型ファイアウォール
初期のファイアウォールは「パケットフィルタリング型」と呼ばれるタイプのファイアウォールです。
パケットフィルタリング型ファイアウォールは、ネットワーク上で送受信されるデータパケットを検査し、設定されたルールに基づいてパケットを許可または拒否します。
主にIPアドレス、ポート番号、およびプロトコル(TCP、UDP、ICMPなど)を基に、送信元と宛先に対してアクセス制御を行います。
参考 通信プロトコルとは? ( TCP / UDP / ICMP )
パケットフィルタリング型ファイアウォールの設定は、主にアクセス制御リスト(ACL)と呼ばれるルールセットに基づいて行われます。例えば、ある企業の内部ネットワークがあり、その企業は次のようなセキュリティポリシーを適用したいとします。
この場合、次のようなパケットフィルタリング型ファイアウォールの設定が考えられます。
# | アクション | 送信元IPアドレス | 送信元ポート | 宛先IPアドレス | 宛先ポート | プロトコル | 説明 |
---|---|---|---|---|---|---|---|
1 | 許可 | 192.168.0.0/16 | 任意 | 任意 | 任意 | 任意 | 企業内部からインターネットへの送信を許可 |
2 | 許可 | 任意 | 任意 | 192.168.0.0/16 | 任意 | 任意 | インターネットから企業内部への応答を許可 |
3 | 拒否 | 任意 | 任意 | 192.168.0.0/16 | 23 | TCP | インターネットから企業内部へのTelnetアクセスを拒否 |
4 | 拒否 | 任意 | 任意 | 192.168.0.0/16 | 3389 | TCP | インターネットから企業内部へのRDPアクセスを拒否 |
5 | 拒否 | 任意 | 任意 | 192.168.0.0/16 | 任意 | 任意 | それ以外のインターネットから企業内部へのアクセスを拒否 |
例えばNo.4に着目すると、インターネット側から企業内部へのRDP(リモートデスクトップ接続)の通信を拒否していることが分かります。つまり、この企業では外部からリモートデスクトップを一切拒否することによってRDP関連の脅威からネットワークを守っていると言えます。
上記の設定はあくまで一例ですが、このような設定を細かく行うことで各個人・各企業で独自のセキュリティ網を構築することが可能だということがわかるでしょう。
【特徴と限界】パケットフィルタリング型ファイアウォール
パケットフィルタリング型ファイアウォールの特徴と限界を整理すると以下の通りになります。
要約すると、シンプルで分かりやすい。しかし、その分複雑な通信制御ができないというのがパケットフィルタリング型ファイアウォールのポイントです。
例えば、パケットフィルタリング型ファイアウォールでは、特定のIPアドレスからの通信のみを許可する設定を行ったとしても、もしIPアドレス自体が偽装されその中身のデータにウイルスが潜んでいれば、この脅威を防ぐことはできないのです。
他にもパケットフィルタリング型のファイアウォールでは防げない脅威が徐々に表れてくると、それを克服するために後続のファイアウォール技術(ステートフルインスペクション、アプリケーションレベル、次世代ファイアウォール)が開発されることになります。
ここからは、次のステップ:ステートフルインスペクション型ファイアウォールについて解説します。
ステートフルインスペクション型ファイアウォール
ステートフルインスペクション型ファイアウォールは、パケットフィルタリング型ファイアウォールの限界を克服するために開発された技術です。
主な特徴は次のとおり。
ポイントは、ステートとセッションです。
実際のステートフルインスペクション型ファイアウォールの設定内容は、以下のような要素を含むことが一般的です。
# | アクション | 送信元IPアドレス | 送信元ポート | 宛先IPアドレス | 宛先ポート | プロトコル | 状態 | 説明 |
---|---|---|---|---|---|---|---|---|
1 | 許可 | 192.168.0.0/16 | 任意 | 任意 | 任意 | 任意 | 新規または既存 | 企業内部からの初期または確立された接続を許可 |
2 | 許可 | 任意 | 任意 | 192.168.0.0/16 | 任意 | 任意 | 既存の応答 | 企業内部へのインターネットからの応答を許可 |
3 | 拒否 | 任意 | 任意 | 192.168.0.0/16 | 23 | TCP | 新規 | インターネットからの新規Telnetアクセスを拒否 |
4 | 拒否 | 任意 | 任意 | 192.168.0.0/16 | 3389 | TCP | 新規 | インターネットからの新規RDPアクセスを拒否 |
5 | 拒否 | 任意 | 任意 | 192.168.0.0/16 | 任意 | 任意 | 新規 | それ以外の新規インターネット接続を拒否 |
要するに、パケットフィルタリング型ファイアウォールの特徴に加えて、その接続状態(新規?継続?)の判定+セッションのタイムアウトの制御を行うのがステートフルインスペクション型ファイアウォール。
これに加えて、行われた通信の記録(ロギング)やアラート発生時のメール通知などの機能を備えていることが特徴です。
ただし、ステートフルインスペクション型ファイアウォールにも限界があります。それが、通信の中身までを確認することができないという点です。通信の中身まで確認することができない→例えばメールに添付されたウイルスファイルなどを検知することができません。
いくらメール送受信にリスクがあるからと言えど、メールの送受信を不許可にすることは現実的ではありませんよね。そこで新たに生み出されたのがアプリケーションレベルファイアウォールです。
アプリケーションレベルファイアウォール
アプリケーションレベルファイアウォール(またはプロキシベースファイアウォール)は、ネットワーク層やトランスポート層でのフィルタリングに加えて、アプリケーション層でのフィルタリングも行うファイアウォールのタイプです。
参考 OSI参照モデル(ネットワーク層/トランスポート層/アプリケーション層)
アプリケーションレベルファイアウォールは、特定のアプリケーションやプロトコルに対する深い検査(ディープパケットインスペクション)を行い、通信の内容や振る舞いに基づいてアクセス制御を行うことが可能です。
具体的にアプリケーションレベルファイアウォールの特徴を示すと以下の通りです。
- アプリケーション層の監視
- アプリケーションレベルファイアウォールは、HTTP/HTTPS、FTPなどのアプリケーションプロトコルのトラフィックを解析。
- パケットの内容を深く検査し、特定のアプリケーションやサービスに関連するトラフィックを特定可能。
- 詳細なコンテンツフィルタリング
- 不正なコマンド、マルウェア、スパムなど、不正なコンテンツを含むパケットを特定し、ブロック。
- アプリケーションの特定の機能や動作を許可または拒否する詳細なポリシーを設定可能
- セキュリティの強化
- アプリケーション層の攻撃、例えばSQLインジェクションやクロスサイトスクリプティング(XSS)などに対する保護を提供。
- ユーザーの認証とアクセス制御を強化し、アプリケーションへの不正アクセスを防ぐ。
- ログと監査
- トランザクションレベルでの詳細なログ記録を提供し、セキュリティ監査や法的要件に対応。
- 通過するトラフィックの詳細な分析とレポーティング機能を備える。
アプリケーションレベルファイアウォールは、特にアプリケーション層での攻撃に対して強力な保護を提供し、企業のセキュリティインフラストラクチャの重要な部分となります。しかし、その設定と管理には高度な専門知識と注意が必要になります。非常に簡単ではありますが、アプリケーションレベルファイアウォールではどのような設定が行われるのかを例示しておきます。
- Webアプリケーションの保護
- 目的: Webサーバーへの攻撃を防ぐ。
- 設定:
- HTTP/HTTPSトラフィックのみを許可。
- SQLインジェクションやXSS攻撃のパターンに基づくフィルタリングを有効化。
- 不正な入力値や不審なURLアクセスをブロック。
- メールサーバーの保護
- 目的: スパムやフィッシング攻撃からメールサーバーを守る。
- 設定:
- SMTP、IMAP、POP3プロトコルのトラフィックのみを許可。
- メールコンテンツ内の不審なリンクや添付ファイルをスキャンし、ブロック。
- FTPサービスの制御
- 目的: FTPを通じた不正なファイル転送を防ぐ。
- 設定:
- FTPトラフィックのみを許可。
- 不正なファイル形式や異常なファイルサイズの転送を検知し、ブロック。
- APIエンドポイントのセキュリティ
- 目的: 外部APIエンドポイントへの不正アクセスを防ぐ。
- 設定:
- 特定のAPIエンドポイントへのアクセスを特定のIPアドレス範囲に限定。
- APIリクエストのレートリミットを設定。
参考 APIとは?
↑の設定例は、アプリケーションレベルファイアウォールの適用範囲と機能を示していますが、実際の設定は、会社や個人における特定のニーズとセキュリティポリシーに合わせて調整されます。。
ファイアウォールの種類
ここまででファイアウォールの仕組みをいくつかのタイプに分類して解説してきました。
最後にこの章ではファイアウォールのいくつかの製品をご紹介します。
ファイアウォールには主にハードウェアファイアウォール、ソフトウェアファイアウォール、クラウドベースのファイアウォールの3つの種類があります。
項目 | ハードウェアファイアウォール | ソフトウェアファイアウォール | クラウドベースのファイアウォール |
---|---|---|---|
形態 | 専用機器 | コンピュータ上で動作するプログラム | クラウドサービス上で提供されるファイアウォール |
導入・設定 | 専門知識が必要であることが多い | インストール・設定が比較的簡単 | 設定が容易で、リモート管理が可能 |
パフォーマンス | 高速で安定した処理能力 | コンピュータのリソースに依存するため、処理速度に影響がある | クラウドのリソースにより、スケーラビリティが高い |
価格 | 初期投資が高いことが多い | 低価格または無料で利用できることが多い | サブスクリプション料金がかかるが、初期投資が低い |
更新・メンテナンス | メーカーが提供するファームウェアを定期的に更新する必要がある | アプリケーションのアップデートが必要 | サービスプロバイダーが自動的に更新・メンテナンスを行う |
対象環境 | 企業ネットワークやデータセンターなどの大規模な環境 | 個人利用や小規模なビジネス環境 | 企業規模を問わず、インターネット接続があれば利用可能 |
ハードウェアファイアウォールは専用機器で、高速で安定した処理能力が特徴ですが、初期投資が高いことが多いです(例: Cisco ASA シリーズ)。
ソフトウェアファイアウォールはコンピュータ上で動作するプログラムで、低価格または無料で利用できることが多いものの、コンピュータのリソースに依存するため処理速度に影響がある場合があります(例: Windowsファイアウォール、ZoneAlarm)。
クラウドベースのファイアウォールはクラウドサービス上で提供され、スケーラビリティが高くリモート管理が可能ですが、サブスクリプション料金がかかります(例: Zscaler、Barracuda CloudGen Firewall)。
それぞれの種類には独自の特徴と違いがあり、組織やネットワーク環境に合わせて最適なファイアウォールを選択することが重要です。
ネットワークエンジニアを目指したい方は
TCPをはじめとして、ネットワークの基礎を1から学びたい方はこちらの書籍を購入してがっつり学びましょう!
さくっと手軽に読める内容ではないのですが、ネットワークエンジニア全員が必ず読破している本と言っても過言ではありません。是非この機会にチャレンジしてみてみましょう。
また、ファイアウォールを学んだあなたは、ネットワークの基本概念に興味を持っているかもしれません。
これを機に、ネットワーク全体についてもっと学びませんか?以下の記事では、初心者でも理解できるようにネットワークの世界を1からわかりやすく解説しています。さらなる知識を手に入れて、ネットワークのプロフェッショナルへの道を歩み始めましょう!こちらの記事をチェックしてみてください。