web-dev-qa-db-ja.com

Linuxサーバーが危険にさらされていませんか?どうすればわかりますか?

ルーターの背後で(X)Ubuntu 10.04.2LTSを実行しています。

そのマシンのrootアカウントから、次の件名のメールを受け取りました。

*** SECURITY information for <hostname>

メッセージ本文には次の警告が含まれていました。

<hostname> : jun 1 22:15:17 : <username> : 3 incorrect password attempts ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/sh /tmp/tmpPHBmTO

/tmp/tmpPHBmTOファイルは表示されませんが、タイムスタンプが2011-06-01 22:14である/tmp/tmpwoSrWWという名前のファイルがあるため、上記の日付/時刻の直前です。これはバイナリファイルであり、内容は私にはなじみがありません。また、そのファイルには-rw-------権限しかありません。

私が読んだとき、これは誰か(または何か)が私のマシンにアクセスした(持っていた)ことを意味します。どうやら(まだ)rootアクセスではありませんが、それでも、少なくとも私の/tmpディレクトリにファイルを書き込むには十分です。

誰かが私がより多くの情報を探すことができる場所について何か指針を持っていますか:誰がこれを行うことができたのか、そして彼らはどのようにこれを行うことができたのですか?

私のルーターは、SSH、HTTP(nginxが他のいくつかのサービスの1つのリバースプロキシとして機能)、SMTP、POP(postfix)、IMAP(dovecot)、およびポート51413(送信)の転送トラフィックへのアクセスを許可するように構成されています。

12
Martijn

最初の質問が出されてから2年が経ちましたが、他の誰かが私のようにGoogleからここに来た場合:何も実行されていないサーバーでroot以外のアカウントで実行されているDropboxデーモンによって引き起こされる動作を見ましたXサーバー。削除される前に、なんとかファイルをコピーできました。何らかの理由で、デーモンはデータディレクトリのアクセス許可をリセットし(それを行うためにrootが必要でさえないことを気にしないでください)、いくつかのプロセスを強制終了したいと考えています。理由についてしか推測できません。おそらく、何らかの自動更新を実行して、それ自体をリロードしようとしたか、そのようなものでした。

ファイル/ tmp/tmpe1AGcdには次のものが含まれています。

#!/bin/bash
Sudo -K
zenity --entry --title="Dropbox" --text="Dropbox needs your permission to save settings to your computer.

Type your Linux password to allow Dropbox to make changes." --entry-text "" --hide-text | Sudo -S /bin/sh /tmp/tmpAH5mxL
if [ "$?" != 0 ]; then
zenity --error --text="Sorry, wrong password"
exit 1
fi

マシンはヘッドレスで実行されており、バイナリの「zenity」もインストールされていないため、Sudoは空のパスワードの試行を受け取り、/ tmp/tmpAH5mxLを実行しようとすると失敗します。

#!/bin/bash
chown -R 1000 "/home/<username>/.dropbox"
chmod -R u+rwX "/home/<username>/.dropbox"
kill -s USR2 5364

結果として得られたメッセージは、あなたがしたものと同じでした。

<hostname> : Jul  4 16:32:24 : <username>: 3 incorrect password attempts ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/sh /tmp/tmpAH5mxL
3
Jens Kager

SSHをインターネットに開いている場合は、スクリプトがそのパスワードを解読しようとするハッキングの試みが表示されます。

考えられる緩和手順:

  • SSH経由のrootログインを許可しない(必要に応じてログイン後にsu)
  • 非常に強力なパスワードを持っている(パスフレーズを考えてください-10文字以上)
  • SSHにキー認証を使用し、パスワード認証をオフにします
  • Fail2banをインストールして、n回のログイン試行後のログイン試行をブロックします
  • Sshをデフォルトポートから移動します(@voithosが推奨)

注:マシンがすでに侵害されている場合、上記のいずれも役に立ちません。

9
uSlackr

この回答は、@ uSlakrの投稿に対するコメントにも言及しています。

お使いのコンピュータは少なくとも部分的に危険にさらされています。ユーザー名を使用して/ tmpに書き込むことができるということは、ユーザー名で作業できることを示しています。あなたのユーザー名で書くことができる=あなたが現在していることをすることができる。

ユーザー名で実行されるサービスがある場合は、特定のサービスが侵害されている可能性があります。 (1)ユーザー名で実行されるサービスがない場合、アカウントは完全に侵害されています(つまり、インタラクティブなシェルアクセスを使用しています)。しかし、これは起こりそうにありません。(1)を参照してください。

最善の策は、(1)検査のために現在のシステムを仮想マシンにバックアップする+古いバックアップから復元する(そのようなファイルを検査する)+ネットワークアクセスを停止する(2)すべてのアカウントのパスワードを変更する(3)すべてのサービスを無効にする( 4)すべてのサービスを最新バージョンに更新します(5)侵入検知プログラムをインストールします。

(1):ご覧のとおり、侵入者はルートアクセスを取得するために何らかのプログラムを実行しようとしています。インタラクティブなシェルアクセスを持っているようには聞こえません-インタラクティブなシェルを持っている場合は、パスワードのハッシュを取得し、何らかの方法でそれを解読する必要があります//インタラクティブなシェルに何らかのプログラムをインストールしてルートパスワードをキャプチャします// Sudoを使用します(これらは一般的に、パスワードを3回間違えるよりも良い考えです、まあ、それが愚かであるなら...気にしないでください)

1
bubu