#2016-01-04 决定将本文作废,因我要另再写新版本的配置。这篇作于 2013年,而strongswan已经更新很多版本。
#本文需要有独立的VPS,如果你需要一台速度快,每月30元的左右的VPS,可以使用我的邀请注册 http://www.vultr.com/?ref=6813064 并且在注册时使用 SSDVPS 可以送 $20(或者 $10 不等)。一定要选日本线路,这个到国内延迟约40ms ~ 100ms ,一般是 80ms 左右,非常快非常稳定,一个月32元,可以和几个人合租了。
#LOG:2014-04-30 对ipsec.conf进行修改,增加了android手机的兼容,现在可以支持完整支持android 自带的VPN设置啦~~~~
#LOG:2013-0609 对ipsec.conf进行修改,加入清楚DPD代码,防止IP 地址池不正确占用
#LOG: 2013-0519 删除ipsec.conf 中多余的conn iOS一节,这本是我一年前调试用的,时间不起作用; 删除了 %default中的 rightsubnet ,如果不删除,在定义了多段IP路由的情况下会导致账号无法上网(只有一段IP没这个bug),感谢 JackWindows @JackWindows
#LOG 2013-05-12 修正bug,原配置文件会导致一个ID不可以同时多次登陆。得蒙@KhaosT 指点,对 strongswan.conf 加入duplicheck.enable = no ,对 ipsec.conf 加如 uniqueids=never
#完成度100%
在我们生活的周围,通常要用到很多种VPN: PPTP, L2TP/IPSec, Cisco IPSec, IKEv2, 这些不同类型的VPN覆盖了目前我们常见的所有手机或者电脑平台,比如 iOS, Blackberry OS, BB10, Android, WebOS, Windows XP, Windows Vista/7/8, Unix/Unix-like。
(*如果你正在找blackberry 翻墙方法、ios ipsec vpn、windows IKEv2 VPN、Blackberry BB10 / Z10 VPN、android VPN,建议放弃本文,这里不是现成的VPN工具而是服务器搭建过程,也就是读了本文你可以初步具备出售VPN的能力)
环境:Debian 6.0 ( 64bit), StrongSwan 5.0.4, FreeRadius 2.2.10, Mysql , pppd 2.4.5 , pptpd v1.3.4,daloRadius,Apache 。
重要说明:
一般的教程,都是安装了一个软件紧接着就将此软件的配置写一下,我就不这么做了,直接将需要的软件都安装完成,最后再写每一样的配置。
1 StrongSwan
尽管你可以用 apt-get install 来安装,但是那已经是旧版本,根本就不能满足我们的目标,请自行下载 http://www.strongswan.org/download.html ,我当前使用的是 5.0.2 ,解压缩,然后开始安装
cd strongswan-5.0.4
Debian Linux下
注意:
FreeBSD下需要变更为:
注意的是,以上的配置参数你可以任意增减唯独红色字体务必保留,这决定了我们后面的所有配置能否畅通。
2 安装FreeRadius,pptpd,pppd,mysql-server
这些全部通过apt-get 进行安装就可以了
FreeBSD 下通过 pkg_add -r 也可以安装好
3 daloradius
*daloradius非必选,你也可以使用其他管理器,例如 Freeradius ARA (地址 http://labs.asn.pl/ara/ 其实我更推荐这个玩意,简单好用)
在这里下载 http://sourceforge.net/projects/daloradius/ ,不过这个是网页客户端,因此你需要安装 Apache或者Nginx ,直接apt-get install就可以。
将daloRadius解压缩放在网站根目录下(其实位置你可以自己定义,这个不是难点),比如我的就是放在 https://test.com/radius下面。
OK,第一阶段工作完毕,接下来我们就一步一步来配置我们的服务器
1 配置 StrongSwan ,使得服务器使用Radius 认证计费
1.1 下面是我的 strongswan.conf,请务必删除其中的中文注释。
1.2 配置ipsec.conf,建立Cisco IPSec和IKEv2
以下是我的ipsec.conf,你可以依据你的需要来更改IP地址池,本例中我的客户端拨VPN后得到的IP地址是 192.168.99.128/25 的范围。同样请务必删除其中的中文注释(抱歉,为了让大多数人能读懂并且操作实践,因此使用了中文)。
以上是IPSec的启动文件,光有这些还不行,上面只是规定了IKE交换阶段的算法和加密,我们需要指定PSK
1.3 IPSec Secret (即PSK)
1.4 调试StrongSwan
这时候你可以看到strongswan 在前台运行,并且出现很多字符,你可以根据这些字符找到问题来进行排查。
由于目前还没有配置FreeRadius,所以还不能进行正常的认证,下一步我们就着手解决这个问题
2 配置FreeRadius2和mysql-server
2.1 mysql-server的配置
我不能写太多关于mysql的部分,因此安装以及正常运行需要你参考其他mysql的文章进行,我只写关于FreeRadius的部分
2.2 更改FreeRadius,使得可以连接Mysql Server
vi sql.conf
sed这两句的意思就是查找radiusd.conf和 default文件,把注释掉的sql行取消注释,也就是启用sql
#FreeBSD用户注意哟,FreeBSD下的sed不是Linux下的GNU Sed,因此有些指令不同,需要自己调整,或者你直接就 vi 编辑吧
2.3 配置freeradius对IKEv2进行认证
IKEv2使用MSCHAPv2进行加密,但是默认FreeRadius使用md5,因此我们要修改一下:
3 调试FreeRadius和Mysql Server
我们手动创建一个用户 vpntest,密码 vpntest
然后停止FreeRadius Demon,并使用debug模式
freeradius -Xx
如果成功了,应该看到如下信息:
至此为止,服务器环境就已经搭建好了,接下来是细微调整。
4 NAT和防火墙设定
这个每个系统都不一样,iptables在不同Linux上也不相同,所以你需要自己去设定一下,我这里就不赘述。
你需要将 192.168.99.128/25加入NAT
你需要放通 UDP 500 和 UDP 4500 端口
你需要指定 ESP 同行
个别系统下,你需要放通 tun0 的通讯
你需要更改 /etc/sysctl.conf : net.inet.ip.forwarding=1
5 联调
请打开两个 ssh 窗口,分别输入
和
然后使用客户端进行连接,黑莓 os 4/5/6/7上设定如下:
然后设定你的wifi 配置文件,里面的vpn指定为我们刚刚创建的。
在iOS上的配置:
Windows 设置:
可以下载盗版的cisco vpn client,也可以使用免费的shrew vpn client
拨号测试一下,主要观察刚刚让你打开的SSH上面的出错信息,最后一一解决掉。
OK,到目前为止,IPSec VPN就完成了
6 IKEv2 的配置
原本预计5月7日完成,不过这几天被General Master约谈了,加上我夜里也要调整服务器,就耽搁了。
今天是5月8日,IKEv2,开始。
其实在我的 ipsec.conf 里已经包含了“conn IPSec-IKEv2 ” ,那里面已经规定了通讯方式,分配IP,我们现在要做的是生成IKEv2的证书,导入windows 8/blackberry playbook /bb10 中去使用。
6.1 生成服务器证书----Ca,Server两种证书
提示:
1 我的IKEv2配置是客户端使用根证书+用户名密码的方式上网,如果你在寻找完全使用证书认证上网的方式就无需向下阅读。
2 经twitter朋友指正,你使用startssl 的根证书也是一样的,无需自己生成,所以你可以跳过下面这一段。
重要:上面的高亮字体是提示你,务必要写你的真实域名,也就是客户要连接你的vpn服务器的真实地址。如果你vpn服务器是www.abc.com,但是你这里写成了 www.xyz.com,客户机是不能使用vpn的。
以上两条命令可以生成四个文件:caCert.pem, caKey.pem, serverCert.pem serverKey.pem。
6.2 启用证书
需要将其中三个导入StrongSwan 的配置目录,也就是ipsec.d,默认情况下应该是这样:
而后:
你应当可以看到:
已经起作用了,但是不要着急,这样的话你会无法登陆,会出现"[IKE] no private key found for XXXXXXXX",因为我们少做了一步:
6.3 windows 8 使用IKEv2
6.3.1 电脑中导入证书
经过以上两步,服务器上的IKEv2是已经搭建好了,接下来就是让windows来创建连接了:
1) 使用管理权限运行 mmc,我是直接win+R 然后输入mmc 。
2) 出现控制台,此时空白,点击“文件”、“添加或者删除”
3)在左侧找到“证书”二字,点击中间的“添加”,会弹出新的对话窗,点选“本地计算机账户”点击确定,这一点很重要
4)在左侧鼠标右键点选“受信任的根证书颁发机构”,弹出菜单中选择“所有任务”-〉“导入”
5)将刚刚我们制作好的 caCert.pem 导入
6.3.2 创建连接并拨号
1)创建新连接,选择“连接工作场区(VPN)”,点下一步
2)这个画面因人而异,看本文能看到这里自然知道如何处理
3)直到让你输入internet地址和连接名称,这里一定要输入你在生成证书时写在证书里的域名,或者不填写保留空白(windows会根据你的证书自动补上)
4 直接保存,然后就可以拨号了
阶段三 VPN账户管理
1 搭建服务器运行环境
恭喜你,来到了这个阶段,虽然很痛苦,不过到了这里,也就意味着这篇教程要终止了。只是这个终止的过程同样很曲折。我选用了流行的 DaloRadius + Nginx 作为管理平台,我也有apache的,只是觉得应该为自己以后留点东西。
FreeBSD系统下编译nginx如下:(其他系统跳过这段)
你需要使用fcgi模式来跑php,这里不多说了
2 配置DaloRadius
下载DaloRadius,任意放一个位置,然后使用
ln -s daloradius /usr/local/nginx/html/admin
chown -R www:www /usr/local/nginx/html/admin
这样就可以短网址访问,最重要的是配置daloradius
cd /usr/local/nginx/html/admin
vi library/daloradius.conf.php
以上几行是需要注意的,要改成你实际的东西才可以。接下来要倒入daloradius自己的数据库表格:
3 登录使用daloradius
如果你就这么打开浏览器登录dalradius,可能会得到 error 500,这是因为你的php缺少组件"DB",使用pear 安装就可以。
登录的用户名密码默认是 administrator和radius。进入后就可以添加用户了。
4 数据同步
也许你不止一台vps,你可能5台、2台,那么我们可能需要对数据库做热备份,万一其中一台有问题还可以切换到另一台,同时freeradius承担认证服务,也需要冗余备份。
4.1 mysql的同步
很简单,修改my.cnf,你需要将一台服务器作为master,其余的都是slave,这样当master的数据有变更就会分发到slave上,完成了同步
master 设定:
slave 设定:
然后在master上创建一个账户(例如backup),账户需要对radius有权限。并且在slave上进入mysql> ,输入 start slave; 就可以了。
freeradius就只靠dns来达到冗余。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
||终于写好了
||______________________________________________________________
#本文需要有独立的VPS,如果你需要一台速度快,每月30元的左右的VPS,可以使用我的邀请注册 http://www.vultr.com/?ref=6813064 并且在注册时使用 SSDVPS 可以送 $20(或者 $10 不等)。一定要选日本线路,这个到国内延迟约40ms ~ 100ms ,一般是 80ms 左右,非常快非常稳定,一个月32元,可以和几个人合租了。
#LOG:2014-04-30 对ipsec.conf进行修改,增加了android手机的兼容,现在可以支持完整支持android 自带的VPN设置啦~~~~
#LOG:2013-0609 对ipsec.conf进行修改,加入清楚DPD代码,防止IP 地址池不正确占用
#LOG: 2013-0519 删除ipsec.conf 中多余的conn iOS一节,这本是我一年前调试用的,时间不起作用; 删除了 %default中的 rightsubnet ,如果不删除,在定义了多段IP路由的情况下会导致账号无法上网(只有一段IP没这个bug),感谢 JackWindows
#LOG 2013-05-12 修正bug,原配置文件会导致一个ID不可以同时多次登陆。得蒙
#完成度100%
在我们生活的周围,通常要用到很多种VPN: PPTP, L2TP/IPSec, Cisco IPSec, IKEv2, 这些不同类型的VPN覆盖了目前我们常见的所有手机或者电脑平台,比如 iOS, Blackberry OS, BB10, Android, WebOS, Windows XP, Windows Vista/7/8, Unix/Unix-like。
(*如果你正在找blackberry 翻墙方法、ios ipsec vpn、windows IKEv2 VPN、Blackberry BB10 / Z10 VPN、android VPN,建议放弃本文,这里不是现成的VPN工具而是服务器搭建过程,也就是读了本文你可以初步具备出售VPN的能力)
环境:Debian 6.0 ( 64bit), StrongSwan 5.0.4, FreeRadius 2.2.10, Mysql , pppd 2.4.5 , pptpd v1.3.4,daloRadius,Apache 。
目标:
1 使用 FreeRadius作为用户认证和计费
2 使用daloRadius来管理用户,包括账单、到期时间、登录状态
3 StrongSwan 承载IPSec加密,实现 Cisco IPSec, IKEv2综合vpn接入服务
重要说明:
IKEv2是非常优秀的vpn,它与Cisco IPSec 完全不同,而且支持Mobile IP 技术,已经是我日常最多使用的VPN。下面的配置同时实现了两者(cisco ipsec 和 ikev2),如果你不用不到,就在阅读下面的文章时忽略掉。
正题
阶段一 安装所需要的软件
一般的教程,都是安装了一个软件紧接着就将此软件的配置写一下,我就不这么做了,直接将需要的软件都安装完成,最后再写每一样的配置。
1 StrongSwan
尽管你可以用 apt-get install 来安装,但是那已经是旧版本,根本就不能满足我们的目标,请自行下载 http://www.strongswan.org/download.html ,我当前使用的是 5.0.2 ,解压缩,然后开始安装
cd strongswan-5.0.4
Debian Linux下
apt-get install libssl-dev
./configure --enable-eap-identity --enable-eap-mschapv2 --enable-eap-tls --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap --enable-xauth-pam --enable-dhcp --enable-openssl --enable-unity --enable-certexpire --enable-tools --disable-gmp --enable-coupling --enable-ipseckey
注意:
FreeBSD下需要变更为:
./configure --enable-kernel-pfkey --enable-kernel-pfroute --disable-kernel-netlink \
--enable-tools --enable-scripts --with-group=wheel --enable-eap-identity \
--enable-eap-md5 --enable-eap-mschapv2 --enable-eap-radius --enable-xauth-eap \
--enable-openssl --enable-radattr --enable-unity --disable-gmp --enable-pem
make
make install
注意的是,以上的配置参数你可以任意增减唯独红色字体务必保留,这决定了我们后面的所有配置能否畅通。
2 安装FreeRadius,pptpd,pppd,mysql-server
这些全部通过apt-get 进行安装就可以了
FreeBSD 下通过 pkg_add -r 也可以安装好
3 daloradius
*daloradius非必选,你也可以使用其他管理器,例如 Freeradius ARA (地址 http://labs.asn.pl/ara/ 其实我更推荐这个玩意,简单好用)
在这里下载 http://sourceforge.net/projects/daloradius/ ,不过这个是网页客户端,因此你需要安装 Apache或者Nginx ,直接apt-get install就可以。
将daloRadius解压缩放在网站根目录下(其实位置你可以自己定义,这个不是难点),比如我的就是放在 https://test.com/radius下面。
OK,第一阶段工作完毕,接下来我们就一步一步来配置我们的服务器
阶段二 配置服务器
1 配置 StrongSwan ,使得服务器使用Radius 认证计费
1.1 下面是我的 strongswan.conf,请务必删除其中的中文注释。
root@v4:/usr/home/bao3 # cat /usr/local/etc/strongswan.conf
# strongswan.conf - strongSwan configuration file
charon {
i_dont_care_about_security_and_use_aggressive_mode_psk = yes
#上面这一行相当重要,并且只对 strongswan5.0.1以后的版本有效,没有它的话很多系统使用 ike将不支持aggrisive模式
install_virtual_ip = yes
duplicheck.enable = no
#上面这行很重要,否则一个ID只能同时一个在线
#interfaces_use = em0 #如果你的系统无法工作,请取消注释,并且手动指定端口,但一般不必如此
# number of worker threads in charon
threads = 16
dns1=208.67.222.222
dns2=8.8.8.8
# send strongswan vendor ID?
# send_vendor_id = yes
plugins {
sql {
# loglevel to log into sql database
loglevel = -1
# URI to the database
# database = sqlite:///path/to/file.db
# database = mysql://user:password@localhost/database
}
eap-radius {
#eap_start = yes
accounting = yes
servers {
primary {
address = radius.youname.org
#这里用以指定Radius服务器,如果你的FreeRadius跟strongswan在同一台,你可以使用 localhost或者127.0.0.1
#这里使用了 servers {} ,你可以指定多个Radius,例如 primary,2nd,last1,这里我只使用一个,随意起了个名字:primary
secret = testing123
auth_port = 1812
acct_port = 1813
}
}
}
xauth-eap {
#这一行比较重要,未来要用在ike v1 ,也就是目前大多系统使用的cisco ipsec模式
backend = radius
}
}
# Two defined file loggers. Each subsection is either a file
# in the filesystem or one of: stdout, stderr.
filelog {
/var/log/charon.log {
# add a timestamp prefix
time_format = %b %e %T
# loggers to files also accept the append option to open files in
# append mode at startup (default is yes)
append = no
# the default loglevel for all daemon subsystems (defaults to 1).
default = 3
# flush each line to disk
flush_line = yes
}
stderr {
# more detailed loglevel for a specific subsystem, overriding the
# default loglevel.
ike = 3
knl = 3
# prepend connection name, simplifies grepping
ike_name = yes
}
}
# And two loggers using syslog. The subsections define the facility to log
# to, currently one of: daemon, auth.
syslog {
# optional identifier used with openlog(3), prepended to each log message
# by syslog. if not configured, openlog(3) is not called, so the value will
# depend on system defaults (usually the program name)
identifier = charon-custom
# default level to the LOG_DAEMON facility
daemon {
}
# very minimalistic IKE auditing logs to LOG_AUTHPRIV
auth {
default = 0
ike = 0
}
}
# ...
}
pluto {
}
libstrongswan {
# set to no, the DH exponent size is optimized
# dh_exponent_ansi_x9_42 = no
}
1.2 配置ipsec.conf,建立Cisco IPSec和IKEv2
以下是我的ipsec.conf,你可以依据你的需要来更改IP地址池,本例中我的客户端拨VPN后得到的IP地址是 192.168.99.128/25 的范围。同样请务必删除其中的中文注释(抱歉,为了让大多数人能读懂并且操作实践,因此使用了中文)。
root@v4:/usr/home/bao3 # cat /usr/local/etc/ipsec.conf
config setup
uniqueids=never
#上面这行很重要,允许一个ID同时多次登陆
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
rekey=no
keyingtries=1
keyexchange=ike
leftsubnet=0.0.0.0/0
right=%any
rightsourceip=192.168.99.128/25
dpdaction=clear
dpddelay=300s
dpdtimeout=1h
conn IPSec-IKEv2
keyexchange=ikev2
auto=add
leftauth=pubkey
leftcert=serverCert.pem
rightauth=eap-radius
rightsendcert=never
eap_identity=%identity
compress=yes
conn CiscoIPSec
keyexchange=ikev1
auto=add
aggressive=yes
compress=yes
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
dpdaction=clear
leftid=blackberry
#上面这个leftid对应的就是cisoc ipsec设定里面的group name,也有一些客户端里面叫IPSec ID,都一样 #至于Group Password(也叫IPSE secret)会在另外的文件里配置,这里不着急 type=tunnel xauth=server leftauth=psk rightauth=psk rightauth2=xauth-eap leftfirewall=yes
conn android_xauth_psk
keyexchange=ikev1
left=%defaultroute
leftauth=psk
leftsubnet=0.0.0.0/0
right=%any
rightauth=psk
rightauth2=xauth
auto=add
以上是IPSec的启动文件,光有这些还不行,上面只是规定了IKE交换阶段的算法和加密,我们需要指定PSK
1.3 IPSec Secret (即PSK)
root@v4:/usr/home/bao3 # cat /usr/local/etc/ipsec.secrets
%any %any : PSK "heibang"
#注意哦, %any %any 这个格式很多网上的资料都是写成 yourIP %any ,这表示对所有与你IP(yourIP)进行通讯都使用后面的 heibang 进行PSK加密,但是我有多台VPS,在复制配置文件的时候总是需要指定yourIP为我的每一台VPS的实际IP(XX.XXX.XXX.XX)。于是突然有一天我突发奇想,换成了 %any %any,这样就适用于我的任何VPS系统了。。。。。如果你遇到问题,请你将第一个%any 改成你自己的IP。1.4 调试StrongSwan
ipsec start --nofork
这时候你可以看到strongswan 在前台运行,并且出现很多字符,你可以根据这些字符找到问题来进行排查。
由于目前还没有配置FreeRadius,所以还不能进行正常的认证,下一步我们就着手解决这个问题
2 配置FreeRadius2和mysql-server
2.1 mysql-server的配置
我不能写太多关于mysql的部分,因此安装以及正常运行需要你参考其他mysql的文章进行,我只写关于FreeRadius的部分
cd /etc/freeradius/sql/mysql
#FreeBSD: cd /usr/local/etc/raddb/sql/mysql
mysqladmin -uroot -p create radius
mysql -uroot -p
mysql>GRANT ALL ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'radpass';
mysql>FLUSH PRIVILEGES;
mysql>quit
#下面创建FreeRadius的数据库表单
mysql -uroot -p radius <schema.sql
mysql -uroot -p radius <nas.sql
mysql -uroot -p radius <cui.sql
mysql -uroot -p radius <ippool.sql
2.2 更改FreeRadius,使得可以连接Mysql Server
cd /etc/freeradius/
#FreeBSD: cd /usr/local/etc/raddb/
vi sql.conf
server = "localhost"
login = "radius"
password = "radpass"
radius_db = "radius"
readclients = yes
接下来告诉FreeRadius启用sql
sed -ie 's/^[ \t]#\$INCLUDE sql.conf$/\$INCLUDE sql.conf/' radiusd.conf
sed -ie 's/^#[ \t]sql$/sql/' sites-available/default
sed这两句的意思就是查找radiusd.conf和 default文件,把注释掉的sql行取消注释,也就是启用sql
#FreeBSD用户注意哟,FreeBSD下的sed不是Linux下的GNU Sed,因此有些指令不同,需要自己调整,或者你直接就 vi 编辑吧
2.3 配置freeradius对IKEv2进行认证
IKEv2使用MSCHAPv2进行加密,但是默认FreeRadius使用md5,因此我们要修改一下:
cat eap.conf
eap {
default_eap_type = mschapv2
.......
#上面一行省略号代表其他配置不改变,仅更改default
}
3 调试FreeRadius和Mysql Server
我们手动创建一个用户 vpntest,密码 vpntest
mysql -uroot -p
mysql> use radius;
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('vpntest', 'Password', 'vpntest');
mysql> FLUSH PRIVILEGES;
mysql> quit
然后停止FreeRadius Demon,并使用debug模式
freeradius -Xx
如果成功了,应该看到如下信息:
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Ready to process requests.
如果没有出现,请根据debug信息找到问题,多数情况是由于无法连接mysql server造成,接下来
radtest vpntest vpntest localhost 1812 testing123
Sending Access-Request of id 226 to 127.0.0.1 port 1812
User-Name = "vpntest"
User-Password = "vpntest"
NAS-IP-Address = 127.0.1.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=226, length=20
至此为止,服务器环境就已经搭建好了,接下来是细微调整。
4 NAT和防火墙设定
这个每个系统都不一样,iptables在不同Linux上也不相同,所以你需要自己去设定一下,我这里就不赘述。
你需要将 192.168.99.128/25加入NAT
你需要放通 UDP 500 和 UDP 4500 端口
你需要指定 ESP 同行
个别系统下,你需要放通 tun0 的通讯
你需要更改 /etc/sysctl.conf : net.inet.ip.forwarding=1
5 联调
请打开两个 ssh 窗口,分别输入
ipsec start --nofork
和
freeradius -Xx
然后使用客户端进行连接,黑莓 os 4/5/6/7上设定如下:
名称:IPSecVPN
网关类型: Cisco 安全 PIX VPN (或者 Cisco ASA)
集中器地址: 你的服务器IP或者域名
组名: blackberry
组密码: heibang
用户名: bao3
用户密码:bugaosuni
保存密码短语: 勾选
启用扩展身份验证:勾选
动态DNS:勾选
IKE DH组:第2组
IKE 密钥:AES(256)
IKE无用数据:HMAC SHA1(160位)
完全正向保密:不勾选!!!!!(重要)
IPSec加密和无用数据组: AES256-SHA1
使用硬件令牌:不勾选!!!!(重要)
然后设定你的wifi 配置文件,里面的vpn指定为我们刚刚创建的。
在iOS上的配置:
通用->找到VPN项并进入->添加VPN配置
iOS有L2TP / PPTP / IPSec,选择 IPSec
描述: IPSec VPN
服务器: 你的IP或者域名
账户:bao3
密码:你的密码
RSA / 使用证书 : 不要打开!!!
群组名称: blackberry
密钥: heibang
设定完成
Windows 设置:
可以下载盗版的cisco vpn client,也可以使用免费的shrew vpn client
拨号测试一下,主要观察刚刚让你打开的SSH上面的出错信息,最后一一解决掉。
OK,到目前为止,IPSec VPN就完成了
6 IKEv2 的配置
其实在我的 ipsec.conf 里已经包含了“conn IPSec-IKEv2 ” ,那里面已经规定了通讯方式,分配IP,我们现在要做的是生成IKEv2的证书,导入windows 8/blackberry playbook /bb10 中去使用。
6.1 生成服务器证书----Ca,Server两种证书
提示:
1 我的IKEv2配置是客户端使用根证书+用户名密码的方式上网,如果你在寻找完全使用证书认证上网的方式就无需向下阅读。
2 经twitter朋友指正,你使用startssl 的根证书也是一样的,无需自己生成,所以你可以跳过下面这一段。
ipsec pki --gen --outform pem > caKey.pem
ipsec pki --self --in caKey.pem --dn "C=CN, O=heibang, CN
=vpn.youname.org
" --ca --outform pem > caCert.pem ipsec pki --pub --in serverKey.pem | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem \ --dn "C=CN, O=heibang, CN=
vpn.youname.org
" --flag serverAuth --outform pem > serverCert.pem
重要:上面的高亮字体是提示你,务必要写你的真实域名,也就是客户要连接你的vpn服务器的真实地址。如果你vpn服务器是www.abc.com,但是你这里写成了 www.xyz.com,客户机是不能使用vpn的。
以上两条命令可以生成四个文件:caCert.pem, caKey.pem, serverCert.pem serverKey.pem。
6.2 启用证书
需要将其中三个导入StrongSwan 的配置目录,也就是ipsec.d,默认情况下应该是这样:
mv -f caCert.pem /usr/local/etc/ipsec.d/cacerts/
mv -f serverCert.pem /usr/local/etc/ipsec.d/certs
mv -f serverKey.pem /usr/local/etc/ipsec.d/private/
而后:
ipsec stop && ipsec start --nofork
你应当可以看到:
08[CFG] received stroke: add connection 'IPSec-IKEv2' 08[CFG] left nor right host is our side, assuming left=local 08[CFG] adding virtual IP address pool 192.168.99.128/24 08[CFG]
loaded certificate "C=CN, O=heibang, CN=vpn.youname.org" from 'serverCert.pem'
08[CFG] id '%any' not confirmed by certificate, defaulting to 'C=CN, O=heibang, CN=vpn.youname.org' 08[CFG] added configuration 'IPSec-IKEv2'
已经起作用了,但是不要着急,这样的话你会无法登陆,会出现"[IKE] no private key found for XXXXXXXX",因为我们少做了一步:
vi /usr/local/etc/ipsec.secret
: RSA serverKey.pem
6.3 windows 8 使用IKEv2
6.3.1 电脑中导入证书
经过以上两步,服务器上的IKEv2是已经搭建好了,接下来就是让windows来创建连接了:
1) 使用管理权限运行 mmc,我是直接win+R 然后输入mmc 。
2) 出现控制台,此时空白,点击“文件”、“添加或者删除”
3)在左侧找到“证书”二字,点击中间的“添加”,会弹出新的对话窗,点选“本地计算机账户”点击确定,这一点很重要
4)在左侧鼠标右键点选“受信任的根证书颁发机构”,弹出菜单中选择“所有任务”-〉“导入”
5)将刚刚我们制作好的 caCert.pem 导入
6.3.2 创建连接并拨号
1)创建新连接,选择“连接工作场区(VPN)”,点下一步
2)这个画面因人而异,看本文能看到这里自然知道如何处理
3)直到让你输入internet地址和连接名称,这里一定要输入你在生成证书时写在证书里的域名,或者不填写保留空白(windows会根据你的证书自动补上)
4 直接保存,然后就可以拨号了
阶段三 VPN账户管理
1 搭建服务器运行环境
恭喜你,来到了这个阶段,虽然很痛苦,不过到了这里,也就意味着这篇教程要终止了。只是这个终止的过程同样很曲折。我选用了流行的 DaloRadius + Nginx 作为管理平台,我也有apache的,只是觉得应该为自己以后留点东西。
FreeBSD系统下编译nginx如下:(其他系统跳过这段)
./configure --with-poll_module --with-http_ssl_module --with-http_spdy_module \
--with-http_realip_module --with-http_addition_module \
--with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module \
--with-http_secure_link_module --with-http_stub_status_module --with-http_perl_module --without-mail_pop3_module \
--without-mail_imap_module --without-mail_smtp_module \
--prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/usr/local/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --http-log-path=/var/log/nginx/access.log
你需要使用fcgi模式来跑php,这里不多说了
2 配置DaloRadius
下载DaloRadius,任意放一个位置,然后使用
ln -s daloradius /usr/local/nginx/html/admin
chown -R www:www /usr/local/nginx/html/admin
这样就可以短网址访问,最重要的是配置daloradius
cd /usr/local/nginx/html/admin
vi library/daloradius.conf.php
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radpass';
$configValues['CONFIG_DB_NAME'] = 'radius';
$configValues['CONFIG_PATH_RADIUS_DICT'] = '/usr/local/etc/raddb/dictionary';
$configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/log/daloradius/var';
$configValues['CONFIG_LOG_FILE'] = '/tmp/daloradius.log';
以上几行是需要注意的,要改成你实际的东西才可以。接下来要倒入daloradius自己的数据库表格:
cd contrib/db/
mysql -uroot -p radius < fr2-mysql-daloradius-and-freeradius.sql
3 登录使用daloradius
如果你就这么打开浏览器登录dalradius,可能会得到 error 500,这是因为你的php缺少组件"DB",使用pear 安装就可以。
PHP Warning: include_once(DB.php): failed to open stream: No such file or directory
pear install db
登录的用户名密码默认是 administrator和radius。进入后就可以添加用户了。
4 数据同步
也许你不止一台vps,你可能5台、2台,那么我们可能需要对数据库做热备份,万一其中一台有问题还可以切换到另一台,同时freeradius承担认证服务,也需要冗余备份。
4.1 mysql的同步
很简单,修改my.cnf,你需要将一台服务器作为master,其余的都是slave,这样当master的数据有变更就会分发到slave上,完成了同步
master 设定:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = radius
slave 设定:
server-id = 2
replicate-do-db = radius
key_buffer = 1M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
然后在master上创建一个账户(例如backup),账户需要对radius有权限。并且在slave上进入mysql> ,输入 start slave; 就可以了。
freeradius就只靠dns来达到冗余。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
||终于写好了
||______________________________________________________________
感谢铁牛兄的教程,一个小修正:
回复删除strongswan.conf的eap-radius中不应有eap_start=yes,这样反而会造成strongswan不发送eap message从而无法认证.
已经修正
删除牛兄,已经8号了,没看到教程,失望!!!
回复删除兄台,今夜在解决一些棘手的问题,看着回复时间你就知道我没有睡觉。。。。。现在是凌晨3:43.解决了strongswan 在FreeBSD下一些奇怪的问题,解决了SSH使用Radius认证的问题,解决了mysql多台间同步异常的问题,抱歉,很累,估计要白天更新一下。
删除牛兄,不好意思,凌晨我是开个玩笑的,请注意身体,我自己也写博客,要用心写好文章其实很花时间的。按你的意思,你在每台服务器上都是安装了独立的Radius服务器,如果是这样的话,各台服务器之间mysql是怎么同步的,能否指定下,谢谢!
删除不好意思,我对mysql和linux的掌握的不是很好。
可同步,我用的就是同步。
删除牛兄 能提供ssh使用radius认证的教程嘛?
删除此评论已被作者删除。
回复删除感谢分享。已知BUG:同一ip下,2个设备用一个账号使用ciscoipsec登陆的话,会造成其中一方无法连接....之前用的racoon则没这问题
回复删除谢谢反馈,我去strongswan mailist看看。
删除config setup里面加个uniqueids=never即可
删除牛凶,执行到这里出现这个错误该怎么解决:
回复删除root@debian:/home/sjd/strongswan-5.0.4# ipsec pki --self --in caKey.pem --dn "C=
CN, O=heibang, CN=us9.xzvpn.com" --ca --outform pem > caCert.pem
openssl FIPS mode(0) unavailable
opening 'caKey.pem' failed: No such file or directory
building CRED_PRIVATE_KEY - RSA failed, tried 5 builders
loading private key failed
我google了好久没找到原因,请指点下,谢谢!
我不确定你的问题在哪里,根据提示:
删除1 不存在caKey.pem:解决,抱歉,我已经修正过内容,是我的疏忽,没有加入生成caKey.pem的命令。请阅读原文
2 openssl 不支持fips,不知是否是前一个原因引起的。新的openssl以及附带fips功能,这个可以去openssl网站下载编译安装的。
3 后面的几个提示就是因为前面引起导致rivate key无法生成。
4 另外,我恰好今天更新了一下strongswan,ipsec两个配置文件,在开头有说明,你看一下。
牛兄,我的环境是Debian 6.0.3 32-bit ,前面在用ios连接是正常的,但在生成证书时还是报错,信息如下:
删除root@anqi:/home/sjd/strongswan-5.0.4# ipsec pki --gen --outform pem > caKey.pem
openssl FIPS mode(0) unavailable
这个我实在无法解决。其实你也可以直接使用startssl 的证书而不必自己生成。
删除小问题而已,不影响使用。
删除参见http://bazaar.launchpad.net/~vcs-imports/strongswan/master/revision/9790
已经顺利解决生成证书的错误,Richard,对你来说可能是个小问题,却困扰我两天了,感谢两位的帮助
删除andy兄,如何解决的?
删除andy, 我制作证书时也有提示这个错误,但是用起来毫无问题....不知道你那里是什么问题呢
删除@铁牛 @Richard Bird @andy
删除[root@develop ~]# ipsec pki --gen --outform pem > caKey.pem
openssl FIPS mode(0) - disabled
[root@develop ~]# ipsec pki --self --in caKey.pem --dn "C=CN, O=lighten, CN=192.168.0.175" --ca --outform pem > caCert.pem
openssl FIPS mode(0) - disabled
[root@develop ~]# ipsec pki --pub --in serverKey.pem
openssl FIPS mode(0) - disabled
opening 'serverKey.pem' failed: No such file or directory
building CRED_PRIVATE_KEY - RSA failed, tried 5 builders
parsing private key failed
[root@develop ~]# ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "C=CN, O=lighten, CN=192.168.0.175" --flag serverAuth --outform pem > serverCert.pem
openssl FIPS mode(0) - disabled
我这个不是unavailable 是直接 disabled了,使用--with-fips-mode=1 重启编译FIPS还是disabled。请问这是什么问题?
ipsec pki --gen --outform pem > serverKey.pem
删除铁牛兄,按照配置我搭建一遍,验证过不去,iphone 提示用户鉴定失败
回复删除日志显示:
sending RADIUS Access-Request to server 'radius'
retransmitting RADIUS message
retransmitting RADIUS message
retransmitting RADIUS message
RADIUS server is not responding
XAuth authentication of 'usertest' failed
generating TRANSACTION request 4109169414 [ HASH CP ]
sending packet: from 198.148.112.xxx[4500] to 60.166.115.xx[20173] (76 bytes)
received packet: from 60.166.115.xx[20173] to 198.148.112.xxx[4500] (76 bytes)
parsed TRANSACTION response 4109169414 [ HASH CP ]
destroying IKE_SA after failed XAuth authentication
是验证信息发不到radius服务器那边去?这个是什么原因啊
这个你要自己调试radius才可以,可能是radius中secret不对,也可能是用户密码的问题。
删除谢 铁牛兄,我现在用shrew vpn client 能连接但是不能翻墙,这是什么问题啊?
删除博主你好:
回复删除系统是ubuntu server,root登录,个人用不需要账户管理应该如何修改配置?此外,按您的配置,ios登录提示用户鉴定失败,是否是没有安装 FreeRadius,pptpd,pppd,mysql-server daloradius 这些的原因,还是需要用新建的用户登录系统,并启动strongwan ipsec服务?
牛胸,按您的配置下来,centos下遇到问题了,
回复删除11[ENC] parsed AGGRESSIVE request 0 [ SA KE No ID V V V V V V V V V V V V V V ]
11[IKE] no IKE config found for xx.xx.xx.xx...aa.aa.aa.aa, sending NO_PROPOSAL_CHOSEN
不知道该如何修改?谢谢
我是用了另外搭建的一个freeradius服务,按照你上面写的,我走到了
回复删除1.4 调试StrongSwan
ipsec start --nofork
这个地方,但是当我配置了cisco ipsec的连接去连接的时候,会出现下面的log,牛兄帮忙看一下:
06[NET] received packet: from 58.254.168.70[15674] to 74.117.60.86[500] (596 bytes)
06[ENC] parsed ID_PROT request 0 [ SA V V V V V V V V V V V V V V ]
06[IKE] no IKE config found for 11.22.33.44...55.66.77.88, sending NO_PROPOSAL_CHOSEN
06[ENC] generating INFORMATIONAL_V1 request 2790258504 [ N(NO_PROP) ]
06[NET] sending packet: from 11.22.33.44[500] to 55.66.77.88[15674] (40 bytes)
11.22.33.44是我的strongswan服务器的ip地址
55.66.77.88是我发起连接端的ip地址
兄弟,看提示,是没有找到正确的config,需要你检查一下你的客户端配置是否与服务端匹配。如果你是android,用这个配置就100%不能连接了。这个好像是android的bug。需要另写配置。
删除我用的是mac os 自带的vpn配置,选择了cisco ipsec配置的
删除no IKE config指的是客户端的配置问题么?
我是mac ox应该怎么配置呢?
可能已经回复你太晚,你的这个问题应该是客户端连接你的服务器时,没有办法找到对应的conn ,也就说说,你的参数匹配有问题。
删除请问铁牛兄,在strongswan.conf中的radius server地址“radius.youname.org”,你用的是域名吗?为什么我使用域名失败,而用ip地址成功。使用域名时,在charon.log中的错误信息是“receiving RADIUS message failed : Connection refused”。请问你是否知道是由什么原因造成的?
回复删除铁牛兄,我的问题是针对strongswan.conf文件中的“address = radius.youname.org”这个参数。我的vpn server和radius server不在同一个vps上,在此处我填写radius server的ip地址时,认证可以成功,但如果填写域名则失败,请问是什么原因,你是用的域名吗?
回复删除p.s. charon.log中的错误日志是Receving radius server message failed:connection refused,而在radius debug mode下,radius显示没有接受到任何认证请求。我试着用iptables放行所有进出流量,但也不成功。
Hi,我的也一样,我有3台vps,一台radius,都是使用域名连接,没有什么问题。我建议你尝试一下 dig 或者nslookup 看看是否是解析错误。你也可以直接修改 /etc/hosts,将你的域名和IP写进去来排除DNS故障。
删除另外一个问题就是,有可能你的IP到达radius时,已经不是原来的公网IP,我以前遇到过一次,明明自己是144.XX.xx.XX,到了radius那服务器却变成了74.XX.XX.XX。
这个情况我也不确定怎么帮你。你或者可以暂时将iptable设定成全部都accept,也许也能奏效。
非常感谢!按照你的思路,我查找到原因是DNS将域名解析成了ipv6地址,而我在radius server上没有打开对ipv6的监听,造成请求被拒绝。
删除为供后人参考,打开ipv6监听的方法是修改radiusd.conf文件,添加两个listen字段,具体可参考http://www.embeddedsystemtesting.com/2012/11/how-to-enable-free-radius-server-for.html
铁牛兄,我的一台vps 运行了一段时间发现 charon进程好像假死了一样,ikev1 l2tp over ipsec都连接不上。
回复删除ipsec 任何命令都不能用,ipsec status 看状态一直挂在那里也不退出,ps 查看进程也在,就是不能连。不知铁牛兄有没有遇到这样的情况?
这个我没有遇到过,不过你可以尝试检查是否是内存swap都满了?或者是500, 4500端口问题
删除这个我没有遇到过,不过你可以尝试检查是否是内存swap都满了?或者是500, 4500端口问题
回复删除您好,我正在配置 IKEv2 服务器,使用的是 StartSSL 的证书,已经把三个 .pem 全都放到对应文件夹了,ipsec 也提示 loaded RSA private key from '/usr/local/etc/ipsec.d/private/serverKey.pem' 和 loaded certificate "C=CN, CN=sub.mrx.im, E=webmaster@mrx.im" from 'serverCert.pem',但是 Windows 使用 sub.mrx.im 连接依旧提示 13801 错误。请问如何解决?
回复删除windows下,你需要先将证书,通过控制台倒入到电脑(win7之前),但是win8可以偷懒。这样,win才可以连接成功。
删除[root@ahalf tmp]# ipsec start --nofork
回复删除Starting weakSwan 5.2.0 IPsec [starter]...
/usr/local/etc/ipsec.conf:1: missing value for setting 'config'
invalid config file '/usr/local/etc/ipsec.conf'
unable to start strongSwan -- fatal errors in config
请问这个问题怎么解决?
/usr/local/etc/ipsec.conf的第一二行是
config setup
uniqueids=never
前面步骤我都是跟着照做的
ipsec start --nofork 就出现了上述错误
基本上这个是配置错误,我也不清楚问题在哪里。。。你可以尝试将config字段都注释掉,看看结果如何。
删除ipsec是不是被封了,连接的时候我用tcpdump抓包,收不到从服务端发过来的握手信息,然后VPN客户端就显示未响应了,但是我在自家的nas搭建成功
回复删除补充一下,服务端的log有客户端的连接信息,重试了3次左右,然后就delete了
删除ipsec正常啊,我想是不是你的服务器配置有问题,导致数据包无法回送。检查一下防火墙,通常你这个是Phase1就失败应该是封包被挡掉
删除此评论已被作者删除。
回复删除楼主 , 好像wp ikev2协议连接有些问题,wp认证过不去,走的是windows phone \ username ,我通过修改mschap和preprocess配置文件(with_ntdomain_hack = yes) 去除了这个windows phone的前缀,但是好像还有问题。求帮忙啊。
回复删除一下是radius认证的记录。
rad_recv: Access-Request packet from host 10.2.0.178 port 36356, id=148, length=165
User-Name = "Windows Phone\\yxf001"
NAS-Port-Type = Virtual
Service-Type = Framed-User
NAS-Port = 18
NAS-Port-Id = "ikev2"
NAS-IP-Address = 10.2.0.178
Called-Station-Id = "10.2.0.178[4500]"
Calling-Station-Id = "10.6.0.92[4500]"
EAP-Message = 0x020000190157696e646f77732050686f6e655c797866303031
NAS-Identifier = "strongSwan"
Message-Authenticator = 0x68669463c92976a25ee52c34f789cd55
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
[suffix] No '@' in User-Name = "yxf001", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] EAP packet type response id 0 length 25
[eap] No EAP Start, assuming it's an on-going EAP conversation
++[eap] returns updated
[files] users: Matched entry DEFAULT at line 50
[files] expand: /usr/local/bin/rmauth "%{NAS-IP-Address}" "%{User-Name}" "%{Calling-Station-Id}" -> /usr/local/bin/rmauth "10.2.0.178" "yxf001" "10.6.0.92[4500]"
++[files] returns ok
[sql] expand: %{User-Name} -> yxf001
[sql] sql_set_user escaped user --> 'yxf001'
rlm_sql (sql): Reserving sql socket id: 3
[sql] expand: SELECT id, username, attribute, value, op FROM radcheck WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'yxf001' ORDER BY id
[sql] User found in radcheck table
[sql] expand: SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'yxf001' ORDER BY id
[sql] expand: SELECT groupname FROM radusergroup WHERE username = '%{SQL-User-Name}' ORDER BY priority -> SELECT groupname FROM radusergroup WHERE username = 'yxf001' ORDER BY priority
rlm_sql (sql): Released sql socket id: 3
++[sql] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] Found existing Auth-Type, not changing it.
++[pap] returns noop
Found Auth-Type = EAP
+- entering group authenticate {...}
[eap] Identity does not match User-Name, setting from EAP Identity.
[eap] Failed in handler
++[eap] returns invalid
Failed to authenticate the user.
Using Post-Auth-Type Reject
+- entering group REJECT {...}
[attr_filter.access_reject] expand: %{User-Name} -> yxf001
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 1 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 1
Sending Access-Reject of id 148 to 10.2.0.178 port 36356
安装StrongSwan需要libpam0g-dev依赖。折腾了半天安装不上才发现了这个(
回复删除11[CFG] sending RADIUS Access-Request to server 'primary'
回复删除11[CFG] receiving RADIUS message failed: Connection refused
freeradius那边全程没反应,iOS设备提示鉴定失败……
怎么破
运行一段时间后,空闲内存越来越少,直至宕机。宕机前,如果重启ipsec,可以恢复空闲内存。用top查看,没有占用超过2%的进程,似乎是把流量数据都存储在内存里了?运行环境是32位Debian7,怎么查看是什么占据了内存?这个问题怎么解决?求帮助~
回复删除此评论已被作者删除。
删除此评论已被作者删除。
回复删除牛兄,我按照你的教程搭建了ipsec,可是有个问题啊,我的第一台设备连上之后,其他的设备就再也连不上了,不能同时多台设备连接啊,还望指教
回复删除学习中.
回复删除首先谢谢楼主无私的分享,现在要上个网太累了!我最近也在ubuntu上用strongswan搭建了一个vps,一个服务器在国内,一个服务器在国外。我是strongswan的android客户端,对于国内这台服务器,能够建立vpn连接,但是手机无法上网。同样的配置,香港的服务器直接就用户认证失败了。不知道是什么原因,找了好久都没有头绪。还请楼主指点下。我的邮箱xiachen8818@gmail.com
回复删除此评论已被作者删除。
回复删除此评论已被作者删除。
回复删除只有一个客户端blackberry9900,不配另外认证服务,只用ipsec.secret,已安装好strongswan。但连接总不成功,付费求博主帮忙,可以吗?可以的话,留个信息,或者liangzhdp at gmail.com
回复删除04[NET] received packet: from xxxxxxxxxxxxx[500] to xxxxxxxxxxxxxx[500] (1302 bytes)
04[ENC] parsed AGGRESSIVE request 0 [ SA KE No ID V V V V V V V V V ]
04[IKE] received XAuth vendor ID
04[IKE] received Cisco Unity vendor ID
04[IKE] received NAT-T (RFC 3947) vendor ID
04[IKE] received draft-ietf-ipsec-nat-t-ike-03 vendor ID
04[IKE] received draft-ietf-ipsec-nat-t-ike-02\n vendor ID
04[IKE] received draft-ietf-ipsec-nat-t-ike-02 vendor ID
04[ENC] received unknown vendor ID: 16:f6:ca:16:e4:a4:06:6d:83:82:1a:0f:0a:ea:a8:62
04[IKE] received draft-ietf-ipsec-nat-t-ike-00 vendor ID
04[IKE] received DPD vendor ID
04[IKE] xxxxxxxxxxxxxxxx is initiating a Aggressive Mode IKE_SA
04[IKE] Aggressive Mode PSK disabled for security reasons
04[ENC] generating INFORMATIONAL_V1 request 1318290838 [ N(AUTH_FAILED) ]
04[NET] sending packet: from xxxxxxxxxxx[500] to xxxxxxxxxxxxxxx[500] (56 bytes)
Aggressive Mode PSK disabled for security reasons
回复删除PSK问题,或者是你的 strongswan.conf没有加一条配置。新的strongswan.conf需要添加
i_dont_care_about_security_and_use_aggressive_mode_psk = yes
到 charon {}中。 官方手册上有。我的文章是旧的了,应该找个时间更新一下
此评论已被作者删除。
删除非常感谢牛兄指教,9900、playbook都成功连接vpn,playbook亦翻墙成功,9900完全翻不了墙,但无论服务器端或9900上都显示连接了,所以应该是别的原因。
删除再次感谢。
此评论已被作者删除。
回复删除牛兄:实现bb10(playbook)ike1和ike2的方法,但黑莓老系统9900上始终是能登录vpn服务器,但不能翻墙,求指教。
回复删除#psec.conf - strongSwan IPsec configuration file
config setup
uniqueids=never
conn %default
keyexchange=ike
dpdaction=clear
dpddelay=300s
left=%any
right=%any
leftsubnet=0.0.0.0/0
leftcert=vpnHostCert.pem
rightdns=8.8.8.8,8.8.4.4
rightsourceip=192.168.99.0/24
conn CiscoIPSec_blackberry_playbook
keyexchange=ikev1
auto=add
aggressive=yes
compress=yes
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
leftid=conoha
leftauth=psk
rightauth=psk
rightauth2=xauth
leftfirewall=yes
conn ikev2_playbook
rekey=no
leftsubnet=0.0.0.0/0
leftauth=psk
leftid=ip地址
right=%any
rightauth=eap-mschapv2
rightsendcert=never
eap_identity=%any
auto=add
铁牛兄:找到这篇专门针对bbos配置的文章,完全按着来操作还是不成功。我送你一部9000,给vps的ssh账号你帮我上去分析分析好吗?
回复删除https://geekvittles.wordpress.com/2012/12/04/strongswan-bbos/
哇,经典机型 Bold 9000,你还是留着收藏吧。
回复删除不过不必使用他的方法,直接使用 username + password + PSK 就可以登录使用。选的时候使用 cisco pix 系列。但是我记得 bbos麻烦的地方是要符合上面设置的加密 和 HASH方式才行。错一项就会不成功。
我只有 Q10 的 cisco pix 535模式可用,理论上应该跟你的是一样的,但是我可以成功。我过几天得空把我的新版 strongswan 配置发出来。
早知你系资深莓友,好,我等你配置出来再说。
删除