個人メモ
前提
Raspberry PiにてWEBサーバ構築に、セキュリティ対策としてLogwatchの導入を検討。
Logwatchではメールで通知できるというので、メール送信用のツールが必要。
メールサーバ(postfix/exim)等もあるが、現状メール送信できればいいのでmsmtpを導入する。
以下で、msmtpにてgmailのsmtpを使用してメールを送るための手順をメモとして記しておく。
0.GMailでアプリパスワードを発行しておく
2段階認証を設定
すでに設定済みの場合、この手順は不要
Googleアカウントにログイン
セキュリティ画面を開く
メニュー -> セキュリティ または 下記リンクから
「Googleにログインする方法」 -> 「2段階認証プロセス」
2つ目の手順のいずれかを設定し、「2段階認証プロセスを有効にする」ボタンを押下
2つ目の手順で「認証システム」を利用する場合(PC上で認証が完結するため楽)
認証システムを使用する場合、Google Chromeの拡張機能を使用する
- Google Chromeで下記URLにアクセスし、「Authenticator」を追加
https://chromewebstore.google.com/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai - 2つ目の手順にて「認証システム」をクリック
- 「認証システムを設定」をクリック
- QRコードが出てきたらウィンドウ右上の拡張機能のアイコンをクリックし、「Authenicator」を起動
- 「QRコードをスキャン」で画面上のQRコード範囲を選択しスキャンし、表示された6桁数字をコピー
- 画面の「次へ」ボタンを押下し、コピーした6桁数字を貼り付けて「確認」
以降、ログインするときは「Authenicator」で数字をコピーして使用すればOK
アプリパスワードの発行
下記URLからアプリパスワードの発行画面を表示
2024.4.21時点で、この画面に遷移するメニュー等がない
アプリパスワードの作成
名前を設定し「作成」ボタンを押下
表示されたパスワードをコピー
パスワードは二度と見られないのでコピーしておく
コピーしたパスワードは以降の手順で使用
1.インストール
$ sudo apt-get install msmtp msmtp-mta
インストールすると/usr/sbin/sendmailが作成される
中身はmsmtpコマンドへのショートカットなので
sendmailコマンドを実行するとmsmtpコマンドを実行してくれるようになる
(sendmailを標準採用しているアプリへの対応)
2.設定ファイル作成
設定ファイルはインストール時に勝手に作られないので自分で手作り
(一応サンプルとかは、/usr/share/doc/msmtp/examples/ にある)
$ sudo vi /etc/msmtprc
# Generic
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log(任意)
# Gmail
account gmail
host smtp.gmail.com
port 587
from xxxxx@gmail.com
user xxxxx@gmail.com
password [コピーしたアプリパスワード(空白削除)をここに貼り付ける]
# Set a default account
account default : gmail
上記でログファイルを設定した場合はあらかじめ作成しておく
$ sudo touch /var/log/msmtp.log
$ sudo chmod 777 /var/log/msmtp.log
3.テスト送信
下記コマンドでメール送信できるかテスト
$ echo "TestMailSend" | msmtp xxxxx@gmail.com
メールがくれば成功
ログも確認
$ cat /var/log/msmtp.log
Apr 21 16:09:39 host=smtp.gmail.com tls=on auth=on user=xxxxx@gmail.com from=xxxxx@gmail.com recipients=xxxxx@gmail.com mailsize=73 smtpstatus=250 smtpmsg='250 2.0.0 OK 1713683379 t9-20020a634609000000b005df58c83e89sm5635667pga.84 - gsmtp' exitcode=EX_OK
とかなんとか出てればOK
追加.logwatchの設定
インストール
$ sudo apt-get install logwatch
インストール時に、/etc/cron.daily/00logwatch が作成され
毎日、logwatch --output mail
コマンドを実行するように構成されている
構成ファイルの作成
構成ファイルは勝手に作られないので、サンプルの構成ファイルをコピーして作成する
$ sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
$ sudo vi /etc/logwatch/conf/logwatch.conf
出力をメール送信する
- Output = stdout
+ Output = mail
メールの送信先
- MailTo = root
+ MailTo = xxxxx@gmail.com(msmtpにて設定したメールアドレス)
メールの送信者名
- MailFrom = Logwatch
+ MailFrom = logwatch@yyyy.yyy(ここは適当に)
上記設定ファイルにあるTmpDir = /var/cache/logwatch
のディレクトリを作成する
$ sudo mkdir /var/cache/logwatch
以上