我被要求为一个项目部署 IPSEC 服务器,经过一番研究,StrongSwan 看起来是个不错的选择。由于这个项目需要最高级别的安全性,我决定安装最新版本的 StrongSwan (5.6.2),因为它似乎修复了一些安全问题和其他问题。
因此,我花了几天时间研究如何配置它,我已经能够使用它来做到这一点/etc/ipsec.conf
,但是在阅读 StrongSwan 的网站时,发现现在是一种传统的设置方式。
推荐通过强大的 vici 接口和 swanctl 命令行工具来配置 strongSwan。swanctl 使用的 swanctl.conf 配置文件与证书和相应的私钥一起存储在 swanctl 目录中。全局 strongSwan 设置以及特定于插件的配置均在 strongswan.conf 中定义。
或者,可以使用传统的 ipsec stroke 接口及其 ipsec.conf 和 ipsec.secrets 配置文件。
因此现在我正尝试更改配置以使用存储在/etc/swanctl/conf.d
其中的文件......
我的问题是这样的:
有谁知道如何从源代码构建 StrongSwan 并让它从服务器(Ubuntu 16.04)启动并使用新的配置方法?
我的配置行看起来像这样
./configure --prefix=/usr --sysconfdir=/etc \
--enable-systemd --enable-swanctl \
--disable-charon --disable-stroke --disable-scepclient \
--enable-gcm --enable-eap-tls
但这仍然无法随服务器启动,我也无法找到任何启动strongswan
项strongswan-swanctl
。
我现在的ipsec.conf
样子是这样的
conn %default
auto=add
forceencaps=yes
keyexchange=ikev2
keyingtries=1
ike=aes256-sha256-modp2048!
esp=aes256-sha256,aes128-sha256!
dpdaction=clear
inactivity=120s
leftsendcert=always
leftcert=vpn-server-cert.pem
leftsubnet=10.0.0.0/20
leftid=@vpnserver
rightsourceip=172.16.0.0/12
eap_identity=%identity
conn ikev2-cert
rightauth=eap-tls
“我认为”翻译过来就是
connections {
rw {
version = 2
send_certreq = yes
proposals = aes256-sha256-modp2048!
encap = yes
dpd_delay = 30s
local {
auth = eap-tls
certs = vpn-server-cert.pem
id = vpnserver
}
remote {
auth = eap-tls
}
children {
net {
local_ts = 172.16.0.0/12
esp_proposals = aes256-sha256,aes128-sha256!
inactivity = 120s
}
}
}
}
答案1
如果您使用 进行配置,则将构建守护进程并安装名为 systemd 的服务单元--enable-systemd
。您可以使用 来管理它(就像管理任何其他 systemd 单元一样)。因此,要在系统启动时启动它,请使用以下命令启用该单元:charon-systemd
strongswan
systemctl
sudo systemctl enable strongswan.service
(笔记:systemd 服务单元strongswan-swanctl
之前被调用过5.8.0。
此外,该配置更准确的翻译如下:
connections {
rw {
version = 2
send_cert = always
proposals = aes256-sha256-modp2048
encap = yes
pools = rw
# dpd_delay = 30s you didn't specify this in your ipsec.conf and it seems rather short for roadwarriors
local {
certs = vpn-server-cert.pem
id = vpnserver
}
remote {
auth = eap-tls
eap_id = %any
}
children {
net {
local_ts = 10.0.0.0/20
esp_proposals = aes256-sha256,aes128-sha256
inactivity = 120s
}
}
}
}
pools {
rw {
addrs = 172.16.0.0/12
}
}
答案2
我只是想在上面“ecdsa”答案的基础上添加一些内容。
对于刚刚使用 ubuntu 包安装 strongswan 而不是使用 ./configure ... build 的人来说。
如果你找不到服务“strongswan-swanctl”或者无法安装它,ubuntu 中的软件包名称是“charon-systemd”。
因此要安装该包:
sudo apt-get install charon-systemd
并启用该服务:
systemctl enable strongswan-swanctl