見出し画像

ファイアウォールの基礎

記事で学べること

  • ファイアウォールの基本的な機能が理解できる

  • ルータやL3スイッチのセキュリティ機能との違いが理解できる

  • 代表的な製品が把握できる

ファイアウォールとは?

外部からの不正アクセスを防ぎ、内部ネットワークを安全に保つ装置です。インターネットやWAN(外部)と、社内ネットワークのLAN(内部)の境界に設置されます。
ファイアウォールが無いと、外部から企業内ネットワークに侵入され、内側から機密情報が漏洩するといったことが起きます。現代の企業ネットワークには欠かせない存在です。

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

ファイアウォールの基本機能に、『ステートフルインスペクション』があります。
ステートフルインスペクションとは、到着したネットワークパケットの中身を見て通過の許可・拒否を動的に決定する仕組みです。
動作は下記の通りです。

・外部から内部宛ての通信はすべて拒否する
・内部から発生した外部宛ての通信の戻りのトラフィックのみ許可する

この動作によって行きの通信とその戻りの通信のみが許可され、外部からの不正なアクセスを防止することができます。

また、ステートフルインスペクションは下記の2つの要素で実現しています。

・ポリシー
アクセス制御のルールのことで、どの宛先のどのプロトコルの通信は許可する、といった通信制御を行うことが出来ます。

・コネクションテーブル
ファイアウォールに到着したパケットはコネクションという単位で一時的にメモリ上のコネクションテーブルに記憶されます。
戻りの通信が到着した際に、コネクションテーブルに記載された行きの通信情報と照らし合わせてパケットの整合性を確認します。

このようにポリシーとコネクションテーブルは不正アクセス防止に重要な役割を果たしています。

ACL(アクセスリスト)は代わりになる?

似たような仕組みにルータやL3スイッチのACLがありますが、ACLを代用してステートフルインスペクションの処理を実現できるでしょうか。
答えは「できない」となります。ステートフルインスペクションとACLには明確な違いがあります。

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

例として、手元のPCからインターネット上のwebサーバへアクセスする際の通信の流れを追ってみます。
HTTPを使ってWEBサーバへ通信する場合、PCは宛先ポート番号80を指定します。この時、送信元ポート番号はPCがランダムに決めた番号になります。宛先ポート番号は80、送信元ポート番号はランダムです。
ファイアウォールはこのポート番号をコネクションテーブルに記載します。

▲行きの通信のポート番号の情報をコネクションテーブルに記載

外部からの通信がファイアウォールに入ってきた際に、ファイアウォールはコネクションテーブルを参照し、その通信が戻りの通信かどうか判断します。
今回のパケットでは送信元ポート番号が80、宛先ポート番号が12345(ランダム)であり、コネクションテーブル内の情報と一致するため、ファイアウォールは戻りの通信であると判断し、通信を許可します。

▲コネクションテーブルの情報と一致するため戻りの通信と判断する

では、ACLの場合はどうでしょうか。

ACL(アクセスリスト)の動き

先ほどと同様、手元のPCからインターネット上のwebサーバへアクセスする際の通信の流れを追った場合、ACLでは通信を許可する送信元ポート番号をANY(すべて)として設定します。HTTP通信では送信元ポート番号がランダムで決定するためです。ここまではファイアウォールのポリシーと何ら変わりありません。

▲許可する送信元ポート番号はANY(すべて)として設定

ACLでは戻りの通信についても別に設定が必要です。ステートフルインスペクションと違って通信をコネクション単位で記憶していないためです。
そして、戻りのポート番号も行きと同様に幅広く許可しようと、ACLの許可するポート番号としてANY(すべて)を使うわけですが、この時、セキュリティ上の不都合が生じます。

下図のように、webサーバが悪意のある第三者に乗っ取られた場合に、PCの開いているポート番号を狙ってwebサーバ側から攻撃が可能となります。

▲戻りの通信を偽装した侵入が可能となる

ACL(アクセスリスト)は代わりにならない

このようなセキュリティ上の不都合が発生することから、ACLではステートフルインスペクションの代わりにはならないと考えられます。

※補足:Cisco IOSのCBAC機能

ちなみに、CiscoのルータにはCBACという機能が搭載されています。この機能を使うことでステートフルインスペクションと同様の動作を実現できます。

こちらを参考にしてみてください。

実際に小規模なオフィスではCiscoのブロードバンドルーターをファイアウォールと兼用しているケースがあります。

一方で、大量の通信が発生する大規模なネットワークにおいては、ひとつの装置に複数の役割を担わせると負荷が集中し、障害リスクを高めます。このような場合には分業させることが妥当な設計といえるでしょう。

UTMとは

ファイアウォールの基本機能の他に様々なセキュリティ機能を搭載している高性能なセキュリティアプライアンスをUTMと呼びます。
これまではセキュリティ機能ごとに別々の製品を導入する必要があり、コストや導入の手間がかかるという問題がありました。
UTMではファイアウォールはもちろん、アンチウイルス、アンチスパム、IDS/IPS、URLフィルタリングなどの機能が一つの製品に統合されています。

一般にファイアウォールといえばUTMを指す

本来はファイアウォールとUTMは別の意味を持ちます。UTMという高機能なセキュリティアプライアンスの中にファイアウォールの機能も存在するというような意味あいです。
ところが実際のエンジニアの会話の中ではファイアウォールといえばUTMを指す場合が多く、きちんと用語を使い分けているケースは稀です。
本記事においてもファイアウォール=UTMであるとお考えください。

代表的なファイアウォール製品

最後に、実際の企業ネットワークによく導入されている3つの製品シリーズを紹介します。
各社、競争によって目まぐるしく機能が向上しているため、製品シリーズごとに大きな違いはありません。

Cisco ASAシリーズ

ネットワーク機器をCiscoに統一し、統合管理したい大企業に好まれます。

PaloAltoNetworks PAシリーズ

高品質でバグも少なく大企業に好まれます。

Fortinet FortiGateシリーズ

初期コストが低く日本のUTM市場でナンバー1のシェア率を誇っています。

まとめ

  • ファイアウォールとは、外部からの不正アクセスを防ぎ、社内ネットワークを安全に保つための装置。

  • ファイアウォールには『ステートフルインスペクション』という、行きの通信と戻りの通信のみ許可する通信制御の機能が備わっている。

  • ACLではステートフルインスペクションの代用にはならない。

  • UTMとはファイアウォールに様々な機能が追加された高機能なセキュリティアプライアンスである。

以上です。最後まで読んでいただきありがとうございました。

まとめ

  • FortiGate60Dを使ってファイアウォールの初期設定とポリシー作成について検証を行いました。

  • 検証①ではステートフルインスペクションの動作を確認しました。

  • 検証②ではGUIでポリシーを作成し、通信の許可範囲を小さくしました。

  • 検証③ではCLIでポリシーを作成し、通信の許可範囲を広くしました。

今回の検証がネットワークセキュリティを学ぶ上での助けになれば幸いです。最後まで読んでいただきありがとうございました。

最後に宣伝 /インフラエンジニア募集中★

筆者が所属する株式会社CAIRN(ケルン)はインフラエンジニアに特化した高還元SES企業です。

・ 契約単価に連動した報酬体系なので評価基準が明確です。
・ITインフラに強い営業網で豊富な案件からプロジェクトを選べます。
・ 独自の研修制が多数あり、学びなおしが出来ます。
・厚生労働省認定のホワイト企業です。

▲給与テーブルの抜粋
▲厚生労働省 安全衛生優良企業認定ホワイトマークを取得

インフラエンジニアにとって良い環境を整えています。ご応募お待ちしております。

株式会社CAIRNの採用ページへジャンプ

▼CAIRNについてさらに詳しく知りたい方はこちら

【Instagram】
ケルンの日常を発信♪
https://www.instagram.com/cairn_recruit/

【代表川嵜のブログ】
インフラエンジニアのキャリアについて週1で発信♪
https://note.com/joyous_cairn1015/
   
【技術ブログ】
月1で発信♪
https://t.co/iInlgn3cfw

【代表川嵜のX】
代表の日常、SES業界について発信♪DM歓迎です!
https://twitter.com/cairndk

【人事花田のX】
人事花田の日常、労務関連について発信♪DM歓迎です!
https://twitter.com/HanadaCAIRN_SES