web-dev-qa-db-ja.com

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

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

15
Matthew Moisen

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

ご存じのように、3列目にはSSHログインの場合のリモートIPアドレスが表示されます。

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

15
Patrick

これは、ディストリビューションまたは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バージョンとほぼ同等の出力が得られます。

14
Michael Homer

コマンド

who /var/log/wtmp

whoが示すような情報を表示する必要がありますが、時間を遡ります。

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

7
pqnet

あなたが提供した簡単な説明から、ログ監視システムを設定した方が良いようです。これは、ログインの監視、アラートの作成、数日のデータの比較、およびすべてのコースグラフの作成に役立ちます。

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

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

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

0
beginer