设为首页 收藏本站
查看: 1291|回复: 0

[经验分享] ssh端口转发--开启多个加密通道

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-5-17 09:11:31 | 显示全部楼层 |阅读模式
一、ssh端口转发连接数据库
  今天发现了一个好玩的功能,让ssh服务监听2个端口,并且使用ssh端口转发用这两个端口登录远程的rac数据库。以前都是让ssh服务监听一个端口并且开一个端口转发,没想到可以监听多个端口。
  为什么要这样呢?集团的vpn登录一直都限制1521端口、限制外网的22端口,所以如果在家用这个接入平台的话,就只能将服务器的ssh端口换一个,这个规则很讨厌,每次我都是登录到vcenter上修改服务器的ssh端口,例如改成222。但公司内部不限制22端口,每次到公司,我再把这个端口改回来。其实不改也行,在xmanager上设置222端口也是可以的,但你也许不明白强迫症人的心理......
  今天在家里发现还是无法连接公司数据库的1521端口,都TM这么多年了,还者鸟样,还是用ssh端口转发试一下吧.
  我先说一下目的吧:因为公司禁止1521端口,禁止22端口,所以无法直接ssh到两台rac服务器(当然也可以修改rac服务器的ssh端口来登录上去),也无法通过sqldeveloper连接到实例。有一台跳转机开了222端口,可以ssh。所以我需要先ssh到跳转机的222端口(这个是允许的,估计也是个漏洞吧),之后在这台跳转机上建立个ssh加密通道,转发流量到2个目的地的1521端口。从跳转机到目的地是没有任何端口限制的。

拓扑如下:
QQ截图20160517090953.png


在跳转机上操作如下
ssh -L0.0.0.0:65530:rac-1:1521 -N 10.0.0.1 -p 222 -f

在sqldeveloper上配置如下:
QQ截图20160517090959.png
之后测试连接,OK,能够通。
之后连接racdb2实例,但222端口只能建立一个ssh通道,怎么办呢?让sshd服务再监听另外一个端口可以吗?试一下:
Vim/etc/ssh/sshd_config
在添加一行Port 223,最终结果如下:
[iyunv@scd ~]# grep-i port /etc/ssh/sshd_config
Port 222
Port 223

之后重启sshd服务
Yes,netstat-ntplu|grep 22发现真的是OK的
[iyunv@scd ~]#netstat -ntplu|grep 22
tcp        0     0 0.0.0.0:222    0.0.0.0:*                   LISTEN      8802/sshd         
tcp        0     0 0.0.0.0:223    0.0.0.0:*                   LISTEN      8802/sshd         
tcp        0     0 :::222        :::*                        LISTEN      8802/sshd         
tcp        0     0 :::223        :::*                        LISTEN      8802/sshd

之后就可以打开第二个转发通道了
ssh -L0.0.0.0:65531:rac-2:1521 -N 10.0.0.1 -p 223 -f

Sqldeveloper配置如下:
QQ截图20160517091006.png
QQ截图20160517091011.png
最终的命令如下:
[iyunv@scd ~]# moressh_port_forward.txt
ssh -L0.0.0.0:65530:rac-1:1521 -N 10.0.0.1 -p 222 -f
ssh -L0.0.0.0:65531:rac-2:1521 -N 10.0.0.1 -p 223 -f

[iyunv@scd ~]# grep-i port /etc/ssh/sshd_config
Port 222
Port 223
# Disable legacy(protocol version 1) support in the server for new
#GatewayPorts no
二、ssh端口转发原理与举例
1、ssh端口转发原理
原理讲起来有些麻烦,还是引用一篇IBM developerworks上的一篇文章吧,
https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/
我这里就不细说了。
我想说的是在我这里用的是local类型,也就是本地转发,我把两条命令的数据流向画了一下。
两条命令的数据流向图如下
QQ截图20160517091024.png
以第一个为例,第二个相同:
  客户端发起到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)
只是我这里3台服务器都合并成一台设备了,所以显得我这里的命令有些奇怪,但只要掌握了数据流向就可以熟练应用了。
2、Ssh端口转发配置举例
以这次的测试为例,拓扑图如下:
QQ截图20160517091037.png
Step0:在客户的上ssh10.0.0.1 222和ssh 10.0.0.1 223测试客户端到跳转机的连通性,必须能够连通,之后的配置才有意义。

Step1:在跳转机上添加如下两条命令
ssh -L0.0.0.0:65530:rac-1:1521 -N 10.0.0.1 -p 222 -f
ssh -L0.0.0.0:65531:rac-2:1521 -N 10.0.0.1 -p 223 -f
-L/-N/-f选项的意义,自己man吧,应该都能读懂

Step2:在跳转机上修改sshd_config,添加2个允许ssh的端口,并重启sshd
Port 222
Port 223

Step3:在跳转机上将rac-1和rac-2对应的ip写到/etc/hosts中(不写的话你在ssh命令中就不能写rac-1这个name了,你需要写rac-1的ip)

Step4:在客户的上用sqldevelop测试,或者用telnet测试:telnet10.0.0.1 65530。应该是可以连通的

3、注意事项
  需要注意的一点是,我的跳转机是redhat6.4的系统,默认是打开ssh的AllowTcpForwarding功能的。如果你配置ssh端口转发不成功的话,不妨检查一下该项配置,man sshd_config,然后搜索allowtcpforwarding,就像我这里,默认是打开的。要记得打开该配置呀。
QQ截图20160517091045.png
防火墙和selinux什么的我就不说了,关闭就行了。另外,有人可能会问ip_forward是不是必须要打开呀?你觉得呢?我这里就一块网卡,转发个球啊,默认的net.ipv4.ip_forward = 0
就行了。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-218016-1-1.html 上篇帖子: linux下数据库实例监听开机自启动设置 下篇帖子: 用awk数组统计日志访问状况和网络连接状态 加密 通道
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表