私はそれに接続し、電話やラップトップのようなリモートシステムからコマンドを実行するためにopensshでubuntuサーバーを設定しました。問題は...おそらく私だけではないでしょう。
サーバーに対して行われたすべてのログイン試行を知る方法はありますか?
私はそれに接続し、電話やラップトップのようなリモートシステムからコマンドを実行するためにopensshでubuntuサーバーを設定しました。問題は...おそらく私だけではないでしょう。
サーバーに対して行われたすべてのログイン試行を知る方法はありますか?
回答:
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)
lastb
コマンドがありますか?
/var/log/auth.log
Fedora / CentOS / RHELなどのRed Hatベースのディストリビューションでは、ファイル内にログインしているユーザーを確認できます/var/log/secure
。
さらに詳しい情報が必要な場合は、SSHアクセス試行をログに記録し、SSHユーザーがサーバー上で実行した結果を追跡するにはどうすればよいですか。。
/var/log/secure
Ubuntuシステムには何もありません。
/var/log/auth
自分のシステムにいません。答えを投稿する前に、私がチェックし、なぜ私が持っていた場合にはそれがあります/var/log/secure
:)また、Ubuntuのサーバである私のシステムで
/var/log/secure
。
/var/log/secure
Fedora / CentOS / RHEL ismです。
私の推奨はauditdを使用することです。これは、Linuxカーネルの監査サブシステムを使用してログを記録することであり、私の意見では、深刻な場合に適切な方法です。また、質問{セキュリティ関連}の性質を考えると、PAMも使用する必要があります。auditdとPAMをインストールしただけのデフォルトレベルでは、成功したSSH試行と失敗したSSH試行がすべてaudit.logファイルに自動的に記録されます。したがって、実際には何も構成する必要はなく、監査とPAMをインストールするだけです。SLESのこの最初の手を知っています。そして、RHELとLinuxの他のエンタープライズバージョンは同様に動作するでしょう。
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
auditdによって生成された生の監査ログ内aureport
で、auditedのマニュアルページで説明されているようにフィルタリングするか、独自のテキストパーサーを記述するか、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)'
date --date @1480622612.317
結果Thu Dec 1 15:03:32 EST 2016
となるようなものを介して変換する必要があります。ときにres=failed
ユーザー名を試みたものを下に、システムが接続しようとしていたものを見るために、これらのIPアドレスとホスト名を調査したいときです。そして明らかに、成功したsshは、システムで何が起こっているのかを理解しようとします。たとえば、昨日の午前2時にIPアドレス10.10.5.6のユーザー名でsshの試みが成功した場合は、bobと話をして調査するのが最善の方法です。他の誰かによるハッキングの試みの可能性 また、間もなく、bobのアカウントから監査ログをルート化するsuの試みがありますか?
あなたが繰り返し見たときres=failed
とauid=0
し、acct=root
その後、それは、rootアカウントにあなたのボックスにsshをしようとしている誰かがいて、あなたが変更する場合である/etc/hosts.deny
SSHDのためにそのIPアドレスを持ちます。
私はこれが古いことを知っていますが、成功および失敗したssh接続/試行を監視するために何かを書きました。sshguardを使用している場合は禁止IPも同様です。ソフトウェアはPythonで書かれています。誰かがssh経由で正常に接続したとき、誰かがsshパスワードを間違えたとき、または多くの失敗した試行のために誰かが禁止されたときに、それはあなたにメールを送ります。これが将来この問題を検索して私のコードを見つける人を助けることを願っています!
https://github.com/amboxer21/SSHMonitor
Pythonスクリプトの場合、プロセスを監視するためのbashスクリプトを作成しました。ルートcronタスクを介して毎分実行されているかどうかを確認します。実行されていない場合は、別のプロセスを開始します。これは毎分ルート cronタスクによって呼び出されます。
SSHコマンドロギングで私が今まで出会った中で最高のことはrootshです。このツールを使用すると、管理者は広範囲のレベルのロギングですべてのセッションからすべてのコマンドを取得できます。
ubuntuおよびCentOS / RHELでROOTSHをインストールおよび構成するスクリプトを作成しました
ここにリンクがあります
https://gist.githubusercontent.com/mansurali901/e1e3acc7dca13aeca25b68a69571c60f/raw/b1b16f73ec9a974486e4c0c0d65a7d41f2eca718/setup_rootssh.sh
chmod +x setup_rootssh.sh ; sudo ./setup_rootssh.sh