我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:斗牛棋牌下载 > 回答式干扰 >

ssh端口转发的三种方式

归档日期:11-02       文本归类:回答式干扰      文章编辑:爱尚语录

  ssh是我使用最频繁的两个命令行工具之一(另一个则必须是vim)。有了ssh,我可以远程处理各种可能出现的问题而无需肉身到现场。

  这几天teamviewer被黑的事情影响挺大,于是由远程控制想到了内网穿透,自然而然的想到了ssh的端口转发也能实现内网穿透。再细想一下,发现ssh隧道、或者说端口转发,竟然实现了正向代理、反向代理和内网穿透三种常用的网络功能,更佩服其功能的强大和使用中的便利。

  CentOS 7安装GUI界面及远程连接一文中介绍了安装vnc服务并开启端口访问。在实际中,暴露出来的59xx端口每天都会源源不断的受到自动化脚本的爆破攻击。如果你的vnc和登录用户使用弱密码或字典密码,主机安全将受到极大威胁。这种情形下该如何防护?

  一种简单安全的防护方法是:使用iptables/firewalld关闭端口的外网访问,有连接需求时用ssh隧道转发端口:

  该命令中将本地的5901端口通过ssh隧道转发到远程主机的5901端口,远程连接时输入localhost或者127.0.0.1和5901端口便连到了远程主机的5901端口。通过iptables和ssh的本地转发,实现了他人无法连接,只有自己才能访问的目的。

  需要注意的是“-L”选项中的“远程主机”并不特指连接过去的机器(默认是连接上的机器),可以是任何一主机。例如可以将本机的8080端口流量转发到80端口:

  远程转发最常用的功能是内网穿透。有一个公网ip的主机,便可以借助ssh隧道的远程转发实现内网渗透,达到外网访问内网资源的目的。需要注意的是ssh远程转发默认只能绑定远程主机的本地地址,即127.0.0.1。如果想要监听来自其他主机的连接,需要修改远程主机ssh的配置,将GatewayPorts改成“yes”,重启ssh后生效。

  通过远程转发,访问公网ip主机的8080端口便是访问内网web主机的80端口,这样就实现了内网穿透。

  无论本地转发还是远程转发,都需要指定本地和远程主机的端口。动态转发(Dynamic Port Forwarding)则摆脱这种限制,只绑定本地端口,远程主机和端口由发起的请求决定。动态转发的语法是:-D bind_address:port,一个转发示例:

  该命令让ssh监听本地8080端口,经过8080端口的流量都通过ssh隧道由远程服务器代为请求,从而达到获取被屏蔽资源、隐藏真实身份的目的。

  动态转发实际上实现了正向代理功能,因此可以用来科学上网。本地转发也可以做正向代理,但要对每一个请求的主机和端口做转发,比较繁琐,实践中不会这么用。

  从用户端角度看,本地转发是正向代理;从资源提供方角度看,本地转发是反向代理;

  ssh连接断开远程转发/内网渗透便失效。如果希望远程转发一直有效,需要ssh保活技术,建议用frp等专注于内网渗透的解决方案;

  虽然ssh隧道中的流量都经过了加密,但防火墙对ssh隧道中承载的流量能比较智能的识别,因此用作科学上网很容易受到干扰;

  如果仅做端口转发,实践中上述命令经常与-NT -f选项结合使用。其中-f选项将命令放入后台执行,断开连接需要用

  每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

本文链接:http://extreamist.com/huidashiganrao/765.html