En este caso voy a tener dos localidades uno llamado central que va a contar con IP publica estática y el otro extremo llamado sucursal1 que tendrá una IP publica dinámica.
Para este caso tomo las siguientes configuraciones de red.
Central
IP Lan: 192.168.0.1
Red local: 192.168.0.0/24
IP publica: 10.0.0.1
Sucursal1
IP Lan: 192.168.1.1
Red local: 192.168.1.0/24
IP publica: dinamica
Ya que uno de los extremos tiene una IP dinámica la única forma de crear el tunel sera usando certificados, en este caso X.509.
Si aun no has instalado StrongSwan instalarlo desde una terminal con el siguiente comando.
En el equipo central nos ubicamos en la carpeta /etc/ipsec.d y ejecutamos los siguientes comandos.
Vamos a copiar los archivos /etc/ipsec.d/cacerts/strongswanCert.pem y /etc/ipsec.d/private/strongswanKey.pem que fueron creados en las carpetas con el mismo nombre y ubicación en el equipo de sucursal1.
Luego en sucursal1 nos ubicamos en la carpeta /etc/ipsec.d y ejecutamos los siguientes comandos.
Copiar el archivo private/sucursal1Key.pem en la misma ubicación en el servidor central.
Archivo ipsec.conf en el sitio central.
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
conn myvpn
type=tunnel
reauth=yes
auto=start
# -------------------- phase 1 --------------------------- #
ike=aes256-sha1-modp1024
keyexchange=ikev1
ikelifetime=86400s
# -------------------- phase 2 --------------------------- #
esp=aes256-sha1
keylife=3600s
left=10.0.0.1
leftsubnet=192.168.0.0/24
right=%dynamic
rightsubnet=192.168.1.0/24
leftcert=centralCert.pem
leftid="C=CH, O=strongSwan, CN=central"
rightid="C=CH, O=strongSwan, CN=sucursal1"
Archivo ipsec.secrets en sitio central.
# This file holds shared secrets or RSA private keys for authentication.
# RSA private key for this host, authenticating it to any other host
# which knows the public part.
: RSA centralKey.pem
Archivo ipsec.conf en sitio sucursal1.
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
charondebug="all"
uniqueids=yes
strictcrlpolicy=no
conn %default
conn myvpn
type=tunnel
reauth=yes
auto=start
# -------------------- phase 1 --------------------------- #
ike=aes256-sha1-modp1024
keyexchange=ikev1
ikelifetime=86400s
# -------------------- phase 2 --------------------------- #
esp=aes256-sha1
keylife=3600s
left=192.168.1.1
leftsubnet=192.168.1.0/24
right=10.0.0.1
rightsubnet=192.168.0.0/24
leftcert=sucursal1Cert.pem
leftid="C=CH, O=strongSwan, CN=sucursal1"
rightid="C=CH, O=strongSwan, CN=central"
El archivo ipsec.secrets en el sitio sucursal1.
# This file holds shared secrets or RSA private keys for authentication.
# RSA private key for this host, authenticating it to any other host
# which knows the public part.
: RSA sucursal1Key.pem