Fui solicitado a implantar um servidor IPSEC para um projeto e depois de fazer alguma pesquisa, StrongSwan parece um bom candidato. Como este projeto requer segurança máxima, decidi instalar a versão mais recente do StrongSwan (5.6.2), já que ele parece corrigir alguns problemas de segurança e outras coisas.
Então, passei os últimos dias trabalhando em como configurá-lo, o que eu consegui fazer usando /etc/ipsec.conf
, porém, ao ler o site da StrongSwan, agora é uma forma legada de configurá-lo.
The recommended way of configuring strongSwan is via the powerful vici
interface and the swanctl command line tool. The swanctl.conf
configuration file used by swanctl is stored together with
certificates and corresponding private keys in the swanctl directory.
Global strongSwan settings as well as plugin-specific configurations
are defined in strongswan.conf.
Alternatively the legacy ipsec stroke interface and its ipsec.conf and
ipsec.secrets configuration files may be used.
Então, agora estou tentando alterar a configuração para usar um arquivo armazenado em /etc/swanctl/conf.d
...
Então, minha pergunta é esta:
Alguém sabe como construir StrongSwan a partir do código-fonte e fazer com que ele inicie com o servidor (Ubuntu 16.04) e use o novo método de configuração?
Minha linha de configuração é semelhante a esta
./configure --prefix=/usr --sysconfdir=/etc \
--enable-systemd --enable-swanctl \
--disable-charon --disable-stroke --disable-scepclient \
--enable-gcm --enable-eap-tls
mas isso ainda não começa com o servidor, nem consigo encontrar strongswan
ou strongswan-swanctl
para inicialização.
Meu atual ipsec.conf
se parece com isso
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
qual 'eu acho' se traduz para isso
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
}
}
}
}