OpenVPN是一个优秀的免费开源VPN软件,可以在Linux,windows系统下构建安全可靠的VPN网络。我以前写了一篇简单的配置步骤介绍。今天介绍的是单服务器,多客户端的配置。
首先介绍一下我的网络环境。我在复旦内网里有四台机子,依次是dorm-server(win2003),lab-server(Linux),lab-pc(win2000),laptop(WinXP).在公众网上有一台服务器server(Linux)。我想达到的目的是,复旦内网里的机子可以通过server访问国外的网站,同时可以接受外部的访问。而我的laptop无论在校内还是校外时,都可以通过远程桌面方便的使用我校内的电脑。
用OpenVPN来达到这个目的不难,它的网站上面有详细的文档介绍。
不想看英文文档的就看我下面的简要配置介绍吧,照着做就可以了。以下步骤仅需在服务器端进行,最后把几个文件拷贝到客户端就可以了。
首先就是从网站上下载,安装openVPN。
然后在/usr/share/doc/packages/openvpn 或\Program Files\OpenVPN\easy-rsa下面有可供参考的配置文件和一些脚本文件。
windows下运行
init-config
vars
clean-all
build-ca
linux下运行
. ./vars (首先需要打开这个文件进行修改)
./clean-all
./build-ca
需要注意的是,vars文件存放一些变量,所以要先打开改为自己的,当然,不改也没事。在build-ca的时候,一定要填写的是 Common Name。这是供openVPN识别各个机子的,所以需要给各个机子编号,定名。
还有就是
build-key-server server
最后是给客户端生成证书
./build-key client1
./build-key client2
./build-key client3
这些client1就是客户端的名称,可以起个更有意义的,比如我上面的dorm-server
接下来就是
build-dh
现在,在keys目录下会有很多文件,
把ca.crt拷贝到每台机子上面,把 client1.key client1.crt 拷贝到对应的客户端配置文件夹里。
最后,就是修改配置文件,把sample-config-files/server.conf复制到服务器的配置文件夹。如果是按照上面一步步来,那不用修改配置文件,就可以用了。里面的配置选项很多,具体可以看里面的说明,我觉得比较重要的是网段设置和client-to-client这个选项,可以让内网的机子都可以相互访问。
把sample-config-files/client.conf复制到客户端的配置文件夹,只需将cert client.crt 和key client.key 修改为对应每台客户端的证书就可以了。
还有NAT的设置,这里就不多说了。
现在启动服务,这个虚拟专用网就可以用了。无论何时何地,我都可以访问我所有的电脑了。真是不错!
注:
1.远程配置防火墙的时候,需要万分的注意,否则就要跑去机房干活了。
2.根据自己的实际情况,划分网络,
3.OpenVPN已经证实有拒绝服务的漏洞,就是多个客户端用相同的证书访问时,VPN服务会中断。
4.对于开源软件,最好的办法就是看HowTo。
2006.6.24更新:
1.debian 下配置示范文件及工具在 /usr/share/doc/openvpn/examples/目录下。