在 CentOS/RHEL Sendmail 中如何伪装发件人地址

我们想配置 sendmail 服务器,以便在从其发送电子邮件时将发件人地址伪装为 no-reply@target-domain.net。

查看更多教程 https://on  itroad.com

解决方案

通常为了伪装一个域,在 /etc/mail/sendmail.mc 中使用“MASQUERADE_AS”和“MASQUERADE_DOMAIN”。
但这将使用户保持不变。
使用 sendmail,我们可以使用 genericstable 功能逐个更改域和用户名。

  1. 确保在 /etc/mail/sendmail.mc 中注释掉所有“MASQUERADE”项目。
    请注意,以“dnl”开头的行是要注释的。
# grep 'MASQUERADE' /etc/mail/sendmail.mc
dnl # MASQUERADE_AS(`target-domain.net')dnl
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(domain-to-masquerade.net)dnl
  1. 启用域表功能:
# grep domaintable sendmail.mc
FEATURE(domaintable)
# cat domaintable
domain-to-masquerade.net   target-domain.net
  1. 通过在 /etc/mail/sendmail.mc 中添加以下行来配置“genericstable”。
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
  1. 填写 /etc/mail/generics-domains 。
target-domain.net
  1. 填写 /etc/mail/genericstable 。
root no-reply@target-domain.net
other-user1 no-reply@target-domain.net
other-user2 no-reply@target-domain.net
  1. 重新编译 /etc/sendmail.mc :
# cd /etc/mail
# make

这样做时我们可能会收到以下错误:

# make
WARNING: 'sendmail.mc' is modified. Please install package sendmail-cf to update your configuration.

这是由于缺少 sendmail-cf 包,请安装它以继续。

# yum install sendmail-cf
# cd /etc/mail
# make
  1. 重启sendmail服务。
# service sendmail restart
Shutting down sm-client:    [ OK ]
Shutting down sendmail:     [ OK ]
Starting sendmail:          [ OK ]
Starting sm-client:         [ OK ]
  1. 测试和验证。
# hostname
domain-to-masquerade.net
# echo "This is a test mail to verify the sendmail sender masquerade." | mailx -s "Test Sender Masquerade" your-name@your-email.com

确保“target-domain.net”是完全限定域名 (FQDN)。
这意味着目标邮件服务器应该可以从权威 DNS 服务器解析域名。
否则,邮件很可能会被拒绝。

日期:2020-09-17 00:13:43 来源:oir作者:oir