Ubuntu 命令行配置 IPsec 客户端(证书认证)
·
Ubuntu 命令行配置 IPsec 客户端(证书认证)
以 StrongSwan 为例,全程基于命令行操作,适合无图形界面的服务器环境。
一、安装客户端软件
sudo apt update
sudo apt install strongswan strongswan-pki libstrongswan-extra-plugins -y
二、准备证书文件
假设你已经从 服务端获取了以下三个证书文件,将它们上传至客户端机器的指定目录:
-
caCert.pem:CA 根证书 -
clientCert.pem:客户端公钥证书 -
clientKey.pem:客户端私钥
将证书复制到 StrongSwan 的标准目录并加固权限:
sudo cp caCert.pem /etc/ipsec.d/cacerts/
sudo cp clientCert.pem /etc/ipsec.d/certs/
sudo cp clientKey.pem /etc/ipsec.d/private/
# 确保私钥只有 root 可读,这是强制安全要求
sudo chmod 600 /etc/ipsec.d/private/clientKey.pem
三、配置 ipsec.conf
编辑主配置文件 /etc/ipsec.conf:
sudo vim /etc/ipsec.conf
清空原有内容,填入以下配置(注意替换尖括号中的变量):
config setup
charondebug="ike 2, cfg 2" # 调试级别,排查问题时可开启
conn ikev2-cert-client
keyexchange=ikev2 # 使用 IKEv2 协议
ike=aes256-sha256-modp2048! # 第一阶段加密算法(需与服务端一致)
esp=aes256-sha256-modp2048! # 第二阶段加密算法(需与服务端一致)
left=%defaultroute # 客户端本地出口,自动识别
leftcert=clientCert.pem # 指定客户端证书文件名
leftauth=pubkey # 左侧(客户端)使用公钥认证
right=<服务器公网IP或域名> # VPN 服务器地址
rightid=% # 右侧(服务端)ID,% 表示不校验
rightsubnet=0.0.0.0/0 # 推送到客户端的路由(全流量)
rightauth=pubkey # 右侧(服务端)使用公钥认证
auto=start # 服务启动时自动拨号
四、配置 ipsec.secrets
编辑密钥文件 /etc/ipsec.secrets,告诉 StrongSwan 私钥的位置:
sudo vim /etc/ipsec.secrets
填入以下内容:
# 格式为: : RSA 私钥文件名
: RSA clientKey.pem
如果该私钥生成时设置了密码(Passphrase),则需要写成:
: RSA clientKey.pem "你的私钥密码"
五、启动与验证
-
重启服务加载新配置:
sudo ipsec restart
-
查看连接状态:
sudo ipsec statusall
看到 ESTABLISHED字样即表示隧道建立成功。
六、配置路由(关键)
连接成功后,通常需要手动添加一条路由,让所有流量走 接口(通常是 ipsec0):
# 假设 VPN 分配的客户端 IP 是 10.10.10.1
sudo ip route add default dev ipsec0
或者,如果你只想让访问特定内网(例如 192.168.1.0/24)的流量走 :
sudo ip route add 192.168.1.0/24 dev ipsec0
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)