StrongSwan construir e executar na inicialização

1

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
         }
      }
   }
}
    
por Christian 05.04.2018 / 10:21

1 resposta

2

Se você configurar com --enable-systemd , o daemon charon-systemd será criado e uma unidade de serviço systemd chamada strongswan-swanctl será instalada. Você pode gerenciar isso (como qualquer outra unidade systemd) com systemctl . Então, para iniciá-lo na inicialização do sistema, ative a unidade com:

sudo systemctl enable strongswan-swanctl.service

Além disso, uma tradução mais precisa da configuração é a seguinte:

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 
   }
}
    
por 05.04.2018 / 11:30

Tags