偷天换日,特殊方法登录只允许通过堡垒机登录的服务器

如题所述

第1个回答  2022-07-12
过年期间,本想利用假期休整一下身心,给身体和精神放松放松。但是领导的电话还是如期而至,几台重要服务器的出口链路中断导致服务器无法远程登录,领导要求远程更换服务器的IP地址,切换到其它出口。服务器不能跑服务,意味着领导赚不了钱,领导没有钱,我的奖金就会流浪到太阳系之外,立即拿出笔电开始思考问题解决方法。

因几台服务器所在出口链路中断,导致业务停摆,同时无法远程登录。

针对第一个问题,万幸的是在中断服务器的交换机下还有我们走其它出口的服务器,即通过内网环境,可以直接先登录到同一交换机下的正常服务器,再从这台服务器跳转到中断服务器。

因为网关均设置在三层交换机上,三层交换机上有中断服务器的路由表,所以正常服务器是可以直接访问中断服务器的。然而,正常服务器并不能远程登录中断服务器,这是因为中断服务器均限制了登入IP,只有我们之前设定的堡垒机允许登入。

我们先联系了机房管理员,但当班的管理员说出没用过Linux后,这条路已被堵死。难道为了改几个IP要搭飞机去?老板会把我kill -9掉。 看来只有另辟蹊径了,既然中断服务器只认堡垒机,我们何不利用正常的服务器伪装成堡垒机的IP地址和中断服务器进行通信。说干就干,我们来一回偷天换日。

我们先模拟推演实现的方式,假设正常服务器的IP为 192.168.100.1 ,中断服务器的IP是 192.168.200.1 ,堡垒机的IP是 192.168.300.1 。
首先,我们要让192.168.100.1伪装成192.168.300.1和192.168.200.1通信。第二步是在三层交换机上手动添加到192.168.300.1的回程路由,强行将目的地址为192.168.300.1的报文仍给192.168.100.1服务器上。第三步是在192.168.100.1上接收访问192.168.300.1的报文。这样整个伪装过程就完成了,网络连接已经建立起来,理论上可以通过192.168.100.1远程登录192.168.200.1服务器了。

接下来我们开始逐步实现推演过程

首先是地址伪装,我们要用到iptables,利用iptables来伪装源地址。

做到这一步,我们已经可以以堡垒机的身份192.168.300.1向中断服务器192.168.200.1发送网络请求了,但工作还没有完成,此时虽然可以发送报文到中断服务器,但回来的报文我们的正常服务器收不到。

接下来需要在三层交换机上增加一条路由信息

最后一步,在正常服务器上增加一个堡垒机的IP

正常情况下,服务器已经拥有2个IP地址了,配置这个的目的是为了接收目的地址是192.168.300.1的报文,TCP有个机制,如果目的地址不是服务器自己的IP地址并且也不是广播地址,会自动丢弃该报文。

经过以上三步,我们已经完成了偷天换日的全部工作,敲下输悉的ssh 192.168.200.1命令,熟悉的登录提示出现了,立即登录将中断服务器,修改IP地址切换到正常的出口链路,服务恢复正常,我也可以继续休假了。
相似回答