Exim 配置用于防止来自非本地域的电子邮件

Exim 配置用于防止来自非本地域的电子邮件

CentOS 6 搭配 cPanel/WHM。黑客不断以某种方式进入我们的 cPanel 邮件帐户并从我们的服务器发送垃圾邮件。他们要么伪造发件人地址,要么只是使用“回复”让受害者看到垃圾邮件发送者选择的域名,例如 lottery.microsoft.com 或类似的域名。我决定锁定服务器并要求托管公司阻止任何来自非本地域的传出或传入邮件。

他们对 /etc/exim.conf 做了一些更改,在文件中添加了看起来像是 C 代码的内容。我不知道配置文件中可以包含编程结构。有人能解释下面几行的含义吗?

他们添加的代码旨在阻止向非本地域发送电子邮件或从非本地域发送电子邮件。但现在我想将其更改为允许向非本地域发送电子邮件,但继续阻止从非本地域发送电子邮件。我还想阻止发送带有非本地“回复”的电子邮件。

我假设#是注释行。这些变量从何而来?什么是allow_failno_more?if 语句是否可以运行,还是用注释#

#ifdef DCconfig_local
# configtype=local
#
# Stand-alone system, so generate an error for mail to a non-local domain
nonlocal:
debug_print = "R: nonlocal for $local_part@$domain"

  driver = redirect

  domains = !example.com

  qualify_domain = example.com
 # domains = ! +local_domains

  allow_fail

  data = :fail: Mailing to remote domains not supported

  no_more

#.endif

答案1

配置exim文件具有允许复杂处理的语法。这是您包含的配置片段所使用的语言。该语言是Exim 文档记录配置。

邮件可能由 以外的软件发送exim。如果由 发送,则应在或该期间的轮换日志 exim中记录传输情况。/var/log/exim/mainlog

如果配置变量设置正确,默认exim配置通常非常安全。通常,它配置了许多以 开头的宏定义DC。就您而言,我希望DCconfig_internet启用。修复您的收件人处理,您应该能够恢复提供商所做的更改。要恢复它,只需启用本节顶部和底部的预处理器指令。

中继限制通常在收件人 ACL 中处理。检查配置文件中是否有以 开头的行acl_smtp_rcpt。然后搜索赋值右侧的值。这将是用于检查收件人的 ACL。通读此检查acceptdeny块,直到您找到像 这样的行message = relay not permitted。该块应如下所示:

require
  message = relay not permitted
  domains = +local_domains : +relay_to_domains

如果您允许中继,则电子邮件要么在您到达此块之前被接受,要么此块允许外部域。这些应该有如下定义:

hostlist relay_from_hosts = <; 127.0.0.1 ; ::1
domainlist local_domains = example.com  
domainlist relay_to_domains = 

如果 local_domains 或 reply_to_domains 包含通配符 ('*'),则您可能是一个开放中继。

回答您的具体问题:

  • #是注释分隔符。
  • #ifdef和是禁用的预处理器指令。启用和时,#.endif读取和的工作方式与预处理器指令相同。.ifdef.endifc
  • allow_fail是一个配置命令,允许路由器发生故障而不反弹当前消息。
  • no_more是一个配置指令,如果此路由器成功则停止路由。

答案2

从代码中无法判断是ifdef真是假。

指令的含义如下:

  • 如果收件人的域名不是,example.com则路由器已激活

  • 如果未提供发件人的域名,qualify_domain example.com则使用

  • 允许:fail:作为重定向数据

  • 将消息重定向至:fail:并答复发件人:Mailing to remote domains not supported

  • 停止消息处理

相关内容