Como configurar o strongswan ou o openswan para IPSEC puro com o cliente iPhone?

21

Estou tendo problemas para encontrar informações concretas e atualizadas sobre como configurar o strongswan ou o openswan para ser usado pelo cliente VPN do iphone. Meu servidor está protegido por um roteador NAT linksys de orçamento.

Encontrei isso , mas ele menciona um monte de arquivos .pem sem referência a como criá-los. Infelizmente, os manuais "bons" para ambos os pacotes eram bastante inescrutáveis ​​e hostis para um iniciante. Eu configurei o OpenVPN antes e consegui obter resultados úteis muito rapidamente, mas depois de um dia e meio de leitura de documentos desatualizados, mal sei por onde começar.

Qualquer ajuda seria muito apreciada!

Shabbyrobe
fonte

Respostas:

23

Isso ajuda?
Atenciosamente, Willem M. Poort

Manual do StrongSwan mini Debian 5

install strongswan + openssl
apt-get install strongswan openssl

Crie o seu arquivo 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/

Se você preferir que os certificados da CA estejam no formato binário DER, o seguinte comando alcançará essa transformação:

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

Editar /etc/ssl/openssl.conf ( /usr/lib/ssl/openssl.cnfé um link simbólico):

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

Altere os parâmetros para se ajustar ao seu ambiente de cisne forte.

[ 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 

Crie DIR e arquivos ausentes:

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

Gere um certificado de usuário:

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

Assine por dois anos:

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

Geralmente, um cliente VPN baseado no Windows precisa de sua chave privada, seu certificado de host ou usuário e o certificado CA. A maneira mais conveniente de carregar essas informações é colocar tudo em um arquivo 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

No iPhone

  1. Importar o certificado iphone-client no formato p12
  2. Importar o certificado da CA no formato pem
  3. Configure uma VPN IPSEC com o certificado iphone-client e use como servidor o nome DNS (nome DynDNS). Tem que ser o mesmo que o certificado do servidor

Para importar os certificados no seu iphone, basta enviá-los por e-mail para você! Ao criar o ipsec vpn no seu iPhone, você pode selecionar o certificado.

Lembre-se de que você precisa configurar o iptables se quiser o NAT. (Olhe para fwbuilder)

Willem M. Poort
fonte
1
+1 Brilhante. Vou analisar isso quando tiver algum tempo durante o feriado e voltar para você. Muito obrigado pela ajuda.
Shabbyrobe
Olá, tnx Willem M. Poort, usei o seu mini-howto para tentar conectar meu iphone e meu servidor vpn ao ubuntu 10.10, mas algo deu errado ... você tem um guia ou link mais específico a sugerir? TNX novamente! Fabio