ssh端口转发--开启多个加密通道

ssh端口转发--开启多个加密通道,第1张

ssh端口转发--开启多个加密通道

一、ssh端口转发连接数据库

今天发现了一个好玩的功能,可以让ssh服务监听两个端口,利用ssh端口转发用这两个端口登录远程rac数据库。以前ssh服务都是监听一个端口,打开一个端口进行转发,没想到监听了多个端口。

为什么会这样呢?集团的***登录一直限制外网的1521端口和22端口,所以如果在家里使用这个接入平台,只能更改服务器的ssh端口。这个规定很讨厌。每次登录vcenter修改服务器的ssh端口,比如改成222。但是公司没有22个端口的限制。每次来公司,我都会把这个端口改回来。其实不改也可以。在xmanager上设置222端口是可以的,但是你可能不了解强迫症的心理。......

今天发现家里1521端口还是连不上公司数据库。TM这么多年了,还是鸟瞰。我们试试用ssh端口转发吧。

先说目的:因为公司禁止1521端口和22端口,所以不能直接ssh到两台rac服务器(当然可以修改rac服务器的ssh端口登录),也不能通过sqldeveloper连接实例。有一个222端口的跳机,可以ssh。所以我需要先ssh到跳线的端口222(这是允许的,很可能是一个漏洞),然后在这个跳线上设置一个ssh加密通道,将流量转发到两个目的地的端口1521。从跳转机到目的地没有端口限制。

拓扑如下所示:

跳汰机的 *** 作如下

ssh-10.0.0.0:65530:RAC-1:1521-N10.0.0.1-p222-f

在sqldeveloper上对其进行如下配置:


然后测试连接,OK,可以工作了。

之后,我连接到racdb2实例,但是在端口222上只能建立一个ssh通道。我该怎么办?sshd服务可以监听另一个端口吗?试试看:

Vim/etc/ssh/sshd_config

添加一行端口223,最终结果如下:

[root@SCD~]#grep-Iport/etc/ssh/sshd_config

端口222

端口223

然后重新启动sshd服务。

是的,netstat-ntplu|grep22发现真的还可以。

[root@SCD~]#netstat-ntplu|grep22

TCP0000000:22200000:*列表EN8802/sshd

TCP0000000:22300000:*列表EN8802/sshd

tcp00:::222:::*列表EN8802/sshd

tcp00:::223:::*列表EN8802/sshd

然后就可以开通第二转发通道了。

ssh-10.0.0.0:65531:RAC-2:1521-N10.0.0.1-p223-f

Sqldeveloper的配置如下:

最后的命令如下:

[root@SCD~]#moressh_port_forward.txt

ssh-10.0.0.0:65530:RAC-1:1521-N10.0.0.1-p222-f

ssh-10.0.0.0:65531:RAC-2:1521-N10.0.0.1-p223-f

[root@SCD~]#grep-Iport/etc/ssh/sshd_config

端口222

端口223

#禁用服务器中对新版本的传统(协议版本1)支持

#网关端口编号

二。ssh端口转发原理及实例

1、ssh端口转发原理

讲原理有点麻烦。让我们引用IBMdeveloperworks的一篇文章。

https://www.IBM.com/developerworks/cn/Linux/l-cn-sshforward/

这里就不赘述了。

我想说的是,我这里用的是本地型,也就是本地转发。我已经画出了两个命令的数据流。

这两个命令的数据流图如下

以第一个为例,第二个也一样:

客户端发起到10.0.0.1的端口65530的连接,在10.0.0.1上接收到数据后,它转到本地端口222。其实就是在跳线的65530端口和222端口之间建立一个加密通道,然后在10.0.0.1上解密数据,转发到rac-1服务器的1521端口。

实际上,这里涉及到3台服务器:

1.跳跃机(端口为65530的服务器)

2.通道另一端的服务器(端口为222的服务器)是用跳机建立的。还没想好叫什么,暂时就这么叫吧。

3.目标服务器(rac-1)

只是我的三台服务器合并成了一台设备,所以看起来我这里的命令有点奇怪,但是只要你知道数据流,就能熟练运用。

2、Ssh端口转发配置示例

以本次测试为例,拓扑图如下:


步骤0:在客户端的ssh10.0.0.1222和ssh10.0.0.1223上测试从客户端到跳转机器的连通性。它必须能连接,然后配置才有意义。

步骤1:向跳转机器添加以下两个命令

ssh-10.0.0.0:65530:RAC-1:1521-N10.0.0.1-p222-f

ssh-10.0.0.0:65531:RAC-2:1521-N10.0.0.1-p223-f

-L/-N/-f选项的含义,你可以自己去读。

步骤2:在跳线上修改sshd_config,添加2个允许ssh的端口,并重启sshd。

端口222

端口223

第三步:在跳线上的/etc/hosts中写入rac-1和rac-2的ip(如果不写,就不能在ssh命令中写入名称rac-1,需要写入rac-1的ip)

步骤4:在客户的计算机上使用sqldevelop或telnet进行测试:telnet10.0.0.165530。应该是有联系的。

3,音符

需要注意的是,我的跳线是redhat6.4系统,默认开启ssh的AllowTcpForwarding功能。如果配置ssh端口转发失败,请检查配置manshd_config,然后搜索allowtcpforwarding。在我的例子中,默认情况下它是打开的。记得打开配置。

防火墙和selinux我就不说了,直接关了。另外,可能有人会问,ip_forward是不是一定要打开。你怎么想呢?我这里只有一张网卡,可以转发一个球。默认net.ipv4.ip_forward=0。

去做吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/778712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存