搭建适合Blackberry 黑莓使用的VPN 服务器(iOS 也适用)
我不确定我能否写好这篇博客,历经2个月,无数次测试,已经一周以来每天只睡4~5小时的努力,终于可以使我的黑莓9900以及 playbook 使用vpn 上网了。所以诸位看官如果仅仅是要使用黑莓上的 VPn ,可以去购买 。本篇文章是为那些希望自己折腾或者利用现有VPS提供额外加值服务的人准备。
与文章无关的前情提要
我们有很多方式可以实现 IP Sec VPN , android 、 iOS 都可以使用多种类型的VPN (近来PPTP 被破解,少用哦),但是唯独少了黑莓。熟悉我的朋友应该知道我很早就用 Cisco PIX 535 实现过这个功能了,但是不幸的是即便有了VPN 黑莓上也没有任何意义:1 必须 WIFI ;2 只有个别程序才会通过VPN 。这很可能不符合你的要求,因此你也可以不必读如何部分。
IP Sec VPN 有多种实现方式,而且遵循不同的模式,我们常见的是 StrongSwan/OpenSwan , Racoon/ipsec-tool 。我已经写过前者的配置方法,以达到Playbook 连接的目的。但是StrongSwan 4.XX 不能用作黑莓手机的服务器,因为不支持ike keyexchange 的一个 aggressive模式,但是StrongSwan5.0 已经支持了,只是我没有再测试。所以文章就开始写Racoon 如何搭建VPN 服务器。
1 安装
Debian 下 直接
apt-get install racoon
请注意,默认源中的较老,你可以使用test 源来安装最新版。
2 配置 vim /etc/racoon/racoon.conf
#log notify;
##下面是定义VPN 要引用的PSK 的group ID 和Group Secret
path pre_shared_key “/etc/racoon/psk.txt”;
## 这个是定义证书目录,如果你使用X509 rsasig 认证,就保留,否则删除也不影响的
path certificate “/etc/racoon/certs”;
## 这个不需要我来解释了
log warning;
## Author : @bao3
## remote anonynous 是定义任意IP 连接服务器时,要遵循的规则
## 网上经常可以看到 Romote 192.168.10.1(任意IP),这是为了指定
## 特定IP连入服务器时的规则。我们要做服务器,自然要允许所有IP
remote anonymous {
## 下面是指定我们VPN 服务器的工作模式,注意哟:
## 可以选择base,main和aggressive 三种,但是如果
## 你要给手机连接使用,必须也只能选择Aggressive
exchange_mode aggressive;
lifetime time 1440 min;
## 这个是初始化连接,其实不加也可以,但是为了兼容VPNC和cisco vpn client
## 就加入这个
initial_contact on;
## 下面这行不加入也行
verify_identifier on;
## mode_cfg{} ,用于VPN连接中途,分发IP和DNS。
## 后面会讲到
mode_cfg on;
## ike_frag ,尽管平时加不加都一样,但是
## 这个选项可以将ike不兼容时的报碎片重组
ike_frag on;
passive on;
## 这个是验证第一阶段的规则检查,有3个选项可以选
## off ,不解释。strict ,就是严格,如果手机有一个参数不匹配就登录失败
## obey 是宽容状态,双方会协商一个共同模式,保证连接成功。
proposal_check obey;
## 这个选项是为了产生路由加密规则,网上的教程都是教你如何
## 手动创建SPD (setkey)规则,那是因为服务器很明确地建立在两个
## 已知IP之间,但我们的VPN服务器很明显要接受所有IP连接进入,需要
## 动态生成规则。这里你可以选择 on 或者 unique ,基本没有差别
## 一定不可以设置为off !!!!这很重要。如果不设定或者设置为off
## 就无法在你手机和服务器间建立 ESP 加密隧道,通讯就是失败。
generate_policy unique; #unique; #on ;
# might be patented:
## 这个是NAT_T ,必须打开
nat_traversal on;
dpd_delay 200;
## 下面是第一阶段要验证的规则,这里面规定了加密算法和
## HASH 方式以及验证方法xauth_psk_server 。
proposal {
## 这里定义加密方式,你可以只指定一种,但我这里指定了3种
## 这3中是为了跟更多的手机协商或者电脑客户端匹配
encryption_algorithm aes 256;#3des,des ;
hash_algorithm sha1;#md5;
## 这是验证方式,也可以指定pre_shared_key,但是我建议你使用
## 我的方式,但是这就让iOS 很不爽,用了就知道为啥了
authentication_method xauth_psk_server; #pre_shared_key; # xauth_psk_server;
## 这个你就默认吧,也即是modp_1024=group 2
dh_group 2;
}
}
## 还有一个验证1.5阶段,也就是mode_cfg{}分发,所以你排查错误时要理清
## 这个先后关系
## 但是我特意使用了lzs 压缩,是因为VPNC 端默认就是这个
## 如果你觉得有问题,请注释掉下面一行。
## 服务器会像你的手机或者电脑分发IP,DNS ,并显示
## 欢迎画面(motd),其总auth_source system表示使用
## 你的Linux / FreeBSD 系统的用户(也即是SSH帐号)
## 你也可以使用radius,pam 等认证方式
## 内容我不解释,读不懂你就是不合格的SA
## missjoyce
## 离得越远越思念,出差也便残忍了。
# 请尊重作者 @bao3 的辛苦,转载注明出处
原文:http://bao3.blogspot.com/2012/08/blackberry-vpn-ios.html
搭建此类VPN一般需要Xen类型VPS,如果你要购买Xen VPS可以看看BudgetVM年付最低只需19.99美元的Xen VPS。