银河麒麟系统启用IPSec隧道需依次完成内核检查、安装strongSwan、配置ipsec.conf与ipsec.secrets(PSK密钥严格匹配且权限设为600)、执行ipsec reload/up并验证ESTABLISHED与INSTALLED状态及ESP加密抓包。

您需要在银河麒麟系统中启用IPSec隧道以保障内网业务流量穿越公网时的机密性、完整性与身份认证,避免敏感数据明文传输被截获或篡改,这是等保2.0中“通信传输”控制项的强制要求。
确认内核与工具链支持
执行modprobe af_key && echo $? ,若返回0,说明内核已加载IPSec协议栈;若报错,则需先运行sudo modprobe ipsec并检查/proc/sys/net/core/somaxconn是否≥128(否则IKE协商可能超时失败)。
安装strongSwan工具集:sudo apt install strongswan strongswan-libcharon strongswan-plugin-kernel-netlink strongswan-plugin-pkcs11。注意:银河麒麟V10 SP3起默认不预装strongSwan,【必须手动安装,否则后续所有配置无法启动】。
验证安装结果:ipsec version应输出类似Linux strongSwan U5.9.1/K5.10.0-107-generic的版本信息。
配置IPSec主配置文件
第一步:备份原始配置:sudo cp /etc/ipsec.conf /etc/ipsec.conf.bak。
第二步:清空并重写/etc/ipsec.conf,填入以下最小化有效配置:
config setup
strictcrlpolicy=yes
uniqueids=yes
conn %default
ikelifetime=24h
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
authby=secret
conn to-bastion
left=192.168.10.50
leftsubnet=192.168.10.0/24
right=203.0.113.45
rightsubnet=10.20.30.0/24
auto=start
其中left为本机内网IP,right为对端堡垒机公网IP;【leftsubnet与rightsubnet不得重叠,否则路由冲突导致隧道不通】。
配置预共享密钥(PSK)
执行sudo vim /etc/ipsec.secrets,写入单行密钥:
192.168.10.50 203.0.113.45 : PSK "Zx9#qL2$mN@vP8"
注意:密钥必须用双引号包裹,且前后无空格;PSK长度建议≥12位,含大小写字母、数字和特殊字符;192.168.10.50与203.0.113.45必须与ipsec.conf中left和right值严格一致,否则IKE认证失败。
设置密钥文件权限:sudo chmod 600 /etc/ipsec.secrets。这一步不可跳过,【权限大于600将导致strongSwan拒绝读取密钥】。
启动并验证IPSec隧道
① 加载新配置:sudo ipsec reload。
② 启动连接:sudo ipsec up to-bastion。
③ 检查状态:sudo ipsec statusall to-bastion,输出中必须同时出现ESTABLISHED(IKE阶段成功)和INSTALLED(CHILD_SA已安装)字样。
④ 抓包验证加密效果:在本机执行sudo tcpdump -i any port 500 or port 4500 or proto esp -c 5,若看到UDP 500/4500报文且无明文业务数据,则表明ESP加密通道已生效。

















