ITの教科書検索
入門・発展ページ読了 約10分

ファイアウォールとは ― 仕組みと種類

ファイアウォールとは、決めたルールと照合し通してよい通信だけを通す仕組みです。パケットフィルタリングとステートフルインスペクションの違いを整理します。

目次
  1. 通してよい通信だけを通す仕組み
  2. ファイアウォールの役割
  3. パケットフィルタリング
  4. 動かして確かめる:パケットはどのルールに当たるか
  5. ステートフルインスペクション
  6. アプリケーションゲートウェイ(プロキシ型)
  7. WAFと次世代ファイアウォールの違い
  8. DMZ:公開サーバを置く区画
  9. パーソナルファイアウォール
  10. NATとの違い
  11. 練習問題

ファイアウォールとは、通してよい通信だけを通す仕組み

ファイアウォールとは、あらかじめ決めたルールと通信を照合し、許可した通信だけを通して、それ以外は遮断する仕組みです。社内ネットワークとインターネットの境目など、信頼できる範囲と信頼できない範囲の境界に置きます。境界で通信を絞ることで、内側の機器を外からの不正な接続から守ります。

ファイアウォールには、見る場所の違いで、いくつかの方式があります。パケットフィルタリングはIPアドレスやポート番号を見ます。ステートフルインスペクションは行きと戻りの対応を記録します。アプリケーションゲートウェイは通信の中身まで見ます。

ファイアウォールの役割

ファイアウォールは英語のfirewallで、直訳すると「防火壁」です。家やオフィスの実際の壁と同じように、ファイアウォールは境界に立ちます。そして、通してよいものだけを通します。

インターネット上には、内部の機器に許可なく接続しようとする攻撃が常にあります。ファイアウォールが境界にないと、内部の機器は外部からのあらゆる通信を受け取ってしまいます。

ファイアウォールは、通信を通すかどうかを判断する機器です。ネットワークの全体像のページの機器一覧にも載っています。見るのは、第3層〜第4層のIPアドレスとポート番号です。種類によっては、第7層の通信の中身まで見ます。

ルータは「どこへ届けるか」を決め、ファイアウォールは「届けてよいか」を決めます。

パケットフィルタリング

もっとも基本的な方式がパケットフィルタリングです。見るのは、パケットが持つ送信元IPアドレス・宛先IPアドレス・宛先ポート番号・プロトコル(TCP/UDPなど)です。

これらを、管理者があらかじめ用意したルールの一覧と上から順に照合します。最初に一致したルールの、許可または拒否の動作がそのまま適用されます。それ以降のルールは見ません。

ポート番号を持たないICMPは、ポート番号の代わりにタイプで指定します。ICMPを全部止めると困る理由は、ICMPの記事で説明しています。

例として、Webサーバを公開する場合を考えます。WebサーバのIPアドレスは 203.0.113.60 です。あわせて、社内PCだけが外部のDNSサーバに問い合わせられるようにします。社内PCのネットワークは 192.168.10.0/24 です。

No送信元宛先宛先ポートプロトコル動作
1any203.0.113.60443TCP許可
2any203.0.113.6080TCP許可
3192.168.10.0/24any53UDP許可
4anyanyanyany拒否(暗黙の拒否)

最後のルール4に注目してください。どのルールにも一致しなかった通信は、最後にまとめて拒否されます。これを暗黙の拒否(implicit deny)と呼びます。通るのは管理者が明示的に許可したルールに一致した通信だけで、それ以外はすべて拒否されます。

ネットワーク機器のACLも、同じ考え方で動きます。上から順に照合し、一致しなければ最後は拒否します。ACLは、アクセスコントロールリストの略です。標準ACLと拡張ACLの違いやワイルドカードマスクの読み方は、ACLの記事にまとめています。

ルールの並び順は、結果に影響します。たとえば、すべてを拒否するルール4を先頭に置いたとします。すると、その下にあるルール1〜3にはどの通信も到達できません。実質的に、すべての通信が拒否されてしまいます。

ここで見た方式は、あらかじめ決めたルールだけで照合します。この方式を、静的パケットフィルタリングと呼ぶことがあります。次に見る方式は、通信の状態まで見ます。こちらは、動的パケットフィルタリングと呼ぶことがあります。

動かして確かめる:パケットはどのルールに当たるか

上のルール表を使って、5つのパケットがどのルールに当たるかを確かめられます。当たったルールで、許可か拒否かが決まります。ルールは上から順に照合され、最初に一致したところで判定が確定します。

No送信元宛先宛先ポートプロトコル動作
1any203.0.113.60443TCP許可
2any203.0.113.6080TCP許可
3192.168.10.0/24any53UDP許可
4anyanyanyany拒否(暗黙の拒否)

P1:外部PCから自社の公開Webサイトを HTTPS で見る

送信元 198.51.100.20 → 宛先 203.0.113.60:443(TCP)

  1. ルール1一致 → ここで確定
  2. ルール2照合しない(確定済み)
  3. ルール3照合しない(確定済み)
  4. ルール4照合しない(確定済み)

結果:許可(ルール1が決めた)

P4とP5は、どちらもルール1〜3のどれにも一致しません。そのため、暗黙の拒否である最後のルール4で拒否されています。これは、管理者が許可を書き忘れたからではありません。「許可すると書いていない通信は拒否する」という設計だからです。

ステートフルインスペクション

さきほどのパケットフィルタリングには弱点があります。PCがサーバに接続すると、サーバからPCへ応答が戻ってきます。この戻りの通信も許可しないと、通信は成立しません。

しかし、戻りの通信をルールで許可したとします。すると、その宛先ポート宛てには、外部から新しく通信を始めることまで許可してしまいます。

これを解決するのがステートフルインスペクションです。この方式では、内部から外部へ通信が出て行くとき、その通信の情報を記録しておきます。記録するのは、送信元・宛先のIPアドレスとポート番号などです。記録を置く表を、状態テーブルと呼びます。

戻ってきた通信は、状態テーブルの記録と照らし合わせます。一致すれば、自動的に許可されます。記録のない通信は拒否されます。外部から新しく始まる通信が、これにあたります。

① 行き:状態テーブルに記録PC192.168.10.25ファイアウォール状態テーブルと照合サーバ203.0.113.50:443② 戻り:記録と一致 → 許可外部の攻撃者198.51.100.9③ 記録なし → 拒否
PCからサーバへの行きの通信(①)は、ファイアウォールの状態テーブルに記録されます。サーバからの戻りの通信(②)は、記録と一致するので通します。一方、外部の攻撃者からPCへの通信(③)は、状態テーブルに一致するエントリがありません。そのため、拒否されます。
NATの変換テーブルとの類似点・違い

NATの記事で説明したNAPTの変換テーブルも、行きの通信を記録します。そして、戻りの通信をその記録と照合します。この点では、状態テーブルと同じ考え方です。

ただし、NATの変換テーブルは、アドレスを書き換えるための記録です。ステートフルインスペクションの状態テーブルは、通してよいかを判断するための記録です。目的が違うので、NATとファイアウォールは別の機器・別の設定として扱われます。この違いは、後の「NATとの違い」の節で説明します。

現在市販されているファイアウォール製品のほとんどは、パケットフィルタリングにステートフルインスペクションを組み合わせています。この方式をステートフルパケットインスペクション(SPI)と呼びます。

アプリケーションゲートウェイ(プロキシ型)

パケットフィルタリングとステートフルインスペクションは、どちらもIPアドレスやポート番号などヘッダの情報だけを見ています。通信の中身までは見ていません。

中身まで検査したい場合に使われるのがアプリケーションゲートウェイです。プロキシ型ファイアウォールとも呼びます。

アプリケーションゲートウェイは、PCとサーバの間に代理として立ちます。この代理をプロキシと呼びます。PCは、サーバと直接つながるのではなく、いったんプロキシに接続します。

プロキシは、内容を検査したうえで、あらためてサーバへ接続し直します。第7層の通信の中身まで検査できる分、パケットフィルタリングより処理は重くなります。

方式見る場所特徴
パケットフィルタリング型第3層・第4層(IPヘッダ・TCP/UDPヘッダ)送信元/宛先IPアドレス・ポート番号・プロトコルをルールと照合する。処理が軽く、もっとも基本的な方式
ステートフルインスペクション第3層・第4層+通信の状態パケット単体でなく、行きと戻りの対応関係(状態)を記録して照合する。今のファイアウォールの主流
サーキットレベルゲートウェイ第5層(セッションの確立)TCPのコネクション(セッション)が正しく確立されたかどうかだけを見て中継する。SOCKSなどが例
アプリケーションゲートウェイ(プロキシ型)第7層(通信の中身)PCとサーバの間に代理(プロキシ)として立ち、通信内容そのものを検査してから中継する

プロキシの仕組み自体は、通信の許可判断とは別の用途にも使われます。たとえば、キャッシュによる高速化や負荷分散です。プロキシの仕組みと、フォワードプロキシ・リバースプロキシの違いは、プロキシの記事で解説しています。

WAFと次世代ファイアウォールの違い

WAF(Web Application Firewall)は、Webアプリケーションへの攻撃を防ぐことに特化した、専用のファイアウォールです。ネットワークの全体像の機器一覧表にも、WAFが載っています。

SQLインジェクションやクロスサイトスクリプティングなど、Webアプリの脆弱性を突く攻撃があります。こうした攻撃は、IPアドレスやポート番号しか見ない通常のパケットフィルタリングでは見つけられません。WAFは、第7層にあたるHTTP/HTTPSの通信の中身を検査します。そして、こうした攻撃のパターンを見つけて遮断します。WAFの検査の方式と限界、置き場所は、WAFの記事にまとめています。AWSのWAFについては、AWS WAFとShieldの記事で説明しています。

一方、次世代ファイアウォール(NGFW:Next Generation Firewall)は、従来のパケットフィルタリングに機能を足したファイアウォールです。IPSという侵入防止の機能なども、取り込んでいます。Webアプリに限らず、幅広い通信を第7層まで検査できます。

IDSとIPSの違い

IDSは、怪しい通信を見つけて管理者に知らせるだけです。自分では遮断しません。IDSはIntrusion Detection Systemの略で、侵入検知システムと訳します。

IPSは、さらに一歩進みます。見つけた怪しい通信を、その場で遮断します。IPSはIntrusion Prevention Systemの略で、侵入防止システムと訳します。

NGFWは、このIPSの機能を内蔵していることが多いです。ファイアウォールのルール照合に、IPSの攻撃パターン検知を組み合わせています。

置き場所の違いや、誤検知と見逃しは、IDSとIPSの違いの記事を読むと分かります。

ファイアウォール(パケットフィルタリング)WAF次世代ファイアウォール(NGFW)
見る場所第3〜4層(IP・ポート)第7層のうちWebアプリの通信(HTTP/HTTPS)だけ第3〜4層に加え、第7層まで幅広く
防ぐもの許可されていないIPアドレス・ポートへの通信SQLインジェクションなどWebアプリの脆弱性を突く攻撃IPS機能などを取り込み、既知の攻撃パターンも検知
位置づけ通信の入り口を絞る基本の壁Webサーバの手前に置く専用の壁パケットフィルタリングに機能を足した壁

WAFは、Webサーバを守る専用の壁です。NGFWは、ネットワークの境界に立つ壁の機能を広げたものです。実際の現場では、両方を組み合わせて使うことも珍しくありません。

ファイアウォールでは防げないもの

パケットフィルタリングとステートフルインスペクションは、許可したIPアドレス・ポート番号あての通信かどうかしか見ません。Webサーバでは、80番・443番などのポートを許可します。いったん許可したポートを経由してくる攻撃は、通常のファイアウォールでは見つけられません。SQLインジェクションのように、正規のリクエストに見せかけた攻撃がその例です。

こうした攻撃を防ぐには、通信の中身まで検査するWAFや、アプリケーションゲートウェイのような仕組みが必要になります。アプリ側の対策は、SQLインジェクションとXSSの記事で説明しています。

他人のID・パスワードを盗み、許可されたポートから正規の手順でログインする手口も、ファイアウォールでは防げません。手口ごとに効く対策は、不正アクセスの記事にまとめています。正規の通信と見分けにくい大量の通信で、サービスを使えなくする攻撃もあります。この攻撃はDoS攻撃・DDoS攻撃の記事で説明しています。

DMZ:公開サーバを置く区画

Webサーバのように、外部から接続を受ける必要のあるサーバを、内部LANと同じ区画に置くとします。そのサーバが乗っ取られると、内部LANの機器まで攻撃者から見えてしまいます。

そこで、外部に公開するサーバだけを専用の区画に隔離して置きます。この区画をDMZ(DeMilitarized Zone)と呼びます。日本語では、非武装地帯と訳します。

インターネットファイアウォール3区画の境目DMZ公開Webサーバ 203.0.113.60内部LAN社内PC 192.168.10.25インターネット→DMZ80/443だけ許可内部LAN→インターネット許可DMZ→内部LAN拒否インターネット→内部LANは拒否
ファイアウォールを中央に置きます。インターネット・DMZ・内部LANの3区画は、それぞれファイアウォールとだけつながります。インターネットからDMZへは、公開サービスのポート(80/443)だけを許可します。内部LANからインターネットへは許可します。一方、DMZから内部LANへ抜けようとする通信は、ファイアウォールの手前で拒否されます。インターネットから内部LANへ抜けようとする通信も同じです。こうしておくと、DMZの公開サーバが乗っ取られても、そこから内部LANへは原則届きません。

インターネットからDMZのWebサーバへは、80番・443番など、公開サービスのポートだけを許可します。そして、DMZから内部LANへの通信は原則として拒否します。

こうしておけば、万が一DMZのWebサーバが乗っ取られても、攻撃者はそこから内部LANの機器へ直接は届きません。内部LANの機器からインターネットへの通信は、これまでどおり許可します。

ファイアウォールを2台使う形と1台使う形の違い、DMZに置くサーバの選び方は、DMZの記事を読むと分かります。

内側を信頼する設計の限界と、それを見直す考え方はゼロトラストの記事にあります。

パーソナルファイアウォール

ここまで説明したファイアウォールは、ネットワークとネットワークの境界に置く専用の機器でした。このような専用の機器を、アプライアンスと呼びます。

一方、WindowsやmacOSには、1台のPC自身を守る機能がOS標準で組み込まれています。この機能をパーソナルファイアウォールと呼びます。Windowsの「Windows Defender ファイアウォール」などが、これにあたります。

考え方は同じです。そのPC宛て・そのPC発の通信をルールと照合し、許可した通信だけを通します。

社内ネットワークの境界にファイアウォール機器があっても、社内の別のPCから攻撃を受ける可能性があります。境界のファイアウォールとパーソナルファイアウォールは、どちらか一方ではなく両方使われるのがふつうです。

NATとの違い:NATは防御の仕組みではない

NATの記事で説明したとおり、家庭用ルータのNATは、変換テーブルに対応するエントリの無い通信を内部に届けられません。ここでのNATは、実際にはNAPTです。

この結果だけを見ると、外部からの通信を防いでいるように見えます。そのため「NATがあればファイアウォールは要らない」と誤解されることがあります。

しかし、NATはIPv4アドレスを節約するために作られた変換技術です。通してよい通信かどうかを判断するために作られた仕組みではありません。理由は次の4つです。

  1. 1

    外から届かないのは、判断ではなく変換の副作用

    NATは「この通信は許可する・この通信は拒否する」というルールを持ちません。単に対応関係を変換テーブルに記録しているだけです。外部からの新しい通信が届かないのは、記録が無いことの副作用にすぎません。

  2. 2

    ポート開放やUPnPで固定の入口ができると、送り主を問わず届く

    ポート開放では、固定の変換エントリを用意します。機器が自動で同じことを行う仕組みもあり、UPnP(Universal Plug and Play)と呼びます。こうした入口には、送信元を問わず、どこからでも通信が届くようになります。NATは、送信元を選んで通す仕組みではありません。ポート開放とUPnPの仕組みと注意点は、ポート開放の記事にまとめています。

  3. 3

    実装によっては、通信相手以外からも届くことがある

    「NAPT(IPマスカレード)」で説明したとおり、戻りのパケットの送信元をどこまで厳しく照合するかは、ルータの実装によって幅があります。照合が緩い実装では、最初の通信相手以外からの通信が、変換テーブルのエントリに一致して内部に届いてしまうことがあります。

  4. 4

    IPv6ではNATを使わないのに、ファイアウォールは必要

    IPv6の記事で説明したとおり、IPv6はアドレス空間が広大なため、NATを基本的に使いません。それでも、ファイアウォールは必要です。NATとファイアウォールは、そもそも役割が別だからです。

家庭用ルータの多くは、NAPT機能とファイアウォール機能の両方を1台に持っています。1台にまとまっているため、境目が意識されにくくなります。

NATの目的は、アドレスを節約することです。ファイアウォールの目的は、通してよい通信かを判断することです。2つは、目的の異なる別々の機能です。

練習問題(全5問)

Q1ファイアウォールの説明として正しいものは?
Q2パケットフィルタリングにおける「暗黙の拒否」とは?
Q3ステートフルインスペクションの説明として正しいものは?
Q4WAFと次世代ファイアウォール(NGFW)の違いとして正しいものは?
Q5NATとファイアウォールの関係として正しいものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

発展ISMSとは ― 情報セキュリティマネジメントシステムパケットフィルタリングが、組織の情報セキュリティ管理策のうち技術的管理策に当たることを解説しています。2-4プライベートIPアドレスとNATのしくみNATの変換テーブルを解説しています。ファイアウォールの状態テーブルと比べるときの前提になります。4-3ポート番号とは ― IPアドレスとの役割分担パケットフィルタリングが照合する宛先ポート番号の仕組みを解説しています。3-4ハブ・スイッチ・ルータの違いルータが「どこへ届けるか」を決める機器であることを解説しています。ファイアウォールとの役割の違いを考える前提になります。overviewネットワークの全体像を一気に読むファイアウォールを含む機器一覧表で、他の機器との役割分担を確認できます。発展DMZとは ― 公開サーバを社内LANから切り離す区画ファイアウォールで公開サーバと社内LANを分ける構成と、通信の向きの決め方を解説しています。発展VPNとは ― 仕組みとトンネリング拠点間VPNやリモートアクセスVPNの通信を通すファイアウォールのルールは、VPNのトンネリングの仕組みを知っていると判断しやすくなります。発展IPsecとは ― AH・ESP・IKEとVPNの仕組みUDP 500・4500番やESPを通すファイアウォールのルールは、IPsecのAH・ESP・IKEの仕組みを知っていると判断しやすくなります。発展情報セキュリティの3要素とは ― 機密性・完全性・可用性許可していない通信を通さないファイアウォールが、3要素のどれを守るかを整理しています。発展脆弱性診断とペネトレーションテストの違いとはファイアウォールが防ぐ範囲に抜けがないかを確かめる、脆弱性診断とペネトレーションテストの違いを解説しています。

おすすめの本 PR

この記事の内容を扱っている本です。

目的別の本の選び方を見る

ネットワークの記事を探す