
私は Solaris 10 ボックスを使用していますが、Linux ディストリビューションと比較すると、インストールされているツールとコマンドが限られています。さらに、grep や netstat などの使用できるツールには、同じオプションやフラグがありません。
調査したいポートで実行されているサービスがいくつかあります。たとえば、22 番以外のポートで実行されている SSH サーバーです。変更 (弱い暗号を無効にするなど) を行うために、構成ファイルを見つけられるようにしたいのですが、ファイル システム全体を検索しても、ポート 22 のデフォルトsshd.conf
の SSH サーバーの構成しか見つかりません。
このユニークなサービスの設定ファイルを見つける方法について、ヒントを教えていただけませんか。すでに「find / -name "sshd.conf"」やその他の可能なバリエーションを試しましたが、成功しませんでした。
次に試したいアプローチは、netstat
やなどのツールを使用することですsvcs
。 および を使用してサービスが実行されていることが分かります。nmap -p 5555 [ip]
また、を使用してssh [ip] -p 5555
サービスが listen していることも確認できますnetstat -an | grep "5555"
。 ただし、 にリストされているサービスと一致させることはできません。 のサービスと一致させてを使用したsvcs -a
場合(詳細については)、パラメータが読み取られる構成ファイルは表示されず、ログ ファイルのみが表示されます。svcs -a
svcs -x [FMRI]
つまり、TL;DR: FMRI がわかっている場合、またはサービスを FMRI にマップできない場合、サービスの構成ファイルを見つけるにはどうすればよいでしょうか。おそらくもっと簡単に言えば、netstat の出力を使用して、デバイスでリッスンしている実際のサービスを特定するにはどうすればよいでしょうか。これは、セキュリティ監査などで頻繁に尋ねられると思います。
答え1
この場合はman sshd
それは次のことを伝えます:
-f configuration_file
Specifies the name of the configuration file. The
default is /etc/ssh/sshd_config. sshd refuses to start
if there is no configuration file.
見てみると/etc/ssh/sshd_config
構成が分かります。
他にどのようなオプションが利用可能か確認することもできますman sshd_config
。
一般的に、サービスの XML ソースは にあります/var/svc/manifest
。そのssh
うちの 1 つは です/var/svc/manifest/network/ssh.xml
。現在の設定は で表示できますsvccfg export ssh
。