これまであまり物理的なネットワークに触れてこなかったエンジニアを対象に、AWSを用いてネットワークの基礎知識を解説する連載。今回は、パケットフィルタリングによるネットワークセキュリティについて解説し、「ネットワークACL」と「セキュリティグループ」の設定を通して、AWSでパケットフィルタリングを行う方法を示す。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
これまであまり物理的なネットワークに触れられてこなかったSEやサーバ管理者、情シスなどの方を対象にネットワークの基本を「Amazon Web Services」(AWS)を用いて解説する本連載「AWSで学ぶクラウド時代のネットワーク基礎知識」。
連載第6回の今回は、ネットワークレベルでのセキュリティの実現方法を解説します。L3/L4レベルで通信をフィルタリングする方法を紹介した後、AWSのネットワークセキュリティの機能で通信フィルタを構築する方法を紹介します。
これまでの連載でInternet Protocol(IP)を利用したネットワーク通信の方法を紹介しました。インターネットのネットワークレイヤーはIPプロトコルが利用されており、送信元が宛先IPアドレスを含んだIPパケットを送付すると、インターネットを越えてパケット(データ)がルーティングされ、容易に通信できることを説明しました。
これは便利な半面、端末のIPアドレスを特定できるとインターネット上のどこからでも攻撃を仕掛けることもでき、危険にさらされてしまいます。ここからはネットワークレイヤーでのセキュリティ対策を紹介します。
通信によるデータの送受信を宅配便に例えます。あなたは配送業者から荷物を受け取る際、必ず送付元の方の名前を確認すると思います。知人からの荷物なら特に疑うことはなく受け取ると思います。しかし、もし聞いたことない会社や不明な送付元からの荷物なら受け取りを拒否するでしょう。
IPネットワークの世界でも同様で、主に送信元のIPアドレスを判断基準としてパケットを受信する/拒否する、あるいは転送する/破棄する「パケットフィルタリング」という機能があり、怪しいパケットを破棄することによって危険な通信から端末を守ることができます。
このパケットフィルタリング機能はルーターやスイッチなどの一般的なネットワーク機器なら利用できます。機能名はメーカーによって異なるものの、一般的には「ACL」(Access Control List)という名前で実装されています。このパケットフィルタリング機能を主軸にネットワークセキュリティに特化した製品が「ファイアウォール」です。WindowsやLinuxなどの端末でも一般的に「ファイアウォール」という名称でパケットフィルタリングができるようになっています。
パケットフィルタリングの方法は次の通りです。
まずは、あらかじめ通信を許可(permit)するIPのセグメントおよび拒否(Deny)するセグメントをリスト形式で登録しておきます。次に、転送されてきたパケットを受信するタイミング(In)、あるいは送信するタイミング(Out)でリストの1エントリ目から順に評価し、マッチするセグメントのアクション(Permit/Deny)を実施します。
もし全エントリを評価してもマッチしない通信は通常はDeny扱い(暗黙のDeny)となり、ドロップ(破棄)されます。
ただしIPアドレスだけで制御する場合、特定のネットワーク/端末間の全ての通信を許可/拒否するという操作しかできません。
特定の端末による特定のサービスとだけ通信を許可し、その端末からでも特定のサービス以外の通信をフィルタリングするには、IPアドレスに加えてトランスポートレイヤーのTCP(Transmission Control Protocol)/UDP(User Datagram Protocol)プロトコルヘッダにある送信元ポート番号、宛先ポート番号も転送/破棄の判断基準とします。
注意しておきたいのは、通常、通信は一方向ではなく双方向ということです。
ネットワークレイヤーにおけるパケットフィルタリングの動作はあくまでも転送されてきたパケットに対して行われるものであり、もし「端末Aから端末B行きの通信」を許可して通したとしても「端末Bから端末Aへの戻り通信」が拒否されて通らなければ通信は成り立ちません。そのため、通信を成立させるには、“行き”と“戻り”の両方のパケットを許可する必要がありますが、IPアドレスおよびポート番号の並びが逆になる“戻り”の通信を自動で許可するパケットフィルタリング機能も存在します。
このように、“戻り”の通信を自動で許可する動作を「ステートフル」といい、“戻り”の通信を自動で許可しない動作を「ステートレス」といいます。一般に、ネットワーク機器で利用されるACLではハードウェアで処理されることからステートレスで動作するものが多くなっています。アプリケーションレイヤーまで認識するファイアウォールは通常ステートフルで動作します。
Copyright © ITmedia, Inc. All Rights Reserved.