Posts tagged VPN
Symbian、Android、iPhone和Windows Mobile所支持的VPN协议
0一、Symbian:诺基亚本身提供的mVPN客户端支持的是IPSec协议,通过第三方软件SymVPN可以支持PPTP协议。
二、Android:支持PPTP、L2TP、IPSec和OpenVPN协议。
三、iPhone/iPod touch/iPad:支持PPTP、L2TP、IPSec协议。
四、Windows Mobile:理论上支持PPTP、L2TP、IPSec和OpenVPN协议。
在诺基亚S60手机上使用VPN之二:OpenSwan安装配置和VPN规则的生成
0这一部分的读者对象是喜欢自己折腾而对VPS和VPN有一定配置经验的用户。只是想知道如何在诺基亚Symbian S60手机上使用VPN的读者请参看第一部分。
对于塞班手机上的VPN还有一个常见的说法是服务器端需要安装Cisco等昂贵的专用网络设备,而且配置复杂。根据诺基亚mVPN客户端的官方文档,所支持的IPSec VPN网关列表中确实都是一些网络设备制造商的专用产品。但自己搭建过L2TP VPN的网友应该知道Linux上有OpenSwan、FreeS/Wan和strongSwan(它们实际是同一个项目的不同分支)等免费的开源 IPSec软件包,而IPSec正是塞班mVPN所支持的协议。至于说配置复杂,我看到过诺基亚论坛上有国外网友说:“诺基亚对mVPN客户端配置问题的官方回复是——请向你的系统管理员查询,可我自己就是系统管理员,我该去问谁呢。”如果从阅读相关文档以弄懂每一个参数该如何设置开始,S60手机+OpenSwan的VPN方案配置起来确实比较复杂,但如果找到一个可以工作的模板,很可能只要简单的修改一下服务器地址、验证密钥这些因人而异的参数,拷贝到自己的机器上就能用了。本教程就是试图提供这样一个模板的尝试。但在实际使用中,由于mVPN客户端的V3.1和V4的差异,网络运营商的不同,所用VPS的区别,可能需要更多的调整。这些细节大部分会放在专门讨论各种高级设置的第三部分介绍。
首先你需要一台服务器来安装OpenSwan(好像选择另外两个分支的人现在很少),我用的是PhotonVPS的Xen虚拟服务器(可用的CPU有16核,UnixBench的分数随便就能到450,对于我这种对性能有偏执的用户来说足以让人忽略他们其它方面的缺点了)。我试过在启用了 TUN/TAP设备并成功安装了OpenVPN的OpenVZ VPS上运行OpenSwan,但会提示缺少某个内核模块,似乎是内核没有包含IPSec支持的原因。所以目前假定所用VPS必须是基于Xen,至于是否还有其它的配置要求,我就不确定了。
使用CentOS的用户可以用:
sudo yum install openswan
命令来安装IPSec VPN网关,发行版中的源是U2.6.21。这个版本可以工作,但下一部分要讨论的高级设置可能需要包含了某些Bug fix的最新版本(但像一些例子中提到过的“authby=secret|rsasig”这种参数设置在我用过的版本中都无效,所以不能确定版本越新越好)。最新的rpm包可以用
sudo wget http://www.openswan.org/download/binaries/centos/5/without-nss/openswan-2.6.24rc5-1.x86_64.rpm
命令下载(32位OS用户请自行下载适用版本),用
sudo rpm -i openswan-2.6.24rc5-1.x86_64.rpm
命令安装。Debian用户用
sudo apt-get install openswan
命令安装的是U2.4.12版,我没有测试过这个版本,因为在Debian下都是下载源码编译的,具体细节将在下一部分讲修改源码的时候介绍。
在Google中搜索“OpenSwan 安装”可以找到不少资料,虽然不完全对得上(不同Linux发行版以及从二进制包安装或从源码编译会有所不同),但可以作为参考而不需我在这个问题上深入下去了。关键的几个配置文件为全局配置“/etc/ipsec.conf”,内容如下(并不是说里面的参数必须如此设定,而是提供一个我自己确认能用的配置):
# /etc/ipsec.conf – Openswan IPsec configuration file
#
# Manual: ipsec.conf.5
#
# Please place your own config files in /etc/ipsec.d/ ending in .conf
version 2.0
# conforms to second version of ipsec.conf specification
# basic configuration
config setup
# Debug-logging controls: “none” for (almost) none, “all” for lots.
# klipsdebug=none
# plutodebug=”control parsing”
# For Red Hat Enterprise Linux and Fedora, leave protostack=netkey
protostack=netkey
nat_traversal=yes
interfaces=%defaultroute virtual_private=%v4:192.168.0.0/16,%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:!192.168.0.0/24
oe=off
# Enable this if you see “failed to find any available worker”
nhelpers=0
#You may put your configuration (.conf) file in the “/etc/ipsec.d/” and uncomment this.
include /etc/ipsec.d/*.conf
全局验证密钥“/etc/ipsec.secrets”,内容如下:
include /etc/ipsec.d/*.secrets
连接配置“/etc/ipsec.d/e63.conf”(可以有多个,名字不限,但这牵涉到高级设置中的问题了,本部分只以单一连接为例),内容如下:
conn e63
# Key exchange
ike=aes256-sha1-modp1536
# Data exchange
esp=aes256-sha1
# Authentication method PSK
authby=secret
auto=add
keyingtries=3
# Modeconfig setting
modecfgpull=yes
pfs=no
rekey=no
type=tunnel
compress=yes
# local endpoint
left=%defaultroute
leftsourceip=192.168.6.1
leftsubnet=0.0.0.0/0
leftrsasigkey=none
leftmodecfgserver=yes
leftxauthserver=yes
# remote endpoint
rightrsasigkey=none
right=%any
rightxauthclient=yes
rightmodecfgclient=yes
rightsourceip=192.168.6.252
rightsubnet=192.168.6.252/32
连接验证密钥“/etc/ipsec.d/e63.secrets”,引号中为作为验证密钥的字符串:
: PSK “StringUsedAsPreSharedKey”
本文给出了范例中除了使用PSK验证方式外,还是用了Xauth验证,也就是说连上IPSec VPN服务器后,还需要输入预先设置的用户名和密码,对应的服务器设置为 “leftxauthserver/rightxauthclient=yes”。觉得没必要的读者可以把“yes”改成“no”并修改手机端VPN规则中的相应部分“USE_XAUTH: TRUE”为“FALSE”即可跳过Xauth验证。但部分参考文献中提到Xauth在某些条件下是必须的。Xauth验证的用户名和密码放在“/etc /ipsec.d/passwd”中,生成该文件需要apache-utils软件包中的htpasswd命令:
sudo umask 0027
sudo htpasswd -c -b passwd username1 password1
添加用户的命令为:
sudo htpasswd -b passwd username2 password2
然后用编辑“/etc/ipsec.d/passwd”,内容为:
username:.z2I2VoRCNOZI
冒号前是用户名,冒号后是加密后的密码,读者需要自己在最后加上连接名称:
username:.z2I2VoRCNOZI:e63
我自己在“/etc/rc.local”中添加了如下NAT和转发设置(我对这部分比前面的内容更没有把握,请有经验的读者自行修正):
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/lo/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/lo/accept_redirects
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s 192.168.6.0/24 -o eth0 -j SNAT –to 47.117.26.212 <- 你自己的外网IP
重启VPS让所有的改动生效(或者运行“sudo /etc/init.d/ipsec restart”及其它命令)。然后用
sudo /usr/sbin/ipsec verify
命令检查IPSec服务的状态是否正常,应返回如下信息:
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.24rc5/K2.6.18-164.10.1.el5xen (netkey)
Checking for IPsec support in kernel [OK]
Testing against enforced SElinux mode [OK]
NETKEY detected, testing for disabled ICMP send_redirects [OK]
NETKEY detected, testing for disabled ICMP accept_redirects [OK]
Checking for RSA private key (/etc/ipsec.secrets) [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Two or more interfaces found, checking IP forwarding [OK]
Checking NAT and MASQUERADEing
Checking for ‘ip’ command [OK]
Checking for ‘iptables’ command [OK]
Opportunistic Encryption Support [DISABLED]
以上为OpenSwan的安装设置部分,下面该讲手机端的VPN规则生成了。我最初参考了英文文献一、文献二和文献三(对这篇文章的内容有疑问的读者可自行查询这些文献),在前两篇参考资料中,提到的VPN规则的生成方式还是用makesis生成sis/sisx安装文件的复杂过程。幸好新的mVPN V3.1和V4都支持第三篇文献中简单的多的.vpn文件导入了。VPN规则实际由两个文件组成,一个是VPN.pin,内容为:
[POLICYNAME]
VPN Beta
[POLICYDESCRIPTION]
VPN Beta
[POLICYVERSION]
1.1
[ISSUERNAME]
Do not edit
[CONTACTINFO]
Do not edit
实际上只是一个简单的规则标识,并不牵涉实际的配置问题。而真正的设置是存在VPN.pol文件中,其内容如下:
SECURITY_FILE_VERSION: 3
[INFO]
VPN
[POLICY]
sa ipsec_1 = {
esp
encrypt_alg 12
max_encrypt_bits 256
auth_alg 3
identity_remote 0.0.0.0/0
src_specific
hard_lifetime_bytes 0
hard_lifetime_addtime 3600
hard_lifetime_usetime 3600
soft_lifetime_bytes 0
soft_lifetime_addtime 3600
soft_lifetime_usetime 3600
}
remote 0.0.0.0 0.0.0.0 = { ipsec_1(IPSec VPN服务器地址) }
inbound = { }
outbound = { }
[IKE]
ADDR: IPSec VPN服务器地址 255.255.255.255
MODE: Main
SEND_NOTIFICATION: TRUE
ID_TYPE: 11
FQDN: MobileGroup
GROUP_DESCRIPTION_II: MODP_1536
USE_COMMIT: FALSE
IPSEC_EXPIRE: FALSE
SEND_CERT: FALSE
INITIAL_CONTACT: FALSE
RESPONDER_LIFETIME: TRUE
REPLAY_STATUS: TRUE
USE_INTERNAL_ADDR: FALSE
USE_NAT_PROBE: FALSE
DNS_SERVER: 8.8.8.8 <- DNS服务器的IP地址
ESP_UDP_PORT: 0
NAT_KEEPALIVE: 60
USE_XAUTH: TRUE
USE_MODE_CFG: TRUE
REKEYING_THRESHOLD: 90
PROPOSALS: 1
ENC_ALG: AES256-CBC
AUTH_METHOD: PRE-SHARED
HASH_ALG: SHA1
GROUP_DESCRIPTION: MODP_1536
GROUP_TYPE: DEFAULT
LIFETIME_KBYTES: 0
LIFETIME_SECONDS: 28800
PRF: NONE
PRESHARED_KEYS:
FORMAT: STRING_FORMAT
KEY: 24 StringUsedAsPreSharedKey <- 前面是密钥的长度,后面是作为密钥的字符串本身
里面的参数绝大部分和OpenSwan的设置是对应的,也就是说修改里面的某个参数一般意味着服务器端的修改。在前面提到的三篇英文参考文献中,都提到了需要给OpenSwan打补丁才能解决DNS推送的问题,不知道是OpenSwan还是mVPN客户端版本的问题,因为实际上VPN规则中可以用 “DNS_SERVER”这个参数(从另一篇参考文献中找到的)指定DNS服务器。
编辑好这两个文件后,压缩成一个zip文件,然后把后缀名从.zip改为.vpn,然后传到手机上就可以直接导入了——简单吧
然后按我写的前一篇文章中的步骤就可以在诺基亚塞班S60手机上使用该VPN了。连接成功后,VPN日志中会出现以下内容(日志中出现其它错误信息需要自己分析了):
1:authenticated to vpn gateway IPSec VPN服务器地址, vpn access point VPN规则标识
2:infomation :address info for vpn access point VPN规则标识, virtual ip 192.168.6.252, local ip 运营商分配给手机的ip, nat status code 0
3:infomation :activated vpn access point VPN规则标识, ip address 192.168.6.252
如果一切顺利,你就可以用该VPN访问任何网站了。万一有网关无响应之类的问题,比如运营商分配给手机的ip是192.168或10.0之类的内网IP,而nat status code为0(应该是1),恭喜——你需要和我进入下一部分折腾了……
总结:诺基亚Symbian S60上的mVPN客户端可以支持用OpenSwan搭建的IPSec VPN,但过程还是有些麻烦的。除非你本身需要VPS做其它用途,或者干脆就喜欢折腾(本人二者兼是:D),单单需要使用VPN还是购买12vpn之类现成的服务合适:一个Xen VPS一般不低于6美元一个月,而12vpn的Lite账号平均一个月大概2美元,并且除非是用有>100M专线的独立服务器,否则自建VPN的速度是很难和专门的VPN服务商相比的。这也是我虽然可以用自建的VPN但还是买了12vpn账号的原因。
在诺基亚S60手机上使用VPN之一:原生客户端说明及12vpn评测
1这是一篇早就打算要写的文章,但因为有一些技术细节始终没有解决好,所以一直迟迟没有动笔。最后我意识到这样下去,这篇文章不知道要到猴年马月才能写出来,而且12vpn推出了对诺基亚S60手机原生VPN客户端的支持,完善我的教程的必要性也就不那么迫切了。我打算分三个部分写这个教程:
1. 诺基亚S60手机原生VPN客户端的使用说明和12vpn的评测,因为如果我一上来就把如何生成VPN策略文件和OpenSwan的配置摆上来,不需要知道这些的普通用户可能会被弄晕而产生用起来太复杂的错误印象;
2. 生成VPN策略文件和安装配置OpenSwan的教程。这个教程其实只是一个可以工作的范例,有些需要细调的高级设置我自己也没有弄清楚;
3. VPN策略文件和OpenSwan的高级设置问题,这是我目前还在折腾的部分。
下面是诺基亚S60手机原生VPN客户端的使用说明及12vpn评测:
看到过不少诺基亚S60上没有可用VPN客户端的观点,但事实上诺基亚S60手机上原生的Mobile VPN客户端只是不支持常见的PPTP协议(第三方软件SymVPN支持PPTP,但正版价格超过二十美元,而破解版绝大多数都不好用),而是支持 IPSec VPN。另一种观点是诺基亚S60手机原生VPN用户端太复杂,普通用户很难搞定。这种看法也对也不对,VPN策略文件的生成确实比较复杂,但这是系统管理员的工作,普通用户只需要把系统管理员发给他们的VPN策略文件安装到手机上,简单设置一下就可以用了。实际上iPhone/iPod Touch常用的L2TP VPN很多也是基于IPSec的,12vpn提供给S60用户的配置方式看起来并不比iPhone/iPod Touch复杂。
诺基亚S60手机原生的Mobile VPN客户端并不需要用户自己设置VPN服务器地址、用户名和密码(额外使用了Xauth验证的是另一回事),这些都是在VPN规则中定义好的。mVPN 客户端中有一个设置规则服务器的选项,这是用于把VPN规则推送到手机上的,需要在服务器端安装诺基亚专门的软件,这种方式很少有人用,用户可以从本地安装VPN策略文件而完全不去管这个选项。VPN策略文件早些是以sis文件形式提供的,像普通软件一样安装。但目前mVPN V3.1和V4都可以直接导入.vpn文件。
下面的使用说明参考了12vpn针对S60V5上的mVPN V4英文介绍:
1. 用户首先需要安装mVPN客户端,V3.1(针对S60V3 FP1)在此下载,V4(针对S60V3 FP2和S60V5)在此下载;
2. 从系统管理员那里得到.vpn(或.sis/.sisx)策略文件并传到手机上安装。IPSec VPN网管和客户端之间的验证主要有两种方式:PSK和X509证书。如果是PSK方式,VPN规则文件直接装上就可以用了;而X509证书是以 PKCS#12格式存储的,安装含有该证书的规则时会提示用户输入密码才能正确读取证书,这个密码是由提供VPN规则文件的系统管理员设置,比如 12vpn的证书密码一律是“import”〔不含引号〕。第一次导入证书的时候, 手机会提示用户设置〔输入两次〕读取证书的密码,一定要牢记该密码,以后启动VPN连接的时候都要输入密码;新装含有X509证书的VPN规则后使用 mVPN V3.1的S60V3 FP1手机需要重启,需要重装VPN规则前,删除原来的规则和证书并重启机器。我不确定使用mVPN V4的S60V5和S60V3 Fp2手机是否同样需要如此,听说不用;
3. 使用WiFi的话要确认无线路由打开了VPN Passthrough的选项;
4. 手机上网需使用net连接而非wap(这一点我不确定,因为mVPN客户端中可以定义Proxy);
5. S60V5等较新的手机上导入了VPN规则后会自动生成一个标记为IntraNet的VPN接入点,在浏览器等需要联网的程序出现接入点选择时使用该接入点即通过VPN上网;S60V3 FP1等较老的手机上需要自己通过“设置—>连接—>VPN(虚拟专网)—>VPN接入点—>选项—>新增接入点”用导入的VPN规则定义新的接入点。
6. IPSec VPN连接的初始化有点慢,大概要等半分钟的样子,之后就没有影响了。如果VPN规则中使用X509证书,验证的时候手机会提示用户输入保存证书时设置的密码,使用PSK验证的则没有这一步。假如VPN规则和IPSec网关(二者是对应的)中设置了使用Xauth验证,则另外需要输入系统管理员在服务器上设置的用户名和密码。
7. 根据我自己的经验,如果设置了多个使用不同VPN规则的接入点,有可能会出现冲突。但这也许和个人手机和IPSec VPN的具体设置有关,只是一个在使用中出现问题的时候可以参考的可能性。
8. 另外一点是使用VPN的时候也留心一下DNS设置。诺基亚S60手机设置接入点的时候可以自定义DNS服务器地址,新的VPN规则参数中也有独立的选项。虽然似乎现在多数IPSec VPN网关也可以把DNS信息推送到手机上,但说不定某个时候问题会出在这个地方。
简而言之,诺基亚S60手机原生的VPN客户端的设置是通过VPN规则文件完成的,而该VPN规则和具体的IPSec VPN设置对应,应该都由系统管理员完成,而不需要普通用户操心。
之所以专门附上12vpn的评测,因为它是众多VPN服务商中我唯一知道提供了对诺基亚S60手机支持的。除了通常的PPTP外,它还支持OpenVPN、L2TP和IPSec(Cisco)从而保证了不同平台的用户都可以使用他们的服务。
和个人架设的VPN相比,在我看来12vpn有下面几个优势:
1. 他们在有多个的VPN服务器在不同的国家,这在用户需要特定地区的IP来使用某些服务,例如BBC iPlayer和Hulu等等,的时候会很必要;
2. 作为一个公司,他们有更多的资源提供客户支持。自己架设过VPN的网友很清楚要支持不同的平台和千差万别的网络(不同的运营商和防火墙)是一件相当负责的任务。即使12vpn自己刚放出诺基亚S60手机的VPN规则的时候,只能支持S60V5手机上的mVPN V4,而在S60V3手机上的mVPN V3.1中无法正常工作。我和另一个推友@nielspeen自己花了很多时间修改他们的VPN规则都未成功,最后还是12vpn过了一天自己更新了配置文件解决的。
但12vpn的Personal帐号比较贵(包年70美元,月付要9美元另加10美元的设置费。)其实他们还有便宜得多的Lite帐号没有放在主页上,不过只能包年(25美元,2010年2月底之前有10%的优惠),而且有每月10G的流量限制。还有推友觉得12vpn的速度一般,这是一个小马过河的问题,我自己觉得用12vpn看Hulu的速度还不错(稍有停顿,但似乎比hideipvpn快些,比我原来自己建的一个OpenVPN速度有明显提高)。
除了购买12vpn的服务外,喜欢折腾的网友还可以自己在VPS或专用主机上搭建IPSec VPN,不过这方面的内容要放到下一篇文章中了。没有条件自己折腾,又不打算购买12vpn,但想在诺基亚S60手机上使用VPN的网友,也可以联系我要帐号测试你的诺基亚S60手机在我的IPSec VPN上用起来是否让人满意,再决定是否购买付费服务。
PPTP、L2TP、IPSec和SSL VPN(如OpenVPN)的区别
3VPN (虚拟专用网)发展至今已经不在是一个单纯的经过加密的访问隧道了,它已经融合了访问控制、传输管理、加密、路由选择、可用性管理等多种功能,并在全球的 信息安全体系中发挥着重要的作用。也在网络上,有关各种VPN协议优缺点的比较是仁者见仁,智者见智,很多技术人员由于出于使用目的考虑,包括访问控制、安全和用户简单易用,灵活扩展等各方面,权衡利弊,难以取舍;尤其在VOIP语音环境中,网络安全显得尤为重要,因此现在越来越多的网络电话和语音网关支持VPN协议。
一、PPTP
点对点隧道协议 (PPTP) 是由包括微软和3Com等公司组成的PPTP论坛开发的一种点对点隧道协,基于拨号使用的PPP协议使用PAP或CHAP之类的加密算法,或者使用 Microsoft的点对点加密算法MPPE。其通过跨越基于 TCP/IP 的数据网络创建 VPN 实现了从远程客户端到专用企业服务器之间数据的安全传输。PPTP 支持通过公共网络(例如 Internet)建立按需的、多协议的、虚拟专用网络。PPTP 允许加密 IP 通讯,然后在要跨越公司 IP 网络或公共 IP 网络(如 Internet)发送的 IP 头中对其进行封装。
二、L2TP
第 2 层隧道协议 (L2TP) 是IETF基于L2F (Cisco的第二层转发协议)开发的PPTP的后续版本。是一种工业标准 Internet 隧道协议,其可以为跨越面向数据包的媒体发送点到点协议 (PPP) 框架提供封装。PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。PPTP只能在两端点间建立单一隧道。 L2TP支持在两端点间使用多隧道,用户可以针对不同的服务质量创建不同的隧道。L2TP可以提供隧道验证,而PPTP则不支持隧道验证。但是当L2TP 或PPTP与IPSEC共同使用时,可以由IPSEC提供隧道验证,不需要在第2层协议上验证隧道使用L2TP。 PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接,L2TP可以在IP(使用UDP),桢中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。
三、IPSec
IPSec 隧道模式隧道是封装、路由与解封装的整个过程。隧道将原始数据包隐藏(或封装)在新的数据包内部。该新的数据包可能会有新的寻址与路由信息,从而使其能够通 过网络传输。隧道与数据保密性结合使用时,在网络上窃听通讯的人将无法获取原始数据包数据(以及原始的源和目标)。封装的数据包到达目的地后,会删除封装,原始数据包头用于将数据包路由到最终目的地。
隧道本身是封装数据经过的逻辑数据路径,对原始的源和目的端,隧道是不可见的,而只能看到网络路径中的点对点连接。连接双方并不关心隧道起点和终点之间的任何路由器、交换机、代理服务器或其他安全网关。将隧道和数据保密性结合使用时,可用于提供VPN。
封装的数据包在网络中的隧道内部传输。在此示例中,该网络是 Internet。网关可以是外部 Internet 与专用网络间的周界网关。周界网关可以是路由器、防火墙、代理服务器或其他安全网关。另外,在专用网络内部可使用两个网关来保护网络中不信任的通讯。
当以隧道模式使用 IPSec 时,其只为 IP 通讯提供封装。使用 IPSec 隧道模式主要是为了与其他不支持 IPSec 上的 L2TP 或 PPTP VPN 隧道技术的路由器、网关或终端系统之间的相互操作。
四、SSL VPN
SSL协议提供了数据私密性、端点验证、信息完整性等特性。SSL协议由许多子协议组成,其中两个主要的子协议是握手协议和记录协议。握手协议允许服务器和客户端在应用协议传输第一个数据字节以前,彼此确认,协商一种加密算法和密码钥匙。在数据传输期间,记录协议利用握手协议生成的密钥加密和解密后来交换的数据。
SSL独立于应用,因此任何一个应用程序都可以享受它的安全性而不必理会执行细节。SSL置身于网络结构体系的 传输层和应用层之间。此外,SSL本身就被几乎所有的Web浏览器支持。这意味着客户端不需要为了支持SSL连接安装额外的软件。这两个特征就是SSL能应用于VPN的关键点。
典型的SSL VPN应用如OpenVPN,是一个比较好的开源软件。PPTP主要为那些经常外出移动或家庭办公的用户考虑;而OpenVPN主要是针对企业异地两地总分公司之间的VPN不间断按需连接,例如ERP在企业中的应用。
五、OpenVPN产品特点与优势
OpenVPN 允许参与建立VPN的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1 协议。OpenVPN能在Linux、xBSD、Mac OS X与Windows 2000/XP上运行。它并不是一个基于Web的VPN软件,也不与IPsec及其他VPN软件包兼容。
隧道加密
OpenVPN使用OpenSSL库加密数据与控制信息:它使用了OpesSSL的加密以及验证功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。
OpenVPN提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它只能用于建立点对点的VPN;基于PKI的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个PKI证书体系。OpenVPN2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密.
OpenVPN所有的通信都基于一个单一的IP端口,默认且推荐使用UDP协议通讯,同时TCP也被支持。OpenVPN连接能通过大多数的代理服务器,并且能够在NAT的环境中很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP地址、路由设置等。OpenVPN提供了两种虚拟网络接口:通用Tun/Tap驱动,通过它们,可以建立三层IP隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过LZO算法压缩。IANA(Internet Assigned Numbers Authority)指定给OpenVPN的官方端口为1194。OpenVPN 2.0以后版本每个进程可以同时管理数个并发的隧道。
OpenVPN使用通用网络协议(TCP与UDP)的特点使它成为IPsec等协议的理想替代,尤其是在ISP(Internet service provider)过滤某些特定VPN协议的情况下。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择 TCP协议作为底层协议,UDP协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。
OpenVPN与生俱来便具备了许多安全特性:它在用户空间运行,无须对内核及网络协议栈作修改;初始完毕后以chroot方式运行,放弃root权限;使用mlockall以防止敏感数据交换到磁盘。
OpenVPN通过PKCS#11支持硬件加密标识,如智能卡。
Ubuntu中文社区代理的BurstNet VPS
0代购美国BurstNET VPS #1
内存:512M, 硬盘:20G, 流量:1000G/月,二个独立IP, 系统支持 CentOS 5.5 32/64、CentOS 5 32/64、Debian 5 32/64、Ubuntu 10.04 32/64、Ubuntu 9.10 32/64、Ubuntu 8.04 32/64、Gentoo 32、Fedora 12 32/64
Ubuntu中文社区代理的BurstNet VPS购买地址:
http://item.taobao.com/item.htm?id=6240509546
VPS QQ销售群(咨询、转让、打折):134818604
虽然我们无法做到试用,也无法做到退款,但销量表明一切:销售完成意味着才刚刚开始,我们后续的服务将最大可能让商品发挥价值。
以下为购买前买家必读:
BurstNet Linux VPS的特点:
支持Linux,不支持Windows,不支持远程桌面,不支持3389端口,不支持挂QQ,仅仅支持SSH。
只有英文面板,功能简单,仅仅支持重新系统、设置密码、停止和启动VPS;该面板不支持其它任何高级功能。可以安装其它面板,但需要自己处理,不代装。
系统支持:Apache2(默认)、SSH(默认)、Php(需要自己装)、MySQL(默认)、OpenVPN(需要自己找官方客服开通)、Mail(需要自己装)、FTP(需要自己装)等。
系统不支持:ASP、MSSQL、ACCESS、PPTP VPN。
常见问题:
1.VPS适合Linux新手吗?适合,我们有详细的使用手册来帮助你搭建站点。手册地址为 http://wiki.ubuntu.org.cn/Vps 。
2.VPS还有货吗?一直有货,我们是BurstNET在国内最大的代理商,在我们这里的购买并运行的VPS就已经超过2500多个,请直接拍即可。
3.VPS有样例站点吗?带宽如何?主机是200M的共享,但对于国内没有多大的意义,电信大概20-50K之间的速度,购买前请先访问 http://www.optool.cn (东海岸) 或 http://www.ubuntu.com.cn (西海岸) 来测试实际网速。非电信用户请测试后再购买。测试站点仅供参考,vps是随机开通的,并且由于受限于不同的服务器和同一服务器上的其它VPS的原因,我们无法保证你购买的vps和测试站点表现完全一样,也无法保证不存在丢包现象。
4.VPS可以搭建VPN服务吗?不能,仅仅支持OPENVPN,并且使用VPN速度非常慢,无法正常使用。
5.VPS上可以安装哪些软件?不涉及到内核模块的Linux软件都支持。
6.VPS支持多少个站点?不限制,有#1主机搭建了超过20个站点,当然也有一个站点都无法承受的情况,具体看你的应用。
7.VPS支持JAVA吗?支持JAVA,包括Tomcat,但需要至少2#以上,因为JAVA程序太耗内存了,加上这个主机没有交换内存,一超界JAVA就崩溃。
8.VPS支持增加交换内存吗?不支持,VPS采用OPENVZ的虚拟机,不支持交换内存,所以抗负载差,请谨慎控制内存的使用。
9.你们提供哪些服务?面板密码重置,面板无法访问或访问故障,VPS被官方冻结。当然这些也都可以你直接和官方沟通。
10.开通要多长时间?一般在8小时内会开通。
11.可以试用吗?不能试用,你可以先开通一个月,然后觉得满意再按年或按月续费。
12.可以远程吗?支持ssh远程管理,如果你不明白ssh什么意思,请参考第一条的手册说明。
13.如果流量超过了会发生什么事情?目前官方没有按流量进行限制,还没有因为超过流量而影响使用的案例。但如果因流量超出太高,影响到主机正常运行,会导致VPS被冻结。
14.可以选择西海岸吗?可以选择美国东海岸宾州斯克兰顿机房,也可以选择美国西海岸加州洛杉矶机房,西海岸比东海岸略快。
15.抗负载如何?支持多少PV?请参考 http://www.optool.cn/index.php?q=node/24,#1号主机可以每天支持50万PV。
16.可以支持挂QQ或挂YY吗?不支持。
17.支持面板吗?支持Kloxo面板,需要自行参考 http://forum.ubuntu.org.cn/viewtopic.php?f=166&t=264112 安装,不代装。
18.面板都是英文的吗?是的,自带的面板是英文的,不支持中文,并且不带虚拟主机的管理功能,只有重装系统和重启系统等基本功能。
19.VPS的硬盘大小是什么意思?VPS的硬盘空间包括了Linux系统,系统一般在2G左右,可使用空间需要扣除系统占用空间。
20.VPS有提供IPV6吗?默认没有提供,免费到官方申请,不需要理由,最多每个VPS可以申请20个IPV6。
购买请慎重:一旦买家付完款,我们很快就在官方订购并付款,由于美国官方不支持退款,所以我们拒绝任何原因的退款申请,买家购买前请慎重考虑;另外由于精力有限无法提供点对点技术支持,有问题请到论坛VPS版询问。
请勿购买:我们非常在意用户的体验,如果您重来没有使用过Linux,即使是Windows高手也请不要购买;如果您只使用过虚拟主机的面板,请不要购买;如果您重来没有使用ssh和sftp,并且也不愿意去看我们的初学者指南,也请不要购买;如果您坚持认为一旦VPS有问题,不愿找官方处理必需由我们代解决也请不要购买。
需要资料:新开请备注你的邮箱地址,因为账号会发到你的邮箱;续费请备注你的IP地址和邮箱,我们会按照你提供的IP来处理续费,处理结果发到你的邮箱。
购买方式:支持月付和年付,即按月或按年购买或续费。月付请拍1个;年付送2个月,只需拍10个月即可。
不过本着负责的态度,建议先购买一个月试用,如果使用不错就按原来的续费,否则就重新开通一个,因为每次开通的VPS是随机分配的,不同的IP段性能存在很多不确定因数,有时会遇到所购买的VPS负载非常大,网络也不好。
到期续费:VPS默认到期后自动截止并删除数据。如果需要按原IP续费,请至少提前10天拍好并在备注里注明“续费”,如果原来有购买多个的,需同时注明要续费的IP;如果不需要续费的,请买家提前做好数据备份。
问题反馈:使用过程中如有无法使用或登陆、网络问题、面板使用等系统问题,请用户直接到官方网站https://support.burst.net/ 注册帐号并提交问题。我们概不代提交。原因在于 BurstNET协议规定卖家不可以使用自己销售的VPS,代用户提交问题将被官方认定为卖家使用自己销售的VPS,从而违反了官方相关规定,有导致关闭相应VPS的风险。
VPS详细中文介绍:http://forum.ubuntu.org.cn/viewtopic.php?f=1&t=256185
VPS相关帮助:http://forum.ubuntu.org.cn/viewforum.php?f=166
VPS禁止事项(违反规定会导致官方直接关闭不退款)具体参考:https://www.burst.net/policy/terms.shtml
严禁发布以下内容(包括但不限于):
受版权保护的媒体文件,未经授权发布或展示
未经授权的应用程序
破解程序或软件密钥
猥亵儿童的一切内容
网络诈骗,网络钓鱼,传销, 连锁信件, 伪造或假冒内容
恐怖主义, 种族歧视, 武器制造说明
病毒, 木马软件,恶意软件,或其他类似软件
受商业机密或法令保护的资料
禁止以下行为(包括但不限于):
IRC 和 其他联络程序 (包括 psybnc, “bots”, 等…)
滥用资源类的脚本,或恶意攻击、占用流量的脚本
威胁, 骚扰, 或猥亵内容
任何不加验证的代理软件 (包括开放的邮件代理,不需授权的匿名Web代理, 等…)
购买流程:
新购:按照需求拍下VPS并付款–>卖家在官方下订并付款–>卖家淘宝发货–>等待账号开通(正常情况一天,因为是完全依赖官方开通,不排除更长时间的特殊情况)–>账号开通–>通知买家VPS账号相关信息–>买家确认收货并评价
续费:按之前买的VPS拍下(备注续费)–>发货–>官方调整订单(3-7天)–>卖家向官方付款–>续费成功–>通知买家VPS成功信息–>买家确认收货并评价
购买风险:
一:不要期望卖家可以提供强大的技术支持,基本上所有的服务都依赖于BurstNET官方的支持本身。
二:如果您仅仅会使用面板,请不要购买本VPS,我们不提供针对面板和其它非Ubuntu系统的任何支持。
三:本VPS机房位于美国,网络速度一般,不是很适合做VPN,有时候丢包会非常令人抓狂。
四:VPS后期的维护依赖于官方的服务,但BurstNET的服务有时不算很理想,有过延迟5天才处理的案例。
五:本VPS不支持任何原因的退款,如果买家由于某种原因被BurstNET关闭,造成的损失由买家自己承担。如要减少这类损失,可以考虑按月购买。
六:不要在VPS进行SPAM行为,已经有直接关闭并罚款的案例。
七:不要让VPS的负荷过重,有直接冻结,要求升级,或迁移到垃圾服务器的案例。
八:不要密码太简单,导致变为黑客肉鸡,有被直接关闭,并罚款$50美金的案例。
九:不要过于依赖服务器的稳定,请随时自己备份数据,有官方硬件故障导致数据全部丢失的案例。
十:由于同一台服务器上有超过100个VPS,所以如果其中有VPS滥用,会影响到其它,因此具体的网络速度和读写效率看运气。
本VPS相比其它的优势:
一:价格最便宜,性价比很高。
二:BurstNET是美国比较大的机房,是全球最大的VPS托管商,不用担心其随时跑掉,走人。
三:不会无故关闭或挪用你的VPS。
四:我们销售的最多,虽然有不愉快发生,但是是最有经验的,我们的服务一直不错,请看评价。
五:BurstNET有完善的客服系统,提供7*24小时支持,平均1小时内响应,是其它VPS厂商很难做到的。
为什么选择我们:
一:我们属于专业Linux社区(ubuntu中文社区),VPS也是Linux系统,可以到论坛去寻求30多万用户的支持。
二:我们店开设时间长,支持社区大,不会过一段时间后人间蒸发消失掉,可以长期提供高品质的服务。
三:我们属于公益性站点,所得将用于开源社区的支持,我们推荐大家使用开源免费软件,VPS上的所有软件都是开源免费的。
四:我们有专业的QQ售后高级群,提供给在我们这里购买的站长交流。
在Windows中设置VPN连接
0一、Windows XP的PPTP VPN连接设置方法:
首先进入控制面板,选择网络连接,创建一个新的连接,选择连接到我的工作场所的网络,再选择虚拟专用网络连接,输入连接的名称(随意填写),接下来设置是否自动拨初始连接,可以随个人喜好而定,最后输入VPN服务器的域名或IP地址,会在桌面上建立一个网络连接的快捷方式。双击后输入VPN帐户的用户名和密码即可连接VPN服务器。
二、Windows Vista/7的PPTP VPN连接设置方法:
首先进入控制面板,选择网络和Internet,点击网络和共享中心,选择设置新的连接或网络,再选择连接到工作区,然后选择使用我的Internet连接(VPN),输入VPN服务器的域名或IP地址,目标名称可以随意填写,再输入VPN帐户的用户名和密码,点击连接即可成功连接VPN服务器。
在MAC中设置VPN连接
2在苹果的MAC中设置VPN连接的方法很简单,本文以MAC OS X 10.6.4为例,讲述如何设置PPTP VPN。
首先打开应用程序-系统偏好设置-网络,然后在点击窗口左下方的+号键添加新连接,接口选择VPN,VPN类型为PPTP,服务名称随意填写。
接着按照屏幕提示输入VPN服务器的域名或IP及用户名,其他默认,点击连接,并输入密码即可。
服务器架设:CentOS PPTPD VPN一键安装包
0这是由DiaHosting.com提供的PPTPD VPN一键安装包。
系统要求:CentOS 5 32bit/64bit。若VPS安装需要Xen虚拟化技术支持或者最新的OpenVZ技术支持。
本站亲测在VPSyou.com的Xen VPS和BuyVM.net的OpenVZ VPS上成功安装,运转正常。
安装方法,登陆SSH后输入以下命令:
wget http://www.diahosting.com/dload/pptpd.sh
sh pptpd.sh
安装完成后会提示vpn用户名和密码。
VPN用户管理:
直接编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。
BuyVM OpenVZ VPS Debian安装PPTP VPN
0BuyVM的OpenVZ VPS,在Debian中安装PPTP VPN的方法。
登陆SSH后
1.安装 pptpd
apt-get update
apt-get install pptpd
2.配置 pptpd
修改 /etc/pptpd.conf 加入
localip 192.168.10.1
remoteip 192.168.10.234-238,192.168.10.245
(ip可以自定)
3.dns
修改 /etc/ppp/options 加入
ms-dns 8.8.8.8
ms-dns 8.8.4.4
(dns可以自定)
4.开启ip转发
修改 /etc/sysctl.conf
net.ipv4.ip_forward=1
5.增加用户名密码
修改 /etc/ppp/chap-secrets 增加
username pptpd password *
(格式 user server password ip)
6.增加iptables转发规则
sudo /sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT -–to-source “公网ip”
sudo /sbin/iptables -A FORWARD -s 192.168.10.0/24 -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS –set-mss 1356
7.重启 pptpd
sudo /etc/init.d/pptpd restart
8.如果出现619错误需
mknod /dev/ppp c 108 0
9.iptables规则需要保存到开机运行,否则重启后就不行了
vi /etc/pptpdfirewall.sh
加入:
sudo /sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT -–to-source “你的IP”
sudo /sbin/iptables -A FORWARD -s 192.168.10.0/24 -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS –set-mss 1356
保存。
chmod 755 /etc/pptpdfirewall.sh
vi /etc/init.d/rc.local
在最后一行加上
sh /etc/pptpdfirewall.sh
保存,完毕!
另外,即便是用了pptpd,还需要将本地链接的DNS改为8.8.8.8 ,不然仍然访问不了twitter。
本教程理论上适用于Ubuntu系统
本文来自:http://youlu.de/?p=25
BuyVM OpenVZ VPS CentOS搭建PPTP VPN
1BuyVM.net提供OpenVZ VPS,并且官方网站介绍说“All VPS’s come with the ability to run OpenVPN, PPTP, GRE and SIT tunnels by default ”,意思是可以用来搭建PPTP VPN,据说是OpenVZ的新技术,但目前BurstNET的VPS还不支持搭建PPTP VPN。
下面以BuyVM.net的VPS为例介绍如何在CentOS中搭建PPTP VPN。
1、登陆SSH,检查VPS是否有必要的支持。如果检查结果没有这些支持的话,是无法安装pptp的。
当然Buyvm的用户可以直接跳过。
modprobe ppp-compress-18 && echo ok(用模块方式支持MPPE加密模式浏览,如果内核支持检测不到。)
如果显示“ok”表明通过。不过接下来还需要做另一个检查:
cat /dev/net/tun
显示结果为下面的文本,表明通过:
cat: /dev/net/tun: File descriptor in bad state
上述两条只需一条通过,即可安装pptp。如果还有其它问题,或者请你的服务商来解决这个问题。
2、安装ppp和iptables。
yum install -y ppp iptables
3、安装pptp。
rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
有些朋友喜欢先wget再执行rpm,没必要多此一举。
4、配置pptp。首先我们要编辑/etc/pptpd.conf文件:
vim /etc/pptpd.conf
把下面字段前面的#去掉即可:
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
接下来再编辑/etc/ppp/options.pptpd:
vim /etc/ppp/options.pptpd
去掉ms-dns前面的#,并修改成如下字段:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
5、设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件:
vim /etc/ppp/chap-secrets
直接输入如下字段,zhujimi可以换成其他字段:
zhujimi pptpd zhujimi *
6、修改内核设置,使其支持转发。编辑/etc/sysctl.conf文件:
vim /etc/sysctl.conf
将“net.ipv4.ip_forward”改为1:
net.ipv4.ip_forward=1
同时在“net.ipv4.tcp_syncookies = 1”前面加# :
# net.ipv4.tcp_syncookies = 1
保存退出,并执行下面的命令来生效它:
sysctl -p
7、添加iptables转发规则。
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 12.34.56.78
(OpenVZ,12.34.56.78为你的VPS的公网IP地址)
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
(XEN)
保存iptables转发规则:
/etc/init.d/iptables save
重启iptables:
/etc/init.d/iptables restart
8、重启pptp服务。
/etc/init.d/pptpd restart
9、设置开机自动运行服务。
chkconfig pptpd on
chkconfig iptables on
如果出现错误619则输入命令
mknod /dev/ppp c 108 0
如果你需要图形化管理VPN的话,建议使用Webmin:
rpm -ivh http://nchc.dl.sourceforge.net/project/webadmin/webmin/1.510/webmin-1.510-1.noarch.rpm
注意:如果虚拟机内核不支持MPPE的话,无法使用加密,用WINDOWS默认VPN连接会显示“证书信任错误”。
解决方法:修改/etc/ppp/options.pptpd注释掉require-mppe-128这行,然后windows的vpn拨号的属性改为可选加密,再次连接就成功了。
本文参考:http://www.zhujimi.com/903.html和http://blog.xaoyo.net/post/359