初めに
OCI Computeインスタンスに対する不正アクセスや想定外のログインを、リアルタイムで検知したいと考えたことはありませんか?
本記事では、OCI Computeにログインが発生した際に、管理者へ自動でメール通知を送信する方法を解説します。OCI Email Deliveryを利用することで、シンプルに実装可能です。
セキュリティ強化や監査対応にも活用できる構成となっています。

検証環境
| 項目 | 内容 | コメント |
|---|---|---|
| OCIリージョン | 東京 | 他のリージョンにも適用 |
| Computeインスタンス | Oracle Linux 8 | サンプルのシェル・スクリプトをご参考ください。 |
| メール送信用ソフト | mailx | 手動でインストール済 |
1. OCI Email Deliveryのセットアップ
もちろん、他のメールサーバーを使用してメールを送信することもできますが、OCIネイティブサービスであるOCI電子メール配信を利用することをお勧めします。
OCI電子メール配信を既にセットアップ済の場合は、次のステップから実行してください。
セットアップをまだ行っていない場合は、私の前回の記事に従ってを設定してください。OCI電子メール配信サービスの概要
上記の記事では、各機能(DKIMとSPF)をカバーした完全なステップバイステップガイドを提供しています。軽く検証したいだけの場合は、すべての手順を実施する必要はありません。最小限の手順としては、「OCI Email Deliveryでメールを送信するクイックスタート」のStep 1, 4, 6, 7のみを行ってください。
2. シェル・スクリプトの作成
SSHログインが検知されたときに、メール送信をトリガーするシェルスクリプトが必要です。簡単なサンプルを作成しましたので、ご参考ください。
パスとファイル名: /etc/ssh/sshrc
所有者: root:root
[opc@linux8 ~]$ cat /etc/ssh/sshrc
# Name: /etc/ssh/sshrc
# Purpose: Sending email notification when SSH login is detected.
#
# Please replace variable "Recipient" with the mail address to which you want to send.
Recipient="<mail_address>"
IP_From=`echo $SSH_CONNECTION | cut -d " " -f 1`
Host_Name=`hostname`
logger -t ssh-wrapper $USER login from ${IP_From}
Message="`date`: User $USER just logged in ${Host_Name} from ${IP_From}"
echo $Message >> /home/opc/ssh_login_mail_alert.txt
echo $Message | mailx -s "Notification of SSH Login" $Recipient
[opc@linux8 ~]$3. OCI Computeにログインし、メール通知を確認
OCI ComputeインスタンスにSSHログインします。
受信者は以下のメールを受け取りました。
以上