当用户尝试连接(POP3)时,Dovecot/Postfix 邮件服务器会使用 [RST, ACK] 回复 [SYN]。可能是 iptables?

当用户尝试连接(POP3)时,Dovecot/Postfix 邮件服务器会使用 [RST, ACK] 回复 [SYN]。可能是 iptables?

目前,我正在尝试排除电子邮件服务器的故障,该服务器允许用户发送电子邮件,但不允许登录服务器 (POP3) 或使用 Outlook 客户端接收电子邮件。以前这是可行的,但将服务器移动到当前位置会破坏它。出于显而易见的原因,我怀疑是防火墙导致了问题。

首先,这是我对防火墙进行任何更改之前的握手(或尝试)的样子:

邮件服务器:192.168.25.26 客户:192.168.25.50

     Source     |     Destination     |   PROTO  |     INFO
192.168.25.50        192.168.25.26         TCP        50861 > pop3 [SYN] seq=0 win=65535 len=0
192.168.25.26        192.168.25.50         TCP        pop3 > 58601 [RST, ACK] seq=1 win=1 len=0
192.168.25.50        192.168.25.26         TCP        [TCP Retransmission] 58061 > pop3 [Syn] etc....

并且在失败之前,[rst,ack],[tcp重传]舞蹈会再次发生。

防火墙(Cisco)关于192.168.25.26和pop3的规则如下:

里面:

   source     |     destination     |        service     
     any           192.168.25.0/24          tcp/pop3
192.168.25.0/24          any                tcp/smtp
                  208.105.121.196

外部:

   source     |     destination     |        service     
     any           192.168.25.26            tcp/pop3
                        any                 tcp/smtp

对我来说,这看起来不错。

为了确定,我在电子邮件服务器(Zentyal)上运行了以下命令:

(IP 表配置过于繁琐。我怀疑问题就在这里。有什么方法可以允许全部流量,只是为了测试?

sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

但是,仍然无法连接 Outlook。此时,我在电子邮件服务器上运行了以下命令:

telnet 127.0.0.1 110

并能够登录邮件服务器。从网络内部的客户端,我运行了相同的命令,并被告知“连接失败”。

经过这些更改后,当我尝试在 Outlook 中“测试设置”时,握手看起来是这样的。我注意到一些奇怪的事情。

     Source     |     Destination     |   PROTO  |     INFO
192.168.25.50        192.168.25.26         TCP        apollo-status > pop3 [SYN] seq=0 win=65535 len=0
192.168.25.26        192.168.25.50         TCP        pop3 > apollo-status [RST, ACK] seq=1 win=1 len=0
192.168.25.50        192.168.25.26         TCP        [TCP Retransmission] apollo-status > pop3 [Syn] etc....

它会像上次一样再执行两次。在 INFO 窗格中,我现在看到的是 apollo-status,而不是端口号。接下来两次运行它时,我分别看到了 npep_messaging 和 synapse。我怀疑这些是 dovecot 选择的随机端口,因为在 dovecot.config 中,我将默认侦听器从之前指定的端口更改为星号“*”,这似乎是 4,000 中的任意端口,并且在防火墙中没有规则。

只是为了确认一下,它每次使用的端口似乎根据(推荐的)配置而变化。在环回接口上,端口 110 显然有一个监听器连接到它,但从另一台计算机来看,它似乎已关闭。

任何帮助根本非常感谢。我为此绞尽了脑汁,希望 serverfault 社区能有一些新奇的想法。

谢谢你!

相关内容