下载好之后,把它安装在客户端和服务器端,并确保使用默认方式安装。如果WindowsXP会显示"TAP-Win32"或"ZRTPMiniport"未通过认证的警告信息,你大可不必担心,当它出现时,只要点下"继续执行"即可。
管理密钥
OpenVPN可以为服务器提供对称密钥来验证客户端,也可以为客户端验证服务器。这就使得密钥管理会变得更加容易,但也会给带来更多的安全风险。因此,无论如何,请不要选择对称密钥选项。
相反,使用OpenVPN的公开密钥体系(PKI),可以提供更加可靠的安全保障。使用之前,你需要为服务器和客户端生成一个权威认证机构(CA)和独立的密钥。
为OpenVPN生成和分发SSL密钥并不是很简单的事情,不过幸好OpenVPN有一套密钥管理脚本,你只需要简单配置即可完成这一工作。首先,在服务器端打开命令窗口(选择"开始">"运行",并键入"cmd"点击确定),在打开的命令窗口中,键入"cdProgramFilesOpenVPNeasy-rsa"(不包括引号),回车后可以发现,命令提示符该为了"C:ProgramFilesOpenVPNeasy-rsa>",紧接着输入如下命令:
init-config
vars
clean-all
build-ca
前三个命令输入后,系统不会有什么提示,当输入最后一个命令后,系统就会提示你所有的信息,包括两个字母的国家代码和州或者省的代码。其他信息可以不输入或者忽略,唯一需要输入的是共同名称,比如输入OpenVPN-CA。至此,你已经成功创建好了密钥所需的认证机构。
命令窗口中实现操作
现在为服务器创建密钥,这需要在命令窗口中来实现。
生成证书管理的密钥
创建服务器密钥--服务器端
同刚才的命令类似,系统会给你提示一些信息,要求你输入某些字符。其实你大可忽略这些,包括其中一个要求你输入密码的提示信息。唯一不能被忽略的是CommonName字段。当系统征求名称时,输入"server";当询问是否要求认证时,输入"y";当问及是否要提交时,同样输入"y"。创建的这些密钥对是用在服务器上来使用的。
生成服务器端密钥
下面将要创建客户端机器上的密钥对。同样地,你也需要在命令窗口中来实现。
创建密钥的pkcs12--客户端1
此命令将生成一个密钥对,而且该密钥对只能输入你所选择的密码才能进行访问。同刚才一样,你可以忽略大部分内容,但是在CommonName字符下,你要输入"client1"。当它提示输入密码时,你可以忽略。当询问是否要求认证时,输入"y";当问及是否要提交时,同样输入"y"。接下来,系统会要求你输入和确认登出密码。这一步相当重要,因为一旦客户端被控制的话,它可以有效阻止偷盗者访问VPN网络。请选择一些既容易识记又不容易被人猜测到的密码。
生成客户端密钥
现在,你已经成功生成所有客户端连接VPN服务器所需要的密钥。找到"C:ProgramFilesOpenVPNeasy-rsakeys"并双击,就可以看到所有的密钥。
密钥文件夹
下面的工作,就是要把这些密钥划分到不同的地方。在这整个密钥文件夹中,最重要的要数ca.key,它是CA权威认证负责给客户端生成新密钥以提供其连接到服务器的验证请求。如果该文件一旦丢失,那么客户端就无法实现与VPN服务器的连接;如果该文件被窃取,那么偷盗者也可以利用它来连接服务器。因此,请把该文件设置为最高安全级别,提供可靠的安全保障。
其次,我们也要特别留心以下三个文件:ca.crt,server.crt和server.key。打开服务器"C:ProgramFilesOpenVPNconfig",并复制这三个文件到这个文件夹中。最后,再回到"C:ProgramFilesOpenVPNeasy-rsakeys",找到"client1.p12"文件,复制该文件到客户端的"C:ProgramFilesOpenVPNconfig"文件夹中。至此,你已经完成设立OpenVPN的密钥管理部分。
配置OpenVPN
下面,我们要为服务器和客户端添加配置文件,并更加需要进行一些修改。
首先,下载一个server.ovpn文件和client.ovpn文件。然后对其重新命名,并分别复制到客户端和服务器端的"C:ProgramFilesopenvpnconfig"文件夹中。
如果你是严格按照我们的做法操作,那么这些文件具有你所需要的大部分设置,除此之外,你还需要手动添加几个文件。首先,在服务器中定位到"C:ProgramFilesopenvpnconfig",打开文件夹中的"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