SSH正反向隧道

时间:2023-03-08 19:24:04

正向隧道

拓扑如下:

SSH正反向隧道

说明:

CLIENT不能直接访问WEB服务器,AGENT可访问WEB服务器;

在AGENT上通过创建ssh正向隧道,使CLIENT可以通过AGENT间接访问WEB服务器;

AGENT需要SSH客户端和服务端。

AGENT上执行指令如下:

[root@pool---- ~]#
[root@pool---- ~]# netstat -antp |
[root@pool---- ~]#
[root@pool---- ~]#
[root@pool---- ~]#
[root@pool---- ~]# netstat -antp |
[root@pool---- ~]#
[root@pool---- ~]# : root@100.1.1.100
root@100.1.1.100's password:
[root@pool---- ~]# netstat -antp |
tcp                           0.0.0.0:*
                 LISTEN      /ssh
[root@pool---- ~]#

说明:使用root账户登录100.1.1.100(自己),然后将自己的8880端口映射到172.19.2.250的80端口。

在CLIENT访问测试:

SSH正反向隧道

测试成功!

另一拓扑:

SSH正反向隧道

说明:

AGENT2和CLIENT都不能直接访问WEB服务器,只有AGENT1可以访问WEB服务器;

在AGENT2和AGENT1之间创建SSH正向隧道,使CLIENT可以通过AGENT2访问WEB服务器; 

AGENT2需要安装SSH客户端,AGENT1需要安装SSH服务端。

在AGENT2上执行指令如下:

说明:在AGENT2上通过root用户ssh连接到AGENT1,并将自己的8880端口映射到WEB的80端口。

[root@pool----~]# : root@100.1.1.100

以上两个拓扑中创建隧道的主机(ssh客户端)也可以是windows主机,使用xshell、putty等工具也可以实现,以第二个拓扑,使用xshell举例设置如下:

SSH正反向隧道

SSH正反向隧道

SSH正反向隧道

SSH正反向隧道

SSH正反向隧道

打开会话链接

SSH正反向隧道

本地端口已经监听

SSH正反向隧道

访问测试

SSH正反向隧道

测试成功 !

注:如果使用xshell等类似ssh客户端工具创建SSH隧道时,连接会话断开会导致隧道失效,而linux的ssh客户端则不会。

 

反向隧道

SSH正反向隧道

说明:

CLIENT不能直接访问AGENT1,此时AGENT1可以通过在与WEB之间建立反向隧道的方法,让CLIENT可以访问AGENT1的22端口;

AGENT1需要安装SSH客户端,WEB需要安装SSH服务端;

在AGENT1上执行指令如下:

[root@pool---- ~]# ssh 172.19.2.250
root@172.19.2.250's password:
Last  ::  from 192.168.6.44
[root@localhost ~]# netstat -antp |
[root@localhost ~]#
[root@localhost ~]# exit
logout
Connection to 172.19.2.250 closed.
[root@pool---- ~]# : root@172.19.2.250
root@172.19.2.250's password:
Permission denied, please try again.
root@172.19.2.250's password:
[root@pool---- ~]# netstat -antp |
[root@pool---- ~]# ssh 172.19.2.250
root@172.19.2.250's password:
Last  ::  from 192.168.6.44
[root@localhost ~]# netstat -antp |
tcp                            /sshd
tcp               :::                   :::*                        LISTEN      /sshd
[root@localhost ~]#

说明:首先确认在WEB服务器上确认没有监听22022端口,然后再AGENT上执行反向隧道创建指令,意思是将100.1.1.100的22端口映射为172.19.2.250的22022端口,执行后,发现WEB服务上监听了22022端口,但IP却为127.0.0.1,解决办法是将WEB服务器的SSH服务的配置文件中"GatewayPorts no"改为yes即可,重启SSH服务,并在AGENT1上重新创建反向隧道

[root@localhost ~]# netstat -antp |
tcp                              /sshd
tcp               :::                    :::*                        LISTEN      /sshd
[root@localhost ~]#

链接测试:

SSH正反向隧道

链接成功 !

在使用xshell创建反向隧道时,修改类型即可

SSH正反向隧道