サーバーログイン時のアラート通知設定の方法

ブログメインビジュアル

PHPプログラマーの松永です。

今回はサーバーログイン時のアラート通知設定の方法を紹介します。

目次

目的

サーバーログイン時のアラート通知設定は、主にセキュリティーを高めるために設定します。

AWSではCloudWatchを使用した方法もあり、物理・クラウドなど環境に左右されずに設定を行うことができます。

このような自動監視の設定は、設定が複雑になりがちですが、 今回はアラート通知する条件を広範囲にすることで実用的かつ簡単にアラート通知設定を行うことができます。

設定方法

/etc配下を操作するため、root権限が必要になります。

mailコマンドのインストール

既にmailコマンドが使用できる場合は、インストールする必要はありません。

sudo yum install mailx

上記コマンドを実行後、[y/n]が表示されたらyを入力します。

/etc/ssh/sshrcの作成

既にsshrcがある場合は、作成する必要はありません。

現状あるsshrcを使用してください。

/etc/ssh配下にsshrcというファイルがない場合は、新規に作成します。

pwdでカレントディレクトリが/etc/sshであることを確認し、ファイルを作成します。

touch sshrc

通知設定

通知設定を/etc/ssh/sshrcに記述していきます。

echo "$USER logged in from $SSH_CLIENT at `date +"%Y/%m/%d %p %I:%M:%S"`" | mail -s "[server login alert] logged in server" -r from@mail.co.jp to@mail.co.jp

確認

一度サーバーからログアウトし、再度ログインすることで確認することができます。

正常に設定できているとメールが送信されます。

仕組み

sshrc

SSHでサーバーログインを行うと、サーバーはsshrcというファイルを読み込んでからログインするようになっています。

そのため、「sshrcが読み込まれた」=「サーバーにログインした」ということになるため、このsshrcに「mailコマンドでメールを送信する」という記述をしています。

$USER、$SSH_CLIENT

$USER$SSH_CLIENTは、サーバー環境変数です。

$USERには、サーバーログイン時のユーザー名が格納されています。

$SSH_CLIENTには、サーバーログインしたアクセス元のIPアドレスが格納されています。



以上でございます。

まとめ

今回の設定は、「SSHでサーバーログインしたら」という広範囲でのアラート通知する条件のため、 MySQL WorkbenchやFileZillaを使用したサーバーログインでもアラート通知があります。

MySQL WorkbenchやFileZillaであってもサーバーへログインしていることには変わりないので、 今回のアラート通知でサーバーへのログインをしっかり把握することをおすすめいたします。

「簡単にサーバーログイン時のアラート通知がほしい」という方の参考になれば幸いです。

この記事を書いた人 matsunaga 自宅に音楽スタジオがあるとこを夢見るPHPエンジニア
TOP