如何集中我的邮件?

我收到了大约20个不同的服务器上的一堆,我想要一个。 这些盒子正在运行Linux,现在我的解决scheme是创build一个TCP中继。

我希望随时通过端口25进来的stream量被中继到一个不在同一局域网中的其他地方。 我有一个Perl脚本,大致这样做,但它是无效的,可以崩溃。 如果有这样的方法,我宁愿找一个方法使用iptables / ipchains 。 我认为有,但是我没有技术技能去理解它。

也许没有必要有20个服务器的邮件? 您可以将中央服务器上的MTA(邮件传输代理)设置为接受您感兴趣的域的邮件,并为每个域设置DNS,以便MXlogging指向中央服务器。

如果这是不可能的,使您的服务器充当邮件网关,并将邮件转发到中央服务器。 这将考虑到效率和可靠性问题。 你怎么做取决于你select的MTA。 当然,您仍然需要configuration中央服务器接受所有域的邮件。

如果你绝对想用iptables试试你的运气(不推荐),那么你可以做一些事情:

iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 25 -j DNAT --to 192.168.1.50:25 iptables -A INPUT -p tcp -m state --state NEW --dport 25 -i eth1 -j ACCEPT 

我build议在networking堆栈的更高层接近这个问题。 而不是转发端口,您应该简单地在每台主机上运行一个简单的SMTP服务器,将所有内容都汇集到中央服务器上。

根据您的需要,您可以使用:

  • 后缀
  • ssmpt
  • qmail的

也许你可以在DNS中解决这个问题。

只需将这20台服务器的MXlogging指向您要使用的一台服务器即可。

/etc/postfix/main.cf下行添加到每台机器的/etc/postfix/main.cf文件中,然后发出postfix reload

 relayhost = smtprelay.yourdomain.com 

您需要确保在smtprelay.yourdomain.commynetworks包含您要通过该机器中继的机器的networking掩码。

如果你的机器已经在运行一个SMTP服务器,为什么不build立一个别名来指向你的中央邮件服务器呢?

此外,有些话题..考虑转发邮件从特定的用户帐户到一个集中的邮箱,使用/ etc /别名,如下所示:

 # Person who should get root's mail root: [email protected] 

这是一个很好的方法来跟踪来自一个邮箱中不同服务器的sudo / sshd / yum通知。