我的自托管 Web 应用程序 (Ubuntu VPS) 需要在出现问题时向用户发送 noreply@ 通知。我实际上不需要接收电子邮件的功能,但我希望遵守互联网标准并启用诸如 postmaster@、abuse@ 等收件箱(我最担心的是,否则会触发反垃圾邮件保护,因为我的通知是在需要用户立即干预时发送的)。
为了实现上述目标,我安装了 Sendmail,配置了一些 DNS 记录,并打开 Sendmail 以公开监听端口 25 和 587(我认为这是接收外部电子邮件所必需的)。我现在可以完美地发送和接收电子邮件,但是,我担心安全性。
由于我的 SMTP 服务器对公众开放,而且我没有配置任何身份验证,这是否意味着某些恶意行为者可以代表我的服务自由发送电子邮件?是否有选项允许仅从本地主机发送电子邮件,这甚至是一种安全检查吗(外部发件人 IP 地址不能被欺骗为本地主机吗)?
答案1
是的,您很可能正在运行一个开放的邮件服务器,如果您还不是垃圾邮件来源,那么您很快就会成为垃圾邮件来源。您无需能够接收电子邮件即可发送。对于您的情况,我建议关闭端口 25 和 587,并且不必担心从那里检索 postmaster@ 或 abuse@ 电子邮件。
anx 在上面的评论中暗示的是,您的发送邮件服务器不必是您的接收邮件服务器。如果您觉得应该检索管理电子邮件,您可以设置 Google 重定向并使用它来检索管理邮件。如果您希望这些邮件进入您的新服务器,您应该在打开端口之前设置身份验证。
答案2
发送 SMTP 没有问题。接收可能有问题。
确保您的 sendmail 配置不是开放中继。
您可以运行此命令来阻止开放中继
sudo sh -c 'echo "FEATURE(`relay_hosts_only')dnl" >> /etc/mail/sendmail.mc'
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
sudo systemctl restart sendmail
我还建议将 sendmail 与 spamassian 集成
#!/bin/bash
# Update system packages
sudo apt update
sudo apt upgrade -y
# Install necessary packages
sudo apt install -y spamassassin spamc
# Start SpamAssassin
sudo systemctl start spamassassin
sudo systemctl enable spamassassin
# Configure Sendmail for SpamAssassin
sudo sh -c 'echo "dnl # Uncomment the line below to enable the SpamAssassin Milter" >> /etc/mail/sendmail.mc'
sudo sh -c 'echo "INPUT_MAIL_FILTER(\`spamassassin', \`S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl" >> /etc/mail/sendmail.mc'
sudo sh -c 'echo "dnl # Define Milter macros" >> /etc/mail/sendmail.mc'
sudo sh -c 'echo "define(\`confMILTER_MACROS_CONNECT', \`j, _, {daemon_name}, {if_name}, {if_addr}')dnl" >> /etc/mail/sendmail.mc'
sudo sh -c 'echo "define(\`confMILTER_MACROS_HELO', \`{verify}, {cert_subject}')dnl" >> /etc/mail/sendmail.mc'
# Rebuild Sendmail configuration
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
sudo systemctl restart sendmail
echo "Script execution complete."
答案3
您的 SMTP 服务器不会完全开放,除非 Ubuntu 维护人员干预了配置。
您可以在 /etc/mail/access 中对此进行微调
# Allow a local NAS to send mail
192.168.1.200 RELAY
# Deny a Bad Server
192.0.2.33 ERROR:550 We don't accept mail from you
IP 地址欺骗 使用 TCP 欺骗 IP 地址非常困难。我还没有看到任何垃圾邮件发送者使用这种方法。
请注意,您不信任反向 DNS 允许中继。
作为参考,在“sendmail-doc”包中包含一个名为op.ps和/或op.txt的操作手册。