1
Yien 2014-10-08 18:45:15 +08:00
感谢分享!
|
2
xream 2014-10-08 19:07:32 +08:00
IKEv2 可以实现国内国外路由区分 大大研究下造福群众吧?
https://wiki.strongswan.org/projects/strongswan/wiki/ForwardingAndSplitTunneling#Split-Tunneling-with-IKEv2 |
5
goodbest 2014-10-08 20:33:21 +08:00
rightid=*@every.string.you.want
不太理解这句话的意思 |
6
GPU 2014-10-08 20:35:28 +08:00
等你很久了。 。 感谢。
|
8
1nt 2014-10-08 20:48:26 +08:00
感谢教程。
iKEv2 速度虽然快,可是不能 always on, 所以还是继续用超级慢的 anyconnect... |
12
wzxjohn OP @1nt 你仔细看看标题。。。这里的On Demand就是类似于Always On,不然也不用这么麻烦了。。。
|
14
yxjxx 2014-10-08 21:02:20 +08:00
在windows phone上一直用IKEv2来科学上网呢
|
15
wzxjohn OP @yxjxx 是的,而且我发现用Linux搭建IKEv2比按照微软的教程用Windiws弄方便多了。。。
|
16
GPU 2014-10-08 21:06:21 +08:00
@wzxjohn 我是debian ufw 没有找到的问题我解决了。apt-get 直接安装了。
然后关于证书问题 ,貌似有点说得不明白 。 vpnHostKey.pem 与 /etc/ipsec.d/private/server.pem 这两个问题是不是一样的 ? vpnHostKey.pem 这个问题是应该放在什么地方呢? 还有就是 /etc/ipsec.secrets 文件里 ``` : PSK yourpskhere ``` 这个是什么东西? |
19
1nt 2014-10-08 21:13:23 +08:00
@wzxjohn
我知道啊,因为我有买 12vpn 家的服务, 必须得访问配置文件里面特定的 url 才能触发 VPN。 而因为网络环境问题,我需要无时无刻保持 VPN 加密发送所有流量, 而不是单纯的为了翻墙,所以 On Demand 比较麻烦, 我想等有空了重新刷成被监督的设备,这样应该就可以真正的 Always On 了, AnyConnect 毕竟还是太慢。 |
20
wzxjohn OP |
21
wzxjohn OP @GPU 还有,server.pem是放在 /etc/ipsec.s/certs/中,不是private中。
|
22
xream 2014-10-08 21:42:53 +08:00
@1nt
把 <key>IPSec</key> <dict> ... </dict> 里的OnDemand那一段改成 <key>OnDemandEnabled</key> <integer>1</integer> <key>OnDemandRules</key> <array> <dict> <key>Action</key> <string>Connect</string> </dict> </array> 就是 always on 了 |
23
wzxjohn OP @xream 不要异想天开,这个选项的作用只是安装完配置文件之后On Demand选项是否默认开启。你可以实测一下也可以看看苹果的文档。
|
25
riaqn 2014-10-08 22:04:23 +08:00
能不能问下,strongswan(ipsec)和openvpn哪个好一点呢?小弟最近在配置openvpn,用途主要就是翻墙。希望能保证安全的情况下快一点。另外希望一台已越狱ios 7也能分流翻墙(只对于国外流量走vpn)。
谢谢啦~ |
28
wzxjohn OP @riaqn strongswan的速度我觉得已经差不多了。。。OpenVPN我记忆中是协议问题导致流量容易被识别出来,然后直接被干掉。
|
29
riaqn 2014-10-08 23:09:48 +08:00
@wzxjohn 我刚上网查了一下,好像用静态密钥,可能可以防止被识别。
http://www.chinagfw.org/2012/12/openvpngfw.html 这样,从握手开始就加密了,没有特征。 |
34
jiangeiie 2014-10-09 08:57:26 +08:00
感谢强尼
原先卡在wildcard证书这块,现在完美结局了,好顶赞 |
35
goodbest 2014-10-09 10:11:06 +08:00
我想请问一下:
如果使用自签名的证书(而不是去证书服务商那里申请),需要特殊的设置么? 我已经在配置文件里加入了自签名ca文件,但是总是auth fail |
36
goodbest 2014-10-09 10:15:09 +08:00
补充一下35L的问题:
自签的ca证书的CN、serverCert和serverKey的CN、leftid的都已经设置的完全一致了。 而且这套证书在实现apache的https访问已经完全没问题(当然事先本机需手动导入ca根证书) |
37
wzxjohn OP @goodbest 自签名证书需要在苹果的mobileconfig文件中添加证书,必须使用Apple Configurator添加证书。
顺便我写这个教程的目的就是尽量简化设置,所以强烈不建议使用自签名证书。同时自签名证书还有可能带来很严重的安全隐患,最好还是用已有的SSL证书吧。 |
38
jiangeiie 2014-10-09 10:28:37 +08:00
补充一个
使用startssl的童鞋, 需要把startssl ca和class1或者class2的pem拷贝到/etc/ipsec.d/cacerts/ 如果出现证书错误,请把 /etc/ipsec.d/cacerts/ /etc/ipsec.d/private/ /etc/ipsec.d/certs/ 下面无用的证书都删掉,不然容易有各种各样的问题 |
39
goodbest 2014-10-09 10:30:41 +08:00
@wzxjohn 我已经添加了证书,一直都是验证失败,不知道错在了哪一步。
主要是申请ssl证书真麻烦,之前去startssl申请被reject了一次... |
40
wzxjohn OP |
41
fuck010bj 2014-10-09 13:41:41 +08:00
server name in cert "server.pem" 这里用的是服务器的IP,不是域名,咋办啊
|
44
wzxjohn OP @fuck010bj 适用,不过我没有实际测试过。应该是要改或者删除leftid和在下发给设备的配置文件中添加CA证书。具体的测试一下就知道了。
|
46
wzxjohn OP @fuck010bj 手机似乎是不需要安装server.pem的。用Apple Configurator来添加证书啊~
|
47
fuck010bj 2014-10-09 14:32:38 +08:00
@wzxjohn 说错了,安装cacert.pem和clientCert.pem是之前cisco ipsec用的;添加证书直接是打开邮件附件的,没用Apple Configurator啊
|
49
goodbest 2014-10-09 15:39:25 +08:00
给lz反馈一下:
经过我测试,可能openvz的vps不支持。(其实l2tp在openvz也类似) 同样的操作换了一台DO的机器就OK了... |
51
fuck010bj 2014-10-09 16:57:34 +08:00
@wzxjohn 连不上,到这就不行了
[IKE] received proposals inacceptable Oct 9 16:51:05 localhost charon: 01[ENC] generating IKE_SA_INIT response 0 [ N(NO_PROP) ] |
53
GPU 2014-10-09 18:44:26 +08:00
root@(none):~# in /etc/rc.local
-bash: syntax error near unexpected token `in' |
56
GPU 2014-10-09 18:55:23 +08:00
正在纠结 在哪里有最新版Yosemite 下载 .没有白苹果 ,只能虚拟装一个黑苹果
|
57
wzxjohn OP @GPU
Then put 然后将下面两行 iptables-restore < /etc/iptables.up.rules ufw reload in /etc/rc.local 写入/etc/rc.local 一行英文一行中文,那句是解释。。。 那就没办法了。。。这东西必须用Yosemite运行。。。 |
58
GPU 2014-10-09 19:02:08 +08:00
|
60
goodbest 2014-10-09 20:28:26 +08:00
|
62
GPU 2014-10-10 00:39:04 +08:00 via iPhone
@wzxjohn 有空能帮忙建一个配置文件么?yosemite b1安装的时候提示“停止供货了”,只能等正式版出了再装。
|
64
goodbest 2014-10-10 10:08:39 +08:00
关于60L说的。
考虑到ios可能对路由条目数量有限制,所以加了这个。一个别人ios anyconnect正在用的配置。 leftsubnet = 103.0.0.0/8,106.0.0.0/8,107.0.0.0/8,108.0.0.0/8,141.0.0.0/8,153.0.0.0/8,160.0.0.0/8,166.0.0.0/8,17.0.0.0/8,173.0.0.0/8,176.0.0.0/8,178.0.0.0/8,184.0.0.0/8,194.0.0.0/8,198.0.0.0/8,199.0.0.0/8,203.0.0.0/8,204.0.0.0/8,205.0.0.0/8,208.0.0.0/8,209.0.0.0/8,210.0.0.0/8,216.0.0.0/8,3.0.0.0/8,4.0.0.0/8,31.0.0.0/8,46.0.0.0/8,50.0.0.0/8,54.0.0.0/8,61.0.0.0/8,64.0.0.0/8,67.0.0.0/8,68.0.0.0/8,69.0.0.0/8,70.0.0.0/8,72.0.0.0/8,74.0.0.0/8,75.0.0.0/8,76.0.0.0/8,77.0.0.0/8,79.0.0.0/8,8.0.0.0/8 结果推特、dropbox、youtube等都无法访问,但奇怪的是谷歌完全没问题。 所以我现在也搞不清到底是谁出了问题 |
66
cattyhouse 2014-10-10 13:26:20 +08:00 via iPhone
@wzxjohn 下面这段代码的意思就是无论任何条件只要连接3G,Wifi网络设备(注意,不一定是能上网),vpn都自动连接,等于always on,请自行阅读apple官网文档。我目前就是用这段代码,已经验证,无论ikev1,还是v2,vpn都是自动连接。
key>OnDemandEnabled</key> <integer>1</integer> <key>OnDemandRules</key> <array> <dict> <key>Action</key> <string>Connect</string> </dict> </array> |
67
wzxjohn OP @cattyhouse 我非常确信这段代码期中OnDemandEnabled = 1的含义是是否在安装时默认开启On-Demand选项,这个请明知。还有这段代码确实可以实现类似与Always On的功能,但是这并不是Always On VPN。或者说其实On-Demand是Always On的高级版本,可以根据域名来选择。
|
72
GPU 2014-10-12 16:23:29 +08:00
@wzxjohn
wget http://download.strongswan.org/strongswan-5.2.0.tar.bz2 tar xjvf strongswan-5.2.0.tar.bz2; cd strongswan-5.2.0 ./configure --prefix=/usr --sysconfdir=/etc --enable-eap-mschapv2 --enable-eap-identity --enable-eap-peap --enable-openssl --enable-md4 make & make install 以上是strongswan 最新版完整的编译命令 . 如果使用apt-get 默认的源 版本是4.6的 ,官方最新是5.2.0 |
73
goodbest 2014-10-12 18:33:40 +08:00
看到lz把基于domain的ondemand rule改为了类似always on的connect
于是我本人使用ikev2的主要目的还是翻墙,所以还是需要考虑让某些国内网址不走代理。 否则等vpn自动连接了以后,访问国内网站还要手动关vpn才行,可能稍有不便。 而我60L的方法又测试失败了。 于是目前我考虑这样设置: http://pastebin.com/X1h0fJXS 其中的第一大块是被墙的网址,如果访问的话就自动连接vpn。 第二大块网址是即使当前已经连接了vpn,但这些网址也会不走vpn的。这里适合设置成国内视频站之类的网址。(我这里设置成了看自己ip的站点,方便测试。) 这一块网址我打算借用一下现有的轮子,比如这里https://github.com/linusyang/MobileShadowSocks/blob/master/MobileShadowSocks/auto.pac 另外我打算马上打算测试一下通配符网址能否用,如果可以的话就可以直接bypass *.cn |
78
goodbest 2014-10-13 23:40:05 +08:00
@wzxjohn 访问第二段里面的网站,vpn的标志还在(也就是vpn并未断开),但实际上流量没走vpn(访问ip138看ip就能看出来,通过页面加载速度也能感觉出来)。
|
80
freeznet 2014-10-14 11:23:56 +08:00
|
81
emptyzone 2014-10-14 11:40:46 +08:00
@goodbest IPsec 是支持 SplitTunnel 的。IKEv1 也支持。你之前试的不行应该是因为 DNS 的问题,你可以看看这个 http://emptyzone.github.io/tech/2014/10/13/cross-fire-wall-on-ios8/
|
82
goodbest 2014-10-14 11:57:48 +08:00
|
83
wzxjohn OP @emptyzone Orz完全不提我的文章也是醉了。。。明明如何使用SSL证书是我写的。。。不过这个方法还是挺好的,值得试一下,就是还要自己搭建DNS实在是太麻烦了。。。而且我觉得在墙外服务器搭建DNS还是无法避免墙的DNS投毒干扰啊。。。
|
84
emptyzone 2014-10-14 12:09:29 +08:00
|
85
g552656 2014-10-14 13:58:11 +08:00
我问个可能很愚蠢的问题,里面说的证书证书的,是需要单独购买还是直接按照步骤生成就行?
|
86
wzxjohn OP @g552656 可以直接使用之前购买的SSL证书也可以按照步骤生成,推荐使用购买的SSL证书因为这样的话就不需要再单独下发证书给用户,也更安全。当然自签名的证书也是可以使用的,只不过需要手动将CA发给用户而已。
|
87
g552656 2014-10-14 16:10:01 +08:00
@wzxjohn 感谢,但是如果不使用域名直接使用ip的话,是不是就只能自己生成且必须用户手动添加证书,也就没办法自动配置或者无法完全自动配置了?
|
91
g552656 2014-10-14 23:39:06 +08:00
@wzxjohn 感谢耐心解答:)在研究测试一下看看如果比现用的Cisco IPSec好的话就升级到IEKv2,原来是想解决iOS锁屏断线的问题,不过现在iOS8新系统锁屏也不断线了。
|
92
goodbest 2014-10-15 00:54:54 +08:00 1
@g552656
@wzxjohn @cattyhouse 经过我的详细研究,在iOS8.02上的ikev1 ikev2对比如下: 一、 如果你就是想永远挂着vpn 那么ikev1基本完美,ikev2会出现 http://v2ex.com/t/138171 所提到的问题 二、 如果你想用来翻墙,而国内网站不走vpn的话 a. ikev2 1) 原生拥有Split tunneling,可以很方便的设置不走vpn的ip段。(这看起来很美) 但是!!!!注意但是!!! 一旦使用了Split tunneling,iOS目前无法使用远程DNS解析。 由于国内DNS污染,这会导致无法访问大部分被墙的网站。因此翻墙也就失效了。 2) 如果不使用Split tunneling,那么只有在.mobileconfig文件上面做手脚。比如设置访问某些国内域名的时候neverconnect vpn即可,但是域名多了以后就会十分影响性能。(参见73L) b. ikev1 原生不支持Split tunneling,但是strongswan直接带了unity插件。 该插件的“28675”键值(UNITY_SPLITDNS_NAME)解决了上述不能使用远程dns解析的问题,因此不在有这个问题。 但是设置略复杂,请参考 https://wiki.strongswan.org/projects/strongswan/wiki/Attrplugin http://emptyzone.github.io/tech/2014/10/13/cross-fire-wall-on-ios8/ 综合一下: 目前还是用ikev1来得好。 ikev2协议本身很好,但是苹果还没有在iOS8上面把它实现的完美,苹果必须把iOS 8 ~ iOS8.1 这几个大bug修了才能真正用起来。 |
93
g552656 2014-10-15 01:33:32 +08:00
@goodbest 非常感谢,如果IKEv2不使用Ondemand或是Always on的话,它和IKEv1比起来在性能和速度或者稳定性等方面会有差别吗?或者说哪个更好?
|
99
riaqn 2014-10-25 19:19:42 +08:00
@gissimo 恩 我在国内搭了一台ipsec server + openvpn client.这样我在这个城市的时候,都是连的这个ipsec服务器.
|
100
gissimo 2014-10-25 19:26:39 +08:00
请教楼主,我是纯ip的DO,专门用来vpn,所以没绑域名。所以制作证书的时候是写入ip的,是不是就不能用你这套方法了啊?似乎必须要写入我自己生成的证书。
第二个问题:Windows下的configurator是不是没有ikev2选项?必须手写? 第三:我看到这里有详细的教程,貌似根据eap-chap认证和certificate认证有两种做法。我现在电脑端用的是eap-chap,连接很完美。ios端用这个conn可以吗https://wiki.strongswan.org/projects/strongswan/wiki/AppleIKEv2Profile |