web-dev-qa-db-ja.com

SSHアクセスの試行をログに記録し、SSHユーザーがサーバーで何をしているかを追跡するにはどうすればよいですか?

数人のSSHユーザーが問題を引き起こしているため、私のサーバーでいくつかのセキュリティ問題が発生しました。

だから私はしたい:

  • ユーザーのログインとログアウトを追跡する
  • 悪意のあるアクティビティを発見するために、これらのSSHユーザーのアクティビティを追跡します
  • ユーザーがログを削除できないようにする
6
RadiantHex

Sshデーモンsshdには、この多くが組み込まれ、有効になっています。これが私のマシンの/var/log/secureからのいくつかのサンプル行です(名前とIPアドレスが変更されました):

Sep  7 08:34:25 myhost sshd[6127]: Failed password for illegal user root from 62.75.999.999 port 52663 ssh2
Sep  7 08:34:26 myhost sshd[7253]: User root not allowed because listed in DenyUsers
Sep  7 08:34:28 myhost sshd[7253]: Failed password for illegal user root from 62.75.999.999 port 53393 ssh2
Sep  7 11:55:18 myhost sshd[11672]: Accepted password for gooduser from 98.999.26.41 port 43104 ssh2
Sep  7 23:01:28 myhost sshd[22438]: Did not receive identification string from 999.56.32.999
Sep  8 06:31:30 myhost sshd[21814]: Accepted password for gooduser from 98.999.26.41 port 5978 ssh2

この例は、誰かがこのマシンにrootとしてsshしようとする試みをいくつか示しています。rootが禁止されているため、両方とも拒否されました。また、「gooduser」という名前のユーザーによるログインの成功も示しています。

whatが表示され、どのファイルで表示されるかを微調整するには、 sshd_config マニュアルページ-特にLogLevelとSyslogFacilityのオプション。

11
Doug Harris

Doug Harrisが回答した内容をフォローアップし(そしてあなたの質問の一部にのみ対処します-これは私の仕事のやり方のようです)、LogwatchパッケージはSSHdログを含む多くのサーバーログの要約を毎日メールで送信します。 SSH経由で正常にログインしたユーザー、回数、場所、ログインに失敗したIPの種類、それらが使用した資格情報の概要が表示されます。パスワード認証を許可しているホストに対して誰かがブルートフォースSSH攻撃を試みると、時間がかかります(代わりに、RSAキーを優先して、それを回避しようとしますが、顧客は常に正しく、公開キー認証を常に理解しているわけではありませんとにかく。)

UbuntuにLogwatch(基本的にはさまざまなログ形式をダイジェストするための単なるPerlフィルターのコレクション)をインストールするには、apt-get install logwatchを使用して/etc/cron.daily/00logwatchを編集し、--output mail--mailto [email protected]に置き換えます。あなたは1日1つを取得します。 Logwatchが実際に読み取るログを調整するために、フラグをさらに追加できます。

4
pjmorse

ユーザーを追跡する非常に完全な方法の1つは、 auditd を使用することです。これは、監査する必要があるものをすべて追跡するカーネルレベルの方法です。 Ubuntu Serverにバンドルされている必要があり、まだ実行されていない場合は、Sudo service auditd startで起動できる必要があります。

/ usr/share/doc/auditd /またはそれに類似したものの下に、その構成例がたくさんあります。もちろん、Googleでauditdチュートリアルを行う場合は、多くの、多くのチュートリアルで報われました。

Auditdによって生成されたレポートは、/ var/log/audit /ディレクトリに保存されます。また、aureportausearchなどのツールを使用して、より人間が読みやすい形式に解析することもできます。これらもUbuntuサーバーにバンドルされているはずです。 。

3

特にディストリビューショングループタイプの人々には、sshアカウントを提供しません。

ここにいくつかのことがあります:

From 履歴ファイルをbashで統合できますか?

Insert the command shopt -s histappend in your .bashrc. 
This will append to the history file instead of overwriting it.
Also in your .bashrc, insert

Prompt_COMMAND="$Prompt_COMMAND;history -a; history -n"

and the history file will be re-written and re-read each time
bash shows the Prompt.
2
tovare