SSH可以通过子网配置错误的服务器访问服务器吗?


18

我们有一台服务器,其中一位工程师错误地配置了子网,现在我们被锁定在该服务器之外,而我所知道的唯一可以使用的访问权限是IDC的串行控制台(这意味着请IDC工程师来帮助我们) 。

什么是配置错误:

address 192.168.1.9 # Original address there was
netmask 255.255.255.254 # Misconfigured, originally should've been .240

出于好奇-是否可以避免调用IDC并以某种方式通过SSH连接到此主机(然后我们可以修复配置)?

Answers:


25

您需要能够登录同一网段上的另一台主机。获得对配置错误的主机的访问权限的某些方法需要在中间主机上具有root用户权限,但是也有一种简便的方法,无需在中间主机上具有root用户即可获得访问权限。

使用IPv6访问主机的简单方法

ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server

在上面的命令需要下面的示例值与正确的值被替换为你的使用情况:fe80::42:ff:fe:42eth0userintermediate-host,和target-server

有关其工作原理的详细说明

ProxyCommand是无法直接打开与目标主机的TCP连接时使用的ssh功能。参数to ProxyCommand是要使用其stdin / stdout而不是TCP连接的命令。

-W用于打开单个端口转发并将其连接到stdin / stdout。这很适合与ProxyCommand

fe80::42:ff:fe:42%%eth0是目标主机的本地链接地址。请注意,由于ProxyCommand使用%作为转义字符,类型化的ssh命令必须使用%%在该位置。您可以通过运行在段上找到所有本地链接的地址ssh user@intermediate-host ping6 -nc2 ff02::1%eth0

为此目的,使用IPv6链接本地地址通常是最简单的方法,因为在所有现代系统上默认都启用了该地址,即使IPv4和IPv6堆栈都严重配置错误,链接本地地址也可以正常工作。

退回到IPv4

如果在配置错误的主机上完全禁用了IPv6(绝对不建议这样做),那么您可能不得不求助于使用IPv4。由于IPv4没有链接本地地址,因此IPv6会使用IPv4访问配置错误的主机变得更加复杂,并且需要对中间主机进行root访问。

如果配置错误的主机仍然能够使用其默认网关,则可以从外部访问它。可能由于网关拒绝使用网络掩码覆盖的前缀之外的网关,因此配置错误的网络掩码也破坏了默认网关。如果确实如此,则配置错误的主机将只能与192.168.1.8通信,因为这是该配置错误的主机当前可访问的子网中唯一的其他IP地址。

如果您在192.168.1.8上登录,则可能只能从那里SSH到192.168.1.9。如果当前未分配192.168.1.8,则可以将其临时分配给您具有root访问权的网段上的任何主机。


fe80::42:ff:fe:42是...的地址吗?我猜我配置错误的服务器?
Alexey Kamenskiy 2015年

@AlexKey是的,它需要替换为配置错误的服务器的本地链接IPv6地址。
kasperd

1
通过IPv4访问的任何示例(如果禁用了IPv6)?
Alexey Kamenskiy 2015年

@AlexKey如果禁用了IPv6,我认为您必须通过192.168.1.8,因为它似乎是配置的前缀下的唯一其他IP。
kasperd 2015年

1
@Lenniey显然是出于这样的问题(至少)。
Alexey Kamenskiy 2015年

9

kasperd发布了一个非常详细的好答案,足以让我学习如何从问题中恢复过来。这个答案是我做到这一点的确切步骤。

  1. SSH到同一物理网络上的服务器
  2. 使用arp -aip neighbor listroot发现错误配置服务器的MAC地址。
  3. 使用MAC链接本地转换器查找配置错误的服务器的本地链接
  4. 现在可以通过任何ssh user@link-local%dev位置以任何用户的身份SSH到服务器:
    • 用户-我们被允许使用SSH的用户名
    • link-local-在步骤3中恢复的自分配IPv6地址
    • dev是可从此服务器访问的物理接口(例如eth0)

2

您需要目标的已配置子网中加载IP地址,而不仅仅是在实际需要的范围内。

例如,如果您从子网10.0.0.220将数据包发送到子网为255.255.255.248的10.0.0.2,则10.0.0.2将查看其子网掩码以弄清楚如何应答。由于.220是子网255.255.255.248中的WAAY,因此.2必须将答复发送到默认网关。

因此,如果您可以在与.2相同的子网中加载IP地址,例如 10.0.0.3,那么它将起作用。

在您的特定情况下,对于10.0.0.9,子网255.255.255.254 仅具有1个附加IP地址,即10.0.0.8。因此,如果您可以加载该IP地址,则应该可以使用SSH。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.