浏览量: 6,205
CentOS 8 请移步《CentOS 8 使用 Strongswan 搭梯(IPsec IKEv2 VPN)》
更新于 2018-08-29
新写了一篇简单一点的文章,移步《CentOS 7 使用 Strongswan 配置 IKEv2 VPN》 查看。
最近感觉我国”建筑行业龙头企业”的施工水平又有提升, ipsec + l2tp 方式也难逃厄运. so, 放弃, 改用 IKEv2.
google 到一款名为 strongSwan 的开源服务端. 官网为 https://www.strongswan.org .
本文只介绍 IKEv2 方式的 VPN 配置, 如果需要 PPTP 方式, 请参考 <<CentOS VPS 建立 PPTP VPN 服务>>
这里使用的 VPS 服务器配置:
CentOS 7 / 512M / 20G ssd , $5/月. 详情请看 这里
禁用 firewallD, 启用 iptables.
strongSwan 版本 5.2
xl2tpd 版本 1.3.6
安装 strongSwan
strongSwan 的发行版已包含在 EPEL 源中, 如果没有添加 EPEL 源, 请看 <<CentOS 7 配置 LNMP + FTP 环境>> 添加 EPEL 源.
添加完 EPEL 源后输入如下命令
当前为 5.4.0 版本, 官网上最新为 5.5.0, 但是需要编译安装.
yum install strongswan
systemctl enable strongswan
systemctl start strongswan
生成证书
生成 CA 根证书
1. 生成一个私钥:
strongswan pki -- gen -- outform pem > ca .key .pem
2. 基于这个私钥自己签一个 CA 根证书:
strongswan pki -- self -- in ca .key .pem -- dn "C=CN, O=ITnmg, CN=ITnmg StrongSwan CA" -- ca -- lifetime 3650 -- outform pem > ca .cert .pem
–self 表示自签证书
–in 是输入的私钥
–dn 是判别名
C 表示国家名,同样还有 ST 州/省名,L 地区名,STREET(全大写) 街道名
O 组织名称
CN 友好显示的通用名
–ca 表示生成 CA 根证书
–lifetime 为有效期, 单位是天
生成服务器端证书
1. 同样先生成一个私钥
strongswan pki -- gen -- outform pem > server .key .pem
2. 用我们刚才自签的 CA 证书给自己发一个服务器证书:
#从私钥生成公钥
strongswan pki -- pub -- in server .key .pem -- outform pem > server .pub .pem
#用刚生成的公钥生成服务器证书
strongswan pki -- issue -- lifetime 3600 -- cacert ca .cert .pem -- cakey ca .key .pem -- in server .pub .pem -- dn "C=CN, O=ITnmg, CN=vpn.itnmg.net" -- san = "vpn.itnmg.net" -- flag serverAuth -- flag ikeIntermediate -- outform pem > server .cert .pem
–issue, –cacert 和 –cakey 就是表明要用刚才自签的 CA 证书来签这个服务器证书。
–dn, –san,–flag 是一些客户端方面的特殊要求:
iOS 客户端要求 CN 也就是通用名必须是你的服务器的 URL 或 IP 地址;
Windows 7 不但要求了上面,还要求必须显式说明这个服务器证书的用途(用于与服务器进行认证),–flag serverAuth;
非 iOS 的 Mac OS X 要求了“IP 安全网络密钥互换居间(IP Security IKE Intermediate)”这种增强型密钥用法(EKU),–flag ikdeIntermediate;
Android 和 iOS 都要求服务器别名(serverAltName)就是服务器的 URL 或 IP 地址,–san。
生成客户端证书(可选)
客户端证书是在启用客户端证书验证的时候, 用于验证客户端用户身份的. 每个用户一个证书. 如果需要很高的安全性, 可以用客户端证书, 一般情况下, 不需要使用.
1. 依然是生成私钥:
strongswan pki -- gen -- outform pem > client .key .pem
2. 然后用刚才自签的 CA 证书来签客户端证书:
#从私钥生成公钥
strongswan pki -- pub -- in client .key .pem -- outform pem > client .pub .pem
#这里就不需要上面那一堆特殊参数了
strongswan pki -- issue -- lifetime 1200 -- cacert ca .cert .pem -- cakey ca .key .pem -- in client .pub .pem -- dn "C=CN, O=ITnmg, CN=vpn.itnmg.net" -- outform pem > client .cert .pem
打包证书为 pkcs12
openssl pkcs12 - export - inkey client .key .pem - in client .cert .pem - name "ITnmg StrongSwan Client Cert" - certfile ca .cert .pem - caname "ITnmg StrongSwan CA" - out client .cert .p12
此时会提示输入两次密码, 这个密码是在导入证书到其他系统时需要验证的. 没有这个密码即使别人拿到了证书也没法使用.
安装证书
cp - r ca .key .pem / etc / strongswan / ipsec .d / private /
cp - r ca .cert .pem / etc / strongswan / ipsec .d / cacerts /
cp - r server .cert .pem / etc / strongswan / ipsec .d / certs /
cp - r server .pub .pem / etc / strongswan / ipsec .d / certs /
cp - r server .key .pem / etc / strongswan / ipsec .d / private /
cp - r client .cert .pem / etc / strongswan / ipsec .d / certs /
cp - r client .key .pem / etc / strongswan / ipsec .d / private /
把 CA 证书(ca.cert.pem)、客户端证书(client.cert.pem)和 .p12 证书(client.cert.p12)用 FTP 复制出来给客户端用
配置 vpn
先修改主配置
官方文档
nano / etc / strongswan / ipsec .conf
下面是一些常用的设置说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
config setup
#是否缓存证书吊销列表
#<em>cachecrls = yes</em>
#是否严格执行证书吊销规则
# strictcrlpolicy=yes
#如果同一个用户在不同的设备上重复登录,yes 断开旧连接,创建新连接;no 保持旧连接,并发送通知; never 同 no, 但不发送通知.
uniqueids = no
#配置根证书, 如果不使用证书吊销列表, 可以不用这段. 命名为 %default 所有配置节都会继承它
#ca %default
#证书吊销列表url,可以是 LDAP, http, 或文件路径
#crluri = <uri>
#定义连接项, 命名为 %default 所有连接都会继承它
conn % default
#是否启用压缩, yes 表示如果支持压缩会启用.
compress = yes
#当意外断开后尝试的操作, hold, 保持并重连直到超时.
dpdaction = hold
#意外断开后尝试重连时长
dpddelay = 30s
#意外断开后超时时长, 只对 IKEv1 起作用
dpdtimeout = 60s
#闲置时长,超过后断开连接.
inactivity = 300s
#数据传输协议加密算法列表
esp = aes256 - sha256 , aes256 - sha1 , 3des - sha1 !
#密钥交换协议加密算法列表
ike = aes256 - sha1 - modp1024 , aes128 - sha1 - modp1024 , 3des - sha1 - modp1024 !
#默认的密钥交换算法, ike 为自动, 优先使用 IKEv2
keyexchange = ike
#服务端公网ip, 可以是魔术字 %any,表示从本地ip地址表中取.
left = % any
#客户端ip, 同上
right = % any
#指定服务端与客户端的dns, 多个用","分隔
leftdns = 8.8.8.8 , 8.8.4.4
rightdns = 8.8.8.8 , 8.8.4.4
#服务端用于ike认证时使用的端口, 默认为500,如果使用了nat 转发, 则使用4500
#leftikeport = <port>
#服务器端虚拟ip地址
#leftsourceip = %config
#客户端虚拟ip段
rightsourceip = 10.0.0.0 / 24
#服务器端子网, 魔术字 0.0.0.0/0. 如果为客户端分配虚拟 IP 地址的话,那表示之后要做 iptables 转发,那么服务器端就必须是用魔术字
leftsubnet = 0.0.0.0 / 0
#rightsubnet = <ip subnet>[[<proto/port>]][,...]
conn IKEv2 - BASE
#服务器端根证书DN名称
leftca = "C=CN, O=ITnmg, CN=ITnmg StrongSwan CA"
#服务器证书, 可以是 PEM 或 DER 格式
leftcert = server .cert .pem
#不指定客户端证书路径
#rightcert = <path>
#指定服务器证书的公钥
leftsigkey = server .pub .pem
#rightsigkey = <raw public key> | <path to public key>
#是否发送服务器证书到客户端
leftsendcert = always
#客户端不发送证书
rightsendcert = never
#服务端认证方法,使用证书
leftauth = pubkey
#客户端认证使用 EAP 扩展认证 , 貌似 eap-mschapv2 比较通用
rightauth = eap - mschapv2
#服务端id, 可以任意指定, 默认为服务器证书的 subject, 还可以是魔术字 %any,表示什么都行.
leftid = vpn .itnmg .net
#客户端id, 任意
rightid = % any
#ios, mac os, win7+, linux
conn IKEv2 - EAP
also = IKEv2 - BASE
#指定客户端eap id
eap_identity = % any
#不自动重置密钥
rekey = no
#开启IKE 消息分片
fragmentation = yes
#当服务启动时, 应该如何处理这个连接项. add 添加到连接表中.
auto = add
我的设置项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
config setup
uniqueids = no
conn % default
compress = yes
esp = aes256 - sha256 , aes256 - sha1 , 3des - sha1 !
ike = aes256 - sha256 - modp2048 , aes256 - sha1 - modp2048 , aes128 - sha1 - modp2048 , 3des - sha1 - modp2048 , aes256 - sha256 - modp1024 , aes256 - sha1 - modp1024 , aes128 - sha1 - modp1024 , 3des - sha1 - modp1024 !
keyexchange = ike
keyingtries = 1
leftdns = 8.8.8.8 , 8.8.4.4
rightdns = 8.8.8.8 , 8.8.4.4
conn ikev2 - eap
leftca = "C=CN, O=ITnmg, CN=ITnmg StrongSwan CA"
leftcert = server . cert . pem
leftsendcert = always
rightsendcert = never
leftid = vpn . itnmg . net
left = % any
right = % any
leftauth = pubkey
rightauth = eap - mschapv2
leftfirewall = yes
leftsubnet = 0.0.0.0 / 0
rightsourceip = 10.1.0.0 / 16
fragmentation = yes
rekey = no
eap_identity = % any
auto = add
修改 dns 配置
v5.1.2 之后, 所有插件配置都分散在 /etc/strongswan/strongswan.d/ 目录中.
nano / etc / strongswan / strongswan .d / charon .conf
修改如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
charon {
duplicheck .enable = no #同时连接多个设备,把冗余检查关闭.
# windows 公用 dns
dns1 = 8.8.8.8
dns2 = 8.8.4.4
#以下是日志输出, 生产环境请关闭.
filelog {
/ var / log / charon .log {
# add a timestamp prefix
time_format = % b % e % T
# prepend connection name, simplifies grepping
ike_name = yes
# overwrite existing files
append = no
# increase default loglevel for all daemon subsystems
default = 1
# flush each line to disk
flush_line = yes
}
}
}
配置验证方式的用户名与密码
nano / etc / strongswan / ipsec .secrets
下面添加用户
#使用证书验证时的服务器端私钥
#格式 : RSA <private key file> [ <passphrase> | %prompt ]
: RSA server .key .pem
#使用预设加密密钥, 越长越好
#格式 [ <id selectors> ] : PSK <secret>
% any : PSK "预设加密密钥"
#EAP 方式, 格式同 psk 相同
用户名 : EAP "密码"
#XAUTH 方式, 只适用于 IKEv1
#格式 [ <servername> ] <username> : XAUTH "<password>"
用户名 : XAUTH "密码"
开启内核转发
写入以下配置
# VPN
net .ipv4 .ip_forward = 1
net .ipv6 .conf .all .forwarding = 1
保存退出, 执行下面命令.
配置防火墙
iptables 配置方法
将下面几条规则加入 iptables 规则中, 适当使用 -I 参数替换 -A 参数, 确保所有的项目位置都在拒绝项前面.
#开放端口
iptables - A INPUT - p udp -- dport 500 - j ACCEPT
iptables - A INPUT - p udp -- dport 4500 - j ACCEPT
#启用ip伪装
iptables - t nat - I POSTROUTING - s 10.1.0.0 / 16 - o eth0 - m policy -- dir out -- pol ipsec - j ACCEPT
iptables - t nat - A POSTROUTING - s 10.1.0.0 / 16 - o eth0 - j MASQUERADE
#添加转发
iptables - A FORWARD - s 10.1.0.0 / 16 - j ACCEPT
#保存规则
service iptables save
#重启服务
systemctl restart iptables
如果嫌上面的操作麻烦, 可以直接编辑 iptables 规则文件.
nano / etc / sysconfig / iptables
将下面的规则部分贴进去, 不要整个复制粘贴, 根据原有规则适当调整每条规则的位置, 确保规则在拒绝项前, 使之能生效.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
* nat
: PREROUTING ACCEPT [ 0 : 0 ]
: INPUT ACCEPT [ 0 : 0 ]
: OUTPUT ACCEPT [ 0 : 0 ]
: POSTROUTING ACCEPT [ 0 : 0 ]
- A POSTROUTING - s 10.1.0.0 / 16 - o eth0 - m policy -- dir out -- pol ipsec - j ACCEPT
- A POSTROUTING - s 10.1.0.0 / 16 - o eth0 - j MASQUERADE
COMMIT
* filter
: INPUT DROP [ 0 : 0 ]
: FORWARD DROP [ 0 : 0 ]
: OUTPUT ACCEPT [ 0 : 0 ]
- A INPUT - m state -- state RELATED , ESTABLISHED - j ACCEPT
- A INPUT - p icmp - j ACCEPT
- A INPUT - i lo - j ACCEPT
- A INPUT - p tcp - m state -- state NEW - m tcp -- dport 22 - j ACCEPT
- A INPUT - p udp - m udp -- dport 500 - j ACCEPT
- A INPUT - p udp - m udp -- dport 4500 - j ACCEPT
- A INPUT - j REJECT -- reject - with icmp - host - prohibited
- A FORWARD - s 10.1.0.0 / 16 - j ACCEPT
- A FORWARD - j REJECT -- reject - with icmp - host - prohibited
COMMIT
保存退出, 重启 iptables 使之生效.
systemctl restart iptables
以下是 firewallD 的配置方法, 使用 iptables 的可以忽略.
firewalld 介绍请看 <<CentOS 7 firewalld 动态防火墙介绍>>
首先将公网网卡添加到当前区域中
编辑网卡配置
nano / etc / sysconfig / network - scripts / ifcfg - eth0
在最末尾加上区域配置
保存退出,重启服务
systemctl restart network
systemctl restart firewalld
然后新建一个服务
nano / etc / firewalld / services / strongswan .xml
填入以下内容
<? xml version = "1.0" encoding = "utf-8" ?>
< service >
< short > Strongswan < / short >
< description > Strongswan VPN < / description >
< port protocol = "udp" port = "500,4500" / >
< / service >
保存退出
添加服务到当前区域, 开启转发
#以下命令没有指定 --zone 参数, 都是针对默认区域 public
#为区域添加服务
firewall - cmd -- permanen -- add - service = strongswan
#启用ip伪装
firewall - cmd -- permanen -- add - rich - rule = 'rule family="ipv4" source address="10.1.0.0/16" masquerade'
#添加 nat 转发
firewall - cmd -- permanen -- add - rich - rule = 'rule family="ipv4" source address="10.1.0.0/16" forward-port port="4500" protocol="udp" to-port="4500"'
firewall - cmd -- permanen -- add - rich - rule = 'rule family="ipv4" source address="10.1.0.0/16" forward-port port="500" protocol="udp" to-port="500"'
#重新加载防火墙配置
firewall - cmd -- reload
除了用 firewall-cmd 命令外, 还可以换种方法添加上面的规则.
#编辑当前区域的xml配置文件
nano / etc / firewalld / zones / public .xml
改成如下内容, 我这里只开放了 ssh 和 vpn 端口, 其他内容根据各自的情况修改.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<? xml version = "1.0" encoding = "utf-8" ?>
< zone >
< short > Public < / short >
< description > For use in public areas . You do not trust the other computers on networks to not harm your computer . Only selected incoming connections are accepted . < / description >
< service name = "strongswan" / >
< service name = "ssh" / >
< rule family = "ipv4" >
< source address = "10.1.0.0/16" / >
< forward - port to - port = "4500" protocol = "udp" port = "4500" / >
< / rule >
< rule family = "ipv4" >
< source address = "10.1.0.0/16" / >
< forward - port to - port = "500" protocol = "udp" port = "500" / >
< / rule >
< rule family = "ipv4" >
< source address = "10.1.0.0/16" / >
< masquerade / >
< / rule >
< / zone >
#重新加载防火墙配置
firewall - cmd -- reload
配置完防火墙后重启 strongswan 服务
strongswan stop #使用strongswan 自身的命令停止服务
systemctl start strongswan #使用 systemctl 命令启动服务
这里不使用 strongswan restart 命令的原因是, 使用这条命令后, 再用 systemctl status strongswan 命令得不到正确的运行状态.
至此, 服务端配置已完成.
为了学用 firewalld , 特意用了两天时间研究, 学会了才发现, firewalld 要比 iptables 占太多内存. 小内存的 vps 用 firewalld 有点奢侈. 还是换回 iptables 了.
客户端配置
IOS:
先导入 CA 证书
将之前创建的 ca.cert.pem 用 ftp 导出 , 写邮件以附件的方式发到邮箱, 在 ios 浏览器登录邮箱, 下载附件, 安装 ca 证书.
1. 使用 IKEv2 + EAP 认证
找到手机上 “设置->VPN->添加配置”, 选 IKEv2
描述: 随便填
服务器: 填url或ip
远程ID: ipsec.conf 中的 leftid
用户鉴定: 用户名
用户名: EAP 项用户名
密码: EAP 项密码
2. 使用 IKEv2 + 客户端证书 认证
把之前的 .p12 证书(里面包含ca证书)发到邮箱在手机上打开. 导入到手机(此时需要之前设置的证书密码).
找到手机上 “设置->VPN->添加配置”, 选 IKEv2
描述: 随便填
服务器: 填url或ip
远程ID: ipsec.conf 中的 leftid
用户鉴定: 证书
证书: 选择安装完的客户端证书
3. 使用 IKEv2 + 预设密钥 认证
找到手机上 “设置->VPN->添加配置”, 选 IKEv2
描述: 随便填
服务器: 填url或ip
远程ID: ipsec.conf 中的 leftid
用户鉴定: 无
使用证书: 关
密钥: PSK 项密钥
Windows 10
导入证书:
将 CA 根证书 ca.cert.pem 重命名为 ca.cert.crt
双击 ca.cert.crt 开始安装证书
点击安装证书
“存储位置” 选择 “本地计算机”, 下一步
选择 “将所有的证书都放入下列存储区”, 点浏览, 选择 “受信任的根证书颁发机构”, 确定, 下一步, 完成.
建立连接:
“控制面板”-“网络和共享中心”-“设置新的连接或网络”-“连接到工作区”-“使用我的 Internet 连接”
Internet 地址写服务器 IP 或 URL。
描述随便写。
用户名密码写之前配置的 EAP 的那个。
确定
转到 控制面板网络和 Internet网络连接
在新建的 VPN 连接上右键属性然后切换到“安全”选项卡
VPN 类型选 IKEv2
数据加密选“需要加密”
身份认证这里需要说一下,如果想要使用 EAP 认证的话就选择“Microsoft:安全密码(EAP-MSCHAP v2)”; 想要使用私人证书认证的话就选择“使用计算机证书”。
再切换到 “网络” 选项卡, 双击 “Internet 协议版本 4” 以打开属性窗口, 这里说一下, 如果你使用的是老版本的 win10, 可能会打不开属性窗口, 这是已知的 bug, 升级最新版本即可解决.
点击 “高级” 按钮, 勾选 “在远程网络上使用默认网关”, 确定退出.
VPN 配置完成
Windows 7 导入证书略有不同
开始菜单搜索「cmd」,打开后输入 mmc(Microsoft 管理控制台)。
「文件」-「添加/删除管理单元」,添加「证书」单元
证书单元的弹出窗口中一定要选「计算机账户」,之后选「本地计算机」,确定。
在左边的「控制台根节点」下选择「证书」-「受信任的根证书颁发机构」-「证书」,右键 -「所有任务」-「导入」打开证书导入窗口。
选择 CA 证书 ca.cert.crt 导入即可
注意 千万不要双击 .p12 证书导入!因为那样会导入到当前用户而不是本机计算机中,ipsec 守护精灵是访问不了它的。
你好,我问下,我按照你的文档配置下来,我用苹果手机客服端登录不成功,同时,我也没看到后台有日志,
检查有没有安装证书
您好 我的证书ca.cert.pem 以邮件发送过来 没有安装项啊
也就是无法安装 我的是ios10.1.1系统
以附件的形式加到邮件里, 都可以安装的.
恩 可以了! 我一开始是发到了QQ邮箱,没有安装项。重新发到163邮箱就可以了。 您好,我的QQ781066768 。 我想做的是用ios手机在外部访问公司内网才能登上的网站,现在有点小问题。希望您能指导一下,跪谢!或者我加您QQ也好。
我每连接一次vpn,服务器都会产出日志。日志里没有error,但是有提示错误。然后vpn连接不上
我有写日志配置那段, 你可以看一下, 没日志谁也不清楚出了什么问题.
一般来说容易出问题的地方就那么几个, 配置, dns, 防火墙. 证书, 账号密码.
仔细检查一下. 一步步来. 要有耐心.
您好,感谢您的教程非常详尽!初步测试iOS没有问题。
但现在发现无法访问baidu。这个现象跟之前用pptp连接vpn的时候一样的毛病。
有一些网站在收到tcp的包的mss大小需要重新更改。
那个时候解决方案是在iptables转发的时候修改一下mss,具体如下:
-A FORWARD -i ppp+ -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS –set-mss 1356
但现在用了ipsec后,请问如何做类似的操作?可以指定ip段进行吗?
暂时试了一下 下面的规则好像就可以访问baidu了
-A FORWARD -s 10.8.0.0/24 -o eth0 -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS –set-mss 1356
博主你好,我初学linux,第一次搭VPN服务器,用的是strongswan-5.4.0,我参照了你的ikev2设置,客户机能连接上了但无法上网,我测试时服务器和客户机在同一内网,DNS我设置成了电信DNS地址。我客户机获得的虚拟IP地址的子网掩码是255.255.255.255,网关为空,这样是有问题的吗?我看了下日志,但大部分看不懂
Sep 13 14:43:12 00[DMN] Starting IKE charon daemon (strongSwan 5.4.0, Linux 3.10.0-327.el7.x86_64, x86_64)
Sep 13 14:43:12 00[LIB] openssl FIPS mode(2) – enabled
Sep 13 14:43:12 00[CFG] loading ca certificates from ‘/etc/strongswan/ipsec.d/cacerts’
Sep 13 14:43:12 00[CFG] loaded ca certificate “C=CN, O=XiaoMing, CN=XiaoMing StrongSwan CA” from ‘/etc/strongswan/ipsec.d/cacerts/ca.cert.pem’
Sep 13 14:43:12 00[CFG] loading aa certificates from ‘/etc/strongswan/ipsec.d/aacerts’
Sep 13 14:43:12 00[CFG] loading ocsp signer certificates from ‘/etc/strongswan/ipsec.d/ocspcerts’
Sep 13 14:43:12 00[CFG] loading attribute certificates from ‘/etc/strongswan/ipsec.d/acerts’
Sep 13 14:43:12 00[CFG] loading crls from ‘/etc/strongswan/ipsec.d/crls’
Sep 13 14:43:12 00[CFG] loading secrets from ‘/etc/strongswan/ipsec.secrets’
Sep 13 14:43:12 00[CFG] loaded RSA private key from ‘/etc/strongswan/ipsec.d/private/server.key.pem’
Sep 13 14:43:12 00[CFG] loaded IKE secret for %any
Sep 13 14:43:12 00[CFG] loaded EAP secret for xiaoming
Sep 13 14:43:12 00[CFG] loaded EAP secret for xiaoming
Sep 13 14:43:12 00[LIB] loaded plugins: charon aes des rc2 sha2 sha1 md4 md5 random nonce x509 revocation constraints acert pubkey pkcs1 pkcs8 pkcs12 pgp dnskey sshkey pem openssl gcrypt fips-prf gmp xcbc cmac hmac ctr ccm gcm curl attr kernel-netlink resolve socket-default farp stroke vici updown eap-identity eap-md5 eap-gtc eap-mschapv2 eap-tls eap-ttls eap-peap xauth-generic xauth-eap xauth-pam xauth-noauth dhcp
Sep 13 14:43:12 00[JOB] spawning 16 worker threads
Sep 13 14:43:12 05[CFG] received stroke: add connection ‘ikev2-eap’
Sep 13 14:43:12 05[CFG] adding virtual IP address pool 10.0.0.0/24
Sep 13 14:43:12 05[CFG] loaded certificate “C=CN, O=XiaoMing, CN=192.168.60.71” from ‘server.cert.pem’
Sep 13 14:43:12 05[CFG] added configuration ‘ikev2-eap’
Sep 13 14:43:21 12[NET] received packet: from 192.168.60.30[500] to 192.168.60.71[500] (616 bytes)
Sep 13 14:43:21 12[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) V V V V ]
Sep 13 14:43:21 12[IKE] received MS NT5 ISAKMPOAKLEY v9 vendor ID
Sep 13 14:43:21 12[IKE] received MS-Negotiation Discovery Capable vendor ID
Sep 13 14:43:21 12[IKE] received Vid-Initial-Contact vendor ID
Sep 13 14:43:21 12[ENC] received unknown vendor ID: 01:52:8b:bb:c0:06:96:12:18:49:ab:9a:1c:5b:2a:51:00:00:00:02
Sep 13 14:43:21 12[IKE] 192.168.60.30 is initiating an IKE_SA
Sep 13 14:43:21 12[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(MULT_AUTH) ]
Sep 13 14:43:21 12[NET] sending packet: from 192.168.60.71[500] to 192.168.60.30[500] (312 bytes)
Sep 13 14:43:21 10[NET] received packet: from 192.168.60.30[4500] to 192.168.60.71[4500] (1280 bytes)
Sep 13 14:43:21 10[ENC] parsed IKE_AUTH request 1 [ IDi CERTREQ N(MOBIKE_SUP) CPRQ(ADDR DNS NBNS SRV ADDR6 DNS6 SRV6) SA TSi TSr ]
Sep 13 14:43:21 10[IKE] received cert request for “C=CN, O=XiaoMing, CN=XiaoMing StrongSwan CA”
Sep 13 14:43:21 10[IKE] received 46 cert requests for an unknown ca
Sep 13 14:43:21 10[CFG] looking for peer configs matching 192.168.60.71[%any]…192.168.60.30[192.168.60.30]
Sep 13 14:43:21 10[CFG] selected peer config ‘ikev2-eap’
Sep 13 14:43:21 10[IKE] initiating EAP_IDENTITY method (id 0x00)
Sep 13 14:43:21 10[IKE] peer supports MOBIKE
Sep 13 14:43:21 10[IKE] authentication of ‘192.168.60.71’ (myself) with RSA signature successful
Sep 13 14:43:21 10[IKE] sending end entity cert “C=CN, O=XiaoMing, CN=192.168.60.71”
Sep 13 14:43:21 10[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
Sep 13 14:43:21 10[NET] sending packet: from 192.168.60.71[4500] to 192.168.60.30[4500] (1216 bytes)
Sep 13 14:43:21 13[NET] received packet: from 192.168.60.30[4500] to 192.168.60.71[4500] (96 bytes)
Sep 13 14:43:21 13[ENC] parsed IKE_AUTH request 2 [ EAP/RES/ID ]
Sep 13 14:43:21 13[IKE] received EAP identity ‘xiaoming’
Sep 13 14:43:21 13[IKE] initiating EAP_MSCHAPV2 method (id 0x8D)
Sep 13 14:43:21 13[ENC] generating IKE_AUTH response 2 [ EAP/REQ/MSCHAPV2 ]
Sep 13 14:43:21 13[NET] sending packet: from 192.168.60.71[4500] to 192.168.60.30[4500] (112 bytes)
Sep 13 14:43:21 12[NET] received packet: from 192.168.60.30[4500] to 192.168.60.71[4500] (144 bytes)
Sep 13 14:43:21 12[ENC] parsed IKE_AUTH request 3 [ EAP/RES/MSCHAPV2 ]
Sep 13 14:43:21 12[ENC] generating IKE_AUTH response 3 [ EAP/REQ/MSCHAPV2 ]
Sep 13 14:43:21 12[NET] sending packet: from 192.168.60.71[4500] to 192.168.60.30[4500] (144 bytes)
Sep 13 14:43:21 14[NET] received packet: from 192.168.60.30[4500] to 192.168.60.71[4500] (80 bytes)
Sep 13 14:43:21 14[ENC] parsed IKE_AUTH request 4 [ EAP/RES/MSCHAPV2 ]
Sep 13 14:43:21 14[IKE] EAP method EAP_MSCHAPV2 succeeded, MSK established
Sep 13 14:43:21 14[ENC] generating IKE_AUTH response 4 [ EAP/SUCC ]
Sep 13 14:43:21 14[NET] sending packet: from 192.168.60.71[4500] to 192.168.60.30[4500] (80 bytes)
Sep 13 14:43:21 07[NET] received packet: from 192.168.60.30[4500] to 192.168.60.71[4500] (112 bytes)
Sep 13 14:43:21 07[ENC] parsed IKE_AUTH request 5 [ AUTH ]
Sep 13 14:43:21 07[IKE] authentication of ‘192.168.60.30’ with EAP successful
Sep 13 14:43:21 07[IKE] authentication of ‘192.168.60.71’ (myself) with EAP
Sep 13 14:43:21 07[IKE] IKE_SA ikev2-eap[1] established between 192.168.60.71[192.168.60.71]…192.168.60.30[192.168.60.30]
Sep 13 14:43:21 07[IKE] peer requested virtual IP %any
Sep 13 14:43:21 07[CFG] assigning new lease to ‘xiaoming’
Sep 13 14:43:21 07[IKE] assigning virtual IP 10.0.0.1 to peer ‘xiaoming’
Sep 13 14:43:21 07[IKE] peer requested virtual IP %any6
Sep 13 14:43:21 07[IKE] no virtual IP found for %any6 requested by ‘xiaoming’
Sep 13 14:43:21 07[IKE] CHILD_SA ikev2-eap{1} established with SPIs c76f3862_i 121227a6_o and TS 0.0.0.0/0 === 10.0.0.1/32
Sep 13 14:43:21 07[ENC] generating IKE_AUTH response 5 [ AUTH CPRP(ADDR DNS DNS DNS DNS) SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) ]
Sep 13 14:43:21 07[NET] sending packet: from 192.168.60.71[4500] to 192.168.60.30[4500] (272 bytes)
Sep 13 14:43:46 10[NET] received packet: from 192.168.60.30[4500] to 192.168.60.71[4500] (80 bytes)
Sep 13 14:43:46 10[ENC] parsed INFORMATIONAL request 6 [ D ]
Sep 13 14:43:46 10[IKE] received DELETE for ESP CHILD_SA with SPI 121227a6
Sep 13 14:43:46 10[IKE] closing CHILD_SA ikev2-eap{1} with SPIs c76f3862_i (0 bytes) 121227a6_o (0 bytes) and TS 0.0.0.0/0 === 10.0.0.1/32
Sep 13 14:43:46 10[IKE] sending DELETE for ESP CHILD_SA with SPI c76f3862
Sep 13 14:43:46 10[IKE] CHILD_SA closed
Sep 13 14:43:46 10[ENC] generating INFORMATIONAL response 6 [ D ]
Sep 13 14:43:46 10[NET] sending packet: from 192.168.60.71[4500] to 192.168.60.30[4500] (80 bytes)
Sep 13 14:43:46 06[NET] received packet: from 192.168.60.30[4500] to 192.168.60.71[4500] (80 bytes)
Sep 13 14:43:46 06[ENC] parsed INFORMATIONAL request 7 [ D ]
Sep 13 14:43:46 06[IKE] received DELETE for IKE_SA ikev2-eap[1]
Sep 13 14:43:46 06[IKE] deleting IKE_SA ikev2-eap[1] between 192.168.60.71[192.168.60.71]…192.168.60.30[192.168.60.30]
Sep 13 14:43:46 06[IKE] IKE_SA deleted
Sep 13 14:43:46 06[ENC] generating INFORMATIONAL response 7 [ ]
Sep 13 14:43:46 06[NET] sending packet: from 192.168.60.71[4500] to 192.168.60.30[4500] (80 bytes)
Sep 13 14:43:46 06[CFG] lease 10.0.0.1 by ‘xiaoming’ went offline
我的客户机ip地址是192.168.60.30,服务器地址是192.168.60.71,希望博主能指点下,谢谢
仔细设置检查过了iptables的转发规矩,如果是转发问题,还可能会是什么问题呢?
按照本文部署strongswan和xl2tpd以后,通过iOS和Android都可以使用PSK方式连接。但是在Windows 7系统下连接时候,报“错误628: 在连接完成前,连接被远程计算机终止。”,请问可能是什么原因导致的?还有在VPN属性的安全选项卡下,数据加密和身份验证选项应该怎么设置呢?
“安全”中VPN类型选 l2tp, 高级设置里填上预设密钥, 其他的默认就可以.
纠正了自己的一处错误,chap-secrets里面的server没有和xl2tpd.conf中的name保持一致。改正这个错误以后我用Windows 10可以用L2TP/IPSec连接了,但是Windows 7以及XP分别报809和800的错误,不知道你有没有遇到过此类的问题
再检查一下配置吧. 然后看看日志, 我用win7, win10都没问题.
我后来测试了,Windows 7和XP下面,安装并使用证书+用户名密码的时候L2TP是可以正常使用的,但是用PSK+用户名密码的方式不能连接;而Windows 10下面不需要安装证书,PSK+用户名密码也可以用的,不知道是哪里有问题?还有你说的是xl2tp的日志吗?这个日志应该在哪里开启和查看?
博主您好,按照您的设置,IKEv2能链接,QQ通讯正常,但网页无法访问。
想来应该是DNS的问题,但是我检查了我的的DNS配置,和您的一样。
另外我在该服务器上也搭建了PPTP,PPTP中的DNS又能正常解析。
噢,可以了。原来是您下面的启动日志的命令我把它注释掉的时候连带DNS也一起注释掉了。
所以DNS不能解析。
不好意思。(逃
你好,按照你的方式配置并连接成功了,但是并不能翻墙,这是怎么回事?我试过好多种方法来配置VPN,几乎都是能连接成功但是不能翻墙,VPS是香港的,VPS是可以直接访问到大陆被墙的网站的
能连成功,不能访问网站,大部分原因是因为转发没设置好,也有可能是DNS没设置对,仔细查查这两项吧.
我也遇到同样的问题,可以连接VPN,就是访问不了任何网站,转发和DNS设置似乎都没有问题,请问还有什么可能原因?
这就不好说了, 检查一下日志, 应该能找到问题所在.
我也是遇到了上面同样的问题,使用ipsec和ikev2方式可以连接,却无法正常上网,但使用l2tp是可以正常的
检查一下 dns 设置是否正确. 还有, 如果是用 win10 系统连接需要设置 vpn 连接 ipv4 高级属性, 启用远程dns.
你好,是否可以联系我一下呢?我按照步骤安装,但是无法连接上
您好,按照您的设置成功配置完成并且连接成功,但是我有一个黑莓classic手机是10.3的系统,请问在ipsec.conf中该如何配置呢?
黑莓的系统我没用过, 不好说, 不过主要就是改 IKE 那一条, 或者你每种都试一下.
您好,请教您一个问题:我架设的VPN在联通,电信,移动的宽带网络都能正常使用,但是联通的手机信号下完全无法建立链接。还没测试过其他手机网络,但是联通的无论在任何地点确定都无法使用。是需要额外有其他设定吗?
可能还是在配置文件上有问题, 打开调试日志看看. 另外vpn连接有时候可能很慢, 大概10几秒到20秒都有.
还有就是查一下你的手机系统是否支持相应的协议, 有问题时还是要请万能的 google 大神帮忙.
嗯,我再看看。之前用其他VPN的时候碰到过有线电视网络里VPN无法连接。
谢谢您的提示,我检查后感觉目前的问题焦点是在这里:
xl2tpd.service – Level 2 Tunnel Protocol Daemon (L2TP)
Loaded: loaded (/usr/lib/systemd/system/xl2tpd.service; enabled)
Active: failed (Result: start-limit) since Fri 2015-06-26 02:46:01 UTC; 15s ago
Process: 5942 ExecStartPre=/sbin/modprobe -q l2tp_ppp (code=exited, status=1/FAILURE)
这个start-limit始终导致服务进程起不来,请教您该如何改善呢?谢谢