标签:ssh
SSH的端口转发(port forwarding via SSH),又叫做SSH隧道(SSH tunneling) ,是一种在本地计算机和远程计算机之间建立一个安全的连接,使远程计算机还可以作为中继服务。SSH为其他 TCP链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。总的来说 SSH端口转发能够提供两大功能:
1:加密 SSHClient 端至 SSHServer端之间的通讯数据。
2:突破防火墙的限制完成一些之前无法建立的 TCP 连接。
SSH端口转发的三种类型:
1、本地端口转发:由SSH客户端经由SSH服务器端转发,连接至目标服务器上。
2、远程端口转发:由SSH服务器经由SSH客户端转发,连接至目标服务器上。
3、动态端口转发:从各种应用经由SSH客户端转发,经过SSH服务器,到达目标服务器,不固定端口。
实验背景介绍:
远程服务器C拒绝A的连接,B服务器拒绝A的不安全链接。
目的:通过A到B服务器安全链接,通过B代A访问服务器C。
1:本地端口转发
示意图:
如图所示,通过在客户机和服务器之间建立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的端口时,被加密后转发到sshsrv的ssh服务,再解密被转发到telnetsrv:23
2:远程端口转发
示意图:
如图所示,服务器经由客户端,远程端口转发与本地端口转发中,客户端和服务器端的角色进行了相互的调换,在实验背景中,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端口为代理端口。
本文出自 “Linux运维” 博客,请务必保留此出处http://jk6627.blog.51cto.com/12002684/1970744
标签:ssh
原文地址:http://jk6627.blog.51cto.com/12002684/1970744