![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Configurar una VPN IPSec con strongswan en cloudy para realizar pruebas con SIEMENSSe quiere realizar una conexión por VPN IPSec a Siemens para unas pruebas. Es necesario saber un poco sobre IPSec para poderlo configurar.Nos informan de que la arquitectura será la siguiente: ![]() Notas y cambios con respecto al esquema:
Para hacerlo se usa un strongswan a cloudy (3.0.1.48) siguiendo diversos tutoriales:
Antes de empezar, para pasar el "secret" a hexadecimal, he usado el siguiente comando: echo -n "0x" ; hexdump -C /tmp/Clave\ psk.txt | cut -c 11-60 | tr -d '\n' | tr -d -d ' ';echo En cloudy, como root, se ha hecho lo siguiente:
apt-get update
apt-get dist-upgrade
apt-cache search strongswan
apt-get install charon-cmd strongswan-charon
apt-get install strongswan-swanctl
apt-get install libstrongswan-extra-plugins
cd /etc/swanctl/
mv swanctl.conf swanctl.conf.orig
cat > swanctl.conf <<'EOF'
## example used: https://www.experts-exchange.com/questions/29267093/strongswan-to-Fortigate-site-to-site-VPN-with-PSK-issues.html
## NOTA: el local_addrs es 3.0.1.48 en vez de 83.48.87.215 por estar en NAT
connections {
sico-to-siemens {
local_addrs = 3.0.1.48
remote_addrs = 213.0.55.18
local {
auth = psk
id = sico.sicosoft.es
}
remote {
auth = psk
id = esmadsravc02v.railad.com
}
children {
vpn-sico-to-siemens {
local_ts = 192.168.21.0/24
remote_ts = 10.22.2.0/24
rekey_time = 28000s
life_time = 3600s
esp_proposals = aes256-sha256
dpd_action = start
}
}
version = 2
mobike = no
reauth_time = 10800
proposals = aes256-sha256-modp2048
dpd_delay = 20s
dpd_timeout = 120s
unique=replace
}
}
secrets {
ike-1 {
id-moon = <redacted - strongswan FQDN>
id-sun = <redacted-strongswan FQDN>
secret = Str0ntsW@n-S3cR3t
}
}
EOF
cd /root
echo "/etc/swanctl/swanctl.conf" > swanctl.conf.donde
cat > vpn-siemens-start.sh <<'EOF'
#!/bin/bash
/etc/init.d/ipsec start
sleep 1
swanctl --load-all
swanctl --initiate --child vpn-sico-to-siemens
EOF
cat > vpn-siemens-stop.sh <<'EOF'
#!/bin/bash
swanctl --terminate --ike "ike-1" --force
ps -efa | grep "c[h]aron" | expand | sed "s/ */ /g" | cut -d ' ' -f 2 | xargs kill
EOF
echo -e '#!/bin/bash\nswanctl --stats' > vpn-siemens-status.sh
chmod a+x vpn-siemens-start.sh vpn-siemens-stop.sh vpn-siemens-status.sh
NOTA: Lo de id-moon id-sun no es necesario y se pueden borrar dichas líneas. Se usa sólo si es que hay claves diferentes para diferentes equipos (se ponen varios ike-loquesea cada uno con id-loquesea que corresponde al equipo que usa dicha clave). En nuestro caso sólo usamos el strongswan para una conexión, con lo que sólo hay una clave. Para arrancarloEn cloudy (3.0.1.48), como root: cd /root/ ./vpn-siemens-start.sh Para pararloEn cloudy (3.0.1.48), como root: cd /root/ ./vpn-siemens-stop.sh Para ver el logEn cloudy (3.0.1.48), como root: cd /root/ swanctl --stats swanctl --log |