如何阻止 ufw-firewall 阻止我通过 ssh 进入另一台服务器?

如何阻止 ufw-firewall 阻止我通过 ssh 进入另一台服务器?

我在 Ubuntu 22.4.4 LTS 上遇到了一个奇怪的问题。

使用联邦快递防火墙,我允许 SSH/端口 22、HTTP 和 HTTPS。我可以通过 SSH 成功登录到我的服务器。但是,当我登录到服务器并想从他们的服务器通过 SSH 连接到另一台服务器时,它会以某种方式被阻止并且挂起。但是当我想从第二台服务器通过 SSH 连接到第一台服务器时,使用 SSH 代理和 SSH 转发就可以了。两台服务器都使用默认端口 22。

当我使用禁用服务器 1 上的防火墙时sudo ufw disable,我可以从服务器 1 通过 SSH 连接到服务器 2。当再次启用防火墙时,它就挂起了。

因此,为了使其更简单一些:

  • 工作正常:MacBook -> SSH -> 服务器 1
  • 不工作:服务器 1 -> SSH -> 服务器 2
  • 工作正常:服务器 2 -> SSH -> 服务器 1

我在服务器 1 上的防火墙配置如下:

> sudo ufw status numbered

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 9418/tcp                   ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW OUT   Anywhere                   (out)
[ 3] 80/tcp                     ALLOW IN    Anywhere
[ 4] 443                        ALLOW OUT   Anywhere                   (out)
[ 5] 443                        ALLOW IN    Anywhere
[ 6] 53                         ALLOW OUT   Anywhere                   (out)
[ 7] 22/tcp                     ALLOW IN    Anywhere
[ 8] 123                        ALLOW IN    Anywhere
[ 9] 22                         ALLOW IN    Anywhere
[10] 9418/tcp (v6)              ALLOW IN    Anywhere (v6)
[11] 80/tcp (v6)                ALLOW OUT   Anywhere (v6)              (out)
[12] 80/tcp (v6)                ALLOW IN    Anywhere (v6)
[13] 443 (v6)                   ALLOW OUT   Anywhere (v6)              (out)
[14] 443 (v6)                   ALLOW IN    Anywhere (v6)
[15] 53 (v6)                    ALLOW OUT   Anywhere (v6)              (out)
[16] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[17] 123 (v6)                   ALLOW IN    Anywhere (v6)
[18] 22 (v6)                    ALLOW IN    Anywhere (v6)

状态详细:

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
9418/tcp                   ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443                        ALLOW IN    Anywhere
22/tcp                     ALLOW IN    Anywhere
123                        ALLOW IN    Anywhere
22                         ALLOW IN    Anywhere
9418/tcp (v6)              ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443 (v6)                   ALLOW IN    Anywhere (v6)
22/tcp (v6)                ALLOW IN    Anywhere (v6)
123 (v6)                   ALLOW IN    Anywhere (v6)
22 (v6)                    ALLOW IN    Anywhere (v6)

80/tcp                     ALLOW OUT   Anywhere
443                        ALLOW OUT   Anywhere
53                         ALLOW OUT   Anywhere
80/tcp (v6)                ALLOW OUT   Anywhere (v6)
443 (v6)                   ALLOW OUT   Anywhere (v6)
53 (v6)                    ALLOW OUT   Anywhere (v6)

我是否需要打开另一个端口,以便在从服务器 1 通过 SSH 连接到另一台服务器时使用?或者允许 UDP 或类似的东西?

答案1

这不是一个奇怪的问题;您只是实际上没有允许端口 22 出站的规则 - 您的列表只有一条ALLOW IN规则,但没有ALLOW OUT一条,并且由于它是默认设置的deny,因此到远程端口 22 的出站连接被阻止。

相关内容