古いSolaris10ビルドを診断していますが、ポートスキャン中に、このサーバーの承認済みリストにない開いているポートが見つかりました。
netstat
スイッチのさまざまな組み合わせを試しましたが、開いているポートの関連するサービス名またはPIDを示す正しい出力が得られないようです。
このビルドのnetstatの機能セットは、後のsolarisバージョンや他のUNIXオペレーティングシステムと比較して制限されているようです。 netstat -tulpn
たとえばは機能しません。
また、セキュリティ上の制限により、lsof
をインストールできません。
何か案は?
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/####
)が次の行に表示されます。