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

21

Tengo problemas para encontrar información concreta y actualizada sobre cómo configurar strongswan o openswan para que el cliente VPN del iPhone lo use. Mi servidor está detrás de un enrutador NAT Linksys económico.

Encontré esto , pero menciona una gran cantidad de archivos .pem sin referencia sobre cómo crearlos. Desafortunadamente, los manuales "buenos" para ambos paquetes eran bastante inescrutables y poco amigables para un novato. Configuré OpenVPN antes y logré obtener resultados útiles muy rápidamente, pero después de un día y medio de lectura de documentos desactualizados, apenas sé por dónde empezar.

Cualquier ayuda sería muy apreciada!

Shabbyrobe
fuente

Respuestas:

23

¿Esto ayuda?
Saludos, Willem M. Poort

StrongSwan mini Howto Debian 5

install strongswan + openssl
apt-get install strongswan openssl

Crea tu 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 de CA estén en formato DER binario, el siguiente comando logra esta transformación:

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

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

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

Cambie los parámetros para adaptarse 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 faltantes:

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

Firma por dos años:

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

Por lo general, un cliente VPN basado en Windows necesita su clave privada, su certificado de host o usuario y el certificado de CA. La forma más conveniente de cargar esta información es poner 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. Importe el certificado de cliente de iPhone en formato p12
  2. Importe el certificado de CA en formato pem
  3. Configure una VPN IPSEC con el Certificado de cliente de iPhone y use como Servidor el Nombre DNS (Nombre DynDNS). Tiene que ser el mismo que el del Certificado de servidor

Para importar los certificados en su iPhone, ¡simplemente envíelos por correo electrónico! Al crear el ipsec vpn en su iphone, puede seleccionar el certificado.

Tenga en cuenta que necesita configurar iptables si desea NAT. (Mira en fwbuilder)

Willem M. Poort
fuente
1
+1 brillante. Investigaré esto cuando tenga algo de tiempo durante las vacaciones y vuelva a contactarlo. Muchísimas gracias por la ayuda.
Shabbyrobe
Hola, tnx Willem M. Poort, utilicé tu mini-howto para intentar conectar mi iphone y mi servidor vpn con ubuntu 10.10 pero algo salió mal ... ¿tienes alguna guía o enlace más específico que sugerir? tnx de nuevo! Fabio