内网转发最好的工具——SSH隧道

1,SSH隧道的主要作用:

1,加密SSH客户端端至SSH服务器端之间的通讯数据

2,突破防火墙的限制完成一些之前无法建立的TCP连接

3,探测内网连通性的时候,如果HTTP协议,ICMP协议等都被防火墙所取代,但是恰好SSH内置网还是可以用的,就可以使用SSH协议把内网流量带出网

2,SSH隧道本地端口转发

     1,适用于内网WEB服务器有公私网双IP;或者是A-> C被限制但是B => C可达的内网场景

     2,它的命令格式为:

                ssh -Nf -L {本地端口}:{目标机器}:{目标端口} {中间机器}

                   #或

             ssh -Nf -L {本地地址}:{本地端口}:{目标机器}:{目标端口} {中间机器}

     3,例如以下拓扑,我们即可在VPS上执行如上命令

            例如SSH -L 2345:100.128.1.6:21 [email protected]

   ![image](https://upload-images.jianshu.io/upload_images/21837492-1a3d50bbe7d13fe3?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    4,现在环境模拟一下,三台LINUX主机分别为PC1 PC2 PC3  

iptables -I INPUT -s 192.168.49.136 -j DROP PC1增加防火墙规则禁止实现PC3

   ![image](https://upload-images.jianshu.io/upload_images/21837492-97860741673f1256?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

   ![image](https://upload-images.jianshu.io/upload_images/21837492-e11e43447636da1d?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

PC1:192.168.49.138 ** 模拟VPS**

PC2:192.168.49.134 模拟WEB服务器

PC3:192.168.49.136 模拟内网主机

即ssh -L 2345:192.168.49.136:22 [email protected]

这样vps ssh自己的2345端口,可以访问内网主机PC3的22端口

3,SSH隧道远程端口转发

        1,适用于WEB服务器,只有内网IP,可以出外网,并且内网主机之间可以互相访问

        2,例如我们可以在WEB服务器上-(跳板机)上使用以下命令

              SSH -Nf -R {远程VPS端口}:{目标机器}:{目标端口} {远程VPS机器}

        3,例如以下拓扑,我们可以在WEB服务器上执行

                    SSH -R 1234:1.1.1.10:22 192.168.1.10

   ![image](https://upload-images.jianshu.io/upload_images/21837492-f7685d9bb087464f?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

        4,现在环境模拟下,三台Linux主机A,B,C

       ![image](https://upload-images.jianshu.io/upload_images/21837492-4692bb8160d0c821?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

                A:192.168.49.138     **模拟VPS**

                B:192.168.49.136     **模拟内网服务器**

                C:192.168.49.133     **模拟内网主机**

A不能访问B和C,B可以自由访问,配置以下命令

     A:**iptables -I INPUT -s 192.168.49.133 -j DROP**

   ![image](https://upload-images.jianshu.io/upload_images/21837492-e6359dcbc15c412d?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    B:ssh -Nf -R 2345:192.168.49.133:22 192.168.49.138

    A:ssh -p 2345 127.0.0.1

    成功连接内网主机C的SSH

4,动态转发(类似翻墙)

动态转发多个简单,主要就是为你创建一个SOCKS5

例如:

        存在主机A,B,C,其A-> B = ok B-> C = ok A-> C = no ok     

                A:192.168.1.1恢复自己的计算机

                B:192.168.1.2动态转发服务器

                C:192.168.1.3谷歌

       我们只需要再A主机使用命令SSH -D 1234 192.168.1.2(类似小飞机的作用)

       然后再把浏览器设置代理端口1234即可将流量转发到192.168.1.2了,而这时自然也就可以出网上Google了

5,结论:

    本地端口转发适用于跳板机双网卡,内外网皆可通,外网也可直接ping跳板机。

    远程端口转发适用于跳板机可出外网,一般通过网关出口,外网不可直接到达内网。

    其适用场景不仅仅与以上两种情况,偶尔也可以把内网当外网,外网当内网来进行SSH隧道的建立。

参考文档:

https://xz.aliyun.com/t/6966#toc-11

https://segmentfault.com/a/1190000019397169

https://www.cnblogs.com/keerya/p/7612715.html#_label2

https://blog.csdn.net/weixin_42741132/article/details/82947192

你可能感兴趣的:(内网转发最好的工具——SSH隧道)