我们想配置 sendmail 服务器,以便在从其发送电子邮件时将发件人地址伪装为 no-reply@target-domain.net。
查看更多教程 https://on itroad.com
解决方案
通常为了伪装一个域,在 /etc/mail/sendmail.mc 中使用“MASQUERADE_AS”和“MASQUERADE_DOMAIN”。
但这将使用户保持不变。
使用 sendmail,我们可以使用 genericstable 功能逐个更改域和用户名。
- 确保在 /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
- 启用域表功能:
# grep domaintable sendmail.mc FEATURE(domaintable)
# cat domaintable domain-to-masquerade.net target-domain.net
- 通过在 /etc/mail/sendmail.mc 中添加以下行来配置“genericstable”。
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
- 填写 /etc/mail/generics-domains 。
target-domain.net
- 填写 /etc/mail/genericstable 。
root no-reply@target-domain.net other-user1 no-reply@target-domain.net other-user2 no-reply@target-domain.net
- 重新编译 /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
- 重启sendmail服务。
# service sendmail restart Shutting down sm-client: [ OK ] Shutting down sendmail: [ OK ] Starting sendmail: [ OK ] Starting sm-client: [ OK ]
- 测试和验证。
# 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