サーバーが実際に何をしているのかをどのように知ることができますか?[閉まっている]


42

私は3つのLinuxボックスを手渡されました。1つは前面にApacheがあり、もう2つは私が知る限り、ひどいことはしていません。すべてRedhatで実行されています。

質問は簡単です。サーバーが実際に何をしているのか、どうすればわかりますか?ゼロドキュメントは、作成者から入手できます。



5
くそー!確かに誰かが自分の目的を知っていますか?だから彼らはあなたに彼らをサポートしてほしいが、彼らが何をするのか知らないのか!
デジタルライトクラフト

11
それらをオフにします。誰かが、すぐに、何が機能していないかを知らせてくれます。
jscott

58
オフにしないでください。悲鳴テストを行う場合は、イーサネットケーブルを取り外します。2年間の稼働時間のあるボックスが一度もリブートに失敗したことがない場合は、ある時点でそれを行うことになります。これは、その欲求不満をミックスに追加するときではありません。
アーロンコプリー

7
他のみんなが言ったことだけでなく、彼らに対してnmapを実行します。
キャサリンビリヤード

回答:


42

イーサネットケーブルを抜き、誰が動揺するかを確認します。

しかし、真剣に、このようなミステリーマシンは、チームに多くの精神的なオーバーヘッドをもたらし、多くの場合、ビジネス上の価値をまったく提供しません。誰もそれが何をするのかわからない場合は、上司に相談してください。


43
オフにしないでください。悲鳴テストを行う場合は、イーサネットケーブルを取り外します。2年間の稼働時間のあるボックスが一度もリブートに失敗したことがない場合は、ある時点でそれを行うことになります。これは、その欲求不満をミックスに追加するときではありません。(読む必要があるため、ここにコピーします。)
アーロンコプリー

3
あなたは100%正しいです、私はそれを反映するために投稿を編集しました。私は少しファセットになっていましたが、災害を促進することなく、まだファセットにできます。
ジョシュランバット

8
ネットワークが切断される前に、実行中のプロセスのリストを保存し、各サーバーでソケットを開くことをお勧めします-万が一何も考えずに何ヶ月もの間確立されたままになっているサーバー間のTCP接続に依存している場合に備えて最初のケースで開くために必要なステップを自動化しました。(たとえば、誰かが一時的にsshポート転送を必要とし、それを忘れた場合。)
kasperd

4
これをしないでください。どのようなばかげたアドバイス。これを行う愚かな軽率なITスタッフは、私に多大な時間と仕事を費やしました。最初に質問してください。誰に尋ねるかわからない場合は、全員に質問してください。
モニカとの軽さのレース

4
誰かが悲鳴を上げるのに十分な時間を残してください-サーバールームのラックに座っているほこりの多いまたはデスクトップマシンでこれを行ったことがあります-誰もそれが何であるかを知りませんでした。 。そのサーバーがないと、給与計算システムの一部であることが判明したため、経理は毎月の給与計算を生成できませんでした。誰も注意を払わずに少なくとも3年間は無人で動作していたので、「スクリームテスト」は成功しました。そうしなければ、サーバーは最終的には単独で死んでしまいます。vmwareクラスターにp2v'ingしました。
ジョニー

30

これは、Serverfault形式についてはかなり広範な質問ですが、ここからは良いスタートです。

  • 実行中のプロセスと、システムの起動時に実行するようにスケジュールされているプロセスを確認します。
    • それぞれの実行構成を確認します。
    • 定義済みのデータディレクトリを調べます。(誰かがMySQLをインストールしてオンにしたかもしれませんが、データベースはありません。)
  • スケジュールされたタスクを確認します。
  • ログを確認して確認してください。
    • 誰が最近ログインした(そして彼らに尋ねる)
    • 何が実行されているのかを知るために。

バージョンについては言及しなかったため、詳細は省略しました。


8
システムの起動時に開始するように設定されているサービスよりも重要なものがあります。現在どのサービスが実行されていますか?サービスを開始し、起動時に開始するように構成するのを忘れることは、難しい間違いではありません。関連する注意事項として、マウントポイント、ルーティングテーブル、iptablesルールなど、他のシステム状態を確認することをお勧めします。これらはすべて、ブート中に使用される構成ファイルを更新することを忘れずに、システムの実行中に簡単に変更できるものです。
カスペルド

さらに、ポートスキャナーを使用して開いているポートを確認し、通常のツールを使用して接続を試みます。(簡単な)例として、ポート443が開いている場合、Webブラウザーを使用して接続することができます。このように見捨てられたサーバーを頻繁に探索する必要がありましたが、/ etcなどの構成ファイルをすばやく参照するためのお気に入りのツールの1つは、「lynx」または「links」を使用することです。これらは文字ベースのWebブラウザーであり、ファイルブラウザーとしても十分に機能し、便利なカーソルキーナビゲーションを備えています。
aseq

1
@kasperd実行中のサービスと永続的なサービスのフェアプレイ。しかし、ファイアウォールルール、マウントポイントなどについて考えました。これらは、既存の箇条書きのいずれかに既に関連付けられている補助的なコンポーネントのように思えました。YMMV。
アーロンコプリー

追加してください-アクティブなネットワーク接続を確認し、サービスの名前とポート番号を書き留めてください。これを行う最適な方法は、オペレーティングシステムによって異なります。EG純統計 また、コンピューター上に何らかのトレースを配置して、1日を通して何が行われるかを確認してください。また、サーバー上で実行されているものが悪意のある可能性がある場合のシナリオについての考慮事項を追加することもできます。
IceMage

19

システムで何が実行されているかを確認するためにできることがいくつかあります。

サーバーがリッスンしているポートを確認して、そこに何があるのか​​を知ることができます。使用するのに適したコマンドは次のとおりです。

 [root@server ~]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             Stat    e       PID/Program name
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LIST    EN      1880/smbd
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LIST    EN      1911/nrpe
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LIST    EN      1759/sshd

上記の出力例からわかるように、プロトコルバージョン(tcpまたはudp)、リッスンされているアドレス、開いているポート、リッスンしているプログラムが表示されます。

上記の切り捨てられた例(サーバーマシン)では、TCPポート139、5666、および22がリッスンしていることがわかります。これらはそれぞれsamba、nrpe(Nagiosエージェント)、およびsshに解決され、そのポートでリッスンしているプログラムを確認すると確認されます。

さらに、起動時に起動するように設定されているデーモンのリストを確認できます。これを行うには、次を実行します。 chkconfig --list | grep "3:on"

例:

[root@server ~]# chkconfig --list | grep "3:on"
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
x2gocleansessions       0:off   1:off   2:on    3:on    4:on    5:on    6:off
.
.
.

または :

service --status-all


5
私が見つけnetstat -plunt覚えやすいです。
15年

2
また、tcpdump誰が実際に各サービスを使用しているかを判断するのに役立つ場合があります。
15年

18

別の方法では、/etcディレクトリを確認し、変更日を確認します。新規インストール後、このディレクトリ内のすべてのファイルはほぼ同じ日付/時刻になるはずです。また、インストールでは通常、ユーザーが通常使用しない多くの項目がインストールされるため、変更日が後のファイルのみがサーバーの実際の目的を反映します。これがext4である場合、ディレクトリの誕生日も抽出できるはずなので、タスクは非常に簡単です。

さらに別の方法では、.bash_historyファイルをチェックして、管理者が何をしていたかを確認します。このファイルは豊富な知識を提供できます。


7

ファイアウォールルールを確認します。少し運が良ければ、デフォルト拒否に設定されています。つまり、許可された各サービスには明示的なルールがあります。

これはnetstat、夜間バックアップなどのために開いているポートも表示できるため、より優れています。


6

まだ見たことがありませんが、最近修正されたファイルを確認してください。ログ、データベースファイル、その他の出力ファイルなどがまだ書き込まれている可能性があり、手がかりが得られる場合があります。

find . -mtime -3 

これにより、現在のディレクトリ内で、過去3日間に変更された変更されたファイルが検出されます。調査できる出力が得られるまで、数値3を経験に基づいた推測値に増やします。

ボックスはWebサービス呼び出しを処理するだけで、何も書き込まずに一部のデータを返すため、だまされないわけではありません。しかし、上記の素晴らしいミックスに加えて、いくつかの手がかりが得られるかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.