扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:zdnet安全频道 来源:论坛整理 2008年9月24日
关键字: VPN
如果你既关注你的隐私又是在使用Wi-Fi热点或者其他公共网络,那么虚拟专用网VPN对你来说是最不可或缺的手段。
现在发展的技术比如安全套接层SSL(为"https"形式的网络地址提供安全服务),可以防止信息在电脑和邮件服务器或者其他网络应用上传输时被恶意拦截,不过这种保护措施也具有其局限性。
VPN的安全优势
其一,绝大多数的网页和邮件服务并不提供传输加密功能。如果你只是使用POP客户端检查来自Comcast、Earthlink或者其他任何网络服务供应商的邮件,你可能会面临安全风险。同样地,你在Google、雅虎或者其他网页上输入查询信息,也会面临一定的潜在风险。
另外,即使在网站上提供SSL安全保护,但是多数情况下,还是很容易受到被称为sidejacking的劫持(SideJacking是指籍着嗅探技术,攫取附近WiFi使用者造访网站时的cookies数据,保存下来作为日后破解使用。被截获的cookies可用来复制受害者先前建立连接的网站。),它允许任何人进入你的网络,并且可以轻易读取你的邮件和系统日志。
就连上个月初召开的黑帽大会上,三名通讯员使用简易的监测工具探取会议发布计算机网络,其中一人的密码也被人窃取了。那么,又有谁知道有多少网络搜索、即使通讯和电子邮件信息被暴露了呢?假设肇事者不透露半点风声,这次攻击也许不会被发现。
这次事件也让我们想到了虚拟专用网VPN。虚拟专用网是一种"基于公共数据网,给用户一种直接连接到私人局域网感觉的服务"。VPN提供用户一种私人专用(Private)的感觉,因此建立在不安全、不可信任的公共数据网的首要任务是解决安全性问题。VPN的安全性可通过隧道技术、加密和认证技术得到解决。
VPN网络可以防止人们监测Wi-Fi热点或者你的通讯本地网络,他们所能看到的也仅仅是被加密的数据包。最重要的是,这种保护能够延伸到每一个网页搜索、即使通讯或者邮件收发。
有许多中小企业装备了价格低廉的VPN产品,但是却暴露了不少安全问题。在VPN中,我们一致认为,使用OpenVPN可以为自己的网络带来更可靠的安全保障。OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,它允许参与建立VPN的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它还大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议。
由于OpenVPN与生俱来便具备了许多安全特性,所以使用OpenVPN自然是不二之选。下面,本文将向你一步步讲述如何在两台装有XP机器上设立OpenVPN(一台作为可靠的服务器,另一台作为客户端上网冲浪)。
为动态IP设立域名和子网
第一步:准备工作
在安装和配置OpenVPN之前,你需要考虑好几个问题,才有便于计划工作的顺利开展。首先,如果你的用户也是在局域网中运行的话,请确保他所拥有的子网与常见IP号码的区别。大多数的路由器默认情况下一般都是使用192.168.1.x形式,其实这很容易出问题。如果在Wi-Fi热点环境下使用相同的子网,那么会出现IP冲突并导致无法连接网络的问题。
为了避免这个问题,可以根据实际需要,对子网进行重新编号,比如可以选择192.168.199.1。当你设置LAN时,要明确你所用到子网不会被其他主机用于连接网络。我们会在下面的讲述中选择从192.168.199.151开始的11个IP地址。
改变子网
第二步:设置服务器和动态IP
如果你没有固定IP并且你的服务器IP也没有指定的话,那么你需要一个域名映射到你服务器的IP地址上(如果你的服务器拥有固定IP,那么你可以跳过这部分内容直接看下面的第三步)。你可以登陆DynDNS,免费使用他们的动态DNS服务功能。
DynDNS页面
为此,你需要先创建一个帐户和密码。提醒你注意的是,用户名和密码最好是你很容易识记,并且方便你使用的,因为你将会时常用到它们。创建好之后,登陆帐户,并选择添加主机服务链接。它允许你创建自己的域名,然后自动映射到你的服务器地址。为此,你需要填入一个域名,选择"脱机主机"选项,然后在页面底部点击"创建主机"。我们选择"openvpndemo.dyndns.org"域名。当然,你可以选择自己中意的域名(前提是没有被他人使用)。
添加主机
接下来,下载DynDNS升级软件(点此下载),并安装在服务器上(选择默认安装方式)。当第一次运行时,它会提示你输入用户名和密码,你直接输入刚才创建的用户名和密码即可。
一旦你输入了用户名和密码,DynDNSUpdater就会显示你刚才填入的域名,如果显示无误,那么直接点击"应用"按钮。
dyndns帐户信息
现在,你已经为你的服务器建立了一个域名。每当服务器IP变化(假设它是动态设置的),DynDNS就会相应地更新域名系统。(如果这一步你还有什么疑问的话,可以向DynDNS寻求帮助)
第三步:安装和配置OpenVPN
打开OpenVPN的下载页面并下载该软件。在大多数情况下,你可能想要下载最新稳定版本的安装程序,因此我们建议你下载OpenVPN-2.1rc9-install.exe。
下载OpenVPN
下载好之后,把它安装在客户端和服务器端,并确保使用默认方式安装。如果WindowsXP会显示"TAP-Win32"或"ZRTPMiniport"未通过认证的警告信息,你大可不必担心,当它出现时,只要点下"继续执行"即可。
管理密钥
OpenVPN可以为服务器提供对称密钥来验证客户端,也可以为客户端验证服务器。这就使得密钥管理会变得更加容易,但也会给带来更多的安全风险。因此,无论如何,请不要选择对称密钥选项。
相反,使用OpenVPN的公开密钥体系(PKI),可以提供更加可靠的安全保障。使用之前,你需要为服务器和客户端生成一个权威认证机构(CA)和独立的密钥。
为OpenVPN生成和分发SSL密钥并不是很简单的事情,不过幸好OpenVPN有一套密钥管理脚本,你只需要简单配置即可完成这一工作。首先,在服务器端打开命令窗口(选择"开始">"运行",并键入"cmd"点击确定),在打开的命令窗口中,键入"cd\ProgramFiles\OpenVPN\easy-rsa"(不包括引号),回车后可以发现,命令提示符该为了"C:\ProgramFiles\OpenVPN\easy-rsa>",紧接着输入如下命令:
init-config
vars
clean-all
build-ca
前三个命令输入后,系统不会有什么提示,当输入最后一个命令后,系统就会提示你所有的信息,包括两个字母的国家代码和州或者省的代码。其他信息可以不输入或者忽略,唯一需要输入的是共同名称,比如输入OpenVPN-CA。至此,你已经成功创建好了密钥所需的认证机构。
命令窗口中实现操作
现在为服务器创建密钥,这需要在命令窗口中来实现。
生成证书管理的密钥
创建服务器密钥--服务器端
同刚才的命令类似,系统会给你提示一些信息,要求你输入某些字符。其实你大可忽略这些,包括其中一个要求你输入密码的提示信息。唯一不能被忽略的是CommonName字段。当系统征求名称时,输入"server";当询问是否要求认证时,输入"y";当问及是否要提交时,同样输入"y"。创建的这些密钥对是用在服务器上来使用的。
生成服务器端密钥
下面将要创建客户端机器上的密钥对。同样地,你也需要在命令窗口中来实现。
创建密钥的pkcs12--客户端1
此命令将生成一个密钥对,而且该密钥对只能输入你所选择的密码才能进行访问。同刚才一样,你可以忽略大部分内容,但是在CommonName字符下,你要输入"client1"。当它提示输入密码时,你可以忽略。当询问是否要求认证时,输入"y";当问及是否要提交时,同样输入"y"。接下来,系统会要求你输入和确认登出密码。这一步相当重要,因为一旦客户端被控制的话,它可以有效阻止偷盗者访问VPN网络。请选择一些既容易识记又不容易被人猜测到的密码。
生成客户端密钥
现在,你已经成功生成所有客户端连接VPN服务器所需要的密钥。找到"C:\ProgramFiles\OpenVPN\easy-rsa\keys"并双击,就可以看到所有的密钥。
密钥文件夹
下面的工作,就是要把这些密钥划分到不同的地方。在这整个密钥文件夹中,最重要的要数ca.key,它是CA权威认证负责给客户端生成新密钥以提供其连接到服务器的验证请求。如果该文件一旦丢失,那么客户端就无法实现与VPN服务器的连接;如果该文件被窃取,那么偷盗者也可以利用它来连接服务器。因此,请把该文件设置为最高安全级别,提供可靠的安全保障。
其次,我们也要特别留心以下三个文件:ca.crt,server.crt和server.key。打开服务器"C:\ProgramFiles\OpenVPN\config",并复制这三个文件到这个文件夹中。最后,再回到"C:\ProgramFiles\OpenVPN\easy-rsa\keys",找到"client1.p12"文件,复制该文件到客户端的"C:\ProgramFiles\OpenVPN\config"文件夹中。至此,你已经完成设立OpenVPN的密钥管理部分。
配置OpenVPN
下面,我们要为服务器和客户端添加配置文件,并更加需要进行一些修改。
首先,下载一个server.ovpn文件和client.ovpn文件。然后对其重新命名,并分别复制到客户端和服务器端的"C:\ProgramFiles\openvpn\config"文件夹中。
如果你是严格按照我们的做法操作,那么这些文件具有你所需要的大部分设置,除此之外,你还需要手动添加几个文件。首先,在服务器中定位到"C:\ProgramFiles\openvpn\config",打开文件夹中的"server.ovpn"文件(以文档编辑器打开,或者鼠标右键以记事本方式打开)。打开之后,找到文本字符串"server-bridge",并在其右边有一行大写字母的字符串,你可以把设置好的参数替代这些字符串。
server.ovpn
替代"DEFAULT.GATEWAY"的是你局域网的默认网关IP,在本文中,我们使用192.168.199.1。替代"SUBNET.MASK"的是子网掩码,我们使用255.255.255.0。
在前面讲述的准备工作中,我们讨论过子网IP冲突的问题。"BEGINNING.DHCP.RANGE"可以用来表示起始IP,而"END.DHCP.RANGE"表示中止IP。全部设置好后,该行变成如下形式:
server-bridge192.168.199.1255.255.255.0192.168.199.151192.168.199.161
并请记得保存设置。
接着,就是自定义客户端上的配置文件了。找到"PLACE.IP.NUMBER.OR.DOMAIN.NAME.HERE"字符串,并根据本文讲述,你可以设置成"openvpndemo.dyndns.org"并保存该配置文件。
client.ovpn
完成以上操作后,服务器和客户端上的"C:\ProgramFiles\OpenVPN\config"文件夹应该会如图所示。
第五步:桥接LAN
安装好OpenVPN后,网络连接中会出现一个新的本地连接。在网络连接窗口的右上方,有个设备名称一栏,你可以在该栏中找到"TAP-Win32AdapterV9"(若没有,可以鼠标右键,点查看下的详细信息),选中鼠标并右键选中桥接(如图所示)。
桥接之前
桥接之后
下面,我们可以测试连接是否正常。在服务器桌面或者开始菜单,找到OpenVPN图标,鼠标右键选选择连接。如果你可以看到以下连接界面,说明一切正常。
服务器连接界面
在客户端运行OpenVPN之前,请先确保连接上了网络。然后双击运行,并测试连接。当出现连接界面后,系统会提示你输入密码。在输入正确后,你若能看到如下客户端连接窗口,说明客户端连接正常。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。