• 在Ubuntu上设置自动安全更新(无人参与升级)

    本教程将向您展示如何在Ubuntu上设置自动安全更新,即无人值守升级。如果你不是住在洞穴下,那么你可能知道Equifax的大规模数据泄露。2017年5月至7月期间,1.43亿Equifax客户信息被盗,包括姓名、社保号、出生日期、驾照、20万个信用卡号码。 在2017年3月,Apache结构中的一个关键漏洞被发现,Apache基金会发布了一个修复程序,当他们宣布存在漏洞时。然而,Equifax有两个月没有修补该漏洞,导致了大规模数据泄露。运行复杂应用程序的公司可能需要在安装更新之前进行大量测试,但如果您有一台供个人使用的简单Linux服务器,则可以启用自动安全更新以尽快修补漏洞。 在Ubuntu服务器上配置自动安全更新(无人参与升级) 首先,安装无人值守升级包。 sudo apt更新sudo apt安装无人值守升级 您需要安装update notifier common软件包才能设置自动重新启动。 sudo-apt-install-update-notifier-common 然后编辑文件。 sudo nano/etc/apt/apt.conf.d/507-upgrades 在这个文件中,您可以配置应该自动更新的包。默认情况下,只会自动安装安全更新,如下行所示。所以没有必要改变这一部分。 无人参与升级::允许的来源{“${distro_id}:${distro_codename}”;“${distro_id}:${distro_codename}-安全”;//延长安全维护;不一定存在于//每个版本,并且此系统可能没有安装它,但是如果//可用,更新的策略是,默认情况下,无人参与的升级//也应该从这里安装。“${distro_id}ESMApps:${distro_codename}-应用程序安全”;“${distro_id}ESM:${distro_codename}-基础安全”//“${distro_id}:${distro_codename}-更新”//“${distro_id}:${distro_codename}-建议”//“${distro_id}:${distro_codename}-后端口”;}; 第一个来源“${distro_id}:${distro_codename}”是必需的,因为安全更新可能会从非安全源引入新的依赖项。此来源不提供软件更新。 第二个来源是定期的安全更新。 第三个和第四个来源(ESMaps和ESM)用于扩展安全维护,也就是说,对于那些运行Ubuntu版本的人来说,它已经到了生命的尽头。你可以保持原样。 电子邮件通知 有时Ubuntu可能无法安装安全更新,因此需要手动更新。如果您希望在每次安全更新后收到电子邮件通知,请查找下面的行并取消注释。(删除开头的双斜线。) Ubuntu 18.04 //无人参与升级::邮件“root”; Ubuntu 20.04 //无人参与升级::邮件“”; 您可以指定接收通知的电子邮件地址,如下所示。 无人参与升级::邮件“[email 受保护]”; 如果您希望仅在安全更新过程中出现错误时接收电子邮件通知,请取消对以下行的注释。 Ubuntu 18.04 //无人参与升级::MailOnlyOnError“true”; 在Ubuntu20.04上,您需要找到以下行 //无人参与升级::MailReport“on change”; 取消注释,并在更改为时进行更改 无人参与升级::MailReport“仅在出错时”; 自动删除未使用的依赖项 您可能需要在每次更新后执行sudo apt autoremove,因此请查看以下行: //无人参与升级::删除未使用的依赖项“false”; 取消对此行的注释,并将false更改为true。 无人参与升级::删除未使用的依赖项“true”; 自动重启 安装Linux内核的安全更新后,需要重新启动Ubuntu服务器才能应用内核更新。如果服务器仅由您或少数人使用,则启用自动重新启动会很方便。找到下面这行。 //无人参与升级::自动重新启动“错误”; 取消对其注释,并将false更改为true以启用自动重新启动 无人参与升级::自动重启“真”; 您还可以指定执行重新启动的时间。默认情况下,在安装内核更新后立即重新启动。我将其设置为凌晨4点重新启动。确保为服务器设置了正确的时区。 无人值守升级:自动重启时间“04:00”; 保存并关闭文件。 如果服务器正在被许多用户使用,或者需要很长的正常运行时间(比如这个博客),那么不应该启用自动重启。相反,您可以使用Canonical livepatch来修补Linux内核,而无需重新启动。 Canonical LivePatch服务:在不重新启动的情况下在Ubuntu上修补Linux内核 启用自动安全更新 现在已经配置了自动安全更新,我们需要通过创建20auto upgrades文件来启用它。 sudo nano/etc/apt/apt.conf.d/20auto-upgrades 将以下两行复制并粘贴到文件中。 APT::定期::更新包列表“1”;APT::定期::无人值守升级“1”; 第一行使apt每天自动执行“apt get update”。如果设置为2,则每隔一天。(0=禁用) 第二行使apt能够自动安装安全更新。(1=已启用,0=已禁用) 保存并关闭文件。 在特定时间运行无人值守升级 无人值守升级在上午12点到7点之间随机运行,以防止由于每个人同时运行更新而导致镜像服务器负载激增。您可以通过以下方式手动运行无人值守升级: sudo无人值守升级-v 还可以将此命令添加到Cron作业中。 sudo crontab-e 在Crontab文件的底部添加以下行,这样无人参与的升级将在每天凌晨2点运行。 0 2***sudo/usr/bin/无人值守升级-v 设置SMTP中继 为了在每次安全更新后接收电子邮件通知,您的服务器需要能够发送电子邮件。如果这是您的电子邮件服务器,那么唯一要做的就是安装bsd mailx包。 sudo apt安装bsd mailx 如果这不是电子邮件服务器,则需要设置SMTP中继。我们可以安装Postfix SMTP服务器,然后通过电子邮件服务提供商转发电子邮件。 有几个电子邮件服务提供商(ESP)可以充当中继主机。有些收取一点费用,有些每月提供免费配额。在本文中,我想向您展示如何使用Sendinblue,这是一家电子邮件服务提供商,允许您每天免费发送300封电子邮件。 在sendinblue创建一个免费帐户。通用域名格式。完成用户配置文件后,单击事务选项卡,您将获得SMTP设置。如果没有SMTP设置,您需要联系Sendinblue客户服务以激活事务性电子邮件服务。 现在,您需要配置Postfix SMTP服务器以使用Sendinblue SMTP设置。 让我们用下面的命令在Ubuntu上安装Postfix SMTP服务器。 sudo apt安装后缀libsasl2模块 当您看到以下消息时,按Tab键并按Enter键。 然后选择第二个选项:互联网站点。 接下来,设置系统邮件名称。例如,我输入我的域名linuxbabe。通用域名格式。 安装Postfix后,使用命令行文本编辑器(如Nano)打开主配置文件。 sudo nano/etc/postfix/main。查阅 找到下面这行。 relayhost= 默认情况下,其值为空。将relayhost的值设置为[smtp relay.sendinblue.com]:587。 relayhost=[smtp relay.sendinblue.com]:587 然后将以下行添加到此文件的末尾。 #出站中继配置smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_sasl_security_options=noanonymous smtp_tls_security_level=may header_size_limit=4096000 保存并关闭文件。然后创建/etc/postfix/sasl_passwd文件。 sudo nano/etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用SendinBlue提供的您自己的用户名和密码替换smtp_用户名和smtp_密码。注意用户名和密码之间有一个冒号。 [smtp relay.sendinblue.com]:587 smtp_用户名:smtp_passowrd 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap/etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl重启后缀 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600/etc/postfix/sasl_passwd/etc/postfix/sasl_passwd。分贝 从现在起,Postfix将通过Sendinblue发送电子邮件。 添加发件人地址 单击Sendinblue account仪表板右上角的下拉菜单,然后选择发件人&“IP”选项卡以添加您的域和发件人地址。 发送测试电子邮件 现在我们可以使用mailx命令发送测试电子邮件,如下所示。 sudo apt install bsd mailx echo“这是一封测试电子邮件。”|mailx-r from address-s hello to address 如果SMTP配置正确,您将收到一封电子邮件。 电子邮件不发送? 您可以查看邮件日志(/var/log/mail.log)来调试电子邮件不发送的原因。 如果在/etc/postfix/main中用括号包装中继主机。cf文件。 relayhost=[smtp relay.sendinblue.com]:587 然后还需要将主机名包装在/etc/postfix/sasl_passwd文件中。 [smtp relay.sendinblue.com]:587[email protected]:YourGmail密码 记住重新生成hash db文件。 sudo postmap/etc/postfix/sasl_passwd 重新启动Postfix以使更改生效。 sudo systemctl重启后缀 禁止接收电子邮件 默认情况下,Postfix配置为接受传入邮件。您可以将Postfix配置为仅发送电子邮件,但不接受传入的电子邮件。在/etc/postfix/main中找到以下行。cf文件。 inet_接口=全部 将其更改为以下文本,以便Postfix只在本地主机上侦听。 inet_接口=仅环回 电子邮件报告 无人值守升级可能会发送3封电子邮件: 无人参与升级返回:True。这意味着软件包安装成功。 无人参与升级返回:False。这意味着在安装更新时发生了一些错误。通常需要人工干预。如果您收到此电子邮件,您需要手动运行sudo apt升级。 无人参与升级返回:无。有可用的更新,但系统拒绝安装。 日志 日志可以在/var/log/Understand upgrades/目录中找到。 检查重启 checkrestart命令可以帮助您确定升级后需要重新启动哪些进程。可从debian goodies package购买。 sudo apt安装debian goodies sudo checkrestart 收尾 我希望本教程能帮助你在Ubuntu服务器上进行无人值守的升级。和往常一样,如果你觉得这篇文章有用,订阅我们的免费时事通讯,获取更多提示和窍门?

    2022.03.23 浏览:141
  • 如何在Ubuntu上安装和使用rss2email

    本教程将向您展示如何在Ubuntu上安装和使用rss2email。Rss2email是一个开源程序,可以向您的电子邮件地址发送RSS提要更新。RSS提要是更新博客和网站的好方法,但一些网站所有者允许RSS提要中包含一定数量的文章,而其他人则设置了时间限制。RSS阅读器不会在你的电脑上保存文章,所以你会时不时地错过一些文章。如果你能把所有的文章都存储在一个邮箱里,这样你就不会错过一篇博客文章,这不是很好吗?这就是rss2email的用武之地。我也更喜欢在我的电子邮件客户端上阅读博客帖子,而不是在网站上阅读文章。 注意:本教程适用于所有当前版本的Ubuntu,包括Ubuntu 18.04、20.04和20.10。 在Ubuntu上安装并配置rss2email Rss2email位于默认的Ubuntu软件存储库中,因此您可以通过在终端窗口中执行以下命令轻松安装它。 sudo apt安装rss2email 二进制文件将作为/usr/bin/r2e安装。安装后,您需要使用下面的命令创建一个新的提要数据库,该命令将设置邮件发送到的默认电子邮件地址。建议您在RSS订阅源中使用专用的电子邮件地址。 r2e新增[电子邮件 受保护] 接下来,您可以将RSS提要订阅从提要阅读器导出到OPML文件,并将其导入r2e提要数据库。 r2e opmlimport文件。opml 一些基于web的提要阅读器可能会给您一个XML文件。你也可以导入它。 r2e opmlimport文件。xml 然后你可以列出你的订阅源: r2e列表 要添加新提要,请运行 r2e添加feednamehttp://feed.url/somewhere.rss 如果要将提要发送到与默认电子邮件地址不同的电子邮件地址,请运行 r2e添加feednamehttp://feed.url/somehwere.rss[电子邮件 受保护] 现在可以编辑配置文件了。我将使用Nano命令行文本编辑器。 纳米~/。config/rss2email。cfg 默认发件人地址为[email protected],您可能需要更改该地址。 from=[email 受保护] 默认情况下,当源中有电子邮件地址时,rss2email将使用源中找到的电子邮件地址作为发件人地址。这会导致退回的电子邮件发送到提要中的电子邮件地址,从而有效地造成反向散射问题。要禁用此行为,请使用force from=True。 来自的力=真 接下来,您需要添加一个目标电子邮件地址。 to=[电子邮件 受保护] 如果希望接收HTML格式的电子邮件,请将以下值更改为True。 html mail=False使用css=False 保存并关闭此文件。要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要关闭文件,请按Ctrl+X。 配置SMTP 然后我们需要配置rss2email发送电子邮件的方式。默认情况下,r2e使用sendmail二进制文件发送电子邮件(如果系统上存在)。如果您在Postfix邮件服务器上安装了rss2email,那么您可以跳过这一部分。如果您在本地计算机上安装了rss2email,则可以使用SMTP发送电子邮件。尽管rss2email允许您在~/中配置SMTP。config/rss2mail。cfg文件,其实这个实现有很多缺陷。 相反,我们可以使用sSMTP来配置SMTP。sSMTP是非常简单的SMTP服务器。首先,在Ubuntu上安装ssmtp。 sudo apt安装ssmtp 然后打开配置文件。 sudo nano/etc/ssmtp/ssmtp。形态 编辑文件如下。 root=[email protected]mailhub=smtp。gmail。com:587 AuthUser=[email protected]AuthPass=YourGmailPassword UseTLS=YES usestratls=YES 请注意,如果你为你的Gmail帐户启用了两步验证,你将需要使用应用程序密码而不是普通密码。 在本例中,我使用用于r2e的Gmail SMTP服务器发送电子邮件。你也可以使用其他电子邮件服务。 保存并关闭文件。现在可以运行以下命令来测试SMTP配置。 echo“hello”| sendmail[电子邮件 受保护] 如果SMTP配置正确,您将收到来自Gmail帐户的电子邮件。 如果在运行上述命令时看到以下错误。 sendmail:服务器不喜欢我们的身份验证登录(535 5.7.8错误:身份验证失败:身份验证机制无效) 这是因为您的SMTP服务器不支持登录身份验证机制。 使用Postfix转发电子邮件 Postfix是一款成熟且非常流行的SMTP服务器。你可以使用Postfix通过Gmail转发电子邮件,而不是使用sSMTP。如果以前安装过sSMTP,请将其删除。 sudo-apt-purge-ssmtp 然后在Ubuntu上安装Postfix。 sudo-apt-install-postfix 当您看到以下消息时,按Tab键并按Enter键。 然后选择第三个选项:带smarthost的Internet,因为我们希望Postfix通过另一个SMTP服务器(如Gmail)发送电子邮件。 接下来,设置系统邮件名称。我只是使用默认值,因为这无关紧要。 最后,输入SMTP服务器地址。如果使用Gmail,请输入smtp。gmail。com:587。 安装Postfix后,打开配置文件。 sudo nano/etc/postfix/main。查阅 将以下行添加到此文件的末尾。 #出站中继配置smtp_sasl_auth_enable=yes smtp_sasl_password_maps=static:[电子邮件 受保护]:您的密码smtp_sasl_security_options=noanonymous smtp_tls_security_level=may header_size_limit=4096000 保存并关闭文件。然后重新启动Postfix以使更改生效。 sudo systemctl重启后缀 现在可以运行以下命令来测试SMTP配置。 echo“hello”| sendmail[电子邮件 受保护] 如果SMTP配置正确,您将收到来自Gmail帐户的电子邮件。 轮询RSS源 配置SMTP后,可以通过运行以下命令轮询所有源。 r2e运行--不发送 此命令只运行一次,因为rss2email将轮询提要数据库中的所有文章。你可能不想收到你已经读过的文章,因此有--no send选项。如果数据库中有很多提要,那么这个过程可能需要一些时间。此命令完成任务后,您需要运行以下命令以从RSS源接收新文章。 r2e跑步 创建Cron作业 不必每次都手动执行r2e run,您可以使用Cron来自动化此任务。打开crontab文件。 crontab-e 将以下行放入该文件。 */20****/usr/bin/r2e运行&gt/开发/空2&gt&1. 这将每20分钟运行一次r2e。要每30分钟运行一次r2e,只需将20更改为30即可。 */30****/usr/bin/r2e运行&gt/开发/空2&gt&1. 保存并关闭文件。 更多使用 要从数据库导出RSS源,请运行 r2e OpmExport>文件opml 要暂时暂停提要,请运行 r2e暂停供给指数 取消订阅源运行的暂停 r2e取消暂停饲料指数 要获取提要索引号,请运行 r2e列表 例如,要暂停馈送#10,请运行 r2e暂停10 如何在Firefox中找到网站的提要URL Google Chrome很久以前就停止支持RSS提要了。有些网站不向访问者显示其RSS提要URL。你可以在Firefox中按Ctrl+I来找到它们。 故障排除 如果rss2email无法正常工作,可以使用-VVV标志来显示调试信息。 r2e-VVV运行 例如,r2e向我显示以下错误消息。 2021-07-04 10:40:25973[错误]运行限时功能时出错:发电机提升停止迭代2021-07-04 10:40:25973[错误]原因:发电机提升停止迭代 事实证明,只有当它从FeedBurner URL获取RSS提要时,才会发生此错误。 我希望本教程能帮助你在Ubuntu上安装和使用rss2email。当心。

    2022.03.23 浏览:57
  • 如何使用Mailjet在Debian上设置Postfix SMTP中继

    本教程将向您展示如何在Debian上使用Mailjet设置Postfix SMTP中继。Postfix是一种流行的开源SMTP服务器。之前,我写了一篇文章,介绍了如何使用Modoboa在Debian上快速设置自己的电子邮件服务器,这有助于许多读者运行自己的电子邮件服务器。 然而,一些读者告诉我,作为控制垃圾邮件的一种方式,25端口被主机提供商或ISP屏蔽,因此他们无法发送电子邮件。如果您要求,Vultr将解锁端口25,ScalaHost根本不会阻止端口25,因此我建议使用ScalaHost VPS。其他一些主机服务提供商或ISP(如DigitalOcean)不会解锁端口25,所以如果您不能或不想更改主机服务提供商,您可以做些什么来绕过这种阻塞? SMTP接力救援 您可以绕过端口25,通过SMTP中继向外部世界发送电子邮件,因为它使用端口587。使用SMTP中继,您自己的电子邮件服务器不会直接将电子邮件发送到目标电子邮件地址。相反,有一个中间邮件服务器,也称为智能主机或中继主机,代表您发送电子邮件。您的电子邮件服务器通过端口587与智能主机通信,然后智能主机通过端口25与收件人的邮件服务器通信。 SMTP中继还可以帮助您绕过反垃圾邮件黑名单,如果您的IP地址因任何原因被列入黑名单。收件人的邮件服务器根据公共反垃圾邮件黑名单检查智能主机的IP地址,而不是检查您的服务器IP地址,因为SMTP中继服务保持良好的IP信誉,所以您的电子邮件可以通过IP黑名单。 使用Mailjet每天免费发送200封电子邮件 有几个电子邮件服务提供商(ESP)可以充当智能主机。有些收取一点费用,有些每月提供免费配额。在本文中,我想向您展示如何使用Mailjet,这是一家电子邮件服务提供商,允许您每天免费发送200封电子邮件。 Mailjet的好处在于,当你使用免费的SMTP中继服务时,它不需要你输入信用卡的详细信息。还有其他ESP每月提供免费配额,但要求您输入信用卡详细信息。(我知道当你没有信用卡时会有多沮丧。)与其他ESP相比,Mailjet也更容易设置。 在mailjet上创建一个帐户。通用域名格式。然后在仪表板上,你可以看到你需要做的三件事。 设置SMTP 管理发件人地址 设置域身份验证(SPF和DKIM) 步骤1:在Debian上设置后缀SMTP中继 首先,让我们使用以下命令在Debian上安装Postfix SMTP服务器。如果Postfix已经在您的服务器上运行,那么请跳过安装Postfix,但您仍然需要安装libsasl2模块包。 sudo apt install postfix libsasl2-modules 当您看到以下消息时,按Tab键并按Enter键。 然后选择第二个选项:互联网站点。 接下来,设置系统邮件名称。例如,我输入我的域名linuxbabe。通用域名格式。 安装Postfix后,打开配置文件。 sudo nano /etc/postfix/main.cf 找到下面这行。 relayhost = 默认情况下,不会设置其值。你需要从你的mailjet账户中获取这个值。在mailjet仪表板中,单击设置我的SMTP。 您将看到SMTP服务器地址和SMTP凭据。 在Postfix配置文件中,将relayhost的值设置为In-v3。mailjet。com:587。 relayhost = in-v3.mailjet.com:587 然后将以下行添加到此文件的末尾。 # outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000 保存并关闭文件。然后创建/etc/postfix/sasl_passwd文件。 sudo nano /etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用真正的Mailjet api密钥和密钥替换api密钥和密钥。 in-v3.mailjet.com:587  api-key:secret-key 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap /etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db 从现在起,Postfix将通过mailjet发送电子邮件。 第2步:添加发件人地址 要通过mailjet发送电子邮件,您需要添加发件人域或发件人地址。在mailjet dashboard中,单击管理发件人地址。您可以验证整个域或特定电子邮件地址。 步骤3:设置域身份验证 在这一步中,我们需要设置SPF和DKIM记录,如果您希望您的电子邮件进入收件人的收件箱而不是垃圾邮件文件夹,强烈建议您这样做。 SPF:发送方策略框架。这是一个DNS记录,指定允许哪些IP地址从您的域发送电子邮件。 DKIM:DomainKeys已识别邮件。Mailjet将使用私钥对您的电子邮件进行数字签名。DKIM记录包含一个公钥,允许收件人的电子邮件服务器验证签名。 在mailjet仪表板中,单击设置域身份验证。默认情况下,SPF状态和DKIM状态都是错误的。单击管理按钮并按照说明添加SPF和DKIM记录。 创建SPF和DKIM记录后,请稍等片刻,然后刷新mailjet网页。您的新DNS记录可能需要一些时间才能在Internet上传播,具体取决于您的DNS托管服务。如果SPF和DKIM记录设置正确且传播完成,mailjet会告诉您SPF和DKIM记录良好。 发送测试电子邮件 现在我们可以使用mailx命令发送测试电子邮件,如下所示。 sudo apt install bsd-mailx echo "this is a test email." | mailx -r from-address -s hello to-address 您还可以从webmail客户端或桌面邮件客户端发送测试电子邮件。在网上测试你的电子邮件分数也是个好主意https://www.mail-tester.com.如你所见,我得了满分。 故障排除 如果您的电子邮件未送达,而您在邮件日志(/var/log/mail.log)中发现以下消息, Relay access denied (in reply to RCPT TO command)) 然后,您可能需要编辑/etc/postfix/sasl_passwd文件,并删除主机名后面的端口号,如下所示。 in-v3.mailjet.com  api-key:secret-key 保存并关闭文件。然后再次构建索引文件。 sudo postmap /etc/postfix/sasl_passwd 重新启动Postfix以使更改生效。 sudo systemctl restart postfix 现在,您可以刷新电子邮件队列(尝试发送以前的电子邮件)。 sudo postqueue -f 添加其他域 如果在新计算机上为新域名设置邮件服务器,并且要为此新域名设置SMTP中继,请执行相同的步骤: 配置后缀SMTP中继设置, 在Mailjet仪表板中验证新域名 设置SPF和DKIM验证 收尾 就这样!我希望本教程能帮助您在Debian上设置Postfix SMTP中继,绕过端口25或IP黑名单。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心。

    2022.03.23 浏览:81
  • 使用Postfix和SpamAssassin内容过滤器阻止垃圾邮件

    在之前的文章中,我们讨论了如何使用iRedMail快速设置自己的邮件服务器,以及使用Postfix SMTP服务器阻止垃圾邮件的7种有效方法。在本文中,我将分享更多阻止垃圾邮件的提示和技巧。具体来说,我们将了解如何使用Postfix和SpamAssassin(SA)检查电子邮件标题和正文,以检测垃圾邮件。SpamAssassin是一款免费、开源、灵活且功能强大的反垃圾邮件工具。 使用Postfix SMTP服务器检查电子邮件头和正文 Postfix提供了4个简单的内容检查参数。 标题检查 mime_标题_检查 嵌套的u头u检查 身体检查 当使用上述任何参数时,Postfix将检查所有入站电子邮件。每个参数都指向一个包含正则表达式模式和操作的查找表。这些模式与电子邮件中的字符串(标题和正文)进行比较。如果Postfix找到匹配项,则执行指定的操作。页眉和正文检查由后缀清理守护程序完成。 后缀可以使用两种类型的正则表达式。 regexp:POSIX正则表达式 PCRE:Perl兼容的正则表达式 Postfix附带POSIX正则表达式支持,但PCRE要快得多。要在Postfix中使用PCRE,需要安装Postfix PCRE包。 sudo apt install postfix-pcre 运行以下命令,您将看到现在支持pcre。 postconf -m 标题检查 要在后缀中启用头_检查,请打开主配置文件。 sudo nano /etc/postfix/main.cf 在文件末尾添加以下行。 header_checks = pcre:/etc/postfix/header_checks 保存并关闭文件。然后需要使用命令行文本编辑器(如Nano)创建/etc/postfix/header_checks查找文件。 sudo nano /etc/postfix/header_checks 您可以像下面这样添加正则表达式检查。 /free mortgage quote/ REJECT /repair your credit/ REJECT lefthand键是一个由两个正斜杠包围的正则表达式。如果左侧的任何字符串出现在电子邮件的任何标题中(这些字符串很可能出现在主题:标题中),则在SMTP对话框中,邮件将被拒绝。默认情况下,正则表达式检查不区分大小写。 您也可以使用DISCARD,而不是REJECT。 /free mortgage quote/ DISCARD /repair your credit/ DISCARD 这将导致Postfix声明成功传递,并自动放弃邮件。DISCARD使消息看起来像是被传递的,即使它只是被扔掉了。当我不想让垃圾邮件发送者知道我屏蔽了一个特定的邮件短语时,我经常使用DISCARD。丢弃也有助于减少后向散射问题。如果一个无辜用户的电子邮件地址被用作发件人地址,您可以声称成功送达,这样无辜用户就不会收到跳转消息。 一些愚蠢的垃圾邮件发送者在To:标题中使用多个电子邮件地址,而不是使用盲抄送(BCC)。如果您确定某个电子邮件地址不会接受收件人:标题中有多个收件人的电子邮件,则可以添加以下行以丢弃此类电子邮件。 /To:.*(gmail.com|yahoo.com|outlook|hotmail.com).*[email protected]/ DISCARD /To:.*[email protected].*(gmail.com|yahoo.com|outlook|hotmail.com)/ DISCARD 以上几行将检查Gmail/Yahoo/Outlook/Hotmail地址和您的域电子邮件地址是否同时位于To:标题中。如果为真,则该电子邮件将被丢弃。两个字符。*是正则表达式中的通配符,可以与任何字符匹配。 如果您确定某个电子邮件地址不会在Cc:header中接受多个收件人的电子邮件,那么您也可能希望对Cc:(复写)邮件头执行相同的操作 /Cc:.*(gmail.com|yahoo.com|outlook|hotmail.com).*[email protected]/ DISCARD /Cc:.*[email protected].*(gmail.com|yahoo.com|outlook|hotmail.com)/ DISCARD 一些垃圾邮件发送者在发件人:或收件人:标题中使用空白电子邮件地址,您可以添加以下检查。 /To:.*<>/ DISCARD /From:.*<>/ DISCARD 编辑完头文件后,需要构建索引文件。 sudo postmap /etc/postfix/header_checks 然后重新启动Postfix以使更改生效。 sudo systemctl restart postfix 身体检查 除了标题检查,Postfix还可以检查电子邮件的正文。要在后缀中启用body_检查,请打开主配置文件。 sudo nano /etc/postfix/main.cf 在文件末尾添加以下行。 body_checks = pcre:/etc/postfix/body_checks 保存并关闭文件。然后需要创建/etc/postfix/body_检查查找文件。 sudo nano /etc/postfix/body_checks 您可以像下面这样添加正则表达式检查。 /free mortgage quote/ REJECT /repair your credit/ REJECT 您可以使用DISCARD,而不是REJECT。 /free mortgage quote/ DISCARD /repair your credit/ DISCARD body_checks参数指示的模式将根据消息正文的每一行进行检查。如果leftland上的任何字符串出现在电子邮件正文中,则该邮件将被拒绝或丢弃。编辑完body_checks查找文件后,需要构建索引文件。 sudo postmap /etc/postfix/body_checks 然后重新启动Postfix以使更改生效。 sudo systemctl restart postfix SpamAssassin内容过滤器 Postfix中的内置内容检查非常简单。但是,没有办法将您可能希望接收的单个邮件列入白名单,尽管它们包含的短语会触发拒绝,并且您可能不希望基于单个规则拒绝或丢弃电子邮件。对于更复杂的分析,我们需要使用专门设计用于检测垃圾邮件的专用内容过滤器(如SpamAssassin)。 SpamAssassin是一个基于分数的系统。它将根据大量规则检查电子邮件,而不是Postfix中的单个规则。每条规则都会在消息的分数中添加或删除分数。如果分数足够高(默认为5.0),则该邮件被视为垃圾邮件。 安装SpamAssassin 注意:如果您使用iRedMail设置邮件服务器,那么SpamAssassin已经与Amavis一起安装,Amavis可以读取SpamAssassin规则。您不需要遵循本节中的说明。 运行以下命令从默认的Ubuntu软件存储库安装SpamAssassin。Spamc是SpamAssassin垃圾邮件过滤守护程序的客户端。 sudo apt install spamassassin spamc 在安装过程中,将自动创建debian spamd用户和组。spamassassin包安装的二进制文件名为spamd,它将在本地主机上的TCP端口783上侦听。 默认情况下,spamassassin systemd服务处于禁用状态,您可以使用以下选项在启动时启用自动启动: sudo systemctl enable spamassassin 然后开始吃SpamAssassin。 sudo systemctl start spamassassin 将SpamAssassin与Postfix SMTP服务器集成为一个Milter 有几种方法可以用于将SpamAssassin与Postfix集成。我更喜欢通过sendmail milter界面使用SpamAssassin,因为它允许我在收到非常高的分数(如8分)时拒绝电子邮件,因此收件人永远不会看到它。 从Ubuntu默认软件库安装spamass筛选器包。 sudo apt install spamass-milter 接下来,编辑/etc/postfix/main。cf文件,并在文件末尾添加以下行。 # Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = local:spamass/spamass.sock non_smtpd_milters = $smtpd_milters 如果您已经配置了OpenDKIM和OpenDMARC,那么这些行应该如下所示。命令很重要。 # Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = local:opendkim/opendkim.sock,local:opendmarc/opendmarc.sock,local:spamass/spamass.sock non_smtpd_milters = $smtpd_milters 如果尚未配置OpenDMARC,则应删除local:OpenDMARC/OpenDMARC。sock,来自smtpd_milters。 保存并关闭文件。现在打开/etc/default/spamass-milter文件并找到以下行。 #OPTIONS="${OPTIONS} -r 15" 取消这一行的注释,并将15更改为您首选的拒绝分数,例如8。 OPTIONS="${OPTIONS} -r 8" 如果某封邮件的分数超过8分,Spamassassin会拒绝该邮件,您会在/var/log/mail中找到如下消息。日志文件,表示它已被拒绝。 milter-reject: END-OF-MESSAGE  5.7.1 Blocked by SpamAssassin 如果希望发件人看到不同的拒绝文本,请添加-R(拒绝文本)选项,如下所示。 OPTIONS="-u spamass-milter -i 127.0.0.1 -R SPAM_ARE_NOT_ALLOWED_HERE" 保存并关闭文件。重新启动Postfix和Spamass Milter,使更改生效。 sudo systemctl restart postfix spamass-milter 注意:iRedMail用户需要启动SpamAssassin服务才能使用SpamMass milter。 sudo systemctl start spamassassin sudo systemctl enable spamassassin 使用SpamAssassin检查电子邮件标题和正文 SpamAssassin在/usr/share/SpamAssassin/目录中附带了许多垃圾邮件检测规则。请允许我解释一些规则。 在/usr/share/spamassassin/20_head_测试中。在cf文件中,可以找到以下两行。 header MISSING_HEADERS eval:check_for_missing_to_header() describe MISSING_HEADERS Missing To: header 第一行测试电子邮件中是否存在To:标题。第二行是可选的,解释了第一行的功能。大写字母是本测试的名称。 以下三行用于测试电子邮件中是否有Date:header。 header __HAS_DATE exists:Date meta MISSING_DATE !__HAS_DATE describe MISSING_DATE Missing Date: header 这三行用来测试邮件中是否有From:头。 header __HAS_FROM exists:From meta MISSING_FROM !__HAS_FROM describe MISSING_FROM Missing From: header 您可能希望使用SpamAssassin附带的Cron作业每天自动更新SpamAssassin的规则。如果是这样,请打开/etc/default/spamassassin文件,并将CRON=0更改为CRON=1。 为现有规则设置自定义分数 在50分中。cf和72_分数。在cf文件中,可以看到各种测试的默认分数。如果您认为某个测试的默认分数太低或太高,可以在/etc/spamassassin/local中设置自定义分数。cf文件。 sudo nano /etc/spamassassin/local.cf 例如,RFC 5322要求每封电子邮件都必须有From:和Date:标题字段,因此如果电子邮件中缺少这两个字段中的任何一个,我可以通过在local中添加以下两行来设置一个非常高的分数。cf文件。 score MISSING_FROM   5.0 score MISSING_DATE   5.0 虽然收件人:标题字段在RFC 5322中不是强制性的,但如果电子邮件中缺少该字段,我更愿意设置一个高分,因为我从未见过一封合法的电子邮件缺少该标题字段。 score MISSING_HEADERS 3.0 一些垃圾邮件发送者在From:header字段中使用两个电子邮件地址,如下所示。 From: "[email protected]" <[email protected]> 我认为这类邮件的默认分数很低,我更喜欢将其设置为3.0。 score PDS_FROM_2_EMAILS 3.0 有一些垃圾邮件发送者发送没有主题、正文中没有文本部分的空消息。我将这类邮件的分数设置为5.0,所以它将被放入垃圾邮件文件夹。如果它是空的,为什么还要读呢? score EMPTY_MESSAGE 5.0 而其他的垃圾邮件发送者经常要求你发送一份阅读回执,我将这种邮件的分数设置为2.0。 score FREEMAIL_DISPTO 2.0 有一些垃圾邮件发送者在From:和Reply To:标题中使用不同的域名,我给他们打3.5分。 score FREEMAIL_FORGED_REPLYTO 3.5 我还看到一些垃圾邮件发送者在From:header字段中使用不存在的域名。我给这类邮件打了5.0分。 score DKIM_ADSP_NXDOMAIN 5.0 最后但并非最不重要的是,许多垃圾邮件发送者欺骗了gmail。“发件人:标头”字段中的com域。我给这种邮件打了2.5分。 score FORGED_GMAIL_RCVD 2.5 添加自己的规则 您可以在/etc/SpamAssassin/local中添加自定义SpamAssassin规则。cf文件。 sudo nano /etc/spamassassin/local.cf 标题规则 例如,一些垃圾邮件发送者在From:和To:标题中使用相同的电子邮件地址,您可以在文件末尾添加以下行,为此类电子邮件添加分数。 header FROM_SAME_AS_TO ALL=~//nFrom: ([^/n]+)/nTo: /1/sm describe FROM_SAME_AS_TO From address is the same as To address. score FROM_SAME_AS_TO 2.0 一些垃圾邮件发送者使用空地址作为信封发件人地址(也称为返回路径标头)。虽然这对于发送反弹消息是合法的,但我更喜欢给这种电子邮件打分。 header EMPTY_RETURN_PATH ALL =~ /<>/i describe EMPTY_RETURN_PATH empty address in the Return Path header. score EMPTY_RETURN_PATH 3.0 如果您已经在邮件服务器上配置了OpenDMARC,现在可以添加以下行,为未通过DMARC检查的电子邮件添加分数。 header CUSTOM_DMARC_FAIL Authentication-Results =~ /dmarc=fail/ describe CUSTOM_DMARC_FAIL This email failed DMARC check score CUSTOM_DMARC_FAIL 3.0 上面的代码告诉SpamAssassin检查身份验证结果头是否包含字符串“dmarc=fail”。如果发现,将分数提高3.0。 身体规则 如果在邮件中发现某个短语,你可以告诉SpamAssassin增加邮件的分数。例如,许多垃圾邮件发送者在正文第一行使用收件人的电子邮件地址,如下所示。 Hi [email protected] Hello [email protected] Dear [email protected] 我不想和那些不把我的名字写在邮件第一行的人交谈。所以我在SpamAssassin中创建了一个规则来过滤这种邮件。 body BE_POLITE /(hi|hello|dear) xiao/@linuxbabe/.com/i describe BE_POLITE This email doesn't use a proper name for the recipient score BE_POLITE 5.0 SpamAssassin中的正则表达式默认区分大小写,您可以在末尾添加i选项,使其不区分大小写。 加上负分 你也可以给好的邮件加上负面分数,这样误报就会少一些。例如,我的许多博客读者问我Linux问题,我认为垃圾邮件发送者不会在邮件正文中包含Debian、Ubuntu、Linux Mint等词,所以我创建了以下规则。 body GOOD_EMAIL /(debian|ubuntu|linux mint|centos|red hat|RHEL|OpenSUSE|Fedora|Arch Linux|Raspberry Pi|Kali Linux)/i describe GOOD_EMAIL I don't think spammer would include these words in the email body. score GOOD_EMAIL -4.0 如果电子邮件正文包含Linux发行版的名称,则添加一个负数(-4.0)。 有一些常见的短语包含在合法的反弹消息中,所以我可以在这些电子邮件消息中添加否定分数。 body BOUNCE_MSG /(Undelivered Mail Returned to Sender|Undeliverable|Auto-Reply|Automatic reply)/i describe BOUNCE_MSG Undelivered mail notifications or auto-reply messages score BOUNCE_MSG -1.5 请注意,主体规则还包括主体作为主体内容的第一行。 元规则 除了标题和正文规则,还有元规则。元规则是其他规则的组合。您可以创建一个元规则,当两个或多个其他规则为真时触发。例如,我偶尔会收到电子邮件,说发件人想申请一份工作,并附上一份简历。我从来没有在我的网站上说过我需要雇人。该附件用于传播病毒。我创建了以下元规则来过滤此类电子邮件。 body __RESUME /(C.V|Resume)/i meta RESUME_VIRUS (__RESUME && __MIME_BASE64) describe RESUME_VIRUS The attachment contains virus. score RESUME_VIRUS 5.5 第一条规则“简历”测试电子邮件正文是否包含“简历”或“简历”字样。第二个子规则_MIME_BASE64已经在/usr/share/spamassassin/20_body_测试中定义。cf文件,如下所示,所以我不需要在本地重新定义它。cf文件。此规则测试电子邮件是否包含base64附件。 rawbody __MIME_BASE64 eval:check_for_mime('mime_base64_count') describe __MIME_BASE64 Includes a base64 attachment 我的元规则RESUME_病毒将在两个子规则都为真时触发,在电子邮件消息中增加5.5分。请注意,子规则通常以双下划线开头,因此它本身没有分数。 现在,您学习了如何在找到字符串时添加分数。如果你想在邮件标题中不存在字符串的情况下添加分数怎么办?好吧,你可以用这个!操作人员例如,我看到垃圾邮件发送者在发件人地址中使用一个单词。我添加了以下几行来给这类邮件打分。 header __AT_IN_FROM From =~ //@/ meta NO_AT_IN_FROM !__AT_IN_FROM score NO_AT_IN_FROM 4.0 第一行检查From:头中是否存在@符号。第二行定义了一个元规则,当__是真的__AT_IN_FROM规则与第一个头规则相反,这意味着当FROM:地址中没有@符号时,元规则将触发。 您还可以添加以下行来检查From:地址中是否存在点。 header __DOT_IN_FROM From =~ //./ meta NO_DOT_IN_FROM !__DOT_IN_FROM score NO_DOT_IN_FROM 4.0 白名单 您可以使用whitelist_from参数将特定的电子邮件地址或域添加到Spamassassin白名单中。例如,在local的末尾添加以下两行。cf文件。 whitelist_from [email protected] whitelist_from *@canonical.com 被列入白名单的发件人的默认分数为-100。他们仍将接受SpamAssassin规则的测试,但要达到5.0分对他们来说非常困难。 黑名单 要将发件人列入黑名单,请使用blacklist_from参数,该参数的格式与whitelist_from相同。 blacklist_from [email protected] blacklist_from *@example.org 检查语法并重新启动 在拯救了当地人之后。cf文件。您应该在lint模式下运行spamassassin命令,以检查是否存在任何语法错误。 sudo spamassassin --lint 然后重新启动SpamAssassin,使更改生效。(如果像在iRedMail中一样将Amavis与Spamassasin一起使用,只需重新启动Amavis:sudo systemctl restart Amavis) sudo systemctl restart spamassassin Spamasassin的内置白名单 值得一提的是,Spamasassin有自己的白名单。在/usr/share/spamassassin/目录下有几个文件,文件名中包含60_白名单。这些文件包含SpamAssassin的内置白名单。例如,60_白名单_spf。cf文件包含发送邮件的地址列表,这些邮件通常被(错误地)标记为垃圾邮件。 将垃圾邮件移到垃圾邮件文件夹中 注意:iRedMail已对其进行了开箱即用的配置。 我将向您展示如何使用Dovecot IMAP服务器和sieve插件将垃圾邮件移动到垃圾邮件文件夹。此方法要求通过Dovecot“deliver”LDA(本地传递代理)将入站电子邮件传递到消息存储。如果您可以在/var/log/mail中找到以下文本。日志文件,则满足此要求。 postfix/lmtp 或 delivered via dovecot service 从Ubuntu软件库运行以下命令install dovecot sieve。 sudo apt install dovecot-sieve 这个包在/etc/dovecot/conf.d/目录下安装两个配置文件:90 sieve。conf和90个程序。形态打开15 lda。conf文件。 sudo nano /etc/dovecot/conf.d/15-lda.conf 将sieve插件添加到本地交付代理(LDA)。 protocol lda { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins sieve } 保存并关闭文件。如果你能找到20个lmtp。conf文件位于/etc/dovecot/conf.d/目录下,那么您还应该在该文件中启用sieve插件,如下所示。 protocol lmtp { mail_plugins = quota sieve } 编辑/etc/dovecot/conf.d/10-mail。conf文件。 sudo nano /etc/dovecot/conf.d/10-mail.conf 筛选脚本存储在每个用户的主目录下。如果您遵循我的PostfixAdmin教程并使用虚拟邮箱域,那么您需要通过在文件中添加以下行来为虚拟用户启用mail_home,因为默认情况下虚拟用户没有主目录。 mail_home = /var/vmail/%d/%n 保存并关闭文件。然后打开90号筛子。conf文件。 sudo nano /etc/dovecot/conf.d/90-sieve.conf 转到第79行,添加下一行,它告诉siever始终执行SpamToJunk。在任何特定于用户的脚本之前筛选脚本。 sieve_before = /var/mail/SpamToJunk.sieve 保存并关闭文件。然后创建筛选脚本。 sudo nano /var/mail/SpamToJunk.sieve 添加以下行,告诉Dovecot将任何带有X-Spam-Flag:YES标题的电子邮件移动到垃圾邮件文件夹中。 require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; stop; } 保存并关闭文件。我们可以编译这个脚本,所以它会运行得更快。 sudo sievec /var/mail/SpamToJunk.sieve 现在有一个二进制文件保存为/var/mail/SpamToJunk。斯文。最后,重启dovecot以使更改生效。 sudo systemctl restart dovecot 设置消息的最大大小 默认情况下,SpamAssassin不会检查附件大于500KB的邮件,如/var/log/mail中的以下行所示。日志文件。 spamc[18922]: skipped message, greater than max message size (512000 bytes) 默认最大大小设置为512000(字节)。高值可能会增加服务器负载,但我认为默认大小有点小。要增加最大大小,请编辑/etc/default/spamass-milter文件,并在末尾添加以下行。 #Spamc options OPTIONS="${OPTIONS} -- --max-size=5120000" 空--选项告诉spamass milter将所有剩余选项传递给spamc,spamc理解--max size选项。我将大小增加到5000KB。保存并关闭文件。然后重启spamass milter。 sudo systemctl restart spamass-milter 如何配置个人用户首选项 您可能需要为发送到邮件服务器上特定地址的电子邮件设置自定义规则。我非常喜欢这个功能。我有这个博客的联系电子邮件地址,它只用于与读者保持联系。我不在其他地方使用联系人电子邮件地址,因此我可以创建只适用于此联系人电子邮件地址的特殊垃圾邮件过滤规则。 首先,编辑SpamAssassin主配置文件。 sudo nano /etc/spamassassin/local.cf 添加以下行以允许用户规则。 allow_user_rules 1 保存并关闭文件。接下来,编辑SpamAssassin环境文件。 sudo nano /etc/default/spamassassin 找到下面这行。 OPTIONS="--create-prefs --max-children 5 --helper-home-dir" 我们需要把它改成 OPTIONS="--create-prefs --max-children 5 --helper-home-dir --nouser-config --virtual-config-dir=/var/vmail/%d/%l/spamassassin --username=vmail" 哪里: --nouser config:为本地Unix用户禁用每用户配置文件。 --虚拟配置目录:为虚拟用户指定每用户配置目录。%d占位符代表电子邮件地址的域部分,%l代表电子邮件地址的本地部分。 --用户名:以vmail用户身份运行spamd。 保存并关闭文件。然后重启SpamAssassin。 sudo systemctl restart spamassassin 默认情况下,spamass milter只将电子邮件地址的本地部分发送给SpamAssassin。我们需要让它发送完整的电子邮件地址。编辑spamass milter配置文件。 sudo nano /etc/default/spamass-milter 找到下面这行。 OPTIONS="-u spamass-milter -i 127.0.0.1 -R SPAM_ARE_NOT_ALLOWED_HERE" 将以下选项添加到此行。 -e yourdomain.com 这样地: OPTIONS="-e yourdomain.com -u spamass-milter -i 127.0.0.1 -R SPAM_ARE_NOT_ALLOWED_HERE" e选项将使spamass milter将完整的电子邮件地址传递给SpamAssassin。替换你的域名。使用你的真实域名。保存并关闭文件。然后重启spamass milter。 sudo systemctl restart spamass-milter 现在从Gmail、Hotmail等发送电子邮件到您的域电子邮件地址。您会发现spamassassin目录是在/var/vmail/yourdomain下自动创建的。com/username/directory。 cd /var/vmail/yourdomain.com/username/spamassassin/ 您可以使用命令行文本编辑器在此处创建每个用户的首选项文件。此文件必须命名为user_prefs。 sudo nano user_prefs 您可以在该文件中添加自定义规则,就像在/etc/spamassassin/local中一样。cf文件。 例如,我发现许多垃圾邮件发送者在他们的邮件正文末尾添加了一个“取消订阅”链接,让你删除未来的联系人。我没有订阅他们的垃圾邮件,我不认为取消订阅链接会从他们的联系人数据库中删除我的电子邮件地址。所以我用SpamAssassin给这类邮件打分。以下规则为含有“unsubscribe”一词或其变体的电子邮件加3.0分。(我不使用本博客的联系人电子邮件地址在线订阅任何内容。) body SUBSCRIPTION_SPAM /(unsubscribe|u n s u b s c r i b e|Un-subscribe)/i describe SUBSCRIPTION_SPAM I didn't subscribe to your spam. score SUBSCRIPTION_SPAM 3.0 有时邮件正文中不包含“取消订阅”一词,但有一个列表取消订阅标题,这意味着垃圾邮件发送者在未经我同意的情况下将我的联系人电子邮件地址添加到他们的邮件列表中。我也可以根据以下规则给这类邮件打分。 header LIST_UNSUBSCRIBE ALL =~ /List-Unsubscribe/i describe LIST_UNSUBSCRIBE I didn't join your mailing list. score LIST_UNSUBSCRIBE 2.0 我用不同的电子邮件地址创建了一个Mailjet帐户。一些垃圾邮件发送者认为我使用我的联系电子邮件地址创建了Mailjet帐户,所以他们试图模拟Mailjet客户服务,诱使我在虚假的Mailjet登录页面上输入密码。我可以像下面这样给这类邮件打分。 header MAILJET_IMPOSTER From =~ /mailjet/i describe MAILJET_IMPOSTER I don't have a mailjet account for this email address. score MAILJET_IMPOSTER 2.5 以上几行检查From:标题是否包含单词mailjet。如果发现,给2.5分。 我偶尔会收到来自中国垃圾邮件发送者的电子邮件,其发件人:域名没有元音字母(a、e、I、o、u)。垃圾邮件发送者使用了cdjcbzclyxgs。xyz域名。考虑到许多顶级域名已经包含元音字母(.com、.net、.org、.co、.io、.shop、.dev等),一个普通人/实体几乎不可能使用没有元音字母的域名,所以我给这种电子邮件打了一个很高的分数,如下所示。默认分数为0.5。 score FROM_DOMAIN_NOVOWEL 4.0 一些垃圾邮件在体内使用许多图像,但包含很少的文本。这类邮件的默认分数是1.9,但我更喜欢为我的联系人电子邮件地址设置高分。 score HTML_IMAGE_RATIO_02 4.0 我还收到了一封主题为我的电子邮件地址的垃圾邮件,所以我可以给它加一个高分。 header SUBJECT_SPAM Subject =~ /xiao/@linuxbabe.com/i describe SUBJECT_SPAM Subject contains my email address. score SUBJECT_SPAM 4.0 一些垃圾邮件发送者使用密件抄送(BCC)来隐藏其他收件人。我不想收到这样的电子邮件。所以我制定了以下规则。如果我的域名不在收件人:标题中,请在电子邮件中添加3.0。 header __DOMAIN_IN_TO To =~ /linuxbabe.com/ meta DOMAIN_NOT_IN_TO !__DOMAIN_IN_TO score DOMAIN_NOT_IN_TO 3.0 添加自定义规则后,关闭文件并运行以下命令检查语法。无声输出意味着没有语法错误。 sudo spamassassin --lint 最后,重新启动SpamAssassin以使更改生效。 sudo systemctl restart spamassassin 现在,您可以通过从其他电子邮件服务向自己的域电子邮件地址发送测试电子邮件来测试用户偏好。 特定电子邮件地址的白名单 假设您有一个电子邮件地址,可以接收来自几个电子邮件地址的电子邮件,并且您希望阻止所有其他发件人。这很容易做到。转到/var/vmail/yourdomain。com/username/spamassassin/directory并创建用户prefs文件。然后将允许的电子邮件地址添加到白名单中。 whitelist_from *@your-own-domain.com whitelist_from [email protected] 接下来,将所有域添加到黑名单中。 blacklist_from * 保存并关闭文件。重新启动SpamAssassin以使更改生效。 sudo systemctl restart spamassassin 拒绝或反弹 如果接收SMTP的服务器在SMTP对话期间确定它将不接受该邮件,则会拒绝该邮件。有时SMTP服务器会接受邮件,然后发现无法传递,可能是目标收件人不存在,或者最终传递时出现问题。在这种情况下,接受邮件的SMTP服务器通过发送错误报告将邮件反弹回原始发件人,通常包括无法传递原始邮件的原因。 您不应该反弹垃圾邮件,因为返回路径:header或From:header中的电子邮件地址可能不存在,或者是无辜者的电子邮件地址,因此反弹消息可能会转到无辜者的电子邮件地址,从而产生反向散射问题。在接受电子邮件之前,您应该在SMTP对话框中拒绝垃圾邮件,而不是反弹垃圾邮件。这篇文章没有显示你转发垃圾邮件。你应该记住这条规则,以防你自己创建垃圾邮件过滤规则。如果有疑问,测试你的垃圾邮件过滤规则,看看它是否会产生反弹消息。 URIBL_阻塞 默认情况下,SpamAssassin启用URIBL规则,该规则检查电子邮件是否包含URIBL标识为垃圾邮件的链接。这是一个非常有效的反垃圾邮件措施。但是,您可能无法查询URIBL。检查入站电子邮件的原始电子邮件标题,找到X-Spam-Status标题。 X-Spam-Status: No, score=-92.2 required=5.0 tests=DATING_SPAM,DKIM_SIGNED, DKIM_VALID,HTML_FONT_LOW_CONTRAST,HTML_MESSAGE,SPF_PASS, SUBSCRIPTION_SPAM,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_IN_WHITELIST autolearn=no autolearn_force=no version=3.4.2 如果你能在这个标题中找到URIBL_BLOCKED,那就意味着你无法查询URIBL。大多数情况下,这是因为您没有使用自己的本地DNS解析程序。您可以在邮件服务器上运行以下命令,以测试用于查询URIBL的DNS服务器。 host -tTXT 2.0.0.127.multi.uribl.com 样本输出: 2.0.0.127.multi.uribl.com descriptive text "127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: xx.xx.xx.xx]" 要修复此错误,您需要在邮件服务器上运行自己的本地DNS解析器。 在Debian上运行自己的绑定DNS解析器 在Ubuntu 18.04和16.04上运行自己的绑定DNS解析器 在Ubuntu 20.04上运行你自己的绑定DNS解析器 在CentOS/RHEL上运行自己的绑定DNS解析程序 一旦本地DNS解析器启动并运行,请再次测试URIBL。 host -tTXT 2.0.0.127.multi.uribl.com 如果您看到以下输出,这意味着您现在可以查询URIBL。 2.0.0.127.multi.uribl.com descriptive text "permanent testpoint" 从现在开始,入站电子邮件不会在X-Spam-Status标题中包含URIBL_BLOCKED标签。 防止传出垃圾邮件 后缀头和正文检查也可用于防止传出垃圾邮件。例如,如果您不希望电子邮件服务器向特定的电子邮件地址发送电子邮件,可以在/etc/postfix/header_检查中添加以下行。 /^To:.*fake.*/ DISCARD 上面这行测试To:标题是否包含假单词。如果找到,请丢弃电子邮件。我只是举一个简单的例子。当你的网站上有一张联系表格或注册表格,一些访问者使用表格上的假电子邮件地址在你的电子邮件服务器上生成垃圾邮件时,这可能很有用。 保存并关闭文件。然后运行以下命令重建哈希表。 sudo postmap /etc/postfix/header_checks 重新加载后缀以使更改生效。 sudo systemctl reload postfix 删除发送电子邮件的邮件头 您可以使用smtp_头_检查删除可能显示敏感信息的电子邮件头。smtp_头_检查仅在Postfix充当smtp客户端时应用,因此不会影响传入的电子邮件。 例如,您可能不想让收件人知道您正在邮件服务器上使用SpamAssassin,然后可以创建/etc/postfix/smtp_头_checks文件 sudo nano /etc/postfix/smtp_header_checks 并在文件中添加以下行。这会告诉Postfix在发送电子邮件时从电子邮件中删除X-Spam-Status和X-Spam-Checker-Version标题。 /^X-Spam-Status:/ IGNORE /^X-Spam-Checker-Version:/ IGNORE 保存并关闭文件。然后编辑后缀主配置文件。 sudo nano /etc/postfix/main.cf 在文件末尾添加以下行。 smtp_header_checks = pcre:/etc/postfix/smtp_header_checks 保存并关闭文件。接下来,运行以下命令。 sudo postmap /etc/postfix/smtp_header_checks 重新加载后缀以使更改生效。 sudo systemctl reload postfix 其他花絮 Debian/Ubuntu上的spamassassin包附带了一个Cron作业(/etc/Cron.daily/spamassassin),可以使用sa update命令每天自动更新规则集。 SpamAssassin 4.0包含一个HashBL插件,可以检查邮件正文中的比特币地址是否被骗子使用。还有一个名为“Ole宏”的新插件,可以检查电子邮件是否包含带有宏的Office附件。该插件将尝试检测被攻击的宏是否恶意。 收尾 我希望本教程能帮助您使用PostFix和SpamAssassin来过滤垃圾邮件。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:54
  • 如何使用Sendinblue在Ubuntu上设置后缀SMTP中继

    本教程将向您展示如何在Ubuntu上使用Sendinblue设置Postfix SMTP中继。Postfix是一种流行的开源SMTP服务器。之前我写过一篇文章,介绍如何使用iRedMail在Ubuntu上轻松设置一个完整的电子邮件服务器,这有助于许多读者运行自己的电子邮件服务器。 然而,一些读者告诉我,作为控制垃圾邮件的一种方式,托管提供商/ISP阻止了端口25,因此他们无法发送电子邮件。如果您要求,Vultr将解锁端口25,ScalaHost根本不会阻止端口25,因此我建议使用ScalaHost VPS。DigitalOcean等其他一些主机提供商/ISP将拒绝解除对25号端口的封锁。 本教程适用于所有当前的Ubuntu版本,包括Ubuntu 18.04、Ubuntu 20.04和Ubuntu 21.04。 SMTP接力救援 您可以绕过端口25,通过SMTP中继发送电子邮件,因为它使用TCP端口587。使用SMTP中继,您自己的电子邮件服务器不会直接将电子邮件发送到目标电子邮件地址。相反,有一个中间邮件服务器,也称为智能主机或中继主机,代表您发送电子邮件。您的电子邮件服务器通过TCP端口587与中继主机通信,然后中继主机通过端口25与收件人的邮件服务器通信。 SMTP中继还可以帮助您绕过反垃圾邮件黑名单,如果您的IP地址因任何原因被列入黑名单。收件人的邮件服务器会根据公共反垃圾邮件黑名单检查中继主机的IP地址,而不是您的服务器IP地址,因为SMTP中继服务保持良好的IP信誉,所以您的电子邮件可以通过IP黑名单。 使用Sendinblue每天免费发送300封电子邮件 有几个电子邮件服务提供商(ESP)可以充当中继主机。有些收取一点费用,有些每月提供免费配额。在本文中,我想向您展示如何使用Sendinblue,这是一家电子邮件服务提供商,允许您每天免费发送300封电子邮件。 Sendinblue的好处在于,当你使用免费的SMTP中继服务时,它不需要你输入信用卡的详细信息。还有其他ESP每月提供免费配额,但要求您输入信用卡详细信息。我知道当你没有信用卡时会有多沮丧。与其他ESP相比,Sendinblue也更容易设置。 步骤1:创建Sendinblue帐户 在sendinblue创建一个免费帐户。通用域名格式。完成用户配置文件后,单击事务选项卡,您将获得SMTP设置。如果没有SMTP设置,您需要联系Sendinblue客户服务以激活事务性电子邮件服务。 现在,您需要配置Postfix SMTP服务器以使用Sendinblue SMTP设置。 步骤2:使用Sendinblue设置后缀SMTP中继 首先,让我们使用以下命令在Ubuntu上安装Postfix SMTP服务器。如果Postfix已经在您的服务器上运行,那么请跳过安装Postfix,但您仍然需要安装libsasl2模块包。 sudo apt install postfix libsasl2-modules 当您看到以下消息时,按Tab键并按Enter键。 然后选择第二个选项:互联网站点。 接下来,设置系统邮件名称。例如,我输入我的域名linuxbabe。通用域名格式。 安装Postfix后,使用命令行文本编辑器(如Nano)打开主配置文件。 sudo nano /etc/postfix/main.cf 找到下面这行。 relayhost = 默认情况下,其值为空。将relayhost的值设置为[smtp relay.sendinblue.com]:587。 relayhost = [smtp-relay.sendinblue.com]:587 然后将以下行添加到此文件的末尾。 # outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000 保存并关闭文件。然后创建/etc/postfix/sasl_passwd文件。 sudo nano /etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用SendinBlue提供的您自己的用户名和密码替换smtp_用户名和smtp_密码。注意用户名和密码之间有一个冒号。 [smtp-relay.sendinblue.com]:587 smtp_username:smtp_password 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap /etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db 从现在起,Postfix将通过Sendinblue发送电子邮件。 第3步:添加发件人地址 单击Sendinblue account仪表板右上角的下拉菜单,然后选择发件人&amp;“IP”选项卡以添加您的域和发件人地址。 步骤4:在SendinBlue中设置SPF/DKIM身份验证 在这一步中,我们需要设置SPF和DKIM记录,如果您希望您的电子邮件进入收件人的收件箱而不是垃圾邮件文件夹,强烈建议您这样做。 SPF:发送方策略框架。这是一个DNS记录,指定允许为您的域发送电子邮件的IP地址。 DKIM:DomainKeys已识别邮件。Sendinblue将使用私钥对您的电子邮件进行数字签名。DKIM记录包含一个公钥,允许收件人的电子邮件服务器验证签名。 在SendinBlue仪表板中,单击右上角的帐户名,然后单击Senders&amp;IPs。选择域选项卡-&gt;管理-&gt;验证这个域。 一个弹出窗口出现。您需要为您的域添加前3条记录。 创建SPF和DKIM记录后,请稍等片刻,然后单击添加的记录。请确认一下按钮。根据您的DNS托管服务,您的新DNS记录可能需要一些时间才能在Internet上传播。 去https://dnsmap.io检查您的DNS记录是否已传播到Internet。 有关DKIM记录,请访问https://www.dmarcanalyzer.com/dkim/dkim-check/,输入mail作为选择器,并输入域名以检查DKIM记录传播以及DKIM记录中是否存在错误。 如果SPF和DKIM记录设置正确且经过验证,则您的域将在Sendinblue中通过身份验证。 发送测试电子邮件 现在我们可以使用mailx命令发送测试电子邮件,如下所示。 sudo apt install bsd-mailx echo "this is a test email." | mailx -r from-address -s hello to-address 您还可以从webmail客户端或桌面邮件客户端发送测试电子邮件。在网上测试你的电子邮件分数也是个好主意https://www.mail-tester.com.如你所见,我得了满分。 故障排除 如果您的电子邮件未送达,而您在邮件日志(/var/log/mail.log)中发现以下消息, Relay access denied (in reply to RCPT TO command)) 然后,您可能需要编辑/etc/postfix/sasl_passwd文件,并删除主机名后面的端口号,如下所示。 smtp-relay.sendinblue.com smtp_username:smtp_passowrd 保存并关闭文件。然后再次构建索引文件。 sudo postmap /etc/postfix/sasl_passwd 重新启动Postfix以使更改生效。 sudo systemctl restart postfix 现在,您可以刷新电子邮件队列(尝试发送以前的电子邮件)。 sudo postqueue -f 添加其他域 如果您在新主机上为新域名设置邮件服务器,并且希望为此新域名设置SMTP中继,则只需再次执行步骤2、步骤3和步骤4。 收尾 就这样!我希望本教程能帮助你在Ubuntu上设置Postfix SMTP中继,绕过端口25或IP黑名单。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.24 浏览:181
  • 如何使用Mailjet在Ubuntu上设置后缀SMTP中继

    本教程将向您展示如何在Ubuntu上使用Mailjet设置Postfix SMTP中继。Postfix是一种流行的开源SMTP服务器。之前我写过一篇文章,介绍如何使用iRedMail在Ubuntu上轻松设置一个完整的电子邮件服务器,帮助很多读者运行自己的电子邮件服务器。 然而,一些读者告诉我,作为控制垃圾邮件的一种方式,25端口被主机提供商或ISP屏蔽,因此他们无法发送电子邮件。如果你要求,Vultr会解锁端口25,而ScalaHost根本不会阻止端口25,所以我建议使用ScalaHost VPS,其他一些主机提供商或ISP(如DigitalOcean)会拒绝解锁端口25。 SMTP接力救援 您可以绕过端口25,通过SMTP中继向外部世界发送电子邮件,因为它使用端口587。使用SMTP中继,您自己的电子邮件服务器不会直接将电子邮件发送到目标电子邮件地址。相反,有一个中间邮件服务器,也称为智能主机或中继主机,代表您发送电子邮件。您的电子邮件服务器通过端口587与智能主机通信,然后智能主机通过端口25与收件人的邮件服务器通信。 SMTP中继还可以帮助您绕过反垃圾邮件黑名单,如果您的IP地址因任何原因被列入黑名单。收件人的邮件服务器根据公共反垃圾邮件黑名单检查智能主机的IP地址,而不是检查您的服务器IP地址,因为SMTP中继服务保持良好的IP信誉,所以您的电子邮件可以通过IP黑名单。 使用Mailjet每天免费发送200封电子邮件 有几个电子邮件服务提供商(ESP)可以充当智能主机。有些收取一点费用,有些每月提供免费配额。在本文中,我想向您展示如何使用Mailjet,这是一家电子邮件服务提供商,允许您每天免费发送200封电子邮件。 Mailjet的好处在于,当你使用免费的SMTP中继服务时,它不需要你输入信用卡的详细信息。还有其他ESP每月提供免费配额,但要求您输入信用卡详细信息。(我知道当你没有信用卡时会有多沮丧。)与其他ESP相比,Mailjet也更容易设置。 在mailjet上创建一个帐户。通用域名格式。然后在仪表板上,你可以看到你需要做的三件事。 设置SMTP 管理发件人地址 设置域身份验证(SPF和DKIM) 第一步:在Ubuntu上设置后缀SMTP中继 首先,让我们使用以下命令在Ubuntu上安装Postfix SMTP服务器。如果Postfix已经在您的服务器上运行,那么请跳过安装Postfix,但您仍然需要安装libsasl2模块包。 sudo apt install postfix libsasl2-modules 当您看到以下消息时,按Tab键并按Enter键。 然后选择第二个选项:互联网站点。 接下来,设置系统邮件名称。例如,我输入我的域名linuxbabe。通用域名格式。 安装Postfix后,打开配置文件。 sudo nano /etc/postfix/main.cf 找到下面这行。 relayhost = 默认情况下,不会设置其值。你需要从你的mailjet账户中获取这个值。在mailjet仪表板中,单击设置我的SMTP。 您将看到SMTP服务器地址和SMTP凭据。 在Postfix配置文件中,将relayhost的值设置为In-v3。mailjet。com:587。 relayhost = in-v3.mailjet.com:587 然后将以下行添加到此文件的末尾。 # outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000 保存并关闭文件。然后创建/etc/postfix/sasl_passwd文件。 sudo nano /etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用真正的Mailjet api密钥和密钥替换api密钥和密钥。 in-v3.mailjet.com:587  api-key:secret-key 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap /etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db 从现在起,Postfix将通过mailjet发送电子邮件。 第2步:添加发件人地址 要通过mailjet发送电子邮件,您需要添加发件人域或发件人地址。在mailjet dashboard中,单击管理发件人地址。您可以验证整个域或特定电子邮件地址。 步骤3:设置域身份验证 在这一步中,我们需要设置SPF和DKIM记录,如果您希望您的电子邮件进入收件人的收件箱而不是垃圾邮件文件夹,强烈建议您这样做。 SPF:发送方策略框架。这是一个DNS记录,指定允许哪些IP地址从您的域发送电子邮件。 DKIM:DomainKeys已识别邮件。Mailjet将使用私钥对您的电子邮件进行数字签名。DKIM记录包含一个公钥,允许收件人的电子邮件服务器验证签名。 在mailjet仪表板中,单击设置域身份验证。默认情况下,SPF状态和DKIM状态都是错误的。单击管理按钮并按照说明添加SPF和DKIM记录。 创建SPF和DKIM记录后,请稍等片刻,然后刷新mailjet网页。您的新DNS记录可能需要一些时间才能在Internet上传播,具体取决于您的DNS托管服务。如果SPF和DKIM记录设置正确且传播完成,mailjet会告诉您SPF和DKIM记录良好。 发送测试电子邮件 现在我们可以使用mailx命令发送测试电子邮件,如下所示。 sudo apt install bsd-mailx echo "this is a test email." | mailx -r from-address -s hello to-address 您还可以从webmail客户端或桌面邮件客户端发送测试电子邮件。在网上测试你的电子邮件分数也是个好主意https://www.mail-tester.com.如你所见,我得了满分。 故障排除 如果您的电子邮件未送达,而您在邮件日志(/var/log/mail.log)中发现以下消息, Relay access denied (in reply to RCPT TO command)) 然后,您可能需要编辑/etc/postfix/sasl_passwd文件,并删除主机名后面的端口号,如下所示。 in-v3.mailjet.com  api-key:secret-key 保存并关闭文件。然后再次构建索引文件。 sudo postmap /etc/postfix/sasl_passwd 重新启动Postfix以使更改生效。 sudo systemctl restart postfix 现在,您可以刷新电子邮件队列(尝试发送以前的电子邮件)。 sudo postqueue -f 添加其他域 如果在新计算机上为新域名设置邮件服务器,并且要为此新域名设置SMTP中继,请执行相同的步骤: 配置后缀SMTP中继设置, 在Mailjet仪表板中验证新域名 设置SPF和DKIM验证 收尾 就这样!我希望本教程能帮助你在Ubuntu上设置Postfix SMTP中继,绕过端口25或IP黑名单。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心。

    2022.03.24 浏览:198
  • 7个有效的建议来阻止你的邮件被标记为垃圾邮件

    在之前的文章中,我们讨论了如何使用iRedMail或Modoboa轻松设置自己的电子邮件服务器,或者从头开始设置电子邮件服务器。然而,许多人无法将他们的电子邮件放入Gmail、Hotmail或Yahoo mail的收件箱,尽管他们在mail tester上的分数是10/10。通用域名格式。在这篇文章中,我将向你展示我的所有技巧,可以让你的电子邮件从收件人的垃圾邮件文件夹。 注意:本文不适用于垃圾邮件发送者。如果你发送垃圾邮件,不管你怎么努力,你的电子邮件最终都会被放入垃圾邮件文件夹。 6种类型的电子邮件 首先,你需要了解你发送的是哪种类型的电子邮件。在本文中,我将电子邮件分为6类: 个人电子邮件 事务性电子邮件 营销电子邮件/时事通讯 小组讨论邮件 冷冰冰的电子邮件 垃圾邮件 个人电子邮件通常由一个人发送给他的朋友、家人、同事等等。通常只有一个收件人。 事务性电子邮件从网站或web应用程序发送给用户。例如,访问者在网站上创建帐户后收到电子邮件,或请求重置密码。每封邮件只有一个收件人。 网站所有者向其订阅者发送营销电子邮件/时事通讯,以通知新的博客帖子、网络研讨会或推广产品和服务。每封邮件有许多收件人。订阅者只能回复列表所有者,但不能向其他订阅者发送电子邮件。 小组讨论邮件在开源软件开发中很常见。例如,Linux内核邮件列表允许订阅者讨论Linux内核开发。订阅者可以向邮件列表中的所有其他订阅者发送电子邮件。 冷邮件和垃圾邮件都是未经请求的电子邮件。不同之处在于,冷冰冰的电子邮件通常针对特定的人群来销售服务,如果收件人回复,发件人将提供真正的服务。垃圾邮件被发送给随机的人,通常是骗局。 四大邮箱提供商 邮箱提供商也称为收件箱服务提供商。有时人们称他们为ISP(互联网服务提供商)。实际上,宽带提供商和主机提供商也可以被称为ISP。最常用的邮箱提供程序有: Gmail 雅虎邮件 Microsoft Mail(Hotmail、Outlook、Live) 美国在线邮件 3电子邮件可交付性因素 当邮箱提供商决定你的邮件是否是垃圾邮件时,他们会考虑三个主要因素。 电子邮件标准遵从性 IP地址信誉 域名声誉 我将根据以下三个因素为您提供摆脱垃圾邮件文件夹的提示。请注意,改善您的IP声誉和域声誉需要时间,所以请耐心等待。 提示#1:设置电子邮件身份验证并获得10/10分 这与电子邮件标准合规性有关。你可能已经这样做了,但为了彻底讨论这个问题,我还需要谈谈。垃圾邮件发送者通常不符合电子邮件标准。为您的电子邮件服务器设置电子邮件身份验证(正确的PTR、SPF、DKIM、DMARC记录),并在mail tester上获得10/10的分数。com将增加你的电子邮件进入收件箱的机会。 提示2:使用SMTP中继服务 如果你的邮件服务器以前从未发送过电子邮件,那么你的IP地址就没有信誉(好的或坏的),主要邮箱提供商更可能将你的电子邮件放入垃圾邮件文件夹。不在黑名单上并不意味着你的IP地址具有良好的声誉,如果一个IP地址块上有非常糟糕的垃圾邮件发送者,它可能会影响该IP地址块附近的其他人。 SMTP中继服务保持良好的IP声誉。它们会阻止坏的发件人,并增加好的发件人,因此使用SMTP中继服务将增加进入收件箱的机会。 如何使用Sendinblue在Ubuntu上设置SMTP中继 如何使用Sendinblue在Debian上设置SMTP中继 如何使用Sendinblue在CentOS/Rocky Linux上设置SMTP中继 提示#3:使用托管VPS托管 如果你想使用自己的服务器而不是SMTP中继服务来发送电子邮件,那么拥有干净的IP地址来发送合法的批量电子邮件是非常重要的。不幸的是,像DigitalOcean和Vultr这样的大型知名VPS提供商被垃圾邮件发送者滥用,他们会滥用他们能找到的所有VPS提供商。请注意,VP有两种类型: 自我管理VPS:托管公司只确保您的VPS在线,不提供额外的技术帮助。您负责软件安装、设置、优化、更新、备份、正常运行时间监控和恶意软件扫描。 托管VPS:托管公司确保您的VPS在线,并为您管理服务器。你不需要担心软件安装、设置、优化、更新、备份、正常运行时间监控和恶意软件扫描。 与其使用自我管理的VPS,不如使用受管理的VPS来运行邮件服务器。这是因为托管VPS是由托管公司的技术支持人员配置的,如果客户发送垃圾邮件,它会很快被阻止,因此托管VPS的IP地址不会被列入黑名单。 托管VPS比自行管理的VPS稍微贵一些,但与SMTP中继服务相比,它仍然非常便宜,而且如果你关心发送合法的批量电子邮件,它确实是值得的。 我在ScalaHost上运行邮件服务器。从下面的截图可以看出,我的邮件服务器的IP地址(130.51.180.110)不在任何黑名单上。 Gmail认为我的IP声誉很高。 提示#4:将您的IP添加到白名单 dnswl。org是最著名的公共电子邮件白名单。您可以转到自助服务页面,在网站上注册帐户,然后添加邮件服务器信息。如果幸运的话,邮件服务器的IP地址可能会被添加到白名单中。 在DNSWL上创建帐户后,您应该单击DNSWL ID选项卡来创建ID。输入您的域名并验证域所有权。然后将邮件服务器IP地址添加到DNSWL ID中。 您的IP地址不会立即添加到您的DNSWL ID。您的更改请求必须得到DNSWL管理员的批准。一旦获得批准,您的IP地址将出现在您的DNSWL ID中,这意味着您的邮件服务器IP地址将添加到白名单中。 注意:您应该遵循电子邮件发送最佳实践,绝不发送垃圾邮件,否则您的IP地址将从dnswl中删除。组织白名单。 dnswl。org对一个IP地址有5分/可信度。分数越高越好。 0/无:仅避免直接阻塞(-0.1) 1/低:降低误报率(-1.0) 2/中等–确保避免误报,但允许覆盖明确的情况(-10.0) 3/高–避免超控(-100.0)。 括号中的分数是SpamAssassin分数,将应用于您的电子邮件。在Spamasassin中,分数越低越好。 默认情况下,您的IP地址的可信度为0分/无。如果您使用ScalaHost并严格遵循本文所述的电子邮件发送最佳实践,随着时间的推移,您的IP地址将在dnswl获得更高的分数/可信度。组织。 您可以使用以下命令检查当前分数,其中78.56.34.12是IP地址的反向符号。 host 78.56.34.12.list.dnswl.org 例如,我的邮件服务器的IP地址是130.51.180.110,所以我运行以下命令来检查当前的分数。 host 110.180.51.130.list.dnswl.org 返回地址的最后一位是dnswl分数。正如你所见,我的dnswl分数是1。 在dnswl获得2到3分并不容易。组织。你需要多年的业绩记录才能实现这一目标。 小贴士#5:建立一个网站,创造积极的参与信号 域名声誉是影响邮箱提供商决策的最终因素。如果你的域名在邮箱提供商中享有很高的声誉,那么即使你没有严格遵守电子邮件标准或你的IP地址声誉不佳,你的电子邮件也会进入收件人的收件箱。 注意:我不是建议你忽略其他提示。 Gmail postmaster工具显示我的域名拥有很高的域名声誉。 如果你有一个新域名,或者你从未用你的域名发送过电子邮件,那么大邮箱提供商就不知道你。你的域名没有任何声誉(好或坏)。那么,你如何着手改善你的域名声誉呢? 主要有两件事与你的域名声誉有关:网站质量和电子邮件收件人参与度。 网站质量 首先,你的网站会影响你的域名声誉。以下内容会降低你的声誉分数。 没有与你的域名相关的网站。 你的网站只有一个空白页面。 你的网站被用来传播病毒。 以下项目将提高你的声誉分数。 有一个网站与你的域名相关。 你的网站使用HTTPS。 你的网站有独特的、高质量的内容。 如果你还没有网站,你可以按照下面的教程之一建立WordPress博客。 使用Apache、MariaDB和PHP7在Ubuntu20.04上安装WordPress。4(灯) 使用Nginx、MariaDB和PHP7在Ubuntu20.04上安装WordPress。4(LEMP) 使用Nginx、MariaDB和PHP7在Ubuntu18.04上安装WordPress。2(LEMP) 电子邮件收件人约定 另一个可能影响你的域名声誉的更重要的事情是收件人对你的电子邮件的参与度。积极参与越多,你的域名声誉就会越高。积极参与包括: 打开你的电子邮件。 点击电子邮件中的链接。 回复你的邮件。 将您的电子邮件地址添加到联系人列表(非常积极的订婚信号) 将您的电子邮件从垃圾邮件文件夹移动到收件箱(非常积极的参与信号) 消极参与包括: 删除你的电子邮件而不打开它。 单击电子邮件中的“取消订阅”链接。 将您的电子邮件报告为垃圾邮件(非常负面的订婚信号) 但你可能会问:如果我的电子邮件一开始就无法进入收件箱,我该如何创造积极的参与?嗯,对于不同的电子邮件发送者有不同的方式。我将电子邮件发送者分为两组。 那些发送交易性电子邮件的人 那些不发送交易性电子邮件的人 如果您发送事务性电子邮件 如果你发送事务性电子邮件,很容易与收件人积极互动,因为收件人希望你向他/她发送电子邮件。在你的网站上,你可以告诉收件人检查垃圾邮件文件夹,并将你的电子邮件标记为非垃圾邮件。他们更有可能打开你的电子邮件并点击电子邮件中的链接。随着时间的推移,你的电子邮件会自动进入收件箱。 请注意,邮件列表注册确认电子邮件是事务性电子邮件,因此,如果您的网站上有新闻稿注册表单,您还可以告诉收件人检查垃圾邮件文件夹,并将您的电子邮件地址添加到联系人列表中。收件人很可能会单击电子邮件中的确认链接。 如果您不发送事务性电子邮件 如果你运行一个只供个人使用的自托管邮件服务器,你就更难创建最初的积极参与,但你可以: 使用您的原始电子邮件地址向您的联系人列表发送电子邮件,告诉他们您将使用新的电子邮件地址,并要求他们将其添加到他们的联系人列表中。 在您的原始电子邮件地址创建一条自动回复消息,告诉发件人将您的新电子邮件地址添加到联系人列表中,并向新电子邮件地址发送电子邮件。 向你的家人、朋友、同事寻求帮助。向他们发送虚构的电子邮件,并要求他们将您的电子邮件从垃圾邮件文件夹移动到收件箱。你可能需要给每个人发几封虚构的电子邮件。 如果你发送冷冰冰的电子邮件,你需要格外小心如何接近收件人。他们没有索要你的电子邮件,如果你一次又一次地给他们发送电子邮件,他们很可能会将你的电子邮件报告为垃圾邮件。别急。如果收件人在收到两三封电子邮件后没有回复,请停止向他们发送电子邮件。 提示#6:不要更改邮件服务器的主机名或From:域名。 如果你在子域中只更改一封信,邮箱提供商的电子邮件过滤器将以不同的方式对待你,你将失去你建立的域声誉。子域继承了apex域(一个不包含子域的域)的部分声誉,但不是全部声誉。每个子域都有自己的声誉。请注意,来自同一域名的每个电子邮件地址也有自己的个人声誉。 小贴士7:永远不要发送垃圾邮件 最后但并非最不重要的一点是,你不应该发送垃圾邮件。如果你发送垃圾邮件,不管你怎么努力,你的电子邮件最终都会被放入垃圾邮件文件夹,甚至会被彻底拒绝。你的服务器IP地址将被列入黑名单。你的域名声誉也将受到损害。有些人不知道他们在发送垃圾邮件,而实际上他们知道。 垃圾邮件也称为未经请求的批量电子邮件。这是垃圾邮件的两个条件。 未经请求的电子邮件:如果一个人没有明确授予你发送电子邮件的权限,而你向此人发送了一封电子邮件,那就是未经请求的电子邮件。 批量电子邮件:如果你只向一个人发送未经请求的电子邮件,那就不是垃圾邮件。当你主动向很多人发送电子邮件时,它就变成了垃圾邮件。 合法批量电子邮件的一个例子是,您在网站上使用双重选择加入表单创建电子邮件列表。访客必须点击确认链接才能订阅您的电子邮件列表。 时事通讯/营销电子邮件发件人提示 除了上述一般提示外,以下是一些针对时事通讯/营销电子邮件发件人的具体提示。 确保收件人允许你发送电子邮件。使用double opt-in验证订阅者的电子邮件地址。如果你不这样做,你很有可能会有电子邮件发送问题。你不应该从第三方购买电子邮件列表。 高跳出率(&gt;5%)可能会损害发件人的声誉。您可以使用Truemail或Abstract API等批量电子邮件地址验证工具从列表中删除无法发送的电子邮件地址。 如果更改邮件服务器IP地址,或使用新子域,则需要预热IP地址/子域。例如,第一天发送100封电子邮件,第二天发送500封电子邮件,第三天发送1000封电子邮件。不要立即向成千上万的人发送电子邮件。 发送收件人真正想要的电子邮件。 在邮件底部附上你的联系信息和邮寄地址。 尽可能对电子邮件进行个性化设置。例如,在邮件正文中包含收件人的名字,并根据订户的性别、年龄、兴趣、国家等对列表进行分段。 遵守CAN-SPAM法案 避免大型附件。 清理你的邮件列表。例如,删除过去60天内未打开您的电子邮件的电子邮件订户。这通常被称为电子邮件日落策略。未授权的订阅者不会为你赚钱,他们会损害你的域名声誉。 在发送电子邮件之前,请使用GlockApps测试您的电子邮件位置。 发送频率要一致。如果你在第一个月向你的订阅者发送电子邮件,但在接下来的6个月内停止发送电子邮件,那么你的订阅者不记得你了,邮箱提供商可能会将你的电子邮件放入垃圾邮件文件夹。 保持你的开放率高于20%,垃圾邮件率低于1%。你可以通过Gmail Postmaster工具查看垃圾邮件率。 如果你发送时事通讯/营销邮件,那么你的邮件很可能会出现在Gmail的促销标签中。进入主选项卡的一种方法是在电子邮件中只使用纯文本。 不要从电子邮件中删除“取消订阅列表”标题。如果您发送新闻稿,则需要“列表取消订阅”标题。它使用户可以轻松地从您的邮件列表中取消订阅。当一个人想要退订时,你不应该阻止他/她退订。 有时邮箱提供商会暂时停止接受您的新闻稿电子邮件。不要惊慌。他们只是想通过查看用户对你已经发送的电子邮件的行为来了解你是否在发送垃圾邮件。如果他们认定你不是垃圾邮件发送者,你的其他电子邮件将被接受。这种延迟可能长达24小时。 您的电子邮件不会放在所有收件人的收件箱中。其中一些可能会被放在垃圾邮件文件夹中。这取决于特定收件人如何与您以前的电子邮件互动。因此,与邮件列表中的每一位订户保持良好的关系非常重要。 小心使用电子邮件诅咒词,如减肥、赚钱等。一般来说,你不应该在电子邮件中使用它们,除非你已经建立了良好的域名声誉,并且之前与收件人有良好的互动关系。 不要在电子邮件中过度使用大写字母、粗体字母和突出显示。这些是垃圾邮件发送者用来吸引收件人注意的常用技巧。 不要发送大量电子邮件太快。一次发送1万封电子邮件会在各地引发警报。在我看来,默认的Postfix SMTP服务器交付速度太快,如果你发送电子邮件给10K订户。在Postfix配置文件中添加默认u destinationu rateu delay=2s和默认u destinationu recipientu limit=50,以稍微降低速度。当你有超过10K的电子邮件用户时,也可以考虑部署多个SMTP服务器,这样批量邮件活动可以在SMTP服务器上传播。 修复受损的域声誉可能很耗时,但要改善从未发送过电子邮件的新域或子域的声誉很容易。如果你在主域名上有很高的声誉,你不需要使用子域。如果你的域名声誉受损,你可以尝试使用一个新的子域作为发件人:地址来发送电子邮件。 SMTP速率限制 我们可以使用名为policyd rate limit的后缀策略守护进程。 sudo apt install policyd-rate-limit 编辑配置文件。 sudo nano /etc/policyd-rate-limit.yaml 找到下面几行。 limits: - [10, 60] # limit to 10 mails by minutes - [150, 86400] # limits to 150 mails by days 默认限制太过严格。我使用以下设置,因此我的Postfix SMTP服务器每小时最多可以发送20000封电子邮件。 limits: - [333, 60] # limit to 333 mails per minute 还可以找到下面两行。 limit_by_sender: False limit_by_ip: False 并将值更改为True。 limit_by_sender: True limit_by_ip: True 保存并关闭文件。然后编辑后缀主配置文件。 sudo nano /etc/postfix/main.cf 告诉Postfix使用以下设置的限速服务。check_policy_服务应该是第一个限制。 smtpd_recipient_restrictions = check_policy_service { unix:ratelimit/policy, default_action=DUNNO }, ... ... 保存并关闭文件。 sudo systemctl restart postfix policyd-rate-limit 收尾 我希望这些建议能帮助你摆脱垃圾邮件文件夹。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.24 浏览:70
  • 如何使用Sendinblue在Debian上设置后缀SMTP中继

    本教程将向您展示如何在Debian上使用Sendinblue设置Postfix SMTP中继。Postfix是一种流行的开源SMTP服务器。之前,我写了一篇文章,介绍了如何在Debian上使用iRedMail轻松设置一个完整的电子邮件服务器,这帮助许多读者运行自己的电子邮件服务器。 然而,一些读者告诉我,作为控制垃圾邮件的一种方式,托管提供商/ISP阻止了端口25,因此他们无法发送电子邮件。如果您要求,Vultr将解锁端口25,ScalaHost根本不会阻止端口25,因此我建议使用ScalaHost VPS。DigitalOcean等其他一些主机提供商/ISP将拒绝解除对25号端口的封锁。 本教程适用于所有当前的Debian版本,包括Debian 9和Debian 10。 SMTP接力救援 您可以绕过端口25,通过SMTP中继发送电子邮件,因为它使用TCP端口587。使用SMTP中继,您自己的电子邮件服务器不会直接将电子邮件发送到目标电子邮件地址。相反,有一个中间邮件服务器,也称为智能主机或中继主机,代表您发送电子邮件。您的电子邮件服务器通过TCP端口587与中继主机通信,然后中继主机通过端口25与收件人的邮件服务器通信。 SMTP中继还可以帮助您绕过反垃圾邮件黑名单,如果您的IP地址因任何原因被列入黑名单。收件人的邮件服务器会根据公共反垃圾邮件黑名单检查中继主机的IP地址,而不是您的服务器IP地址,因为SMTP中继服务保持良好的IP信誉,所以您的电子邮件可以通过IP黑名单。 使用Sendinblue每天免费发送300封电子邮件 有几个电子邮件服务提供商(ESP)可以充当中继主机。有些收取一点费用,有些每月提供免费配额。在本文中,我想向您展示如何使用Sendinblue,这是一家电子邮件服务提供商,允许您每天免费发送300封电子邮件。 Sendinblue的好处在于,当你使用免费的SMTP中继服务时,它不需要你输入信用卡的详细信息。还有其他ESP每月提供免费配额,但要求您输入信用卡详细信息。我知道当你没有信用卡时会有多沮丧。与其他ESP相比,Sendinblue也更容易设置。 步骤1:创建Sendinblue帐户 在sendinblue创建一个免费帐户。通用域名格式。完成用户配置文件后,单击事务选项卡,您将获得SMTP设置。如果没有SMTP设置,您需要联系Sendinblue客户服务以激活事务性电子邮件服务。 现在,您需要配置Postfix SMTP服务器以使用Sendinblue SMTP设置。 步骤2:在Debian服务器上使用Sendinblue设置后缀SMTP中继 首先,让我们使用以下命令在Debian上安装Postfix SMTP服务器。如果Postfix已经在您的服务器上运行,那么请跳过安装Postfix,但您仍然需要安装libsasl2模块包。 sudo apt install postfix libsasl2-modules 当您看到以下消息时,按Tab键并按Enter键。 然后选择第二个选项:互联网站点。 接下来,设置系统邮件名称。例如,我输入我的域名linuxbabe。通用域名格式。 安装Postfix后,使用命令行文本编辑器(如Nano)打开主配置文件。 sudo nano /etc/postfix/main.cf 找到下面这行。 relayhost = 默认情况下,其值为空。将relayhost的值设置为[smtp relay.sendinblue.com]:587。 relayhost = [smtp-relay.sendinblue.com]:587 然后将以下行添加到此文件的末尾。 # outbound relay configurations smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000 保存并关闭文件。然后创建/etc/postfix/sasl_passwd文件。 sudo nano /etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用SendinBlue提供的您自己的用户名和密码替换smtp_用户名和smtp_密码。注意用户名和密码之间有一个冒号。 [smtp-relay.sendinblue.com]:587 smtp_username:smtp_password 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap /etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl restart postfix 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db 从现在起,Postfix将通过Sendinblue发送电子邮件。 第3步:添加发件人地址 单击Sendinblue account仪表板右上角的下拉菜单,然后选择发件人&amp;“IP”选项卡以添加您的域和发件人地址。 步骤4:在SendinBlue中设置SPF/DKIM身份验证 在这一步中,我们需要设置SPF和DKIM记录,如果您希望您的电子邮件进入收件人的收件箱而不是垃圾邮件文件夹,强烈建议您这样做。 SPF:发送方策略框架。这是一个DNS记录,指定允许为您的域发送电子邮件的IP地址。 DKIM:DomainKeys已识别邮件。Sendinblue将使用私钥对您的电子邮件进行数字签名。DKIM记录包含一个公钥,允许收件人的电子邮件服务器验证签名。 在SendinBlue仪表板中,单击右上角的帐户名,然后单击Senders&amp;IPs。选择域选项卡-&gt;管理-&gt;验证这个域。 一个弹出窗口出现。您需要为您的域添加前3条记录。 创建SPF和DKIM记录后,请稍等片刻,然后单击添加的记录。请确认一下按钮。根据您的DNS托管服务,您的新DNS记录可能需要一些时间才能在Internet上传播。 去https://dnsmap.io检查您的DNS记录是否已传播到Internet。 有关DKIM记录,请访问https://www.dmarcanalyzer.com/dkim/dkim-check/,输入mail作为选择器,并输入域名以检查DKIM记录传播以及DKIM记录中是否存在错误。 如果SPF和DKIM记录设置正确且经过验证,则您的域将在Sendinblue中通过身份验证。 发送测试电子邮件 现在我们可以使用mailx命令发送测试电子邮件,如下所示。 sudo apt install bsd-mailx echo "this is a test email." | mailx -r from-address -s hello to-address 您还可以从webmail客户端或桌面邮件客户端发送测试电子邮件。在网上测试你的电子邮件分数也是个好主意https://www.mail-tester.com.如你所见,我得了满分。 故障排除 如果您的电子邮件未送达,而您在邮件日志(/var/log/mail.log)中发现以下消息, Relay access denied (in reply to RCPT TO command)) 然后,您可能需要编辑/etc/postfix/sasl_passwd文件,并删除主机名后面的端口号,如下所示。 smtp-relay.sendinblue.com smtp_username:smtp_passowrd 保存并关闭文件。然后再次构建索引文件。 sudo postmap /etc/postfix/sasl_passwd 重新启动Postfix以使更改生效。 sudo systemctl restart postfix 现在,您可以刷新电子邮件队列(尝试发送以前的电子邮件)。 sudo postqueue -f 添加其他域 如果您在新主机上为新域名设置邮件服务器,并且希望为此新域名设置SMTP中继,则只需再次执行步骤2、步骤3和步骤4。 收尾 就这样!我希望本教程能帮助您在Debian上设置Postfix SMTP中继,绕过端口25或IP黑名单。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.24 浏览:73
  • 第四部分:设立SPF和#038;Debian服务器上带后缀的DKIM

    在完成第1部分和第2部分之后,我们有了一个工作的Postfix SMTP服务器和Dovecot IMAP服务器。我们可以使用桌面电子邮件客户端发送和接收电子邮件。在本教程中,我们将学习如何通过在Debian服务器上设置SPF和DKIM来改进向收件人收件箱的电子邮件传递。 什么是SPF和DKIM记录? SPF和DKIM是DNS中的两种TXT记录,允许您检测电子邮件欺骗,并帮助合法电子邮件发送到收件人的收件箱,而不是垃圾邮件文件夹。如果你的域名被电子邮件欺骗所滥用,那么如果你的电子邮件没有将你添加到通讯簿中,它们很可能会进入收件人的垃圾邮件文件夹。 SPF(发件人策略框架)记录指定允许哪些主机或IP地址代表域发送电子邮件。您应该只允许您自己的电子邮件服务器或ISP的服务器为您的域发送电子邮件。 DKIM(DomainKeys Identified Mail)使用私钥为从您的域发送的电子邮件添加签名。接收SMTP服务器通过使用相应的公钥验证签名,该公钥在域的DNS区域中发布。 步骤1:在DNS中创建SPF记录 在DNS管理界面中,创建一个新的TXT记录,如下所示。 Record Type Name Value TXT @ v=spf1 mx ~all 哪里: TXT表示这是一条TXT记录。 在name字段中输入@以表示apex域(example.com)。 v=spf1表示这是SPF记录,SPF记录版本为spf1。 mx意味着mx记录中列出的所有主机都被允许为您的域发送电子邮件,而所有其他主机都被禁止。 ~all表示来自您域的电子邮件应该只来自SPF记录中指定的主机。来自其他主机的电子邮件将被标记为不可信。可能的替代方案是+all,-all?都是,但很少使用。 -这一切都意味着,从不允许的主机发送的电子邮件应该被拒绝,永远不要进入收件人的收件箱或垃圾邮件文件夹。我见过facebook使用它。但是我们通常不需要这么严格的政策。 有些人可能会认为,这一切都会更好,因为它会拒绝来自不受信任主机的电子邮件。当收件人有两台SMTP服务器,并且主SMTP服务器脱机时,在SPF策略中使用-all可能会导致您自己的电子邮件被拒绝,您的电子邮件将临时存储在备份SMTP服务器上。当主SMTP服务器恢复联机时,电子邮件将从备份SMTP服务器中继到主SMTP服务器。由于您没有在SPF记录中列出收件人的备份SMTP服务器,该电子邮件将被收件人的主SMTP服务器拒绝。所以你应该在SPF策略中使用~all。 您还可以在SPF记录中列出特定的IP地址。 TXT @ v=spf1 mx ip4:12.34.56.78 ~all 请注意,一些DNS管理器要求您用下面的引号将SPF记录包装起来。 TXT @ "v=spf1 mx ~all" 要检查您的SPF记录是否传播到公共互联网,您可以在Linux设备上使用dig实用程序,如下所示。(在Debian上,需要安装bind9 dnsutils包才能使用dig命令:sudo apt install bind9 dnsutils) dig example.com txt txt选项告诉dig我们只想查询txt记录。 您还可以使用dmarcian SPF surveyor来测试SPF记录语法。 步骤2:在Debian服务器上配置SPF策略代理 我们还需要告诉我们的Postfix SMTP服务器检查接收电子邮件的SPF记录。这无助于发送电子邮件,但有助于检测伪造的传入电子邮件。 安装所需的软件包: sudo apt install postfix-policyd-spf-python 然后编辑Postfix主进程配置文件。 sudo nano /etc/postfix/master.cf 在文件末尾添加以下几行,这会告诉Postfix在启动SPF策略守护程序时启动它。 policyd-spf unix - n n - 0 spawn user=policyd-spf argv=/usr/bin/policyd-spf 保存并关闭文件。接下来,编辑后缀主配置文件。 sudo nano /etc/postfix/main.cf 在文件末尾追加以下行。第一行指定后缀策略代理超时设置。以下几行将通过拒绝未经授权的电子邮件和检查SPF记录来限制收到的电子邮件。 policyd-spf_time_limit = 3600 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:private/policyd-spf 保存并关闭文件。然后重新启动Postfix。 sudo systemctl restart postfix 下次,当你收到一封来自有SPF记录的域的电子邮件时,你可以在原始邮件标题中看到SPF检查结果。以下标题表示发件人从授权主机发送电子邮件。 Received-SPF: Pass (sender SPF authorized). 第3步:在Debian服务器上设置DKIM 安装OpenDKIM,这是DKIM发送者身份验证系统的开源实现。 sudo apt install opendkim opendkim-tools 然后将postfix用户添加到opendkim组。 sudo gpasswd -a postfix opendkim 编辑OpenDKIM主配置文件。 sudo nano /etc/opendkim.conf 取消对以下行的注释。 Canonicalization relaxed/simple Mode sv SubDomains no 找到下面这行。 #Nameservers   127.0.0.1 换成 Nameservers 8.8.8.8,1.1.1.1 这告诉OpenDKIM使用8.8.8.8和1.1.1.1来查询DNS记录。最好使用多个名称服务器。如果其中一个失败,另一个仍然可以回答DNS查询。用逗号分隔每个IP地址。 接下来,在文件末尾添加以下行。 # Map domains in From addresses to keys used to sign messages KeyTable refile:/etc/opendkim/key.table SigningTable refile:/etc/opendkim/signing.table # Hosts to ignore when verifying signatures ExternalIgnoreList /etc/opendkim/trusted.hosts # A set of internal hosts whose mail should be signed InternalHosts /etc/opendkim/trusted.hosts 保存并关闭文件。 第4步:创建签名表、密钥表和受信任主机文件 为OpenDKIM创建目录结构 sudo mkdir -p /etc/opendkim/keys 将所有者从root更改为opendkim,并确保只有opendkim用户可以读取和写入keys目录。 sudo chown -R opendkim:opendkim /etc/opendkim sudo chmod go-rw /etc/opendkim/keys 创建签名表。 sudo nano /etc/opendkim/signing.table 将以下行添加到文件中。这会告诉OpenDKIM,如果服务器上的发送者正在使用@example。com地址,则应使用默认标识的私钥对其进行签名_域名。你的领域。通用域名格式。 *@example.com default._domainkey.example.com 保存并关闭文件。然后创建键表。 sudo nano /etc/opendkim/key.table 添加下面一行,它告诉您私钥的位置。 default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private 保存并关闭文件。接下来,创建受信任的主机文件。 sudo nano /etc/opendkim/trusted.hosts 将以下行添加到新创建的文件中。这告诉OpenDKIM,如果电子邮件来自本地主机或同一域,则OpenDKIM不应对该电子邮件执行DKIM验证。 127.0.0.1 localhost *.example.com 保存并关闭文件。 步骤5:生成私钥/公钥对 我们需要生成两个密钥: 用于签署发送电子邮件的私钥。 用于接收SMTP服务器以验证DKIM签名的公钥。它将在您的DNS区域中发布,以便接收SMTP服务器可以找到它。 为域创建一个单独的文件夹。 sudo mkdir /etc/opendkim/keys/example.com 使用opendkim genkey工具生成密钥。 sudo opendkim-genkey -b 2048 -d example.com -D /etc/opendkim/keys/example.com -s default -v 上述命令将创建2048位密钥-d(域)指定域-D(directory)指定存储密钥的目录,我们使用默认值作为选择器(-s),也称为名称。执行命令后,私钥将被写入默认值。私有文件和公钥将被写入默认值。txt文件。 使opendkim成为私钥的所有者。 sudo chown opendkim:opendkim /etc/opendkim/keys/example.com/default.private 并更改权限,以便只有opendkim用户具有文件的读写权限。 sudo chmod 600 /etc/opendkim/keys/example.com/default.private 第6步:在DNS记录中发布公钥 显示公钥 sudo cat /etc/opendkim/keys/example.com/default.txt p参数后面的字符串是公钥。 在DNS管理器中,创建一个TXT记录,输入默认值_名称字段中的domainkey。然后返回终端窗口,复制括号中的所有内容,并将其粘贴到DNS记录的值字段中。您需要删除值字段中的所有双引号和空格。如果不删除它们,那么下一步的密钥测试可能会失败。 第7步:测试DKIM键 在Debian服务器上输入以下命令以测试密钥。 sudo opendkim-testkey -d example.com -s default -vvv 如果一切正常,您将在命令输出中看到键OK。 opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key 'default._domainkey.example.com' opendkim-testkey: key secure opendkim-testkey: key OK 请注意,您的DKIM记录可能需要一些时间才能传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://www.dmarcanalyzer.com/dkim/dkim-check/,输入默认值作为选择器,并输入您的域名以检查DKIM记录传播。 如果在命令输出中看到密钥不安全,请不要惊慌。这是因为您的域名上未启用DNSSEC。DNSSEC是安全DNS查询的安全标准。大多数域名都没有启用DNSSEC。绝对没有必要担心钥匙不安全。你可以继续遵循这个指南。 如果您看到查询超时错误,则表示您的服务器上存在DNS解析问题。您可以再次运行上面的命令,看看它是否有效。如果仍然不起作用,可以在/etc/opendkim中注释掉下面的行。conf文件并重新启动opendkim。服务 TrustAnchorFile /usr/share/dns/root.key 第8步:将Postfix连接到OpenDKIM Postfix可以通过Unix套接字文件与OpenDKIM通信。OpenDKIM使用的默认套接字文件是/run/OpenDKIM/OpenDKIM。sock,如/etc/opendkim所示。conf文件。但Debian附带的postfix SMTP守护程序在chroot监狱中运行,这意味着SMTP守护程序将解析与postfix队列目录(/var/spool/postfix)相关的所有文件名。所以我们需要更改OpenDKIM Unix套接字文件。 创建一个目录来保存OpenDKIM套接字文件,并且只允许OpenDKIM用户和postfix组访问它。 sudo mkdir /var/spool/postfix/opendkim sudo chown opendkim:postfix /var/spool/postfix/opendkim 然后编辑OpenDKIM主配置文件。 sudo nano /etc/opendkim.conf 找到下面这行。 Socket local:/run/opendkim/opendkim.sock 替换为以下行。 Socket local:/var/spool/postfix/opendkim/opendkim.sock 保存并关闭文件。接下来,打开/etc/default/opendkim文件。 sudo nano /etc/default/opendkim 找到下面这行。 SOCKET=local:$RUNDIR/opendkim.sock 换成 SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock" 保存并关闭文件。 接下来,我们需要编辑后缀主配置文件。 sudo nano /etc/postfix/main.cf 在这个文件的末尾添加以下几行,这样Postfix就可以通过milter协议调用OpenDKIM了。 # Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = local:opendkim/opendkim.sock non_smtpd_milters = $smtpd_milters 保存并关闭文件。然后重新启动opendkim和postfix服务。 sudo systemctl restart opendkim postfix 步骤9:SPF和DKIM检查 你现在可以从邮件服务器向你的Gmail账户发送一封测试邮件,看看SPF和DKIM检查是否通过。在Gmail中打开的电子邮件的右侧,如果单击下拉菜单中的“显示原始邮件”按钮,可以看到身份验证结果。 如果您的邮件未签名且DKIM检查失败,您可以检查postfix日志(/var/log/mail.log)以查看您的配置有何问题。如果您在邮件日志中看到以下消息, warning: connect to Milter service local:opendkim/opendkim.sock: No such file or directory 您可能需要检查opendkim systemd服务是否正在实际运行。 sudo systemctl status opendkim 如果opendkim正在运行,但仍然看到上述错误,则可能需要编辑/etc/postfix/main。cf文件,更改 smtpd_milters = local:opendkim/opendkim.sock 到 smtpd_milters = local:/opendkim/opendkim.sock 然后重新启动Postfix。 您的电子邮件服务器还将对发件人的域执行SPF和DKIM检查。您可以在电子邮件标题中看到结果。以下是使用Gmail对发件人进行的SPF和DKIM检查。 Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> Authentication-Results: email.linuxbabe.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co"; dkim-atps=neutral 第10步:测试电子邮件分数和位置 你也可以去https://www.mail-tester.com.你会看到一个独特的电子邮件地址。从你的域名发送电子邮件到此地址,然后检查你的分数。如你所见,我得了满分。 邮件测试员。com只能显示发件人分数。还有另一个名为GlockApps的服务,可以让你检查你的电子邮件是否放在收件人的收件箱或垃圾邮件文件夹中,或者直接被拒绝。它支持许多流行的电子邮件提供商,如Gmail、Outlook、Hotmail、YahooMail、iCloud mail等 微软邮箱 如果您的电子邮件被Microsoft Outlook或Hotmail拒绝,您需要提交发件人信息表。之后,Outlook/hotmail将接受您的电子邮件,但仍可能标记为垃圾邮件。 如果你的电子邮件仍被标记为垃圾邮件呢? 在这篇文章中,我有更多的建议:7个有效的建议来阻止你的电子邮件被标记为垃圾邮件。 下一步 在第5部分中,我们将了解如何创建DMARC记录以保护您的域免受电子邮件欺骗。一如既往,如果你觉得这篇文章有用,请订阅我们的免费时事通讯,或者在Twitter上关注我们,或者喜欢我们的Facebook页面。

    2022.03.24 浏览:87