web-dev-qa-db-ja.com

ファイアウォールやルーターを介して多くの「未使用」のポートを開くリスクはありますか

多くのインスタンスを開始および停止したいパブリックインターネットサービスをホストするために使用しているサーバーがあります。物理サーバーごとに最大50台までです。ソフトウェアのアーキテクチャは、各インスタンスが独自のポートを必要とすることを意味します(単一のApache/NGINXなどを使用できるHTTPとは異なり、ドメイン名などに基づいてリクエストを適切な場所にプロキシします)。

システムとネットワークファイアウォールで、50の非特権ポート(ソフトウェアのデフォルトポートを拡張すると仮定すると、UDPとTCPポート35000から35050)を永続的に開く)を作成するセキュリティリスクはありますか、そのポートで現在実行中のインスタンスがない場合でも、ORポートを動的に開いたり閉じたりするための追加の努力をする必要がありますか?

ソフトウェアがデフォルトで動的ポート範囲にあるように見えるか、一般に非特権ポート(少なくとも、小さいポート番号がrootを必要とするLinuxサーバーの場合)に問題があるように見えますか?

2
Fire Lancer

ネットワークスタックでバッファオーバーフローが検出されない限り、これは問題にはなりません。その場合、開いているポートがあるとねじ込みます。ただし、ファイアウォールの主な目的は、外部ホストがローカルホスト(ホストファイアウォールの場合)または内部ネットワーク(ネットワークファイアウォールの場合)にのみアクセスできるサービスに接続できないようにすることです。あなたの特定のケースはホストファイアウォールのケースであり、したがって、スキャンを実行した場合にプログラムがそれらのポートで時々実行されると誰かが信じる場合を除いて、ポートを開いたままにするマシンに影響はありません(これは本当ですが、あなたのケースでは些細な情報)。

したがって、いや、ポートでサービスが実行されていることを誰かが推測し、サービスがいつ実行されているのかを把握し、その上でエクスプロイトを開発しようとしているのではない限り、ポートを閉じる必要はありません。彼らが知らないソフトウェアの一部。

2
DeepS1X

建築の観点から。 udpまたはtcpのこのタイプのセキュリティを2つのカテゴリに視覚化する必要がある

  1. エンドポイント(サービスインスタンス)リスナー。サービスのインスタンスが実行されていない場合、接続することはできません。基本的に、エンドポイントは存在しません。 -
  2. in-transit(ルーティング、ファイアウォールなど)。一方の側(この場合はパブリック側)から接続が試行され、サービスがエンドポイントでアクティブでない場合、パケットはドロップされます応答するサービスがないので。

  3. 次に、相互認証、SSL/TLS、認証など、エンドポイントを保護します(1)(複数の方法があります)。

  4. 次に、トランジットポイントを保護します。たとえば、DOS(サービス拒否)の場合、通常はサービスインスタンスではなくゲートで停止します。侵入防止と検出の大部分はこのレイヤーで行われます。

あなたのサービスが非常に人気があれば、あなたは準備されます。


特定の解決策で質問に答えるには:

  1. サービスに必要なインスタンスの最大数を決定します(質問から明らかに50)。
  2. ホストのエフェメラルポート(ポートプール)を構成します。これは* NIXとWindowsの両方で可能です。
  3. ネットワークファイアウォールで(これが該当する場合)、(任意のソース--->ホスト(複数可)IP /一時ポートへのアクセスを許可するファイアウォールルールを作成します。
  4. ローカルファイアウォール(ホストでFW runnin)で、外部ファイアウォールIP --->ホストIP /ポート範囲からのパケットを許可するファイアウォールルールも構成します。

慣例により、一時ポートは49151からIPV4-IPV6の上限までの間です。

1
Hugo R

DeepS1Xは、誰かがこれらの開いているポートを悪用するための対象を絞った努力を必要とすることは正しいですが、HRLには正しい答えがあると思います。特に他のサービスの量が常に開いているポート/サービスのネットをスクラブしている状態で、サービスのポートを単に開いてサーバー上でハングアウトさせることはスケーラブルではありません。

HRLの投稿からポイント1と2を追加するには-使用しているLinuxのフレーバーについては言及していませんが、Debian UFW Appのアローアンスなどを活用して、各アプリの野生へのアクセスを管理することを検討してください。これは、必要に応じてアプリを起動および停止でき、起動しているだけでポートにアクセスできることを意味します。

UFWの設定については buntu help サイトで確認できます。独自のアプリケーション用にこれを設定する方法の詳細については、この post を参照してください。

1
llorrac