为什么 sshd 会忽略来自某些 IP 的连接请求?

为什么 sshd 会忽略来自某些 IP 的连接请求?
  • 设置

家里有两台机器,位于家用电缆调制解调器和路由器后面:

盖亚:Ubuntu 10.04,192.168.0.103

像素:Ubuntu 10.04,192.168.0.104

路由器:DLink DI-52,1.1.1.1(不是其真实 IP)。路由器配置为将端口 23 和 10002 转发至 pixel:22,将端口 22 和 10001 转发至 gaia:22。

不同网络上处于不同状态的两个外部主机:

宙斯:CentOS,IP 2.2.2.2(不是其真实 IP)位于德克萨斯州

阿尔戈: Kubuntu 10.04,IP 3.3.3.3(不是其真实 IP)位于加利福尼亚州

  • 问题

如果我从宙斯路由器:22、:23、:10001 或 :10002,它可以很好地连接(分别连接到 gaia、pixel、gaia 和 pixel)。

如果我从阿尔戈路由器:23 或 :10002,它连接到像素很好。如果我从 SSH阿尔戈路由器:22 或 :10001,无法连接到盖亚; SYN 数据包从未得到回复(我用 Wireshark 观察了盖亚验证盖亚不发送任何回信阿尔戈)。还与同一网络上的其他主机进行了测试阿尔戈;它们都没有取得任何进展。SSH 转储 (-vvv) 如下所示:

@@ 08:29:04 Sat Sep 18 [user@argo - ~]$ ssh 1.1.1.1 -vvv
OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /home/user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 1.1.1.1 [1.1.1.1] port 22.
debug1: connect to address 1.1.1.1 port 22: Connection timed out
ssh: connect to host 1.1.1.1 port 22: Connection timed out
@@ 08:39:00 Sat Sep 18 [user@argo - ~]$ 

现在,事情变得更加奇怪了:我有一个 VPN 客户端盖亚让我能够绕过防火墙阿尔戈的公司网络。此 VPN 客户端提供盖亚一个额外的 IP(172.16.1.1,同样不是真实的)。如果我尝试从阿尔戈,连接得很好。

所以我的问题是,到底发生了什么?盖亚出于某种原因,只是不喜欢 IP阿尔戈正在使用? 盖亚是两天前安装的 Kubuntu,我还没有做过任何奇怪的事情,比如配置某些 IP 范围以阻止其连接到 sshd。而且似乎不可能是 SYN 数据包的问题盖亚不喜欢,因为它会让阿尔戈如果是 VPN IP,则连接。

编辑:我刚刚发现这个问题只发生在VPN客户端运行在盖亚。我一关掉它,阿尔戈可以连接到盖亚通过其公共 IP 就可以了。知道为什么会这样吗?

编辑2:我的下一个猜测是 VPN 客户端会告诉 IP 堆栈忽略来自公司防火墙公共 IP 的任何数据包,以确保在 VPN 处于活动状态时,来自盖亚连接到公司网络需要通过 VPN,而不是通过公共防火墙。这不会给我带来什么问题,因为我仍然可以通过 SSH 直接连接到盖亚使用其 VPN IP 而不是路由器的 IP,但这有点令人困惑。

答案1

哦,老兄。我在这里要非常诚实。我不完全理解你的问题。不是因为你表达得不好,而是它相当复杂。现在我的脑袋疼。

话虽如此,你还是应该注意一些事情。最明显的是服务器上的防火墙规则和路由器上的访问列表。只需一个拼写错误,你的网络就会看起来混乱不堪。图片可能会有帮助?=)

另一个是分割隧道启用。它被认为是一种安全风险,因此通常建议禁用它。但这可能会导致计算机无法访问不在 VPN 另一侧的网络。这可能会破坏您的连接尝试。——


Christopher Karel

答案2

我记得有一次我使用 OpenBSD 时遇到一个问题,当时 SSHD 配置为不接受来自来源tcp 端口低于 1000 或类似情况 - 这让我很困惑,直到我发现了它。症状很相似 - 我可以从一台机器连接,但无法从另一台机器连接,我怎么也想不出原因。

不过,考虑到之前关于 VPN 和拆分隧道的评论,这更有可能是罪魁祸首。

相关内容