Windows与Linux建立IKEv2 S2S.note

noteId: WEB3663dfbe7a014daea0b28bbdd9eeebb8 · 原始路径:/ALL/Windows - B模块/服务配置/远程访问(VPN合集)/VPN 配置合集/IKEv2/与Linux建立/Windows与Linux建立IKEv2 S2S.note · 图片:25 · 附件待处理:0

 
 
一、Windows与Linux建立IKEv2 证书 S2S:
 
·申请 IKE 证书:
# 最好是在windows端颁发该证书,带有 Server Auth属性、IKE属性,具体可以参照Windows的IKEv2证书配置
 
证书最好是大写域名,否则windows可能会有点问题
 
两端都要能够信任根证书
 
1、Linux 端配置:
 
1)拆分证书和私钥:
## 将从windows拷过来的 .pfx文件拆分为证书和私钥:
scp c:\kr-edge.pfx root@210.103.5.1:~
# 导出证书:
openssl pkcs12 -in kr-edge.pfx -clcerts -nokeys -out vpn.crt
 
# 导出私钥:
openssl pkcs12 -in kr-edge.pfx -nocerts -out vpn.key
 
2)将 根证书、证书、私钥,放到指定位置:
根证书、证书、私钥 必须被放到指定位置
cp vpn.crt /etc/swanctl/x509    //将证书放到 x509目录下
cp vpn.crt /etc/swanctl/private    //将私钥放到 private目录下
cp ca.crt /etc/swanctl/x509ca    //将根证书放到 x509ca目录下
 
 
3)配置S2S:
Linux需要定义一个 pools 地址池给隧道分配地址,地址池范围与 windows 地址池范围一致
apt install -y strongswan
 
# 配置对端FQDN公网地址的hosts解析:
echo "210.103.5.65 fr-edge.wsc2024.fr" >> /etc/hosts    //对端地址
echo "210.103.5.1 kr-edge.wsc2022.kr" >> /etc/hosts    //本端地址
 
cd /etc/swanctl
vim swanctl.conf
 
调用pools地址池(地址池名为 ikev2,这个地址池在后面定义):
 
 
remote 使用默认的 %any 即可,认证方式为 证书
 
 
 
 
四个括号结尾,取消注释即可(默认就有4个括号)
 
 
定义 secrets 调用私钥:
 
定义 pools 地址池(这里地址池名为 ikev2):
 
 
·如果要跳过 证书吊销列表检查(默认就是跳过的):
取消注释即可
 
·配置重启自动连接:
在 children 下修改三个参数:
当 start_action = trap 时,就仅会在有流量时才建立连接(但是当restart
strongswan之后,就会删除上一次的会话)
 
 
 
2、Windows 端配置:
最好写一个 hosts,将域名指定为对端公网地址
 
 
确保 LAN and demand-dial routing 是被勾选的:
 
选择证书:
 
允许IKEv2认证:
 
·创建 S2S 接口:
接口名称指定对端 FQDN,连接地址也要是对端FQDN
其他的配置没有什么特殊,就不赘述了
 
 
·必须配置一个地址池:
范围与linux 地址池范围一致
 
 
3、建立连接、测试:
建议在Linux端发起连接,在Windows端可能会出现一些奇奇怪怪的问题
swanctl --load-all    //读取配置文件
swanctl --initiate -c net    //发起连接,net 是前面配置文件中children下定义的名称
 
# 关闭连接:
swanctl --terminate -c net
可以看到这边读取了 根CA、证书、私钥
 
 
可以看到,已经连接成功
 
# 查看 sa状态:
swanctl --list-sas
 
swanctl --stats