SSH转发

前言

前面介绍了ssh的两种连接方式,是在学习过程中连接主机的方式。在实际生产场景中,环境可能更加复杂。这里再介绍2种在实际工作中如何安全的访问想要访问的主机。

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转发的实际应用

假如你在一家公司做运维,你在家的时候或者分公司同事、其他部门的人想连接公司内部的一台主机,这时防火墙是阻止不允许访问。甚至有些严格的公司VPN都是不允许开启的。防火墙是专门的网络运维管理员管理,不可能因为某一个人的小需求更改策略。那这时怎么办呢?企业内部有一台ssh服务器,因为ssh是加密的,外部直接连接ssh服务是可以的。现在可以通过ssh server当跳板机,间接的去连接其他主机。如下图:A是外部一台主机,想连接C,直接连是被防火墙拒绝的。B是ssh服务器,B是可以直接连C的。A可以通过与B搭一个“隧道”,B来转发A的请求到C。情形具体参考下图。

第一步:模拟A无法连接C

C机器:iptables -A INPUT -s 192.168.32.101 -j REJECT     <===拒绝来自A机器的连接

第二步:确认B机器上开启可ssh服务,可以用/etc/init.d/sshd status 查看下状态,如果没开用start开启。也可以ss -ntl看下22端口是否开启,ssh是在22端口提供服务的。

第三步:在A机器上建立隧道ssh -L 9527:192.168.32.103:23 -fN 192.168.32.102

说明:-L 9527:192.168.103:23 <===指定本机的9527端口,后面接想要连接的主机地址加服务端口

-f                                  <===后台启用,不后台运行直接就连接上去了。

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

192.168.32.102             <===跳板机B的ip地址

第四步:在A上直接telnet 127.0.0.1 9527 <===当访问本机的9527的端口时,被加密后转发到ssh server(B)的ssh服务,再解密被转发到telnet server(C)的23端口

总结:因为这是在本地执行操作的,也可以称作为ssh的本地转发。这么做虽然加密了,但是在防火墙上依然对22端口没有限制,外部机器可以通过tcp:22端口访问内部。所以很多企业是不允许打开22端口的。那假如22端口也被防火墙屏蔽了怎么办呢?既然有本地转发,肯定有远程转发啦!

ssh远程转发:与上面的架构一样,只是ssh server和ssh client发生变化。A和B互相调换位置。如下图:这次我们换一个不安全的邮件smtp服务。

第一步:由于这次我们模拟的是SMTP服务,需要实现修改一下smtp的配置:

vim /etc/postfix/main.cf            <===配置文件

inet_interfaces = all        <===取消#,使这行生效

#inet_interfaces = localhost      <===注销此行

重启服务:service postfix restart

第二步:在B上操作:ssh -R 9527:192.168.32.103:25 -Nf 192.168.32.101    <===远程是-R,其余选项参考上面

第三步:在A上telnet 127.0.0.1 9527连接成功!

总结:远程转发相比较本地转发来说,比较安全。不管防火墙屏蔽了任何端口,都不影响,不涉及外部机器对防火墙主动发起请求。A连接的C的telnet实际已经被B上的ssh进行封装。所以也是安全的。

ssh转发补充:
       其实ssh还有一种转发模式,就是动态转发。应用比较多的就是我们说的科学上网。

在本机上执行ssh -D 1080 192.168.32.102     <===-D 本机的1080端口做为代理服务器,后面是代理服务器的IP地址。

*curl
--socks5 127.0.0.1 http://192.168.32.103 <===测试连接103的网站能否打开,使用浏览器需要设置一下代理。

        访问外网有风险,建议大家还是不要过多的科学上网。     

时间: 2024-10-20 00:58:37

SSH转发的相关文章

测试ssh转发

端口转发提供: 1.加密 SSH Client 端至 SSH Server 端之间的通讯数据. 2.突破防火墙的限制完成一些之前无法建立的 TCP 连接. 但是只能转发tcp连接,想要转发UDP,需要另外安装软件. 场景一: 现在有A,B两台机器,可以互相ssh访问,但是B上防火墙组织所有其他端口访问,想通过ssh转发,让A的8000端口访问B上8001端口. A的ip:192.168.66.19 B的ip:192.168.66.78 B内开启防火墙 systemctl start firewa

PuTTY+Xming实现X11的ssh转发

需求分析 实验环境 配置步骤 1 需求分析 有些Linux程序还是不能完全离开窗口环境,或者说离开后操作不方便.其中Oracle就是这样一个程序,其工具程序大多数能够在纯命令行静默执行,如 OCI,DBCA,NetCA等,但是工作在图形界面时更加方便.为此,需要利用X11的XServer和XClient跨网工作原理进行远程显示.而更加方便的是,SSHD远程协议完全支持对X11协议的转发,这样我们就可以只需在服务器端开启一个sshd服务即可通过转发X11来实现远程桌面. 2 实验环境: 服务器端:

Windows下如何实现SSH转发

需要: Power Shell或Git Shell(集成了Power Shell) 步骤: 在Power Shell或Git Shell中直接运行命令:ssh -C -D 7070 [email protected] -qfnN     注意:username和host替换成你自己的值 -C 表示压缩传输 -D 本机的转发端口,通过该端口的数据会直接经过[email protected]主机(VPN) 运行效果: 测试一下,在firefox下安装autoproxy,使用ssh -D代理,效果如下

SSH转发机制

第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我们带来什么好处吧! 端口转发概述 让 我们先来了解一下端口转发的概念吧.我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发.它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及

利用SSH端口转发实现远程访问内网主机远程桌面(一) 建立SSH转发

近期家里更换了移动的宽带,拨号后拿到的是10开头的内网IP,就不能像之前一样通过路由器的端口映射实现从外网访问主机的远程桌面.这种情况下可以利用一台具有公网IP的服务器充当中转,利用SSH的隧道转发功能将远程桌面请求转发至内网主机. SSH隧道 SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据,除此之外SSH 还能够将其他TCP端口的网络数据通过SSH链接来转发,并且自动提供了相应的加密及解密服务,这一功能也称为“SSH隧道”.SSH隧道分为本地转发.远程转发和动态转发. 本地转

Linux渗透+SSH内网转发

http://www.jb51.net/hack/58514.html http://blog.chinaunix.net/uid-756931-id-353243.html http://blog.163.com/czg_e/blog/static/46104561201552423342331?ignoreua http://www.noah.org/wiki/SSH_tunnel http://www.myhack58.com/Article/60/63/2013/38396_3.htm

ssh 端口转发实现外网 80 端口映射到内网 80 端口

开发中经常需要外网服务映射到本机内网服务的需要,便于调试. 以前都是同事帮着配,这两天自己也看了一下 ssh 端口转发. 同事分分钟钟搞定的事情,自己折腾了 2 天, 真是弱爆了. 最初老想不明白一件事,为什们外网服务器能够找到我的内网机器,现在才明白原来走的是 ssh 隧道. 需求我的内网机器  192.168.9.100, 我的阿里云外网 123.56.86.52,  现在需要所有对 123.56.86.52  80 端口的访问都映射到  192.168.9.100 的 80 端口. 显然 

SSH 端口转发实战

第一部分 概述 场景一: 设想这样一个场景,当你挤了很久的公交,又辗转了几班地铁,终于拖着疲惫的身躯回到家中的时候,突然间接到了领导的电话,公司服务器上有某个重要的服务需要立马被关闭,而公司的内部网络与外部网络之间有防火墙,禁止telnet远程直接链接,这时你会怎么办呢?(吐槽一下,运维好苦逼/(ㄒoㄒ)/~~) 场景二:  设想另外一种场景,在本地的一个服务器上运行着SMTP服务,而远程的一个主机需要访问这个SMTP服务,但是防火墙不允许不信任的外部访问,进入到局域网内部,而内部的主机却是可以

SSH端口转发详解及实例

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