はじめに
「ファイアウォール」ってよく聞くけど、仕組みとか細かいところのイメージが湧かない…..って人は多いと思います。
でも、今回でしっかりイメージできるようになります!しっかりと要点を抑えつつパパっとStudyしていきましょう!
ファイアウォールの基本知識
ファイアウォールは、内部ネットワークと外部ネットワーク(通常はインターネット)の境界に設置され、悪意あるアクセスや不正な通信を防ぐためのセキュリティ装置です。ファイアウォールにはいくつかの方式がありますが、主に以下の3つがよく使われます。
1. パケットフィルタリング方式
- 概要: パケットフィルタリング方式は、パケットのヘッダー情報(送信元IPアドレス、宛先IPアドレス、ポート番号など)を基にして通信を許可するか遮断するかを判断します。これはOSI参照モデルのネットワーク層(第3層)で動作します。
- メリット: シンプルで処理が高速です。ネットワークの基本的なセキュリティを確保できます。
- デメリット: パケットのペイロード(データ部分)を検査しないため、アプリケーション層の攻撃(例:ウイルスやSQLインジェクション)には対応できません。
2. ステートフルパケットインスペクション方式
- 概要: ステートフルパケットインスペクション方式は、通信セッションの状態(例えば、TCPの3-wayハンドシェイクの情報やシーケンス番号)を監視し、過去のセッション情報を基に通信の正当性を判断します。これは、トランスポート層(第4層)までの情報を基に動作します。
- 例: 例えば、TCP通信の場合、3-wayハンドシェイク(SYN, SYN-ACK, ACK)を経ていないパケットを拒否する、シーケンス番号が正しく連続していないパケットを遮断するなどです。
- メリット: パケットフィルタリング方式に比べて、より高度な攻撃を防げます。セッションの状態を把握するため、不正な通信を効率的にブロックできます。
- デメリット: セッションの管理が必要なため、ネットワーク負荷が増える場合があります。
ステートフルパケットインスペクション方式はSPI(Stateful Packet Inspection)と略されます。
3. アプリケーションゲートウェイ方式(プロキシ方式)
- 概要: アプリケーションゲートウェイ方式は、プロキシサーバーとして動作し、アプリケーション層(OSIの第7層)で通信を監視・制御します。これにより、特定のアプリケーションデータ(例:URL、特定のコマンドなど)をフィルタリングできます。
プロキシサーバってなに?っと疑問を抱いた人はこちらへどうぞ
- 例: 特定のWebサイトへのアクセスを禁止したり、特定の種類のファイルダウンロードを許可しないといったことが可能です。
- メリット: アプリケーション層での高度な制御が可能です。攻撃の詳細な検査ができ、非常に細かいセキュリティポリシーを適用できます。
- デメリット: 処理が複雑で、遅延が発生する可能性があります。また、設定が難しいこともあります。
ファイアウォールの冗長化
ファイアウォールが停止すると、すべてのインターネットアクセスができなくなってしまうため、冗長化が非常に重要です。これにより、システムの可用性を高め、万が一の障害時にも通信を継続できます。冗長化の方法として以下の2つがあります。
1. アクティブスタンバイ方式
- 概要: 2台のファイアウォールを用意し、片方(アクティブ)が稼働中、もう片方(スタンバイ)は待機状態にします。アクティブ側が故障した場合、スタンバイ側が自動的に切り替わって稼働します。この切り替え時にセッション情報を引き継ぐ機能を「ステートフルフェイルオーバー」といいます。
- メリット: 切り替え時にセッションが途切れにくく、スムーズに通信を継続できます。
2. アクティブアクティブ方式
- 概要: 2台のファイアウォールを同時に稼働させ、負荷を分散します。一方が故障しても、もう一方がその負荷を引き継ぐことで、通信を継続できます。
- メリット: 負荷分散により、全体的なパフォーマンスが向上し、可用性も高まります。
まとめ
要するに…
ファイアウォールは、内部ネットワークと外部ネットワーク、通常はインターネットの間に設置され、悪意あるアクセスや不正な通信を防ぐために使用されるセキュリティデバイスです。その役割は、ネットワークの境界において、外部からの通信を検査し、不正なデータの侵入を防ぐことにあります。ファイアウォールの動作方式にはいくつか種類があり、代表的なものとしてパケットフィルタリング方式、ステートフルパケットインスペクション方式、アプリケーションゲートウェイ方式が挙げられます。
①パケットフィルタリング方式は、パケットのヘッダー情報、つまり送信元や宛先のIPアドレスやポート番号を基にして通信を許可するか遮断するかを決定します。この方式は、OSI参照モデルにおけるネットワーク層で動作し、通信の基本的な制御を行います。しかし、データの中身であるペイロード部分を検査しないため、アプリケーション層での攻撃を防ぐことはできません。
これに対し、②ステートフルパケットインスペクション方式は、通信のセッション状態を監視し、過去のセッション情報を基に通信の正当性を判断します。例えば、TCPの3-wayハンドシェイクを確認し、その通信が正当なものであるかを検証します。この方式は、トランスポート層までの情報を利用して通信を制御し、より高度な攻撃を防ぐことが可能です。ただし、セッションの管理が必要となるため、ネットワーク負荷が増加することがあります。
さらに、③アプリケーションゲートウェイ方式では、プロキシサーバの機能を利用してアプリケーション層での通信を制御します。これにより、特定のウェブサイトやデータのやり取りを細かく制御することができ、非常に高度なセキュリティを提供します。この方式は、例えば特定のURLへのアクセスを禁止したり、特定のファイル形式のダウンロードを制限することができますが、処理が複雑で遅延が発生することがあります。
ファイアウォールの運用において重要なポイントとして、冗長化が挙げられます。ファイアウォールが停止すると、ネットワーク全体がインターネットにアクセスできなくなるため、冗長化を行うことでシステムの可用性を確保します。冗長化にはアクティブスタンバイ方式とアクティブアクティブ方式があります。
アクティブスタンバイ方式では、一方のファイアウォールが稼働中にもう一方が待機し、故障時に自動的に切り替わる機能を持ち、これにより通信が途切れるのを最小限に抑えることができます。
一方、アクティブアクティブ方式では、両方のファイアウォールが同時に稼働し、負荷を分散させることで全体のパフォーマンスを向上させます。このように、ファイアウォールはネットワークの安全性を高めるために多くの役割を果たしており、その運用には正しい方式の選択と適切な冗長化が求められます。
おわりに
本日は終了です!お疲れさまでした!
今回でファイアウォールについて、ある程度理解が深まったと思います!
これからも、少しずつ理解できる領域を少しずつ一歩一歩広げていきましょう!そして、一緒に登り詰めましょう!では、さらばじゃっ!
おまけ:
では、ここからはおまけコーナーです。メイン解説の中で感じた疑問・不安などをここでは解消していきます!
プロキシサーバってなに?
プロキシサーバ(Proxy Server)は、クライアント(ユーザーのコンピュータ)とインターネット上のサーバ(ウェブサイトや他のオンラインサービス)との間に立ち、通信を中継・制御するサーバです。これにより、クライアントとサーバの間接的な接続が可能になります。
プロキシサーバの基本的な機能と役割:
- 通信の仲介:
- クライアントがインターネット上のサーバにリクエストを送ると、まずプロキシサーバにそのリクエストが送られます。
- プロキシサーバはリクエストを受け取ると、インターネット上の目的のサーバにそのリクエストを代わりに送信します。
- サーバからの応答(例えば、ウェブページのデータ)が返ってくると、プロキシサーバがそれをクライアントに返します。
- IPアドレスのマスキング:
- クライアントが直接サーバにアクセスするのではなく、プロキシサーバを介してアクセスするため、サーバ側にはプロキシサーバのIPアドレスが表示されます。これにより、クライアントのIPアドレスが隠され、匿名性が保たれます。
- アクセス制御:
- プロキシサーバは、どのサイトやサービスにアクセスできるかを制御できます。これにより、企業や学校などでは、不要なサイトへのアクセスを制限することができます。
- キャッシュ機能:
- プロキシサーバは、クライアントが頻繁にアクセスするウェブページやデータを一時的に保存(キャッシュ)します。次に同じリクエストが来たときに、そのデータを再取得するのではなく、キャッシュからすぐに返すことで、通信速度を向上させ、ネットワークの負荷を軽減します。
- セキュリティの向上:
- プロキシサーバは、外部からの攻撃や不正アクセスを防ぐためのセキュリティ対策を強化する役割も果たします。例えば、ファイアウォールと組み合わせて、不正な通信をブロックすることが可能です。