5


3

世界には非常に多くの厳格なファイアウォールがあることを考えると、最大限のアクセス性を保証するためにポート80でサーバーソフトウェアを実行してはいけない理由はありますか? 最も一般的なファイアウォールの例外は、ポート80でアウトバウンド接続を許可することです。 どんな種類のパケット検査でも私のHTTP以外のトラフィックはブロックされることを理解していますが、それが事実である場合は、ファイアウォールに他の開いている発信ポートがないことは間違いありません。

サーバーがすでにポート80にWebサーバーを持っている場合は、ポート80で待機しているある種の仮想ホストを使用することができます(つまり、 同じマシン上でmyDomain.com:80 and myApp.myDomain.com:80)

5 Answer


7


これを行う必要がある場合は、ネットワーク通信コードをSOAPインターフェースまたはHTTPHandlerでラップしないでください。

その後、あなたのパケットはHTTPに準拠するでしょう、あなたはファイアウォールを通過するでしょう、そして皆は幸せですか?

ポート80を多目的に使用することで発生するすべてのインストールおよび操作の問題を解決するよりもはるかに簡単です。


2


2つの理由が考えられます。1つは、会社のファイアウォールを回避するためにセキュリティポリシーに違反していること、もう1つはhttp://www.iana.org/assignmentsを使用していることです。登録されていないプロトコルの/ port-numbers [reserved port]は、あなたのシステムと対話しようとしているクライアント(例えばGoogle)に重大な混乱を招き、そうした場合にはあなたのアプリケーションにとって重大な頭痛の種となります。

編集 Unixシステムでは、小さい番号のポートを実行するには特権アカウントが必要です。 あなたのアプリケーションがそうでなければ必要とされるより高い特権を必要とするかもしれないので、これはその環境でそれをするのを避けるもう一つの理由でしょう。


1


あなたの2番目の質問に答えるために、「ポート80で待機しているある種の仮想ホストを使うことは可能ですか?」:

はい、あり、そしてそれは仮想ホスティングと呼ばれ、ほとんどの最近のウェブサーバによって処理されます。 しかし、その場合、アプリケーションからのすべての要求は、ホストが指定されているHTTPプロトコル1.1から開始する必要があります。 あなたのアプリケーションはおそらくCGIアプリケーションでなければなりません。 しかし、それはおそらくあなたが望むものではありません。

もう1つの方法は、アプリケーションにポート80を制御させ、すべてのhttpクエリをWebサーバーにリダイレクトさせることです。 めちゃくちゃになり、アプリケーションが停止すると、Webサーバーも停止します。

解決策はあなたのサーバーに複数のIPアドレスを持つことです(あなたはNICに複数のIPアドレスをバインドすることができます)。 その後、アドレス1のmydomain.com:80をWebサーバーに、アドレス2のmyapp.mydomain.comをアプリケーションにバインドできますが、それらはまだ同じサーバー上にあります。

そして、あなたの最初の質問に答えるために: "私はポート80でサーバーソフトウェアを実行してはいけない理由がある":はい、それは悪い習慣です。 自動スキャンから多くのhttpクエリを取得することを期待してください。 あなたは正しいhttpヘッダでそれらに答えるか、それらを無視するかを選択できます。


1


ポート80でリッスンしている他のドメインに対して仮想ホスティングを行うことはできません。 1つのプロセスだけがポートをlistenできます。 仮想ホスティングは、HTTPヘッダーに基づいてアプリケーション層で行われます。

あなたが遭遇するかもしれない他の問題はプロキシサーバーです。 ユーザーが設定する種類ではなく、企業やISPによる自動プロキシ。 これらはあなたのアプリケーションのプロトコルを理解することはなく、おそらく失敗するでしょう。

最後に、あなたのアプリケーションがUnix / Linux版で実行されている場合、ポート80はroot権限を必要とします。


0


私は、sshサーバーにポート80を自宅で待機させ、* sshトンネリングを使用して他のサーバーやサービスへのアクセスを提供することによって、Draconianファイアウォールを回避したことを認めます。 私は、ファイアウォールを管理している人々の恵みでこれを行ったことを付け加えなければなりません。

私はこの戦術*が意図した目的のためにポート80を役に立たなくすることを付け加えて急いでいます*。 ドメイン内にマシンが1台しかない場合は問題になります。 しかし、80番ポートからSSHを提供することに専念できるマシンがあれば、インストールや操作の問題はありません。 私はただ /etc/init.d/apache stop`を実行してからポート80を監視するために sshd`を実行しました。 それから私がこれをする必要がある数か月間行ってよかった。

私のパーソナルワークステーションのポート80をノックするようになった自動スキャナはハングする可能性があります:-)