首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理iptables和域名更改

管理iptables和域名更改
EN

Server Fault用户
提问于 2016-11-15 00:39:45
回答 1查看 273关注 0票数 1

我运行一个通过smtp.mailgun.org发送电子邮件的服务器。我锁定了服务器,使其只允许从端口587到smtp.mailgun.org上的传出SMTP。

这个域名的IP地址最近改变了,因此我的系统停止发送电子邮件。作为试图找出停止工作的原因之一,我意识到在iptables规则中使用域名的缺点,以及在运行规则并在规则创建时保存IP地址时iptables进行查找的事实,因此域中的IP地址更改没有反映在iptables中。

在mailgun的状态页面上,他们说

我们的基础设施升级将导致将来更频繁地更改这些IP地址,客户应该确保在连接到Mailgun服务时,他们只使用我们支持的主机名。

我没有收到IP地址更改的通知,也不知道将来是否会被通知更改地址。

处理这种情况的最好方法是什么?我是否应该编写一个脚本,定期检查smtp.mailgun.org的IP地址,并在其更改时更新iptables?(我知道这样做会带来安全风险,但也许值得承担这些风险)。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-11-15 01:56:16

快速查看一下smtp.mailgun.org的当前IP地址就会发现,它们都在Amazon上。您应该期望这些代码经常更改,因此在防火墙中对它们进行硬编码最多也是很棘手的。即使使用动态脚本,您也很可能丢失发送出去的邮件,因为IP地址可能会发生变化,并且您将在脚本的下一次运行之前发送邮件。这就是所谓的种族状况。除了重新设计你没什么可以做的,这就是我的建议.

至于出口防火墙,我真的不太关心出口到587港口的交通问题。无论如何,所有这些通信量都必须通过远程邮件服务器进行身份验证,所以这对我来说并不重要。对于邮件,我担心发送到端口25的流量;如果您正在使用像mailgun这样的服务,就不应该有这样的通信量,如果存在,几乎可以肯定是因为您已经被破坏了。

你可以考虑的一些事情是:

  • 允许任何传出TCP流量到目标端口587。如前所述,这是相当低的风险,但您可以进一步降低风险通过.
  • 在一个唯一的用户ID下运行您的web应用程序,然后允许任何传出的TCP流量只针对该用户ID到达目标端口587。(使用-m owner匹配。)这进一步降低了风险,规定只有web应用程序的用户才能启动这样的流量。请注意,如果您这样做,其他用户将无法进行此传出连接,甚至连根用户也不能(但root用户可以更改防火墙规则以使其成为可能)。
  • 您可以通过运行一个本地邮件服务器来使您的设置更加健壮,该服务器配置为使用mailgun作为智能服务器,中继它接收到的所有邮件(因为它只在本地侦听,这应该只来自您的web应用程序)。然后,您只允许邮件服务器的用户ID与上面的端口587进行传出连接。这给了你额外的好处,不丢失邮件,因为在你的网络应用程序试图发送邮件时,邮箱是无法到达的。如果由于网络问题或防火墙配置错误或任何其他原因,无法访问mailgun,则web应用程序将记录错误并丢失邮件,但本地邮件服务器将对邮件进行排队,并在服务恢复后交付邮件。然后将web应用程序配置为本地交付。
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/814899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档