-2

我目前正在尝试在我的服务器向世界发布之前保护它的安全。目前,只有一个 Discourse 实例正在运行,它使用 Mandrill 作为电子邮件 smtp 服务器。

该 Discourse 前面有一个 nginx 服务器。

没有 iptables 规则,一切正常。当我应用我的规则时,它就坏了。我仍然可以访问 Discourse,甚至可以发送帖子和所有内容,除了发送电子邮件。

./launcher mailtest app,它的工作原理。然而,Discourse 错误如下ERREUR - getaddrinfo: Name or service not known

我真的试图找出自己应该使用什么。但我做不到。首先,我认为一个简单iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT的就足够了,但事实证明我恰恰相反。

其他一些输入:

iptables -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

我将 Discourse 设置为使用 Mandrill 的 587 端口。

4

1 回答 1

-2

好的,所以我刚刚发布了...这不是该问题的正确 SE 论坛。我很抱歉。

但是,既然我终于找到了解决方案(总是当你发布你的问题时,这个问题就会打到你的脸上),让我分享一下。

我错过了 docker0 和 eth0 之间的 FORWARD 规则。

iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o docker0 -j ACCEPT

不便之处敬请见谅。

于 2015-04-06T13:25:54.650 回答