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

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

作者: 相当嚣张 | 来源:发表于2019-02-20 22:53 被阅读9次

    前言

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

    问题描述

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

    问题难点

    1. 现场机房没有维护人员,服务器无法远程登录.
    2. 服务器统一使用centos系统,并且通过hosts.deny和iptables限定了能够登录的服务器

    处理思路

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


    网络拓扑

    因为网关均设置在三层交换机上,三层交换机上有中断服务器的路由表,所以正常服务器是可以直接访问中断服务器的。然而,正常服务器并不能远程登录中断服务器,这是因为中断服务器均限制了登入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服务器了。

    image.png

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

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

    #这句话的意思是:修改源地址为192.168.100.1,目的地址为192.168.200.1的报文,修改规则是将源地址更改为192.168.300.1
    iptables -t nat -A POSTROUTING -s  192.168.100.1/32 -d 192.168.200.1 -j SNAT --to-source 192.168.300.1
    

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

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

    #根据不同品牌的交换机,配置命令可能不太一样。目的是将目的地址为192.168.300.1的数据包转发给192.168.100.1上,即我们的正常服务器上。
    ip route 192.168.300.1 255.255.255.255 192.168.100.1
    

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

    #正常服务器和中断服务器的操作系统均为centos 7
    #ens2是正常服务器上的网卡名,需要拷贝一个配置副本分配第2个IP地址
    cd /etc/sysconfig/network-scripts
    cp ifcfg-ens2 ifcfg-ens2:0
    #编辑ifcfg-ens2:0,设置其IP和掩码等信息,注意不需要设置网关
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens2:0
    DEVICE=ens2:0
    ONBOOT=yes
    IPADDR=192.168.300.1
    NETMASK=255.255.255.0
    #启用该配置副本
    ifup ens2:0
    

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

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/jhgyeqtx.html