建立虚拟专用网,使用SSH保护网络通信是本文主要讲解的内容,但是如何进行操作呢?具体内容如下所述。
当接入公共无线网络时,我们必须想办法如何确保数据的安全,例如使用公司的虚拟专用网络或者加密网络通道(如HotspotShield)。如果公司没有虚拟专用网或者不想使用HotspotShield,则可以通过建立自己的虚拟专用网保护无线通信安全,确保无线加密网络通信不被窃听。
加密流量通道
不管你使用的公共无线网络是受密码保护还是每分钟计费,任何接入网络的人都可能窃取你的HTTP流量。
你可以通过创建加密通道来解决这个问题,加密通道可以帮助你将笔记本电脑的网络流量发送给已知位置(即通道“终端”)。从那里,通道将你的网络请求路由到公共网络,一旦流量位于通道外面,就受到来自互联网服务供应商和相关法规的监控,即使你的数据通过公共接入Wi-Fi热点,你的网络接入也是安全的。
在上图中,接入无线热点网络的普通用户会直接路由到网站(红色线标记),但使用加密通道(蓝色线标记)就能保护在热点网络中的流量。当位于通道终端时,网络流量会通过普通未加密方式(红色标记)来通过互联网到达目的网站。
通过SSH加强安全性,简单又便宜
建立自己的虚拟专用网最简单的方法就是每月向托管公司支付费用,让托管公司完成所有麻烦的工作:获取服务器、安装操作系统、确保服务器保持24小时在线并确保充足的后备发电功率。这种方法很省事,既不用纠结于任何防火墙系统,也无需保持电脑时刻运行。
只要是提供到SSH(安全外壳)服务器访问的共享网络托管服务供应商都能够提供这些服务,SSH旨在创建加密版本的telnet(互联网原始协议之一)用于在计算机间发送字符信息。
例如可以选择HostGator,该供应商拥有大型数据中心。当获取HostGator帐户后,你就会收到登录信息和指定的服务器,然后可以通过SSH命令来建立网络代理。
获取SSH客户端
苹果OSX附带一个命令行SSH客户端,你只需要打开Terminal(位于Application文件夹的Utilities文件夹中),接着会弹出一个命令提示,其中包含你的用户名和计算机名称,紧跟着$符号。
在Windows系统中,则需要下载SSH客户端,其中比较流行的免费客户端为PuTTY。
测试SSH服务器
使用托管服务供应商提供的登录信息,你可以通过在$符号后面输入以下内容来打开OSX系统中的SSH会话。
$sshusername@server.websitewelcome.com
在windows系统中,开启PuTTY并输入托管服务供应商提供的服务器名称。选择“Protocol”下面的SSH单选按钮,端口字段应该设置为22(默认SSH端口),点击打开按钮。
由于这是第一次连接到服务器,OSX客户端和PuTTY都会显示警告信息并提示确认主机的指纹。(这只会出现一次,之后,SSH客户端会确认指纹没有更改,如有更改,则可能表明网络连接已被篡改),你会看到以下内容:
无法完成对主机‘server.websitewelcome.com’的验证,RSA密钥指纹是:11:22:33:44:55。
你确认要继续连接吗?
确认指纹后,PuTTY将提示输入用户名和密码,OSX仅提示输入密码,因为已经在命令行中提供了用户名。登录后,会显示一个提示说明已经连接到远程服务器的命令行,请注意$符号前的服务器名称已经变为远程系统信息:
以此用户名登录:username
使用键盘交互式验证
密码:*********
上次登录时间:2010年1月1日星期五2时03分04秒,来自1.2.3.4
username@server$
现在已经有了SSH服务器,我们可以继续设置通道,输入命令退出并关闭SSH会话。
本地监听器和远程端点
现在操作变得有点复杂了,你需要配置本地计算机(“监听器”)上的端口,该计算机会将所有你扔过来的数据包都放入SSH加密会话。在通道的另一端,流量会流入SSH服务器。在下面的章节中,我们将探讨如何配置web浏览器来通过这个本地监听器代理流量。虽然概念上来看,似乎是将web浏览器指向远程服务器,技术上指向的是“本地主机”,也就是本地计算机。
你需要设置SSH客户端连接到SSH服务器,并打开从你的计算机(本地主机)端口8888开始的通道,终止SSH服务器,然后数据会被转发到最终目的网站。
创建SSH通道
这个操作在OSX上很简单,只需要一个命令:
$ssh-ND8888username@server.websitewelcome.com
‘N’告诉SSH客户端你不想要交互式会话(命令提示),因为你只想设置一个通道。‘D8888’则告诉SSH客户端在端口8888建立一个“动态”端口转发通道,该通道为动态,因为目的网站会时常变化。其他端口转发通道有静态规则,但对于web浏览只需要动态模式。在输入该命令后,你会被要求输入密码。如果命令成功运行的话,端口将会打开,但不会受到任何确认信息。
对于windows系统,则需要再次启动PuTTY,滚动左边的‘Category’到‘Connection’。展开‘SSH’类别选择Tunnels,选择Dynamic单选按钮,输入8888作为‘Sourceport’,并点击添加。
现在,单击打开按钮,输入密码后,你的通道将被创建。在命令提示中不会显示任何确认信息。
使用新通道
现在可以进行测试了。打开web浏览器,访问www.whatismyipaddress.com,并记住IP地址,这个地址是当你连接到网络时别人所能看到的公共IP地址。当你更高web代理设置时,你需要回到这个网站来验证互联网是否认为你是从SSH服务器访问网络,这样网页浏览才无法被其他无线热点网络用户监听。
IE用户需要点击工具菜单并选择Internet选项,从对话框中,选择Connection选项,然后点击局域网设置按钮。在弹出的对话框中,选择‘使用代理服务器作为局域网’,现在点击高级。在‘SOCKS’旁边地址输入localhost,端口输入8888,其他框都不需要填。点击确认,然后再回到www.whatismyipaddress.com查看当前IP地址。
Windows系统中的Firefox用户需要点击工具菜单,选择Option,而OSX系统中的Firefox用户则需要点击Firefox菜单,点击Preferences。然后,选择Advanced类别(齿轮图标)并选择Network选项(左二),点击设置按钮。
选择ManualProxyConfiguration,在‘SOCKS’旁边地址输入localhost,端口输入8888,其他框都不需要填。选择SOCKS5单选选项(如果还未被选)。在windows系统中,点击两次确认,在OSX中只需关闭这些参数窗口。再次访问WhatIsMyIPAddress网站,查看IP地址,现在IP地址将会反映出正在使用SSH服务器。
运行自己的SSH服务器
现在你已经有了一个安全的通道可以用来安全地使用公共无线网络。但是如果你不想每月支付托管服务费用怎么办?你可以运行自己的SSH服务器,但这个方法并不适合每一个人,除非你能够完全理解上述的内容,并且知道如何通过家庭DSL/有线路由器允许一个连接或者如何更改办公网络的防火墙。另外,你需要保持计算机24小时运行,这可能会耗费更多电力资源。
笔者强烈推荐选择托管服务供应商,但是如果你真正理解运行自己的SSH服务器所涉及的风险,请继续阅读,配置如下:
OSX用户很幸运:该操作系统中已经内置了一个SSH服务器。只需要打开SystemPreferences并打开Sharing类别。在Services选项中,选择RemoteLogin(又称SSH服务器),就这么简单!
对于Windows用户,有很多免费且便宜的SSH服务器可供选择(有时成为SSHD,D为守护进程),本文中将使用的是WinSSHD版本5,该服务器免费供个人使用。运行安装器,并选择个人版本。控制面板会在安装后进行加载,并显示简易设置向导。所有默认设置都适用,只需要点击取消,单击开始,就能够开启SSH服务器。
测试SSH服务器
下一步就是测试SSH服务器,你需要使用上文中提及的命令,OSX用户请输入以下命令:
$sshusername@localhost
Windows用户需要启动PuTTY并输入localhost作为服务器地址,你可以使用计算机登录密码,请记住这是一个新连接,所以会出现指纹验证提示。如果失效的话,双击打开防火墙或者其他可能阻止连接的安全软件。
下一步,尝试从外部连接回到SSH服务器,在本地计算机创建一个测试帐号,并请朋友使用测试帐号密码来测试连接。当然,你的朋友需要安装同样的步骤来安装SSH客户端软件和web浏览器。
永远不要在网上裸奔
本文探讨了如何在公共无线热点网络中通过安全通道进行网络访问的方法。使用免费的HotspotShield服务,安装自己的SSH服务器或者使用便宜的托管服务,都是不错的选择,但无论如何不要尝试网上裸奔。
总结:
希望本文介绍的使用SSH保护虚拟专用网的网络通信方法能够对读者有所帮助,更多有关操作系统的知识还有待于读者去探索和学习。
【编辑推荐】