1

我有一个在谷歌计算引擎上运行的虚拟机(CentOS),一切看起来都很简单,我已经阅读了我能找到的所有文档,但这件事让我很困惑。我知道 GCE 阻止了出站 SMTP 连接,但是从我读过的内容来看,传入应该没有问题。但是,我已经正确配置了服务器(我认为)并通过 gcutil 添加了 SMTP 防火墙,但仍然没有骰子:

gcutil addfirewall smtp --description="Incoming smtp allowed." --allowed="tcp:smtp"

这将添加允许 SMTP 连接的规则。

gcutil listfirewalls

    +------------------------+---------------------------------------+---------+------------+-------------+-------------+
    |          name          |              description              | network | source-ips | source-tags | target-tags |
    +------------------------+---------------------------------------+---------+------------+-------------+-------------+
    | default-allow-internal | Internal traffic from default allowed | default | 10.0.0.0/8 |             |             |
    | default-ssh            | SSH allowed from anywhere             | default | 0.0.0.0/0  |             |             |
    | http2                  | Incoming http allowed.                | default | 0.0.0.0/0  |             |             |
    | pop3                   | Incoming pop3 allowed.                | default | 0.0.0.0/0  |             |             |
    | smtp                   | Incoming smtp allowed.                | default | 0.0.0.0/0  |             |             |
    +------------------------+---------------------------------------+---------+------------+-------------+-------------+

列出了 SMTP 规则。其他端口工作正常,我可以进入端口 80、22 和 110。但是当尝试进入端口 25 时:

telnet nextcore.com 25
Trying 173.255.112.1...

它不会连接。

连接到虚拟机上的 localhost 端口 25 工作正常:

telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 nextcore.localdomain ESMTP Postfix

我错过了什么?

4

2 回答 2

4

我不确定您在端口 25 上监听了什么(例如 sendmail、postfix 等)。我可以确认我也无法在端口 25 上连接到您的虚拟机,但我可以在端口 80 上连接。

您可以检查哪些程序正在侦听哪些端口sudo netstat -lpn -A inet,例如

$ sudo netstat -lpn -A inet
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2691/sshd
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      15845/nc
udp        0      0 0.0.0.0:23153           0.0.0.0:*                           2291/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2291/dhclient
udp        0      0 10.87.233.49:123        0.0.0.0:*                           2566/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           2566/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           2566/ntpd

您可能会发现您的邮件程序仅在 localhost ( 127.0.0.1) 上侦听,或者您在“/etc/hosts.deny”中缺少一个条目/etc/hosts.allow或在“/etc/hosts.deny”中有一个条目阻止来自本地网络外部的请求。

于 2013-05-29T22:20:55.620 回答
1

你可以看看这个:https ://developers.google.com/compute/docs/networking#mailserver 你会看到谷歌计算引擎阻止了端口 25、465 和 587 上的出站连接。设置 postfix 的说明与 GCE 一起工作也可以在该页面上找到。

于 2013-08-15T01:52:45.243 回答