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, 但是需要编译安装.
1 2 3 |
yum install strongswan systemctl enable strongswan systemctl start strongswan |
生成证书
生成 CA 根证书
1. 生成一个私钥:
1 |
strongswan pki --gen --outform pem > ca.key.pem |
2. 基于这个私钥自己签一个 CA 根证书:
1 |
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. 同样先生成一个私钥
1 |
strongswan pki --gen --outform pem > server.key.pem |
2. 用我们刚才自签的 CA 证书给自己发一个服务器证书:
1 2 3 4 5 |
#从私钥生成公钥 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. 依然是生成私钥:
1 |
strongswan pki --gen --outform pem > client.key.pem |
2. 然后用刚才自签的 CA 证书来签客户端证书:
1 2 3 4 5 |
#从私钥生成公钥 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
1 |
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 |
此时会提示输入两次密码, 这个密码是在导入证书到其他系统时需要验证的. 没有这个密码即使别人拿到了证书也没法使用.
安装证书
1 2 3 4 5 6 7 |
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
先修改主配置
1 |
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/ 目录中.
1 |
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 } } } |
配置验证方式的用户名与密码
1 |
nano /etc/strongswan/ipsec.secrets |
下面添加用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#使用证书验证时的服务器端私钥 #格式 : 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 "密码" |
开启内核转发
1 |
nano /etc/sysctl.conf |
写入以下配置
1 2 3 |
# VPN net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding=1 |
保存退出, 执行下面命令.
1 |
sysctl -p |
配置防火墙
iptables 配置方法
将下面几条规则加入 iptables 规则中, 适当使用 -I 参数替换 -A 参数, 确保所有的项目位置都在拒绝项前面.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#开放端口 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 规则文件.
1 |
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 使之生效.
1 |
systemctl restart iptables |
以下是 firewallD 的配置方法, 使用 iptables 的可以忽略.
firewalld 介绍请看 <<CentOS 7 firewalld 动态防火墙介绍>>
首先将公网网卡添加到当前区域中
1 2 |
#查看所有网卡信息, 找出公网网卡 ip addr |
编辑网卡配置
1 |
nano /etc/sysconfig/network-scripts/ifcfg-eth0 |
在最末尾加上区域配置
1 |
ZONE=public |
保存退出,重启服务
1 2 |
systemctl restart network systemctl restart firewalld |
然后新建一个服务
1 |
nano /etc/firewalld/services/strongswan.xml |
填入以下内容
1 2 3 4 5 6 |
<?xml version="1.0" encoding="utf-8"?> <service> <short>Strongswan</short> <description>Strongswan VPN</description> <port protocol="udp" port="500,4500"/> </service> |
保存退出
添加服务到当前区域, 开启转发
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#以下命令没有指定 --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 命令外, 还可以换种方法添加上面的规则.
1 2 |
#编辑当前区域的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> |
1 2 |
#重新加载防火墙配置 firewall-cmd --reload |
配置完防火墙后重启 strongswan 服务
1 2 |
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 导入即可
经测试,IKEV2是有时能用有时不能用,有时连上一段时间后会断线
看一下你到vps的网络是否稳定
完全按照你的方法来做,但是Win7下面还是会提示809错误,就算连上也很容易断开。
你win10有问题没?我搭建出来是win10连上1分钟就自动断开,win7完美运行
经测试是有时能用有时不能用,win7和ios都一样
你是不是配置l2tp了? 我那上都写l2tp已经废弃了.
我只是完完全全的IKEV2而已啊。另外,奇怪的是,我使用rightsourceip = 192.168.x.0/24,但怎么Win7连上后子网掩码是255.255.255.255?
网段不要和你的 vps, 本地局域网相同, 改一下网段试试.
我知道,现在想问,XL2TPD的VPN客户端互联怎么做?连上一个L2TP客户端就多一个PPP网卡
iOS连接IKEV2需要填本地ID,本地ID可以随便填。IKEV2可能会和443端口的AnyConnect或HTTPS服务产生冲突。
本地id不是必需的,如果你有耐心,可以完全按照我的配置试一下。
iOS设备连接不上,Windows可以
经测试 iOS设备一定要填本地ID,浪费不少时间才发现卡在这里。
这玩意也被和谐了吗
Windows 7下面连接提示809错误。
原来是配置不对,谢谢了!
这位兄弟,你跟你刚好是反的,我除了win10,ios,mac,win7全部没问题,我win10连1分钟就准时断开,没查到原因
ipsec命令如何生成服务器证书的请求呢,只需要证书请求文件即可,不要CA
不明白你的意思, CA是根证书, 如果是从证书机构买的证书就不需要导入证书.
用ipsec命令生成VPN服务器的证书请求,再将证书请求文件交给CA。应该是ipsec pki –req
写得好详细啊,最近一直在折腾这个,一直没成功,
楼主知不知道ipsec的日志在哪里?我server建好之后,win10客户端这边一连就报错,我想看下请求有没有到server,和返回的具体错误是什么,看不到日志根本没法查
这个就不太清楚了,问一下谷歌吧。其实 strongswan 本身的日志已经很详细了,配置里还可以指定输出日志的详细成度。
哇,非常谢谢楼主这么长时间的文章还这么快的回复
话说strongswan的日志是输出在哪的?详细程度的参数又是哪个?我都搜了好久都没找到,我每次都是ipsec start –nofork在终端上一直打印日志看的,感觉很不方便;
另外,我按照你的方法,已经搭建成功了,但是win10下只能连接1分钟,到了1分钟不管做什么都会自己断开,我尝试修改了很多keylife、time这些相关的参数,但是没有效果,楼主有什么建议没?
还有就是ios和mac os端我也试了,这两个需要填remote id,我不知道具体是填哪个,我尝试填了server.cert.pem和ca.cert.pem里面CN的内容,但是还是不能连,vpn开关点一下就关了,server上收到一个192.168.1.10 is initiating an IKE_SA,然后就没动静了,还希望楼主能指导下
看来你没有认真的看完,再看一遍,日志设置和left id都有说。
嗯,left id我刚刚看到了,我一直以为我填的就是本机ip,结果是%any
那楼主对win10下1分钟自动断开这个问题有什么建议没?可能是哪个参数或者原因导致的呢?
哦,对了,还有strongswan的日志输出和debug等级是在哪儿修改的?
刚刚发现win7不会自动断开=。=,公司3个win10都是1分钟准时断,想查原因
# increase default loglevel for all daemon subsystems
default = 1
这个是配置日志详细度, 具体的数值goole一下.
win10的你看一下有没有按照我最后的配置方法做. 比如证书, dns配置.
呃。。。。楼主我又来了,经过一天的折腾,现在就是除了win10各种系统都正常了,win10我按照你的方法改pem后缀导入证书,还是1分钟就挂了
因为其他系统都没问题了,所以我就几乎没有从server端的参数去排查了,我感觉还是像win10又什么安全设置之类的导致了这个问题,我查win10的系统日志,里面提示断开连接 原因代码829,我去ms官网去查,微软的解释是vpn server的网络问题,但这个应该不可能,所以现在win10这个依然找不到什么方法可参考,还希望楼主能帮忙分析下
Jan 5 13:08:36 05[NET] received packet: from 114.240.134.250[500] to 47.88.25.41[500] (604 bytes)
Jan 5 13:08:36 05[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
Jan 5 13:08:36 05[IKE] 114.240.134.250 is initiating an IKE_SA
Jan 5 13:08:36 05[IKE] remote host is behind NAT
Jan 5 13:08:36 05[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(MULT_AUTH) ]
Jan 5 13:08:36 05[NET] sending packet: from 47.88.25.41[500] to 114.240.134.250[500] (448 bytes)
Jan 5 13:08:36 12[NET] received packet: from 114.240.134.250[4500] to 47.88.25.41[4500] (512 bytes)
Jan 5 13:08:36 12[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) N(MOBIKE_SUP) IDr CPRQ(ADDR DHCP DNS MASK ADDR6 DHCP6 DNS6) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
Jan 5 13:08:36 12[CFG] looking for peer configs matching 47.88.25.41[vpn.mumov.com]…114.240.134.250[keensting]
Jan 5 13:08:36 12[CFG] selected peer config ‘ikev2-eap’
Jan 5 13:08:36 12[IKE] initiating EAP_IDENTITY method (id 0x00)
Jan 5 13:08:36 12[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
Jan 5 13:08:36 12[IKE] peer supports MOBIKE
Jan 5 13:08:36 12[IKE] authentication of ‘vpn.mumov.com’ (myself) with RSA signature successful
Jan 5 13:08:36 12[IKE] sending end entity cert “C=CN, O=Mumov, CN=vpn.mumov.com”
Jan 5 13:08:36 12[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
Jan 5 13:08:36 12[ENC] splitting IKE message with length of 1216 bytes into 3 fragments
Jan 5 13:08:36 12[ENC] generating IKE_AUTH response 1 [ EF(1/3) ]
Jan 5 13:08:36 12[ENC] generating IKE_AUTH response 1 [ EF(2/3) ]
Jan 5 13:08:36 12[ENC] generating IKE_AUTH response 1 [ EF(3/3) ]
Jan 5 13:08:36 12[NET] sending packet: from 47.88.25.41[4500] to 114.240.134.250[4500] (532 bytes)
Jan 5 13:08:36 12[NET] sending packet: from 47.88.25.41[4500] to 114.240.134.250[4500] (532 bytes)
Jan 5 13:08:36 12[NET] sending packet: from 47.88.25.41[4500] to 114.240.134.250[4500] (292 bytes)
Dec 27 13:38:28 05[CFG] received stroke: add connection ‘ikev2-eap’
Dec 27 13:38:28 05[CFG] adding virtual IP address pool 10.1.0.0/16
Dec 27 13:38:28 05[LIB] opening ‘/etc/strongswan/ipsec.d/certs/server.cert.pem’ failed: No such file or directory
Dec 27 13:38:28 05[LIB] building CRED_CERTIFICATE – ANY failed, tried 1 builders
Dec 27 13:38:28 05[CFG] loading certificate from ‘server.cert.pem’ failed
Dec 27 13:38:28 05[CFG] CA certificate “C=CN, O=ITnmg, CN=ITnmg StrongSwan CA” not found, discarding CA constraint
Dec 27 13:38:28 05[CFG] added configuration ‘ikev2-eap’
Dec 27 13:40:18 14[NET] received packet: from 27.149.199.7[7130] to 47.90.77.159[500] (604 bytes)
Dec 27 13:40:18 14[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
Dec 27 13:40:18 14[IKE] 27.149.199.7 is initiating an IKE_SA
Dec 27 13:40:18 14[IKE] remote host is behind NAT
Dec 27 13:40:18 14[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(MULT_AUTH) ]
Dec 27 13:40:18 14[NET] sending packet: from 47.90.77.159[500] to 27.149.199.7[7130] (448 bytes)
Dec 27 13:40:18 09[NET] received packet: from 27.149.199.7[7131] to 47.90.77.159[4500] (496 bytes)
Dec 27 13:40:18 09[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) N(MOBIKE_SUP) IDr CPRQ(ADDR DHCP DNS MASK ADDR6 DHCP6 DNS6) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
Dec 27 13:40:18 09[CFG] looking for peer configs matching 47.90.77.159[vpn.itnmg.net]…27.149.199.7[10.17.128.255]
Dec 27 13:40:18 09[CFG] selected peer config ‘ikev2-eap’
Dec 27 13:40:18 09[IKE] initiating EAP_IDENTITY method (id 0x00)
Dec 27 13:40:18 09[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
Dec 27 13:40:18 09[IKE] peer supports MOBIKE
Dec 27 13:40:18 09[IKE] no private key found for ‘vpn.itnmg.net’
Dec 27 13:40:18 09[ENC] generating IKE_AUTH response 1 [ N(AUTH_FAILED) ]
Dec 27 13:40:18 09[NET] sending packet: from 47.90.77.159[4500] to 27.149.199.7[7131] (80 bytes)
您好….
这个是 leftid 的问题吗
no private key found for ‘vpn.itnmg.net’
绑定你自己的域名, 生成你自己的证书, 不要用我的.
Dec 27 13:06:58 00[DMN] Starting IKE charon daemon (strongSwan 5.4.0, Linux 3.10.0-123.9.3.el7.x86_64, x86_64)
Dec 27 13:06:58 00[LIB] openssl FIPS mode(2) – enabled
Dec 27 13:06:58 00[CFG] loading ca certificates from ‘/etc/strongswan/ipsec.d/cacerts’
Dec 27 13:06:58 00[CFG] loading aa certificates from ‘/etc/strongswan/ipsec.d/aacerts’
Dec 27 13:06:58 00[CFG] loading ocsp signer certificates from ‘/etc/strongswan/ipsec.d/ocspcerts’
Dec 27 13:06:58 00[CFG] loading attribute certificates from ‘/etc/strongswan/ipsec.d/acerts’
Dec 27 13:06:58 00[CFG] loading crls from ‘/etc/strongswan/ipsec.d/crls’
Dec 27 13:06:58 00[CFG] loading secrets from ‘/etc/strongswan/ipsec.secrets’
Dec 27 13:06:58 00[LIB] opening ‘/etc/strongswan/ipsec.d/private/server.key.pem’ failed: No such file or directory
Dec 27 13:06:58 00[LIB] building CRED_PRIVATE_KEY – RSA failed, tried 10 builders
Dec 27 13:06:58 00[CFG] loading private key from ‘/etc/strongswan/ipsec.d/private/server.key.pem’ failed
Dec 27 13:06:58 00[CFG] loaded IKE secret for %any
Dec 27 13:06:58 00[CFG] loaded EAP secret for liyuyang
Dec 27 13:06:58 00[CFG] loaded EAP secret for xujinghong
Dec 27 13:06:58 00[CFG] loaded EAP secret for user1_xauth
Dec 27 13:06:58 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
Dec 27 13:06:58 00[JOB] spawning 16 worker threads
您好请问这样的运行有错误是吧
我的客户端连接不上
Dec 27 13:17:53 05[NET] received packet: from 124.72.170.209[500] to 47.90.77.159[500] (604 bytes)
Dec 27 13:17:53 05[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
Dec 27 13:17:53 05[IKE] no IKE config found for 47.90.77.159…124.72.170.209, sending NO_PROPOSAL_CHOSEN
Dec 27 13:17:53 05[ENC] generating IKE_SA_INIT response 0 [ N(NO_PROP) ]
Dec 27 13:17:53 05[NET] sending packet: from 47.90.77.159[500] to 124.72.170.209[500] (36 bytes)
然后登陆的时候这样……….大概是什么原因呢?