2


2

顧客のファイアウォールの問題のデバッグ

カスタマーサイトでアプリケーションのファイアウォールの問題をどのようにデバッグしますか? 現在、ApacheとTomcat(アプリケーションの一部)が、ファイアウォールがマシンのポートを受け入れたりバインドしたりする試みをブロックしているように聞こえるエラーをスローするという問題があります。

私たちにとっての問題は、ファイアウォールが企業レベルで管理されているため、ファイアウォールが何をしているのかが見えないことです。 ブロックされているのか、それともアプリケーション固有の問題なのかを判断する方法さえあります。 これはJavaアプリケーションです。

5 Answer


2


ここで、スーパーユーザーまたはサーバーフォールトに属する質問をすることで悲しみを覚えるでしょう。

簡単な答え:別のサーバーと通信しようとしているサーバーにログインし、telnetを使用してリクエストをシミュレートします。

「telnet OtherServer PortNumber」

「接続が拒否されました」というメッセージが表示された場合、他のサービスが存在しないか、ファイアウォールによって見えなくなっています。 何も起こらない場合は、おそらくファイアウォールに到達しています。 接続が確立された場合(その後、何か面白いことが起こっても気にしないでください)、あなたは通り抜けています。

'' '' '

*編集:*はい、これは非常に単純化されています。 巧妙にサディスティックな、または非常に無能なファイアウォールのセットアップにより、リクエストをサーバーに送り込みながら、そのリクエストに応答できなくなる可能性があります。 しかし、私はそのようなシナリオに遭遇したことがありません。 もっと一般的なのは、単純なgo / no goケースです。

より質の高いアドバイスが必要な場合は、サーバーからエラーメッセージやスタックトレースをコピーしてください。


2


そのサーバーで実行されているApacheまたはTomcatからApache / Tomcatサーバーのポートへのバインドに問題がある場合は、他の2つの問題のいずれかである可能性が高くなります。

  • ポートはすでに別のアプリケーションによってバインドされています。 いくつかのツールI 確認に使用する

  • `lsof -i:port`および

  • netstat -ant | grep port

  • ポート番号は1025未満で、Apache / Tomcatを実行するプロセスは ルートではありません。


1


traceroute(Windowsのtracert)は、物事の行き先を確認するのに適しています。

UPnPツールは、ファイアウォールが近づいているのを見るのにも便利です。


0


ファイアウォールが「企業レベル」で管理されている場合、ホストベースのファイアウォールのようには聞こえません(ホストベースの「実行中のコンピューター上」)。 ホストベースのファイアウォールではない場合、バインドの試行をブロックする方法はなく、他の場所を見ることができます。

ホストベースの場合…​ まあそれは積極的なホストベースのファイアウォールです。 ポートにバインドする管理者またはルート権限を持っていない可能性が高くなります。

ポートにバインドできても通信できない場合は、標準のファイアウォールテストを開始する必要があります-「インターネットから静的なhtmlページにアクセスできますか? イントラネットから? ローカルホストから?」


0


これは私の経験ですが、HTTP(S)を介したファイアウォールの問題の兆候は、要求がしばらくハングし、その後接続タイムアウトの例外が発生してタイムアウトすることです。 ファイアウォールによっては、接続がすぐに拒否されることもあります。 これが、ファイアウォールの問題をデバッグするために頼らなければならなかったものです。 解決策は常にネットワーク管理者に行き(そのチームと良好な関係を築いている)、特定のIPアドレスを入れるよう依頼することです。