SSH正反向隧道


正向隧道

拓扑如下:

说明:

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

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

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

AGENT上执行指令如下:

[[email protected] ~]# 
[[email protected] ~]# netstat -antp | grep 8880
[[email protected] ~]# ssh -g -f -NL 100.1.1.100:8880
[[email protected] ~]# 
[[email protected] ~]# 
[[email protected] ~]# netstat -antp | grep 8880
[[email protected] ~]# 
[[email protected] ~]# ssh -g -f -NL 100.1.1.100:8880:172.19.2.250:80 [email protected]
[email protected]‘s password: 
[[email protected] ~]# netstat -antp | grep 8880
tcp        0      0 100.1.1.100:8880            0.0.0.0:*  
                 LISTEN      3826/ssh            
[[email protected] ~]#

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

在CLIENT访问测试:

测试成功!

另一拓扑:

说明:

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

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

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

在AGENT2上执行指令如下:


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

[[email protected]~]# ssh -g -f -NL 100.1.1.1:8880:172.19.2.250:80 [email protected]

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

打开会话链接

本地端口已经监听

访问测试

测试成功 !

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



反向隧道

说明:

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

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

在AGENT1上执行指令如下:

[[email protected] ~]# ssh 172.19.2.250
[email protected]‘s password: 
Last login: Tue May  3 11:35:00 2016 from 192.168.6.44
[[email protected] ~]# netstat -antp | grep 22022
[[email protected] ~]# 
[[email protected] ~]# exit
logout
Connection to 172.19.2.250 closed.
[[email protected] ~]# ssh -g -f -NR 172.19.2.250:22022:100.1.1.100:22 [email protected]
[email protected]‘s password: 
Permission denied, please try again.
[email protected]‘s password: 
[[email protected] ~]# netstat -antp | grep 22022
[[email protected] ~]# ssh 172.19.2.250
[email protected]‘s password: 
Last login: Tue May  3 11:35:26 2016 from 192.168.6.44
[[email protected] ~]# netstat -antp | grep 22022
tcp        0      0 127.0.0.1:22022             0.0.0.0:*                   LISTEN      19370/sshd          
tcp        0      0 ::1:22022                   :::*                        LISTEN      19370/sshd          
[[email protected] ~]#

说明:首先确认在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上重新创建反向隧道

[[email protected] ~]# netstat -antp | grep 22022
tcp        0      0 0.0.0.0:22022               0.0.0.0:*                   LISTEN      20614/sshd          
tcp        0      0 :::22022                    :::*                        LISTEN      20614/sshd          
[[email protected] ~]#

链接测试:

链接成功 !

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

时间: 2024-11-05 14:42:58

SSH正反向隧道的相关文章

ssh和SSH服务(包含隧道内容)

ssh和SSH服务(包含隧道内容) 72.16.10.6:/etc/fstab-->/172.16.10.3:/tmp/a.txt. [[email protected] ~]# scp 172.16.10.6:/etc/fstab 172.16.10.3:/tmp/a.txt fstab 100% 501 0.5KB/s 00:00 Connection to 172.16.10.6 closed. 1.7.1 scp拷贝机制分析 scp的拷贝实质是建立ssh连接,然后通过此连接来传输数据.如

第1章 ssh和SSH服务(包含隧道内容)

本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的man文档,如本文有不理解的地方,可以参考man文档手册:ssh中文手册. 本文目录: 1.1 非对称加密基础知识 1.2 SSH概要 1.3 SSH认证过程分析 1.3.1 主机验证过程 1.3.2 身份验证过程 1.3.3 验证通过 1.4 各种文件分布 1.5 配置文件简单介绍 1.5.1 s

ssh命令:隧道代理+本地端口转发+远程端口转发

0.前言 nc是一个在网络连接两端的好工具,同时也是也个临时的端口转发的好工具.(永久的端口转发用什么?用iptables) ssh也是这方面的好工具,好处是加密可靠可复用在一端操作即可,代价是要有登录帐号. 我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发.它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务. 1.隧道带理 典型应用:翻越中国高墙 需要条件:一

ssh的反向隧道

这是针对笔记本能上网,服务器内网不能上网的环境 ssh -R 0.0.0.0:2222:控制节点IP:22 [email protected]公司服务器IP:22 这样公司服务器上就开启了一个2222的隧道端口,公司服务器上直接连本地的2222端口就连接到了控制节点的22端口.

SSH反向隧道的内网穿透

环境如下: A机器两块网卡eth0(192.168.0.173).eth1(192.168.100.1),eth0可以上外网,eth1仅仅是内部网络,B机器只有eth1(192.168.100.3),和A机器eth1可以通信互联,外网无法ssh进入B主机,可以使用ssh的反向隧道实现. A: 1.首先在A 上编辑sshd 的配置文件/etc/ssh/sshd_config,将GatewayPorts 开关打开: vim /etc/ssh/sshd_config GatewayPorts yes

加密、解密的原理及Openssl创建CA和ssh的基础应用

加密.解密的原理及Openssl创建CA和ssh的基础应用 随着互联网的不断发展和技术的不断成熟,在互联网上传输文件不在安全,在需要传送重要的数据时就必须加密处理. 密码算法分为三种:分别是对称加密,公钥加密,单向加密:以及需要对加密算法的认证,叫做认证协议.下面为大家概述对称加密,公钥加密,单向加密及认证协议 对称加密: 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密. 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性

ssh 原理和基本使用

一.什么是 SSH ? SSH(Secure SHell)是一种网络协议,顾名思义就是非常安全的shell,主要用于计算机间加密传输.早期,互联网通信都是基于明文通信,一旦被截获,内容就暴露无遗.1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置.SSH的主要目的是用来取代传统的telnet 和 R 系列命令(rlogin, rsh, rexec 等)远程登录和远程执行命令的

VNC+SSH相关应用

1.安装vnc-server  vncviewer2.执行vncserver  输入密码3.执行vncserver -kill :1 杀死1号屏幕4.修改/root/.vnc/xstartup   unset SESSION_MANAGER   exec /etc/X11/xinit/xinitrc  去掉以上两行的注释 或者:/root/.vnc/xstartup,在最后一行会看到twm &,(不能去掉&)如果要运行KDE则将twm改成startkdeGnome则改成gnome-sess

OpenSSH——ssh

ssh程序是SSH Client中的客户程序,下面根据不同应用场景中ssh程序的使用来介绍ssh程序. 一.基本应用场景 在本应用场景中,建立SSH连接,允许进行"用户登录,命令执行等"操作. 1.1.建立ssh连接命令 在本场景中,使用ssh程序建立SSH连接的命令如下: ssh -l dslztx -i ~/.ssh/id_dsa -p 22 192.168.1.5 1.1.1.选项的含义 1."-i" 指定私钥文件 2."-p" 指定SSH