SSHアクセス試行ログ

SSHアクセス試行ログ

私は携帯電話やラップトップなどのリモートシステムに接続し、コマンドを実行するためにopensshを使用してUbuntuサーバーを設定しました。問題は…おそらくこのような人が私だけではないでしょう。

サーバーへのすべてのログイン試行を知る方法はありますか?

答え1

Ubuntuサーバーでは、ファイルから誰がいつどこでログインしたかを確認できます/var/log/auth.log。そこには、次の項目があります。

May  1 16:17:02 owl CRON[9019]: pam_unix(cron:session): session closed for user root
May  1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May  1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)

答え2

Red Hatベースのディストリビューション(Fedora / CentOS / RHELなど)では、ファイルからログインしたユーザーを確認できます/var/log/secure

詳しくは、次のスーパーユーザーのQ&Aをご覧ください。SSHアクセスの試みを記録し、SSHユーザーが自分のサーバーで行った操作を追跡します。

答え3

Ubuntuのデフォルト設定は、SSHログインを/var/log/authファイルに書き込むことではありません。これがINFOロギングレベルです。

ログファイルにログイン試行を含めるには、/etc/ssh/sshd_configrootまたはsudoを使用してファイルを編集しますLogLevelINFOVERBOSE

その後、sshdデーモンを再起動します。

sudo service rsyslog restart

その後、SSHログイン試行がこの/var/log/auth.logファイルに書き込まれます。

答え4

私の提案は以下を使用することです。審査。これはLinuxカーネルの監査サブシステムを使用したロギング私の考えには真剣に考えるなら、そうするのが正しい方法だと思います。あなたが使用すべき{セキュリティ関連}質問の性質を考慮してポリアクリルアミドしかも。基本レベルには、次の項目のみがあります。審査そしてポリアクリルアミドインストール後、すべての成功と失敗のSSH試行は自動的にaudit.logファイルに書き込まれます。したがって、何も設定する必要はありません。審査そしてポリアクリルアミドインストールする。私はSLESを直接知っています。 RHELやその他のアイテムに賭けます。企業Linuxバージョンも同様に機能します。

http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html

生成された生の監査ログから審査次のようなものを使用してaureportフィルタリングできます。審査マニュアルページでテキストパーサーを作成するか、VIを使用してキーワードを検索します。

/var/log/audit/audit.logこれは、LinuxサーバーにSSHで接続するファイルの例外です。

node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
  • 上記では、私のサーバー名は次のとおりです。サメ
  • このような多くの行がaudit.logにあり、この行が次のものに基づいていることを望みます。exe="/usr/sbin/sshd"
  • SSHを介して接続したアカウントのuidはauid値です(この場合は23456)。
  • auidに関連付けられているユーザーアカウントの名前はacct = "ron"です。
  • ほとんどの場合、監査システムは接続しようとしているシステムのDNSホスト名を記録しますが、常にそのIPアドレスを持っています。
  • アイテムの日付は時代の時間なので、このように変換する必要があり、date --date @1480622612.317結果はThu Dec 1 15:03:32 EST 2016私のサーバーにSSHで接続するときです。

res=failedこれらのIPアドレスとホスト名を調べて、試行されたユーザー名でどのシステムが接続を試みているかを確認したい場合。明らかに成功したSSHは、システムで何が起こっているのかを理解しようとします。たとえば、同僚のボブは毎日同じ机に座っています。たとえば、午前2時にそこにいた場合は、ホスト名=bobscomputer、IPアドレス=192.168.5.5;昨日、Bobのユーザー名がIPアドレス10.10.5.6で成功したSSH試行を行ったことを確認したら、Bobと一緒に調査するのが最善です。他の人がハッキングすることができますか?しばらくして、suはBobのアカウントから監査ログを取得しようとしますか?

重複したコンテンツが表示された場合は、res=failed誰かがあなたのルートアカウントでSSHを試していることにauid=0なり、あなたがSSHDのIPアドレスを使用して変更した場合です。acct=root/etc/hosts.deny

関連情報