web-dev-qa-db-ja.com

Solaris10-リスニングポートに接続されているサービスを検索する

古いSolaris10ビルドを診断していますが、ポートスキャン中に、このサーバーの承認済みリストにない開いているポートが見つかりました。

netstatスイッチのさまざまな組み合わせを試しましたが、開いているポートの関連するサービス名またはPIDを示す正しい出力が得られないようです。

このビルドのnetstatの機能セットは、後のsolarisバージョンや他のUNIXオペレーティングシステムと比較して制限されているようです。 netstat -tulpnたとえばは機能しません。

また、セキュリティ上の制限により、lsofをインストールできません。

何か案は?

1
popcornuk

Solarisの場合、pfiles <pid>を使用して、特定のプロセスによって開かれているネットワークポートを確認できます。 /proc/*でforループを使用すると、実行中の各プロセスでpfilesを使用して、目的のポートを検索できます。欠点は、情報を取得するには、Solaris10ではrootである必要があるか、Solaris 11では特権(pfexec pfiles)になることができる必要があることです。

Solarisホストでrootになることができる場合は、次のようなものを使用できるはずです。

PORT=22; for PID in /proc/*; do pfiles ${PID} |grep "port: ${PORT}" && echo ${PID}; done

これは/proc/*を繰り返し、指定されたポートをフィルタリングし、一致するものが見つかった場合、プロセスID(/proc/####)が次の行に表示されます。

7
Lambert