我已经使用 LogWatch 有一段时间了,想对它进行一些定制,所以这是我想要编辑的内容之一。
我想让 LogWatch 通过 SMTP 进行验证?
我的邮件服务器(iREDmail)对身份验证有一些非常严格的规则,因此我必须为帐户设置密码,并且该密码必须在系统中。
如何设置 LogWatch 以使用电子邮件和密码进行 STMP 身份验证?
答案1
您好,如果您希望 logwatch 使用 smtp 帐户发送邮件,您可以使用 msmtp 包 (debian) 并配置 logwatch 以使用它,它会发送 smtp 认证邮件。您不需要 postfix,设置本身不会影响系统中现有的 MTA 配置。
步骤 1:安装并测试 msmtp
apt-get install msmtp
通过在用户主文件夹中创建配置文件来进行配置
cd ~
touch ./.msmtprc
edit .msmtprc
编辑并粘贴此内容以满足您的需求
account default
host mail.domain.tld
port 587
from [email protected]
auth on
user [email protected]
password myverysecretpass
tls on
tls_certcheck off
tls_certcheck off # 如果你不想检查邮件服务器的 SSL 证书
tls_trust_file mycacertificatefile #如果你想检查 ca 证书
保存文件并使用命令检查/验证配置
msmtp -S
第 2 步:编辑 logwatch 的配置
edit /etc/logwatch/conf/logwatch.conf
找到现有的邮件行并注释掉它。创建新行并更改目标邮件地址
mailer = "/usr/bin/msmtp [email protected]"
检查 logwatch 中的邮件地址是否与 .msmtprc 中的邮件匹配,否则您将收到未送达报告
MailFrom = [email protected]
保存并运行logwatch脚本,检查目标邮箱中的电子邮件,如果没有收到,请检查邮箱[电子邮件保护]未送达报告问题
这个解决方案对我来说很有用,我以正确的方式收到邮件,并且我正确地使用 DMARC 和 DKIM 来获取我需要的报告。
答案2
所有有效的 Logwatch 设置及其默认值的列表都在默认文件中logwatch.conf
,您可能可以在 中找到/usr/share/logwatch/default.conf/logwatch.conf
该文件。Logwatch邮件选项非常有限;没有任何形式的身份验证配置文件中的注释记录了所有可能的情况:
#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 = stdout
#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 = root
# 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 [email protected], use:
#Mailto_host1 = [email protected]
# 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
这表明您必须允许 Logwatch 在本地 MTA 上无需身份验证即可发送电子邮件。
在 Postfix 中,使用身份验证可能是通过以下方式强制执行的:
smtpd_client_restrictions =
permit_sasl_authenticated,reject
smtpd_sender_restrictions =
reject_sender_login_mismatch
。
这些是正常设置提交在港口587
,但有permit_mynetworks
在 Postfix smtpd 监听端口上,25
将允许本地用户无需身份验证即可发送邮件。这通常足以让 Logwatch 发送邮件。
你的 iRedMail使用 Postfix作为一个邮件传输代理(MTA)。iRedMail 文档也有文章允许用户无需 SMTP 身份验证即可发送电子邮件使用两种不同的方法。这两种方法都涉及手动编辑配置文件。您应该将 Logwatch 添加为允许的发送方。