【问题标题】:Configuring sendmail behind a firewall在防火墙后面配置 sendmail
【发布时间】:2010-09-07 19:44:15
【问题描述】:

我正在设置一个位于防火墙后面的网络上的服务器,我希望这台计算机上的程序能够使用 sendmail 将电子邮件发送到任何电子邮件地址。我们在这个网络上运行了一个 SMTP 服务器(我们称之为 mailrelay.example.com),这就是我们应该如何通过防火墙获取传出电子邮件的方式。

那么如何配置 sendmail 以通过 mailrelay.example.com 发送所有邮件?谷歌搜索还没有给我答案,只是发现 sendmail 配置非常复杂和烦人。

【问题讨论】:

    标签: configuration firewall sendmail smarthost


    【解决方案1】:

    @eli:通常不建议直接修改 sendmail.cf,因为它是由宏编译器生成的。

    编辑 /etc/mail/sendmail.mc 以包含以下行:

      define(`SMART_HOST',`mailrelay.example.com')dnl 
    

    修改sendmail.mc宏配置文件后,必须重新编译 生成 sendmail 配置文件。

      # m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
    

    并重启sendmail服务(Linux):

      # /etc/init.d/sendmail restart
    

    除了设置智能主机,您可能还想禁用名称解析配置,并可能将您的发送邮件转移到非标准端口,或禁用守护程序模式。

    禁用名称解析

    位于防火墙网络内或使用网络地址的服务器 转换 (NAT) 可能没有可用的 DNS 或 NIS 服务。这创造了 sendmail 的问题,因为它默认使用 DNS,如果不是 可用,您将在 mailq 中看到这样的消息:

      host map: lookup (mydomain.com): deferred)
    

    除非您准备设置适当的 DNS 或 NIS 服务, sendmail 可以使用,在这种情况下你通常会配置 name 使用 /etc/hosts 文件进行解析。这是通过启用 'service.switch' 文件并按文件指定分辨率,如下所示:

    1: 为 sendmail 启用 service.switch 编辑 /etc/mail/sendmail.mc 以包含以下行:

      define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl
    

    2: 为文件配置 service.switch 创建或修改 /etc/mail/service.switch 以仅引用 /etc/hosts 作为名称 分辨率:

      # cat /etc/mail/service.switch
      hosts files
    

    3:重新编译sendmail.mc并重启sendmail使该设置生效。

    将 sendmail 转移到非标准端口,或禁用守护程序模式

    默认情况下,sendmail 将侦听端口 25。您可能需要更改此端口 或出于各种原因完全禁用 sendmail 守护程序模式: - 如果有禁止使用知名端口的安全策略 - 如果另一个 SMTP 产品/进程要在标准端口上的同一主机上运行 - 如果您根本不想通过 smtp 接收邮件,只需使用 sendmail 发送即可

    1: 将 sendmail 转换为使用非标准端口。 编辑 /etc/mail/sendmail.mc 并修改该行中的“端口”设置:

      DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
    

    例如,让 sendmail 使用端口 125:

      DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')
    

    这将需要重新编译 sendmail.mc 并重新启动 sendmail。

    2: 或者,完全禁用 sendmail 守护程序模式 (Linux) 编辑 /etc/sysconfig/sendmail 并将“DAEMON”设置修改为:

      DAEMON=no
    

    此更改需要重新启动 sendmail。

    【讨论】:

      【解决方案2】:

      http://www.elandsys.com/resources/sendmail/smarthost.html

      Sendmail 智能主机

      智能主机是一个主机,通过它 外发邮件被中继。一些 ISP 阻止传出 SMTP 流量(端口 25) 并要求其用户发送 通过 ISP 的邮件的所有邮件 服务器。 Sendmail 可以配置为 使用 ISP 的邮件服务器作为智能 主持人。

      阅读链接文章,了解如何设置。

      【讨论】:

        【解决方案3】:

        @Espo:感谢关于从哪里开始的好建议。如果我在第一次使用时配置 sendmail,而不是采用现有配置并进行这个小改动,那么您的链接会更好。然而,一旦我知道要在“SmartHost”上寻找东西,我就找到了一种更简单的方法。

        我所要做的就是编辑我的 /etc/mail/sendmail.cf 文件以进行更改

        DS
        

        DSmailrelay.example.com
        

        然后重新启动 sendmail 就可以了。

        【讨论】:

          猜你喜欢
          • 2014-09-09
          • 1970-01-01
          • 1970-01-01
          • 2017-05-07
          • 2015-06-17
          • 2015-08-31
          • 1970-01-01
          • 2019-11-10
          • 1970-01-01
          相关资源
          最近更新 更多