21 votos

¿Cómo configurar strongswan o openswan para IPSEC puro con cliente iPhone?

Tengo problemas para encontrar información concreta y actualizada sobre cómo configurar strongswan u openswan para que los utilice el cliente VPN del iphone. Mi servidor está detrás de un router linksys NAT presupuesto.

He encontrado este pero menciona un montón de archivos .pem sin ninguna referencia sobre cómo crearlos. Desafortunadamente, los manuales "finos" para ambos paquetes eran bastante inescrutables y poco amigables para un novato. He configurado OpenVPN antes y me las arreglé para obtener resultados útiles muy rápidamente, pero después de un día y medio de leer documentos desactualizados, apenas sé por dónde empezar.

Cualquier ayuda será muy apreciada.

23voto

Willem M. Poort Puntos 231

¿Esto ayuda?
Saludos, Willem M. Poort

StrongSwan mini Cómo Debian 5

install strongswan + openssl
apt-get install strongswan openssl

Cree su archivo CA:

cd /etc/ipsec.d
openssl req -x509 -days 3650 -newkey rsa:2048 -keyout \
private/strongswanKey.pem -out cacerts/strongswanCert.pem
cp cacerts/strongswanCert.pem certs/

Si prefiere que los certificados CA estén en formato DER binario, el siguiente comando consigue esta transformación:

openssl x509 -in cacerts/strongswanCert.pem -outform DER -out \ 
cacerts/strongswanCert.der

Editar /etc/ssl/openssl.conf ( /usr/lib/ssl/openssl.cnf es un enlace simbólico):

nano -w /usr/lib/ssl/openssl.cnf

Cambie los parámetros para adaptarlos a su entorno strongswan.

[ CA_default ] 

dir     = /etc/ipsec.d              # Where everything is kept 
certificate = $dir/cacerts/strongswanCert.pem       # The CA certificate 

private_key = $dir/private/strongswanKey.pem        # The private key 

Crear DIR y archivos que faltan:

mkdir newcerts
touch index.txt
echo “00” > serial

Generar un certificado de usuario:

openssl req -newkey rsa:1024 -keyout private/hostKey.pem \
    -out reqs/hostReq.pem

Fírmalo por dos años:

openssl ca -in reqs/hostReq.pem -days 730 -out \
    certs/hostCert.pem -notext

Normalmente, un cliente VPN basado en Windows necesita su clave privada, su certificado de host o de usuario y el certificado de CA. La forma más cómoda de cargar esta información es ponerlo todo en un archivo PKCS#12:

openssl pkcs12 -export -inkey private/hostKey.pem \
    -in certs/hostCert.pem  \
    -name "host" \ 
    -certfile cacerts/strongswanCert.pem \
    -caname "strongSwan Root CA" \
    -out host.p12

Editar /etc/ipsec.secrets :

:RSA strongswanKey.pem “pempassword”
:XAUTH user "secret"

Editar /etc/ipsec.conf :

config setup
    plutodebug=none
    uniqueids=yes
    nat_traversal=yes
    interfaces="%defaultroute"

conn %default
    authby=rsasig
    leftrsasigkey=%cert
    rightrsasigkey=%cert
    keyingtries=1
    keylife=20m
    ikelifetime=240m

conn iphone
    auto=add
    dpdaction=clear
    authby=xauthrsasig
    xauth=server
    pfs=no
    leftcert=strongswanCert.pem
    left=<serverip>
    leftsubnet=0.0.0.0/0
    right=%any
    rightsourceip=<virtual client ip>   #local VPN virtual subnet
    rightcert=hostCert.pem

En el iPhone

  1. Importar el certificado iphone-client en formato p12
  2. Importar el certificado CA en formato pem
  3. Configure una IPSEC-VPN con el Certificado iphone-client y utilice como Servidor el Nombre DNS (DynDNS-Name). Tiene que ser el mismo que el del Certificado-Servidor.

Para importar los certificados en tu iphone sólo tienes que enviártelos por correo electrónico. Al crear la vpn ipsec en tu iphone puedes seleccionar el certificado.

Ten en cuenta que necesitas configurar iptables si quieres NAT. (Mira en fwbuilder)

1 votos

+1 Brillante. Lo investigaré cuando tenga un poco de tiempo durante las vacaciones y te contestaré. Muchas gracias por la ayuda.

0 votos

Hola, tnx Willem M. Poort, he utilizado tu mini-howto para intentar conectar mi iphone y mi servidor vpn con ubuntu 10.10 pero algo ha ido mal... ¿tienes alguna guía más específica o algún enlace que sugerir? tnx de nuevo! Fabio

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X