ファイアウォールの構成を変更するときは、将来の問題を回避するために潜在的なセキュリティリスクを考慮することが重要です。セキュリティは複雑なトピックであり、ケースごとに異なる可能性がありますが、この記事では、境界ファイアウォールルールを構成するためのベストプラクティスについて説明します。
デフォルトですべてのトラフィックをブロックし、既知のサービスへの特定のトラフィックのみを明示的に有効にします。この戦略により、トラフィックを適切に制御し、サービスの設定ミスによる違反の可能性を減らすことができます。
この動作を実現するには、アクセス制御リストの最後のルールを設定して、すべてのトラフィックを拒否します。プラットフォームに応じて、明示的または暗黙的にこれを行うことができます。
ネットワークアクセスを定義するために使用するルールは、可能な限り具体的にする必要があります。この戦略は、最小特権の原則です。 、およびネットワークトラフィックの制御を強制します。ルールでできるだけ多くのパラメータを指定します。
レイヤー4ファイアウォールは、アクセスルールに次のパラメーターを使用します。
- 送信元IPアドレス(またはIPアドレスの範囲)
- 宛先IPアドレス(またはIPアドレスの範囲)
- 宛先ポート(またはポートの範囲)
- トラフィックのプロトコル(TCP、ICMP、またはUDP)
ネットワークアクセスの定義に使用されるルールで、できるだけ多くのパラメーターを指定します。 any
の限られたシナリオがあります これらのフィールドのいずれかで使用されます。
インターネット上のすべての人がサービスにアクセスできるようにする必要がある場合は、任意 送信元IPアドレスが正しいオプションです。それ以外の場合は、送信元アドレスを指定する必要があります。
すべての送信元アドレスがHTTPサーバーにアクセスできるようにすることは許容されます。すべての送信元アドレスがサーバー管理ポートまたはデータベースポートにアクセスできるようにすることはできません。以下は、一般的なサーバー管理ポートとデータベースポートのリストです。
サーバー管理ポート:
- Linux®SSH:ポート22
- Windows®RDP:ポート3389
データベースポート:
- SQL®Server:ポート1433
- Oracle®:ポート1521
- MySQL®:ポート2206
これらのポートに到達できるのは誰かについて具体的に説明してください。ネットワーク管理用の送信元IPアドレスを定義することが実際的でない場合は、リモートアクセスVPNのような別のソリューションを、必要なアクセスを許可してネットワークを保護するための補償コントロールとして検討することができます。
宛先IPアドレスは、アクセスを有効にするサービスを実行するサーバーのIPアドレスです。アクセス可能なサーバーを常に指定してください。 any
の宛先値を構成する デフォルトでアクセス可能な未使用のプロトコルのセキュリティ違反またはサーバー侵害につながる可能性があります。ただし、宛先値がany
の宛先IP ファイアウォールに割り当てられているIPが1つしかない場合に使用できます。値any
publicとservicenet
の両方が必要な場合にも使用できます 構成へのアクセス。
宛先ポートは、アクセス可能なサービスに対応しています。このフィールドのこの値は、any
であってはなりません。 。サーバー上で実行され、アクセスする必要があるサービスが定義されており、このポートのみを許可する必要があります。すべてのポートを許可すると、辞書攻撃だけでなく、サーバーに構成されているポートとプロトコルの悪用も許可されるため、サーバーのセキュリティに影響します。
広すぎるポートの使用は避けてください。動的ポートが使用されている場合、ファイアウォールは、それらを安全に通過させるための検査ポリシーを提供することがあります。
このセクションでは、ファイアウォールルールの危険な例について説明しますが、ファイアウォールルールを構成する際に従うべきいくつかの代替の適切なルールも示します。
permit ip any any
-任意のポートの任意の送信元から任意の宛先へのすべてのトラフィックを許可します。これは、最悪のタイプのアクセス制御ルールです。これは、デフォルトでトラフィックを拒否するというセキュリティの概念と最小特権の原則の両方と矛盾します。宛先ポートは常に指定する必要があり、可能な場合は宛先IPアドレスを指定する必要があります。アプリがWebサーバーなどのインターネットからクライアントを受信するように構築されていない限り、送信元IPアドレスを指定する必要があります。適切なルールは、permit tcp any WEB-SERVER1 http
です。 。
permit ip any any WEB-SERVER1
-任意のソースからWebサーバーへのすべてのトラフィックを許可します。特定のポートのみを許可する必要があります。 Webサーバーの場合、ポート80(HTTP)および443(HTTPS)。そうしないと、サーバーの管理が脆弱になります。適切なルールは、permit ip any WEB-SERVER1 http
です。 。
permit tcp any WEB-SERVER1 3389
-任意のソースからWebサーバーへのRDPアクセスを許可します。すべての人が管理ポートにアクセスできるようにすることは危険な方法です。サーバー管理にアクセスできるユーザーを具体的に指定します。適切なルールは、permit tcp 12.34.56.78 3389 WEB-SERVER1
です。 (ここで、12.34.56.78
はインターネット上の管理者のコンピュータのIPアドレスです。
permit tcp any DB-SERVER1 3306
-任意のソースからデータベースへのMySQLアクセスを許可します。データベースサーバーをインターネット全体に公開しないでください。パブリックインターネット全体でデータベースクエリを実行する必要がある場合は、正確な送信元IPアドレスを指定してください。適切なルールは、permit tcp 23.45.67.89 DB-SERVER1 3306
です。 (ここで、23.45.67.89
データベースへのアクセスが必要なインターネット上のホストのIPアドレスです)。ベストプラクティスは、パブリックインターネット全体でクリアテキストではなく、VPNを介したデータベーストラフィックを許可することです。
これらのベストプラクティスの実装についてサポートが必要な場合は、Rackspaceサポートチームにお問い合わせください。