ssh端口转发(跳板机)实战详解
发布网友
发布时间:2024-10-01 21:23
我来回答
共1个回答
热心网友
时间:2024-10-17 17:35
SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据。但是,SSH还能够将其他TCP端口的网络数据通过SSH链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做"隧道"(tunneling),这是因为SSH为其他TCP链接提供了一个安全的通道来进行传输而得名。例如,Telnet ,SMTP ,LDAP这些TCP应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH的连接,也能够通过将TCP用端口转发来使用SSH进行通讯。
1.1 SSH端口转发的两大功能
二、本地转发
命令:
实验一:实现SSH端口转发——本地转发
1)模拟服务器C不允许A用户连接,在服务器C上输入以下口令:
此时,从A(121)用ssh命令连接服务器C是拒绝的:
2)开启端口转发:
首先,我们在机器A上确认已经开启的端口有哪些:
从上图中我们可以看出,2222端口没有被占用,所以我们可以选择使用的2222端口:
接着我们建立本地转发的隧道(A上输入以下命令):
3)在服务器A(121)上输入以下命令,顺利连接到服务器C:
此时,我们可以查看一下服务器B的连接情况:
至此,我们已经实现了A用户在公司外部远程连接C机器的需求。
如果我们想要停止这个隧道,直接把后台的隧道进程杀死就可以了,命令如下:
三、远程转发
在我们实验一的场景下,首先要满足的是防火墙上必须打开22端口或者其他端口。但是在现实生活中,企业出于安全考虑,只允许主动连接别人,不允许别人连接自己。所以,当防火墙的端口没有打开的时候,这时就要用到远程转发了。
命令:
实验二、实现SSH端口转发——远程转发
1)模拟服务器C不允许A用户连接,在服务器C上输入以下口令:
此时,从A(121)用ssh命令连接服务器C是拒绝的:
2)开启隧道转发
这一次,由于防火墙完全关闭,外部的设备连接不进来,所以我们要通过服务器B去连接服务器A,因此,我们的开启隧道命令要在服务器B(122)上运行:
首先,我们要确定一下服务器B(122)上开启了哪些端口:
然后,我们选择一个没有被开启的端口开启隧道,进行实验:
查看服务器A(121)的端口:
3)在服务器A(121)上输入以下命令:
此时,我们可以查看一下服务器B(122)的连接情况:
至此,我们已经实现了A用户在公司外部远程连接C机器的需求。
热心网友
时间:2024-10-17 17:34
SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据。但是,SSH还能够将其他TCP端口的网络数据通过SSH链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做"隧道"(tunneling),这是因为SSH为其他TCP链接提供了一个安全的通道来进行传输而得名。例如,Telnet ,SMTP ,LDAP这些TCP应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH的连接,也能够通过将TCP用端口转发来使用SSH进行通讯。
1.1 SSH端口转发的两大功能
二、本地转发
命令:
实验一:实现SSH端口转发——本地转发
1)模拟服务器C不允许A用户连接,在服务器C上输入以下口令:
此时,从A(121)用ssh命令连接服务器C是拒绝的:
2)开启端口转发:
首先,我们在机器A上确认已经开启的端口有哪些:
从上图中我们可以看出,2222端口没有被占用,所以我们可以选择使用的2222端口:
接着我们建立本地转发的隧道(A上输入以下命令):
3)在服务器A(121)上输入以下命令,顺利连接到服务器C:
此时,我们可以查看一下服务器B的连接情况:
至此,我们已经实现了A用户在公司外部远程连接C机器的需求。
如果我们想要停止这个隧道,直接把后台的隧道进程杀死就可以了,命令如下:
三、远程转发
在我们实验一的场景下,首先要满足的是防火墙上必须打开22端口或者其他端口。但是在现实生活中,企业出于安全考虑,只允许主动连接别人,不允许别人连接自己。所以,当防火墙的端口没有打开的时候,这时就要用到远程转发了。
命令:
实验二、实现SSH端口转发——远程转发
1)模拟服务器C不允许A用户连接,在服务器C上输入以下口令:
此时,从A(121)用ssh命令连接服务器C是拒绝的:
2)开启隧道转发
这一次,由于防火墙完全关闭,外部的设备连接不进来,所以我们要通过服务器B去连接服务器A,因此,我们的开启隧道命令要在服务器B(122)上运行:
首先,我们要确定一下服务器B(122)上开启了哪些端口:
然后,我们选择一个没有被开启的端口开启隧道,进行实验:
查看服务器A(121)的端口:
3)在服务器A(121)上输入以下命令:
此时,我们可以查看一下服务器B(122)的连接情况:
至此,我们已经实现了A用户在公司外部远程连接C机器的需求。