y2k008 发表于 2008-5-7 10:48

有关openvpn的常见问题

本人长期潜水,看到很多大虾写的有关openvpn的资料,获益良多,自己在公司架设了一个vpn服务器,用的还很稳定,本来打算发布出来给大家分享的,但鉴与公司的adsl上传带宽只有可怜的512k,所以还是不想献丑了,在假设vpn过程中学了很多东西,有试过ca+use key验证的,也试过ca+user/pass验证的,感觉后者管理强于前者,虽然安全性没有前者理想。有关ca 的 clinet key管理方面收集了些资料,主要是关于吊销证书的,有需要的朋友可以pm我。好了,用了一段时间的vpn,收集了一些客户端连接的一些常见问题,希望对大家有帮助;

NOTE: unable to redirect default gateway -- Cannot read current default gateway from system
由于服务器使用了 push "redirect-gateway def1" 参数,所以要求客户端的本地网络要有网关的,不然连接服务器后会分配不到网关,gpsr和cdma的用户一般情况下连接后都会有网关的,出现上述错误是因为你的网络还有其他本地连接,而且这些本地连接本身没有设置网关,解决办法可以把多余的本地连接禁用或加上一个网关。

unable to connect 10.0.0.172:80 或者拨号后死活连不上代理的
这个是因为用户之前使用过类试动感大挪移的代理软件,这些代理软件会修改拨号设置,于是用代理很方便,但是却用不了vpn服务软件,解决办法是打开 ie 浏览器,选择 工具 -》 internet选项-》连接,点击 设置,出现一个窗口,把 代理服务器里 面的勾去掉就即可。


NOTE: unable to redirect default gateway -- Cannot read current default gateway from system
出现这个问题是因为客户端使用了 auth-user-pass 的功能,而由于官方在编译openvpn时候没有使用 --enable-password-save(允许--askpass和--auth-user-pass的口令从文件读取)参数,要使其支持必须要重新编译过openvpn,修改过的openvpn程序在这里下载
http://blog.chinaunix.net/u/27614/showart_401133.html,
下载后 解压缩 到 OpenVPN 目录下的 bin 文件夹里面就可以了. 不想修改openvpn程序的朋友可以去掉auth-user-pass 后面的 (一般为*.txt)参数,但是每次登陆需要手动输入密码。

y2k008 发表于 2008-5-7 11:22

看到论坛有人问起怎么管理 client证书, 我看了很多大虾写的资料,说说一般的 管理方法
假设我的openvpn安装在 C:\Program Files\下
@1.server端如何注销用户:
首先你需要有server端的ca.key文件,这个是管理所有证书的钥匙文件,非常重要的说,把你需要吊销的证书的 .key 文件, .ser文件,.crt文件复制到OpenVPN\easy-rsa文件夹下
1.在开始->运行->cmd,
cd C:\Program Files\OpenVPN\easy-rsa   //进入easy-rsa 目录
vars                                                    //在服务器端作任何修改前,需要执行一下这个命令
revoke-full *                                        //*为你需要吊销证书的 common name,如我要吊销一个common name为 test 用户的证书,则可以这样输入 revoke-full test
2.这样在OpenVPN\easy-rsa文件夹下的 keys 目录下面, 生成一个 crl.pem 文件
3.把这个crl.pem 文件放到 config 目录下面
4.然后修改 server 的 ovpn 配置文件,在最后面加上这句
crl-verify crl.pem
这样test用户就被吊销了,test就不可以再登陆server服务器.


需要吊销多个用户的,重复2操作,不同的是命令中 * 的common name 名字,新生成的 crl.pem 会自动纪录之前所吊销的所有用户,最后记得把这个最后一次生成的 crl.pem 文件放到 到 config 目录下面 替代掉原来的 哦.

[ Edited by y2k008 on 2008-5-7 12:20 ]

y2k008 发表于 2008-5-7 11:32

@2.关于用户证书的有效期限.
一般来说,我们在服务器端使用命令 build-key * 建立client用户的时候,系统默认client用户的key的有效期限为10年的,如何更改这个有效期限呢,其实可以修改 build-key.bat文件 就可以实现.方法是
右击 easy-rsa 目录下的 build-key.bat 文件 ,选择 编辑 , 查找 -days ,把后面的 3650 修改成你想要的有效期限,保存后再使用 build-key * 生成的client用户的期限就会变成你想要的期限了,过期了key文件是登陆不了服务器的

y2k008 发表于 2008-5-7 11:49

@3.加强OpenVPN的安全性
增加OpenVPN的安全性可以重下面几方面着手(假设我的openvpn安装在 C:\Program Files\下)
1.增加防火墙,防dos攻击.
在开始->运行->cmd,
cd C:\Program Files\OpenVPN\easy-rsa
vars
openvpn --genkey --secret ta.key
这样在 keys 目录下会生成一个 ta.key 文件,服务器和客户端都需要这个文件的,把它复制到 config 目录下,然后修改 配置文件
服务器端配置文件
加入
tls-auth ta.key 0
客户端配置文件
加入
tls-auth ta.key 1

2.使用更长的 RSA keys
可以通过修改./easy-rsa/vars.bat中的 KEY_SIZE,增加到2048。但要注意,该修改必须重建所有的keys、以及配置文件。

3.使用 Large symmetric keys
可以在服务器的配置文件中加入
cipher AES-256-CBC

4.使用服务器扩展认证,防止VPN client使用他们的keys + DNS hack欺骗vpn client连接他们假冒的VPN Server
在客户的配置文件中加入
ns-cert-type server

wzp05 发表于 2008-5-7 12:02

感谢楼主分享!!!

y2k008 发表于 2008-5-7 12:38

@4.分布式vpn,实现负载均衡
首先在不同的地方或者不同ip的服务器配置相同vpn服务器,方法是首先在其中A服务器上配置好一个vpn服务器,然后把 整个 openvpn文件夹备份 ,然后在B服务器上先安装一个openvpn,再把之前A服务器上备份的 openvpn文件夹里面 的文件拷贝到 B服务器,覆盖掉原来的,这样两个服务器的配置是相同的.多个服务器如法炮制.
然后在客户端配置文件上加上
remote A服务器ip 端口//如 remote 201.3.31.1 443
remote B服务器ip 端口
. . .
. . .
remote-random//这个为随机选择服务器登陆,要是A服务器登陆不了或者掉线,会自动尝试登陆B服务器的,从而实现负载均衡

ps:要是各地搞免费vpn的服务器端的dx们联合起来一起搞个分布式vpn,相信所提供的vpn服务一定会很稳定,而且速度会大大提升!

y2k008 发表于 2008-5-7 19:36

OpenVPN 安装使用教程(超级菜鸟篇)

找到了一个关于 OpenVPN 安装使用教程(超级菜鸟篇) ,不会用vpn的朋友们可以去看看

http://hi.baidu.com/ih_mvh/blog/item/c6ed04955f70170c7bf4809f.html

wokin 发表于 2008-7-6 21:26

还是不大看得懂唉

sdbz001 发表于 2008-12-9 19:36

好贴,学习中!

y2k008 发表于 2008-12-9 21:20

哈哈,有半年没有碰这个了,自5月份搞好公司的vvpn后,一直稳定的运行了差不多7个月了

ctgyjd 发表于 2009-5-26 00:25

太棒了,学习中

ff0138 发表于 2009-5-26 09:42

顶楼主,此帖是教学帖,应该给不少人用处的。
两外单独用带ap的路由能不能架设一个vpn服务器呢?

过客0871 发表于 2009-5-26 10:36

好贴,学习中!

y2k008 发表于 2009-5-31 16:26

:D 今天在公司重新搞了个OPENVPN服务器,搞了半天没有成功,卡巴和SYGATE,WINGATE等软件冲突:'( ,没有办法了,最后使用了XP下的ICS配置,把网络共享了,自己用了两台电脑可以使用!测试的时候有一个小小的波折,由于测试是用局域网来测试的,所以我把客户端的网关给去掉,谁知道客户端老是分配不了网关,看日志是NOTE: unable to redirect default gateway -- Cannot read current default gateway from system,最后百度了一下,又进来了自己写的帖子中**\ ,自己帮自己解决了问题!:D

czz2000 发表于 2009-5-31 17:20

学习中!
页: [1]
查看完整版本: 有关openvpn的常见问题