端口转发实现逻辑
我们直接来看这图
好,那么现在呢?你假设你是出差在外的用户,比方说有一个笔记本用户出差了。明白了好。现在是这样的,这个服务器呢?是在你企业内部的。那么,企业内部要想。让互联网的用户想访问,通常来讲是访问不了的,因为什么有防火墙?他会阻止你访问企业内部的服务器,所以这个防火墙呢,就阻挡了你直接进不来。重要的就是你这个是个不安全的服务器
所以你如果通过这个用户直接去通过跨互联网的方式来访问的话呢,很有可能被黑客截获你的。明文的信息是不安全的,所以呢,中间跨互联网,那那你想你通过互联网去连接。咱们企业内部的服务器,而协议是不安全的,协议是不加密的,所以很可能会。泄露密码,
所以呢,我们默认是不允许你这么连的,如果你这么连的话,有可能密码就被人抓到了。啊,为了解决这个问题,那怎么办呢诶?我们可以搞一个服务器过来。这个服务器是ssh服务器。那其中Telnet服务和SSH服务的机器呢?他们是在。同一个局域网里。
现在客户端那个机器,不直接去连telnet服务器,而连这个SSH服务器再由SSH服务器收到这个报文以后通过。Telnet替你访问。也就意味着我们这个客户端不是直接连他的Telnet server,而是先连到SSH服务器,但是连服务器的时候他走的是SSH协议。而是把的Telnet协议封装在SSH协议里面,让数据报文先到达SSH服务器,这中间走的是协议。所以这就安全了,然后到了SSH服务器以后再把这个协议的外壳那个包装给他拆开。拆开以后,
然后通过Telnet的协议给他转发到这边来。那这时候这走的是Telnet的协议。然后这中间走的就是SSH的协议。准确的说,他是把Telnet流量。封装在了Telnet的协议的里面。从客户端到达服务器之间,全是走SSH协议,只不过把的那种协议的数据。通过SSH协议加了个包裹,所以这样的话呢,
我们这个客户端跨互联网去访问的时候到达这个服务器的时候,中间全是用SSH协议封装的,是安全的。
命令格式
ssh -R sshserverport:remotehost:remotehostport sshserver
案例演示
远程端口转发并实现网关功能
环境准备
准备三台机器 都为Centos8系统
IP划分如下:
10.0.0.8 为客户端 10.0.0.18 为SSH服务器 10.0.0.28 是Telnet Server
逻辑架构图
第一步
修改三台机器的主机名
10.0.0.28 主机名修改为telnet-server
10.0.0.8 主机名修改为 client
10.0.0.18主机名修改为 ssh-server
第二步
10.0.0.28这个机器做Telnet Server,我们需要在这个28机器上装服务
我们需要在这个机器上安装Telnet服务
我们直接dnf安装
把telnet-server服务设置为开机启动
查看端口 23端口已经被打开了
这个28机器已经可以被远程的主机连接了啊。
第三步
我们先使用10.0.0.8客户端机器进行访问,我们发现是可以登录的
但是我们不能直接连接,我们需要模拟,通过SSH服务器连接到这个Telent 服务器
我们回到这个10.0.0.28这个telnet-server主机上设置防火墙规则
我们这样设置一下,就能把10.0.0.8这个主机拒绝连接
第四步
10.0.0.8是不能直接连的。8是不能直接连的,要想连必须通过10.0.0.18间接的连,好,那么现在我们看如何来实现?命令非常简单,就一条命令,借助于中间的。18这个机器,
我们先切换到客户端10.0.0.8 尝试访问 telnet-server 发现现在已经访问不进去了
我们在客户端执行下面这个语句 使用9527端口
我们输入10.0.0.18 主机的密码
我们这个桥梁就建立起来了
我们在从10.0.0.8客户端进行登录
我们发现 telnet-server 主机的登录界面出来了
输入用户名和密码就登录进去了
登录进去就完成了