SSH三种端口转发技术

SSH的端口转发(port forwarding via SSH),又叫作SSH隧道(SSH tunneling) ,是一种在本地计算机和远程计算机之间创建一个安全的链接,使远程计算机还能够做为中继服务。SSH为其余 TCP连接提供了一个安全的通道来进行传输而得名。例如,TelnetSMTPLDAP这些 TCP 应用均可以从中得益,避免了用户名,密码以及隐私信息的明文传输。总的来讲 SSH端口转发可以提供两大功能:shell

1:加密 SSHClient 端至 SSHServer端之间的通信数据。浏览器

2:突破防火墙的限制完成一些以前没法创建的 TCP 链接。安全

SSH端口转发的三种类型:服务器


    一、本地端口转发:由SSH客户端经由SSH服务器端转发,链接至目标服务器上。ssh

    二、远程端口转发:由SSH服务器经由SSH客户端转发,链接至目标服务器上。socket

    三、动态端口转发:从各类应用经由SSH客户端转发,通过SSH服务器,到达目标服务器,不固定端口。ide

实验背景介绍:加密

  wKioL1nZ7IiD56KIAAANwhZQ2NQ103.png

远程服务器C拒绝A的链接,B服务器拒绝A的不安全连接。spa

目的:经过AB服务器安全连接,经过BA访问服务器Cfirefox


1:本地端口转发

示意图:

   wKiom1nZ7P-yPVnLAABwrnuOwPc812.png

如图所示,经过在客户机和服务器之间创建SSH安全通道,将应用程序的数据经过通道经由服务器,链接到目标服务器上。在实验背景介绍中,A至关于客户端,B至关于服务器端。

实现过程:

   在客户端操做(A):

  ssh -L local_port:remote_address:remote_port  remote_sshd_jumpserver

local_port:是指指定一个本地端口,做为链接sshd跳板机的端口

remote_address:指的是要登陆的远程主机地址

remote_port:指的是要登陆的远程主机的端口

remote_sshd_jumpserver:是指开启了sshd服务的跳板机(至关于SSH服务器B)

示例:

   ssh –L 9527:telnetsrv:23 -fN sshsrv    

-f后台启用

-N不打开远程shell,处于等待状态

-g启用网关功能,跟本地这台机器在同一个网段的,均可以经过这台机器进行转发。

    telnet 127.0.0.1 9527     

经过访问本机的9527的端口时,被加密后转发到sshsrvssh服务,再解密被转发到telnetsrv:23


2:远程端口转发

示意图

      wKioL1nZ7Mngi4TlAABzfOKXXR4289.png

如图所示,服务器经由客户端,远程端口转发与本地端口转发中,客户端和服务器端的角色进行了相互的调换,在实验背景中,A至关于服务器端,B至关于客户端。(注意:这里的客户端和服务器端均是指相对于SSH协议的服务器端和客户端。)

实现过程:

   在跳板机上操做(B)

   ssh-R sshserverport:remotehost:remotehostport sshserver         

sshserverport:是指ssh服务器是打开的端口,(A机器)

remotehost:指的是要登陆的远程主机地址

remotehostport:指的是要登陆的远程主机的端口

sshserver:是指SSH服务器端的地址(至关于A机器)

示例:

  ssh –R 9527:telnetsrv:23 –fN sshsrv    

A机器上执行:telnet 127.0.0.1 9527

sshsrv侦听9527端口的访问,若有访问,就加密后经过ssh服务转发请求到本机ssh客户端,再由本机解密后转发telnetsrv:23


3:动态端口转发

当用firefox访问internet时,本机的1080端口作为代理服务器,firefox的访问请求被转发到sshserver上,由sshserver替之访问internet

   在本机firefox设置代理socket proxy:127.0.0.1:1080

   在客户端执行:

    ssh -D 1080 root@sshserver    

须要在图形界面的浏览器中设置服务代理,并指定1080端口为代理端口。

相关文章
相关标签/搜索