誰かがSSH Linux Centos7ワークステーションを介して通知メールを送信したとき(コマンド出力who)

誰かがSSH Linux Centos7ワークステーションを介して通知メールを送信したとき(コマンド出力who)

私のLinuxワークステーションは共有ネットワークの一部です。誰かがSSHを介して自分のワークステーションに接続するたびに通知メールを受け取りたいと思います。そのためにファイルを開き~/.bash_profilegedit私のファイルは~/.bash_profile完全に空です)、次の行を書きました。

IP="$(echo $SSH_CONNECTION | awk '{print $1}')"
HOST=$(hostname)
TIME_DATE_STAMP=$(date +"%e %b %Y, %a %r")

echo 'The '$IP' logged into '$HOST' on '$ TIME_DATE_STAMP'.' | mail -s 'SSH 
Login Notification' MY_EMAIL_ADDRESS

まだ通知メールを受信して​​いません!何が間違っているのか教えてください。

"who -H"この問題を解決するには、int端末コマンドを使用するとき。私のワークステーションに入ってくるすべてのSSHタスクのリストを提供します。私の質問は:「誰」コマンドがこの情報をどのように生成しますか?そのデータソースとは何ですか?それを使用してssh目的のデータを取得できますか?

ベストアンサー1

いくつか:

  • あなたの ~/.bash_profile次の場合にのみ開始してください。あなたログイン。これらの他のユーザーはあなたとしてログインしていない可能性があります。

  • 誰がCentOSシステムにSSHで接続しているかを観察するには/var/log/secure

次のようになります。

tail -f /var/log/secure | while read LOGLINE
do
   [[ "${LOGLINE}" == *"logged in"* ]] && mail -s 'SSH Notification' $MY_EMAIL_ADDRESS
done

who編集:コマンドがどのように機能するかを尋ねるために質問を編集しました。私はC開発者ではありませんが、これがソースコードでありwho命令です。それがどのように機能するかを本当に見たい場合。しかし、私はこれがあなたが探しているものではないと思います。そして私はあなたを助けることができる他の方法も知りません。誰かが悪用されcronログインしていることを確認するスクリプトを作成できますが、who実行中に誰かがログインしてログアウトする可能性は常にあります。ジャーナリングが行く道です。

おすすめ記事