ssh本地端口转发

Posted pyqb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh本地端口转发相关的知识,希望对你有一定的参考价值。

ssh连接是有方向的,通常是ssh客户端去连接ssh服务器端。而我们运行的应用也是有方向的,比如我们去登陆一个qq,或者用浏览器上网,都是应用程序的客户端(本地下载qq、浏览器软件)去连接远处的qq服务器、web服务器。当ssh的连接方向和应用连接的方向一致时,这就称为ssh本地转发。

 

突破防火墙限制

假设现在有一个防火墙保护的网络,但防火墙通常会开启53端口(DNS解析),在这个网络中防火墙会过滤经过53端口以外的数据包,所以在内网中我们就无法通过常规手段上网了,比如内网中的主机1就无法通过80端口访问外网的web服务器主机3,因为经过80端口的数据全被防火墙过滤。这时我们想通过内网上网时,我们可以通过一台可以连接外部网络的ssh服务端主机2,与内网的ssh客户端主机1建立一个ssh隧道,主机1的访问请求,经过主机2转发到web服务器主机3,主机3返回的数据通过主机2转发给内网中的主机1,这样我们就获取到了外网web服务器主机3的数据了。

 

 

 

 

 

 

 

 

 

 

 

 

ssh服务端主机2开启ssh服务:service ssh start

ssh客户端主机1连接ssh服务端主机2:ssh -fCN -L <listen port>:<remote ip>:<remote port> user@<ssh server ip> -p <ssh server port>

ssh -fCN -L 7001:192.168.1.124:80 root@192.168.1.110 -p 53

-f 后台运行进程

-N 不执行登录shell

-g 作为网关

-C 表示对数据进行压缩,提高传输的速度

这里可能会出现一点问题,因为ssh默认是不允许root权限用户使用的,需要修改ssh的配置使其可以运行在root权限下。

 

ssh客户端主机1在浏览器中输入127.0.0.1:7001,就能访问主机3的内容,就像主机2用80端口访问主机3一样。

 

远程登录apache服务器

 

 

 

 

 

 

 

 

主机2是一台apache服务器,它也是一台ssh服务器,开启Apache服务器以及ssh服务:service ssh start

主机1是ssh客户端,通过53端口连接到主机2:ssh -fCN -L 7002:localhost:80 root@192.168.1.110 -p 53

ssh客户端主机1在浏览器中输入127.0.0.1:7002就能访问Apache的后台

 

远程桌面

主机1通过ssh隧道访问主机3的远程桌面

 

 

 

 

 

 

 

 

 

 

 

 

 

 

主机2开启ssh服务:service ssh start

主机3开启远程桌面3389端口

主机1通过53端口连接主机2访问主机3的远程桌面:ssh -CfN -L 7003:192.168.1.124:3389 root@192.168.1.110 -p 53

然后主机1通过127.0.0.1的7003端口便能访问主机3的远程桌面:redesktop 127.0.0.1:7003

 

 

搭建ssh隧道,开放给更多的受限网络里面其他的主机。

比如将主机3的远程桌面服务共享给内网里的主机

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

主机2开启ssh服务:service ssh start

主机3开启远程桌面3389端口

主机1作为网关,将ssh隧道公开,大量的并发地通过53端口连接到主机2:

ssh -CfNg -L 7004:192.168.1.124:3389 root@192.168.1.110 -p 53

在主机1上连接远程桌面:redesktop 127.0.0.1:7004

在主机4上连接远程桌面:redesktop 127.0.0.1:7004

在主机5上连接远程桌面:redesktop 127.0.0.1:7004

这样就实现了将ssh隧道公开,将连接外网的服务提供给多个主机

 

通过ssh隧道实现NC shell远程控制,搭建后门

 

主机2开启ssh服务:service ssh start

主机1通过53端口以网关模式连接到主机2:ssh -CfNg -L 7005:192.1.124:3333 root@192.168.1.110 -p 53

主机3用nc侦听3333端口:nc -nvlp 3333

内网中的主机4传递shell给外网主机3

在主机3上就获取到了主机4的shell,注意看ip地址已经是主机3的地址了

 

以上是关于ssh本地端口转发的主要内容,如果未能解决你的问题,请参考以下文章

SSH高级功能 - 远程端口转发

SSH端口转发

SSH 远程端口转发

ssh的高级应用本地端口转发

SSH端口转发

SSH端口转发