搭建适合Blackberry 黑莓使用的VPN 服务器(iOS 也适用)

2012年8月24日 | 分类: 翻墙相关 | 标签: , ,

我不确定我能否写好这篇博客,历经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{}分发,所以你排查错误时要理清
## 这个先后关系
sainfo anonymous {
        # yes, short, and?
        lifetime time 10 min;
        encryption_algorithm aes 256,3des,blowfish;
        authentication_algorithm hmac_sha1,hmac_md5;## 这个是定义通讯压缩模式,所有的教程默认都是 deflate,
## 但是我特意使用了lzs 压缩,是因为VPNC 端默认就是这个
## 如果你觉得有问题,请注释掉下面一行。
        #compression_algorithm deflate;
        compression_algorithm lzs;
}
padding {
        # to hinder guessing
        randomize on;
        randomize_length on;
        strict_check off;
        exclusive_tail on;
}
## 这个是介于验证阶段一和阶段二之间的一个关键环节
## 服务器会像你的手机或者电脑分发IP,DNS ,并显示
## 欢迎画面(motd),其总auth_source system表示使用
## 你的Linux / FreeBSD 系统的用户(也即是SSH帐号)
## 你也可以使用radius,pam 等认证方式
## 内容我不解释,读不懂你就是不合格的SA
mode_cfg {
        auth_source system;
         conf_source local;
        default_domain “local”;
        pool_size 10;
        network4 10.0.12.100;
        netmask4 255.255.255.0;
        dns4 8.8.8.8;
        banner “/etc/racoon/motd”;
        auth_throttle 3;
        #pfs_group 2; #from @bao3
}
* 注意:文中刻意HightLine 了 padding{} 字段,这个字段很多老外的配置都没有加入或者少东西。这个字段如果确实,黑莓就无法连接哦。也就是说,我的配置中任何部分你都可以自己改动,唯一这个 padding {} 部分,请完整保留,除非调试不通。
好了,上面就完成了 blackberry vpn 配置。由于我们使用的 xauth_pre_key ,还要创建用户名密码和psk。mode_cfg 中的用户名密码使用Linux 系统的用户验证auth_source system,这个问题就自动解决了。接下来我们还要写一个psk.txt ,用来写入group name , group Secret 。
cat /etc/racoon/psk.txt
#group name  group Secret
test            test
最后,记得添加 iptables nat 的配置和允许 esp isamp ike 的规则。(建议你直接将iptables 设置为accept ,方便调试)
然后在 /etc/sysctl.conf 中加入 net.ipv4.ip_forward=1
如此一来,就可以对照playbook , blackberry 来设置登录了。
好啦,调整好路由或者iptables 就可以开始VPN上网了。
## missjoyce
## 离得越远越思念,出差也便残忍了。

# 请尊重作者 @bao3 的辛苦,转载注明出处

原文http://bao3.blogspot.com/2012/08/blackberry-vpn-ios.html

搭建此类VPN一般需要Xen类型VPS,如果你要购买Xen VPS可以看看BudgetVM年付最低只需19.99美元的Xen VPS

目前还没有任何评论.