ssh服务的端口转发模拟

SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果您工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。总的来说 SSH 端口转发能够提供两大功能:

  1. 加密 SSH Client 端至 SSH Server 端之间的通讯数据。
  2. 突破防火墙的限制完成一些之前无法建立的 TCP 连接。

在实验之前我们需要了解 SSH 连接是有方向的,从 SSH Client 到 SSH Server 。而我们的应用也是有方向的,比如需要连接 应用的 Server 时,应用的Server 自然就是 Server 端,我们应用连接的方向也是从应用的 Client 端连接到应用的 Server 端。如果这两个连接的方向一致,那我们就说它是本地转发。而如果两个方向不一致,我们就说它是远程转发。
命令:ssh
-f 后台启用
-N 不打开远程shell,处于等待状态
-g 启用网关功能

因为是模拟实验,我们需要做以下准备假设A(192.168.159.219),B(192.168.159.100),C(192.168.159.200)三台虚拟机,我们在C上做防火墙策略,禁止A 链接C
在C上执行 iptables -A INPUT -s 192.168.159.219 -j REJECT
我们测试一下 用A ping C,ping不通,模拟C和A有防火墙,禁止A访问


本地转发:
由于防火墙设置的原因,只有本地的主机可以访问C 即只有B能访问C 那么如果现在我们有一台主机A想访问C ,该怎么访问呢,这是我们就要借助ssh的端口转发了,A作为客户端随机打开一个端口比如(1314)端口链接B的ssh(22)端口再由B转发给C

-L localport:remotehost:remotehostport sshserver
例:



远程转发:
当防火墙设置不能从客户端访问服务器端,但它的反向是允许的 这时我们就需要远程转发,应用的客户端作为ssh 的服务器端。

-R sshserverport:remotehost:remotehostport sshserver
例:


动态端口转发:
当A处于防火墙内,禁止访问外网时,我们可以通过ssh端口转发访问一个已知的ip地址,再由它访问防火墙外的任意机器,比如C等。

ssh -D 1080 root@sshserver

当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问请求被转发到sshserve上,由sshserver替之访问internet
在本机firefox设置代理socket proxy:127.0.0.1:1314

字符界面可以通过如下方式访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值