リモートでリスナーを作成するにはどうすればいいですか

リモートでリスナーを作成するにはどうすればいいですか

この質問をよく読んでください。

私はサーバーにリモートでSSHログインしていますが、sudo権限を持っていないので、そのサーバーにリスナーを作成したいと考えています。これにより、着信接続はすべてコンソールに表示されるようになります。myname@anyip コンソール。

それでどうすればいいですか?

答え1

それで、サーバーの他のユーザーをスパイしたいのですか?

ルート権限がなければ、それを効果的に行うことはできません。最も近い方法は、netstat -anコマンドを繰り返し実行して出力を解析することです。システムがコンテナーまたはその他の分離テクノロジを使用している場合、コマンドはnetstatコンテナーの接続のみを表示する可能性があります。セキュリティが強化されたサーバーでは、netstatコマンドが管理者のみに制限されている場合もあります。

たとえば、ルート権限があれば、iptablesすべての新しい着信接続に対してログ メッセージを作成するログ ルールを設定できます。次に、syslog デーモンを設定して、それらのメッセージを特定のファイルに書き込むか、ネットワーク経由で他のシステムに送信することができます。ログ メッセージをネットワーク経由で送信する場合は、メッセージを送信するシステムでログ メッセージの受信者を設定する必要があります。

複数のユーザーがいる可能性のあるサーバーでは、多数の着信接続が同時に発生する可能性があります。これらの中には、実際には同じサーバー内のプロセス間の内部接続もあります。特に、Java プロセスは、同じサーバー内の異なるプロセス間の通信に多くの「ネットワーク」接続を使用する傾向があります。このような状況では、探している情報は、重要でない接続に関する膨大な量のメッセージの中に隠れている可能性があります。したがって、情報要求をより具体的にすると有利になる可能性があります。

よろしければお聞きしたいのですが、着信接続に関する情報が必要な理由は何ですか? 特定のニーズに合わせて、別の方法で情報を生成することは可能かもしれません。

たとえば、何らかの管理責任の引き継ぎのためにサーバーのネットワーク接続をマップする必要がある場合、まず と を使用してnetstat -na -A inetnetstat -na -A inet6着信接続を受信できるすべての TCP/UDP ポートを識別できます。TCP ポートの場合は、LISTEN状態にあるポートを探すだけです。UDP ポートの場合は、リストされているすべてのポートをチェックして、着信パケットに使用されているのか、発信パケットに使用されているのかを判断する必要があります。

システム上で実際にアクティブなサービスのリストを取得したら、関心のないものを除外できます。たとえば、サーバーをあるホスティング プロバイダーから別のホスティング プロバイダーに引き渡す場合、古いプロバイダーのサーバー監視インフラストラクチャによって使用されるポートはあまり関心の対象にはなりません。これは、古いプロバイダーが実際の引き渡し前に監視ユーティリティを削除し、新しいプロバイダーが独自の監視ツールをインストールする可能性が高いためです。

次のステップは、関心のあるサービスのログを確認することです。ログにアクセスでき、必要な情報が含まれている場合は、これが最善の選択肢です。必要なアクセス権がない場合は、すべての着信接続を監視する包括的なリクエストよりも、特定のサービスの古いログへの読み取りアクセスのリクエストの方が、サーバー管理者に好意的に受け止められる可能性があります。

スクリプトを少し作成すれば、着信接続を示すメッセージ ( grep) をログで検索し、接続元情報を取り出し ( sedawkまたは任意のツールを使用して)、重複を削除できます ( のsort後にuniq)。既存のログをこのように処理すると、数日間すべての着信接続を監視するよりも、まれにしか発生しない (たとえば、週に 1 回または月に 1 回) 接続を検出できる可能性が高くなります。

関連情報