加密访问利器:配置基于SSH的动态端口转发

时间:2024-03-27 19:02:42

通过SSH使用SOCKS进行动态端口转发,可能是连接到远程主机的最简单,最便宜的安全方法。注意,是连接到远程主机的办法。如果没有没有长城之外的远程主机,就没有办法叫做利器了。

此方法允许客户端计算机上的应用程序向本地端口发出请求,然后将请求转发到远程主机,远程主机处理请求并将数据返回给客户端。本地有一个SOCKS服务器,它首先处理请求,然后将它们加密转发到远程计算机。因此,基于SSH的动态端口转发是一个v*n的简单替代方案。

为什么有人需要这个动态转发? 有两个主要原因。 首先,如果您使用的是公共的,非安全的,不受信任的,未加密的网络(例如在当地的咖啡店),您可以使用此方法安全地连接到远程主机并加密网络流量,从而保护您的数据和 隐私。 其次,需要绕过本地网络限制和监控。 这里的一个很好的例子是规避网上冲浪限制。 在大多数情况下,通过端口80检查tcp/ip数据包。通过SSH使用动态端口转发,我们通过不同的端口传输http数据,而且所有http请求/响应都通过ssh加密,所以这些数据包无法被检查或过滤。

好了,下面看看怎么来安装动态端口转发加密访问。

1 服务器端安装

显然,这个需要服务器在长城之外。
需要远程主机来接收和处理来自客户端的请求。 任何计算机或设备都可以是远程主机,只要它运行ssh即可。 在这方面,任何Linux系统都是理想选择。
查看是否安装了ssh。如果没有的话,需要进行安装并启动(略)。

 ps -ef|grep ssh

加密访问利器:配置基于SSH的动态端口转发

2 客户端安装

如果客户端是Linux机器,几乎不需要设置任何东西。 用以下命令连接到远程主机即可:
ssh -D port_number user_name @ remote_host
(例如:ssh -D 8080 username @ remote-server)

然后剩下的唯一事情就是将应用程序配置为使用SOCKS。 以下面的Firefox设置为例(步骤7)。

如果客户端是Windows,则必须先安装ssh客户端。 PuTTY是Windows的一个很好的免费的ssh客户端。

Step 1 : 下载PuTTY

Step 2 : 打开PuTTY并输入服务器端的IP地址或域名。 将端口保留为默认端口22,并在“已保存的会话”下为该连接指定名称,然后单击“save”保存。
加密访问利器:配置基于SSH的动态端口转发
Step3:单击“Connection”下的“SSH”,确保“SSH protocol version”设置为2。2也是默认值,因为1已经是不安全的了。
加密访问利器:配置基于SSH的动态端口转发
Step 4 : 在SSH子栏目下面的 “Auth” 项中,选择 “Allow agent forwarding”。
加密访问利器:配置基于SSH的动态端口转发
Step 5:在“Tunnels”栏目“Source Port”字段中输入端口,本例子设为8080,选择“Dynamic”单选按钮并单击“Add”按钮。
加密访问利器:配置基于SSH的动态端口转发
Step 6: 单击左上角的“Session”返回第一个屏幕并保存设置。 点击“Open”按钮,进入远程服务器,并输入用户名和Linux密码。

加密访问利器:配置基于SSH的动态端口转发

Step7:现在您已准备好配置应用程序以使用SOCKS的动态端口转发。 接下来我们将配置Firefox。 打开Firebox的“Options”设置页,到页面底部的“NetWork Settings”,点击“Setting”,点击“连接”下的“设置”按钮。 在弹出的窗口中选择“手动代理配置”,输入localhost作为“SOCKS主机”和端口号(本练习为8080)。 选择“SOCKS v5”单选按钮,然后在“No Proxy for”框中输入"localhost, 127.0.0.1"
加密访问利器:配置基于SSH的动态端口转发
现在,当您使用Firefox浏览互联网时,所有流量将被定向到端口8080上的本地SOCKS代理服务器,然后数据包将被加密并通过端口22上的ssh转发到远程主机(您可以随时更改默认ssh 端口到任何其他端口)。 重要的是要注意,远程主机将解密来自客户端的数据包,然后在没有加密的情况下在端口80上发出请求。

好了,可以开始享受你非凡的网上之旅了^_^


参考1:Dynamic Port Forwarding with SOCKS over SSH. 2011
参考2:Dynamic Port Forwarding with SOCKS over SSH. 2008