一、SSH端口转发相关概念
通过上一节的学习我们知道,SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据。但是,SSH还能够将其他TCP端口的网络数据通SSH链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做”隧道”(tunneling),这是因为SSH为其他TCP链接提供了一个安全的通道来进行传输而得名。例如,Telnet ,SMTP ,LDAP这些TCP应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境许中的防火墙限制了一些网络端口的使用,但是允许SSH的连接,也能够将通过将TCP用端口转发来使用SSH进行通讯。
1.1 SSH端口转发的两大功能
- 加密SSH Client端至SSH Server端之间的通讯数据。
- 突破防火墙的简直完成一些之前无法建立的TCP连接。
1.2 SSH端口转发提供的类型有:
- 本地转发
- 远程转发
- 动态转发
- X协议转发
本地转发
当外网用户想要临时访问公司内部的不安全TCP协议服务器时,由于防火墙限制无法直接访问,
但可利用先SSH连接至公司内网的SSH服务器在转发至不安全的TCP协议服务器。
由于作为转发的SSH服务器与要访问的不安全TCP协议服务器在同一网络环境内,
故这种连接就叫本地转发。
格式:
ssh -L localprot:remotehost:remotehostport sshserver
localprot:指定本机端口 remotehost:指定远程不安全协议的服务器地址 remotehostport:远程不安全协议的服务器地址端口 sshserver:SSH服务器地址
options:
-f 后台启用
-N 不打开远程shell,处于等待状态
-g 启用网关功能
示例:
ssh -L 9527:telnetsrv:23 -N sshsrv
telnet 127.0.0.1 9527
当访问本机的9527端口时,被加密后转发到sshsrv的ssh服务,再解密被转发到telnetsrv:23
大致流程:
Data <–> localhost:9527 <–>localhost:xxxxx <–> sshsrv:22