📨
logwatchを導入し、SPF対応してGmailアドレスへ送信する
環境
VPS: Vultr
OS: RHEL9
Postfix(メール転送エージェント)インストール
logwatchの稼働に必要なMTA(メール転送エージェント)をインストールする。OSインストール時にホントに最低限しか入れてなかったから……。
RHEL8の解説を参考に、定番のPostfixを入れる。
$ sudo dnf install postfix
~中略~
Complete!
そしてPostfixを有効化しておく。
$ systemctl start postfix
$ systemctl enable postfix
動作確認。
$ rpm -qa | grep postfix
postfix-3.5.9-18.el9.x86_64
Polifix設定
RHEL8の解説を参考に設定していく。
設定ファイルの編集。
$ sudo vi /etc/polifix/main.cf
~前略~
# INTERNET HOST AND DOMAIN NAMES
#
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
myhostname = mail.example.com # メールサーバのホスト名を入力
# myhostname = virtual.domain.tld
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld # ドメインを記入する……が、デフォルトでは$myhostnameから最初のコンポーネントを除いたものが使われる。例えば👆の例だとexample.comが使われる。なので今回は指定しない。
~後略~
Polifixを再起動する。
$ systemctl reload postfix
logwatchインストール
logwatchをインストールする。
$ sudo dnf install logwatch
logwatchはPerlで動くので、関連の入れていい? と足りないもののインストール許可を数回求めてくる。全部y連打。Complete!で完了。
試しにちゃんと動いているか確かめる。
$ sudo logwatch --output stdout # ログを標準出力
するとウワーーーーーとたくさんログが出る。これの解読に慣れなければならない。がんばるぞい。
logwatch設定ファイル編集
設定ファイルを設定フォルダにコピー&ペーストする。
$ sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
そしてsudo viで編集する。説明文にウワーーとなるが、上から順にDeeplで翻訳していけばどうということはない。
#######################################################
# This was written and is maintained by:
# Kirk Bauer <kirk@kaybee.org>
#
# Please send all comments, suggestions, bug reports,
# etc, to kirk@kaybee.org.
#
########################################################
~中略~
#Output/Format Options
#By default Logwatch will print to stdout in text with no encoding.
#To make email Default set Output = mail to save to file set Output = file
Output = mail #メールにしたいので、ここをmailに設定
#To make Html the default formatting Format = html
Format = text
#To make Base64 [aka uuencode] Encode = base64
Encode = none
~中略~
# Default person to mail reports to. Can be a local account or a
# complete email address. Variable Output should be set to mail, or
# --output mail should be passed on command line to enable mail feature.
MailTo = email@google.com # 送り先のメアド
# WHen using option --multiemail, it is possible to specify a different
# email recipient per host processed. For example, to send the report
# for hostname host1 to user@example.com, use:
#Mailto_host1 = user@example.com
# Multiple recipients can be specified by separating them with a space.
# Default person to mail reports from. Can be a local account or a
# complete email address.
MailFrom = logwatch@email.example.com # 送信元。わかりやすい名前をつけておく。
~中略~
# The default detail level for the report.
# This can either be Low, Med, High or a number.
# Low = 0
# Med = 5
# High = 10
Detail = Med # 詳細度を好きに設定する。
~中略~
# By default we assume that all Unix systems have sendmail or a sendmail-like MTA.
# The mailer code prints a header with To: From: and Subject:.
# At this point you can change the mailer to anything that can handle this output
# stream.
# TODO test variables in the mailer string to see if the To/From/Subject can be set
# From here with out breaking anything. This would allow mail/mailx/nail etc..... -mgt
mailer = "/usr/sbin/sendmail.postfix -t" # postfixのコマンドパスを記載
~後略~
そして、これをこのまま試しに送信してみる。
$ sudo logwatch --output mail # logwatchメール送信
しかし待てど暮せど来ない。
maillogをチェックしてみる。
$ sudo cat /var/log/maillog |grep "from=<logwatch@example.com>"
Jul 8 22:10:49 localhost postfix/smtp[52769]: 742FB321998B: to=<XXX@gmail.com>, relay=gmail-smtp-in.l.google.com[XX.XX.XX.XX]:25, delay=9.1, delays=7.1/0.1/0.82/1.1, dsn=5.7.26, status=bounced (host gmail-smtp-in.l.google.com[XX.XX.XX.XX] said: 550-5.7.26 This message fails to pass SPF checks for an SPF record with a hard 550-5.7.26 fail policy (-all). To best protect our users from spam and 550-5.7.26 phishing, the message has been blocked. Please visit 550-5.7.26 https://support.google.com/mail/answer/81126#authentication for more 550 5.7.26 information. y20-20020a170903011400b0016bdf0dfc80si18045302plc.20 - gsmtp (in reply to end of DATA command))
要約:きみのところ、SPFに対応してないからダメです。
SPFレコード登録
ということで、SPFレコードを登録する。
VPS(今回はVultr)のDNS管理画面から、送信元として使いたいドメインに追加する。
タイプはTXT、名前は空欄、値に"v=spf1 ip4:XX.XX.XX.XX -all"(※XはIPアドレス)。
さあ、これでどうかな?
$ sudo logwatch --output mail # logwatchメール送信
やった~~~~~!!!!
Discussion