
【CCNA_1】ハードウェア型とソフトウェア型のファイアウォール、結局どう違う?
「旅するエンジニア」という名前でnoteを書き始めたものの、ここまでの記事を振り返ってみると、エンジニア要素はほとんどありませんでした。
旅行、ロンドン生活、海外での体験。
そんな記事ばかり書いてきましたが、とあることをきっかけに、資格試験の勉強を本気で始めることにしました。
その「きっかけ」については、今はまだ書けません。
いつか書けるようになったら、そのときに改めて書こうと思っています。
まずはCCNAの勉強から。
勉強していて、
「言葉としては分かるけど、結局どういうこと?」
「似たようなものが出てきたけど、何が違うの?」
と疑問に思ったことを、
今までなんとなーくわかったフリして来てしまったことについて、
自分なりに整理しながら残していこうと思います。
記念すべき1本目は、
ハードウェア型ファイアウォールとソフトウェア型ファイアウォールの違いについて。
そもそもファイアウォールとは?
ファイアウォール(Firewall)は、ネットワークを流れる通信を監視し、あらかじめ設定されたルールに基づいて、
「この通信は通していい」
「この通信は通してはいけない」
と判断する仕組みです。
名前の通り、日本語にすると「防火壁」。
火災が広がるのを壁で防ぐように、不正な通信や許可されていない通信がネットワークに入ってくることを防ぎます。
ファイアウォールにはいくつかの形がありますが、今回は基本となる
* ハードウェア型ファイアウォール
* ソフトウェア型ファイアウォール
の違いを整理します。
ハードウェア型ファイアウォールとは?
ハードウェア型ファイアウォールは、ネットワーク上に専用の機器として設置するファイアウォールです。
たとえば会社のネットワークであれば、
インターネット
↓
ファイアウォール
↓
社内ネットワーク
↓
PCやサーバー
というように、外部ネットワークと内部ネットワークの境界に設置します。
ここを通る通信に対して、
「この通信は許可」
「これは拒否」
と判断します。
複数の端末をまとめて守れる
ハードウェア型ファイアウォールの大きな特徴は、ネットワーク全体をまとめて保護できることです。
たとえば社内に100台のPCがあったとしても、インターネットとの境界にファイアウォールを設置すれば、そこを通る通信をまとめて監視できます。
たとえば、
* インターネット側から社内ネットワークへの不要な通信を拒否する
* Web閲覧に必要な通信を許可する
* 外部から公開WebサーバーのTCP 443番ポートへの通信だけを許可する
といった制御ができます。
つまり、ハードウェア型ファイアウォールは、
「ネットワークの出入口を守る門番」
と考えるとイメージしやすいです。
ソフトウェア型ファイアウォールとは?
一方、ソフトウェア型ファイアウォールは、PCやサーバーなどの端末上で動作するファイアウォールです。
身近な例では、Windowsに搭載されているWindows Defender Firewallなどがあります。
ハードウェア型がネットワーク全体を守るのに対して、ソフトウェア型は基本的に、
そのソフトウェアが動いている端末自身
を守ります。
たとえば、
インターネット
↓
ルーター
↓
PC
└ ソフトウェア型ファイアウォール
という構成なら、PCに届いた通信に対して、
「この通信は受け入れていいのか」
「このアプリケーションの通信を許可するのか」
などを端末側で判断します。
具体的には、
* 特定のポートへの通信を拒否する
* 特定のネットワークからの通信だけを許可する
* 特定のアプリケーションの通信を許可・拒否する
といった設定ができます。
こちらは、
「一台一台の端末を守る門番」
と考えると分かりやすいです。
2つの違いを簡単に整理すると
ハードウェア型ファイアウォールは、ネットワーク上に設置して、ネットワーク全体を守るもの。
ソフトウェア型ファイアウォールは、PCやサーバーなどの端末上で動作して、その端末自身を守るもの。
という違いがあります。

比較するときに見るポイントは、
* どこに設置されるのか
* 何を守るのか
* どの範囲の通信を制御するのか
の3つ。
かなりざっくり言えば、
ハードウェア型=ネットワークの入口にいる門番
ソフトウェア型=各端末の入口にいる門番
と考えると分かりやすいです。
ここまで見ると、
「じゃあ会社ならハードウェア型だけあればいいのでは?」
とも思いました。
でも、そういうわけではありません。
ハードウェア型があればソフトウェア型はいらない?
実際の環境では、両方を組み合わせて使うことがあります。
たとえば、
インターネット
↓
ハードウェア型ファイアウォール
↓
社内ネットワーク
↓
PC
└ ソフトウェア型ファイアウォール
という構成です。
ハードウェア型ファイアウォールでネットワーク全体を守り、
さらに各PCのソフトウェア型ファイアウォールでも端末を守ります。
なぜわざわざ二重にするのでしょうか。
理由のひとつが、すべての通信が必ず同じファイアウォールを通るとは限らないからです。
たとえば同じ社内ネットワークに、
* PC-A
* PC-B
があったとします。
PC-Aからインターネットへ通信するときには、ネットワークの境界にあるファイアウォールを通ります。
一方で、
PC-A → PC-B
という社内ネットワーク内の通信では、ネットワーク構成によっては境界のファイアウォールを通りません。
その場合でもPC-B自身にソフトウェア型ファイアウォールがあれば、
「この通信は許可する」
「このポートへのアクセスは拒否する」
と端末側で制御できます。
つまり、
ネットワークの入口で守るだけではなく、端末自身でも守る。
複数の場所で防御することで、セキュリティを高めることができます。
「ハードウェア型」という名前で少し勘違いしていたこと
私は最初、
ハードウェア型=機械そのものが通信を判断している
ソフトウェア型=ソフトウェアが判断している
というような違いなのかと思っていました。
でも、これは少し違います。
ハードウェア型ファイアウォールも、専用機器の中でソフトウェアが動作しています。
つまり、
ハードウェア型=ファイアウォール用途の専用機器として提供されるもの
ソフトウェア型=PCやサーバーなどの上で動作するもの
くらいに考える方が分かりやすそうです。
また現在では、物理的な機器だけでなく、仮想環境やクラウド上で動作する仮想ファイアウォールなどもあります。
そのため、
「ハードウェアかソフトウェアか」
だけではなく、
どこにファイアウォールを配置して、何を守っているのか
を見ることが大切だと理解しました。
今回のまとめ
今回覚えておきたいのは、この3つ。
ハードウェア型ファイアウォール
→ ネットワーク上に設置し、ネットワーク全体の通信をまとめて制御する。
ソフトウェア型ファイアウォール
→ PCやサーバーなどで動作し、その端末自身の通信を制御する。
そして、
どちらか一方だけを使うものではなく、組み合わせて使うこともある。
最初は、
「どちらもファイアウォールなのに、わざわざ2種類に分ける意味ある?」
と思いましたが、
ネットワークを守るのか、端末を守るのか
という視点で考えると、かなり整理しやすくなりました。
CCNAの勉強を進めながら、また「これ結局どう違うんだ?」と思ったことが出てきたら、ひとつずつ整理していこうと思います。
※この記事は初学者が学習の中で調べながらまとめた内容になります。
先輩エンジニアの皆さま、間違いや誤解があるなという箇所や追加の補足情報などありましたらご指摘いただけますと大変ありがたいです🙇♂️
関連記事
・次回「【CCNA_2】ACLとファイアウォールは何が違う?|似ているようで違う役割を整理」