ルートにログインした人のIPアドレスを確認する方法は?


15

私が担当している特定のVMにrootアクセスできる人が何人かいます。ルートへのログインに使用されたIPアドレスを確認したいと思います。


1
ログにアクセスしてsudo less /root/.bash_history、以前に実行されたコマンドを確認できます。、私はまだこれを調査しようとしていますが、本当に良い質問のようです:)
ryekayo 14


6
rootとしての誰かがログインした場合、彼らは...彼らは、彼らがあまりにも必要なすべてのログを削除したいものは何でもほとんど行うことができます
コミンテルン

4
副次的な注意事項として、root直接ログインを禁止する必要があります。これは大きなセキュリティ問題です。
fedorqui 14

回答:


15

lastコマンドを使用してこの情報を取得できます

# last|head
phemmer  ssh          192.168.0.24     Wed Aug 20 21:08 - 21:08  (00:00)
phemmer  pts/13       192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:07 - 23:07  (00:00)
phemmer  pts/15       192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  ssh          192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  :0                            Wed Jul 30 20:06   still logged in
reboot   system boot  3.13.2-gentoo    Wed Jul 30 20:05   still running

間違いなく見ることができるように、SSHログインの場合、3番目の列にリモートIPアドレスが表示されます。

last/var/log/wtmpファイルを使用するため、この方法はG-Manの答えに似ています(ファイルへのパスを指定する必要がないため、少し簡単です)。


14

これは、ディストリビューションまたはOSに依存します。sshd各ログインをどこかに記録し、関連するIPアドレスを次のような形式でログインに含めます。

Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297

その部分は一貫していますが、そこに到達する方法はさまざまです。に基づくシステムではsystemd、次を使用しますjournalctl

journalctl /usr/bin/sshd

sshd実行可能ファイルからすべてのログメッセージをリストします。あなたは、rootのログインやその他の基準のためにそれをgrepする、として日付で、それを制限することができます--sinceし、--until(参照しますman journalctl)。

または、歴史的に、メッセージは(通常)のどこかにログインします/var/log。通常、sshdメッセージはに送られます/var/log/auth.logが、正確なファイルは大幅に異なる場合があります。どちらでも:

grep sshd /var/log/auth.log

journalctlバージョンとほぼ同等の出力が得られます。



7

rootとしてログインしたユーザーを監査する場合sshは、rootとして直接ログインして(rootパスワードまたは証明書を使用して/root/.ssh/authorized_keys)ユーザーが使用できるようにしないでください。代わりに、ユーザーごとに1つのアカウントを使用sudoし、それらを使用してルート権限を取得します。このようにして、適切なログで見つけることができます(ログファイルの位置は、使用しているディストリビューションによって異なりますuser john ran the command 'sudo rm -rf /'。メッセージを別のマシンに送信するようにログデーモンを構成することもできます)。まあ、多分あなたは簡単にログでその1つのコマンドを見つけることができません。


2
まず、これは質問に答えません。第二に、常にシステムを救う方法が必要です。LDAP認証を使用していて、LDAPサーバーが停止するとどうなりますか?どのようにボックスにログインしますか?
パトリック14

4
@Patrickまず、質問は「特定のVMへのルートアクセス権を持つ人が複数いる」から始まるため、正しいアプローチはIPを監査するのではなく、ユーザーを監査することを提案することは理にかなっています。第二に、あなたが提起する問題は関係ありません:LDAPが機能しない緊急事態で人がマシンにアクセスすることになっている場合、自分のローカルアカウントを持っている必要があります。sudoパワー。2人でアカウントを共有する本当の理由はありませんが、必要に応じて2人のアカウントを持つことができます。
pqnet 14

問題は、デザインを変更する方法ではなく、IPアドレスを取得する方法です。他のソリューションについては、有効期限のないパスワードを持つローカルアカウント(おそらく複数)を持っています。私はそれを改善とは考えません。
パトリック14

@Patrick何でも。あなたはあなた自身のサーバーを管理します、私は私の管理します。あなたはあなたの意見を述べました、人々はあなたのコメントを読んで決定します。
pqnet 14

1
何に対して@Patrickの改善?個別のユーザー用に個別のユーザーアカウントを持つことは、ほぼ確実に、複数のユーザーが1つのrootアカウントを共有することよりも改善されます。
jw013 14

0

あなたが提供した簡単な説明から、ログ監視システムを設定する方が良いと思われます。これは、ログインの監視、アラートの作成、数日間のデータの比較、そしてもちろんすべてのグラフを作成するのに役立ちます。

ただし、一時的に監視する必要がある場合は、lastコマンドを使用できます。

last | grep root | grep -v tty | awk '{print $3}'

これにより、rootユーザーがログインしたリストIPsまたはそのHostnames場所が表示されます。

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