(Windows客户端)拨号 VPN(Windows作为客户端)(Remote Access IKEv2 证书).note

noteId: WEB22326b698c6ac9fefe643cb983bfe922 · 原始路径:/ALL/Linux - A模块/服务配置/VPN合集(openvpn、l2tp、wireguard)/StrongSwan(IPSec VPN GRE 站点到站点vpn隧道(Site-to-Site))/debian13新配置swanctl/IEKv2证书/(Windows客户端)拨号 VPN(Windows作为客户端)(Remote Access IKEv2 证书).note · 图片:35 · 附件待处理:0

 
 
1、创建证书(需要携带IKE属性、Server Auth属性):
# 创建CA
/usr/lib/ssl/misc/CA.pl -newca
 
如果客户端是Linux就不需要IKE这个属性、ServerAuth、ClientAuth属性都不需要
vim /etc/ssl/openssl.cnf
# IKE属性在debian中没有 oid的映射,只能够写完整的,这里没有得抄,只能背
 
# 部分字段可以这样查看到,但是查看不了IKE的oid字段(1.3.6.1.5.5.8.2.2):
openssl list -objects | grep ipsec
## linux默认有一个 ipsecIKE字段(...7.3.17),但是windows无法识别
 
 
2、配置 S2S:
 
1)将 根证书、证书、私钥,放到指定位置:
根证书、证书、私钥 必须被放到指定位置
cp vpn.crt /etc/swanctl/x509    //将证书放到 x509目录下
cp vpn.crt /etc/swanctl/private    //将私钥放到 private目录下
cp ca.crt /etc/swanctl/x509ca    //将根证书放到 x509ca目录下
 
 
2)配置S2S:
需要定义一个 pools 地址池给隧道分配地址
apt install -y strongswan
 
# 配置对端FQDN公网地址的hosts解析:
echo "210.103.5.65 fr-edge.wsc2024.fr" >> /etc/hosts    //对端地址
## 本地不要加本地地址的FQDN解析,127.0.1.1的建议也去掉一下,否则会解析成127.0.1.1的地址,导致无法建立
 
cd /etc/swanctl
vim swanctl.conf
地址建议写FQDN:
 
 
调用pools地址池(地址池名为 ikev2,这个地址池在后面定义):
 
remote 使用默认的 %any 即可,认证方式为 证书
 
 
 
 
四个括号结尾,取消注释即可(默认就有4个括号)
 
 
定义 secrets 调用私钥:
 
定义 pools 地址池(这里地址池名为 ikev2):
 
# 服务端加载配置文件:
## 加载配置文件就行了,不需要 initiate发起连接
swanctl --load-all
 
 
·(可选)如果要跳过 证书吊销列表检查(默认就是跳过的):
取消注释即可
 
·(可选)配置重启自动连接:
在 children 下修改三个参数:
当 start_action = trap 时,就仅会在有流量时才建立连接(但是当restart strongswan之后,就会删除上一次的会话)
 
 
 
3、客户端连接:
 
rasphone
地址写域名:
 
认证方式选择IKEv2,使用机器证书:
 
连接:
 
连接成功:
 
 
4、(可选)加上用户名密码登陆:
这里使用 EAP-MSCHAPv2
# 在前面的基础上配置:
vim /etc/swanctl/swanctl.conf
1、改remote的身份认证方式为 eap-mschapv2
2、在secrets中加一个 eap 用户即可
 
 
swanctl --load-all
 
·客户端连接:
认证方式设置为 EAP-MSCHAPv2:
 
 
连接成功:
 
·有一个问题:
这里有一个问题,客户端第一次输入用户和密码时不会连接成功(哪怕用户密码正确),只有在后续自动弹出的身份认证框输入密码才会连接成功,这是因为Windows客户端第一次连接时会发送匿名 EAP Identity,它不被linux接受
这个点其实问题不大,裁判评分时不可能只输入一次密码,他有可能输错密码
 
 
5、(可选)调用 radius为后端做身份认证:
 
要安装插件:libcharon-extra-plugins
(1)配置 strongswan:
这里使用 eap-radius协议
# 也是在上面的基础上:
vim /etc/swanctl/swanctl.conf
## remote 认证方式为 eap-radius
 
不需要再在secrets 中定义 eap用户
 
·调用 radius:
# 安装插件:
apt install -y libcharon-extra-plugins
 
cd /etc/strongswan.d/charon
vim eap-radius.conf
 
systemctl restart strongswan
 
 
(2)配置 radius:
我们这里的环境,radius的用户连接的是ldap
apt install -y freeradius
 
cd /etc/freeradius/3.0
vim users    //虽然这里用的是ldap用户,但是还是要知道怎么打定义用户,直接进去复制一个即可
 
vim clients.conf
 
# 默认就开启了 mschap协议:
ls mods-enabled/mschap
 
systemctl restart freeradius
 
·测试:
认证方式设置为 EAP-MSCHAPv2:
 
连接:
 
连接成功:
 
 
连接成功:
并且不会出现上面单独使用 eap-mschapv2的问题,直接就连接成功了