Comment configurer strongswan ou openswan pour IPSEC pur avec un client iPhone?

21

J'ai du mal à trouver des informations concrètes et à jour sur la façon de configurer strongswan ou openswan à utiliser par le client VPN de l'iphone. Mon serveur est derrière un routeur NAT linksys budget.

J'ai trouvé cela , mais il mentionne tout un tas de fichiers .pem sans référence pour les créer. Malheureusement, les manuels «fins» pour les deux paquets étaient assez impénétrables et hostiles à un novice. J'ai déjà installé OpenVPN et j'ai réussi à obtenir des résultats utilisables très rapidement, mais après une journée et demie de lecture de documents obsolètes, je sais à peine par où commencer.

Toute aide serait grandement appréciée!

Shabbyrobe
la source

Réponses:

23

est-ce que cela aide?
Cordialement, Willem M. Poort

StrongSwan mini Howto Debian 5

install strongswan + openssl
apt-get install strongswan openssl

Créez votre fichier 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 vous préférez que les certificats CA soient au format DER binaire, la commande suivante réalise cette transformation:

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

Modifier /etc/ssl/openssl.conf ( /usr/lib/ssl/openssl.cnfest un lien symbolique):

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

Modifiez les paramètres en fonction de votre environnement 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 

Créez des fichiers DIR et des fichiers manquants:

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

Générez un certificat utilisateur:

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

Signez-le pour deux ans:

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

Habituellement, un client VPN Windows a besoin de sa clé privée, de son certificat d'hôte ou d'utilisateur et du certificat CA. Le moyen le plus pratique de charger ces informations est de tout mettre dans un fichier 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

Modifier /etc/ipsec.secrets:

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

Modifier /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

Sur l'iPhone

  1. Importez le certificat iphone-client au format p12
  2. Importez le certificat CA au format pem
  3. Configurez un VPN IPSEC avec le certificat client iphone et utilisez comme serveur le nom DNS (nom DynDNS). Il doit être le même que celui du Server-Certificate

Pour importer les certificats sur votre iphone, envoyez-les simplement par e-mail! Lors de la création du VPN IPSec sur votre iPhone, vous pouvez sélectionner le certificat.

Rappelez-vous que vous devez configurer iptables si vous souhaitez NAT. (Regardez dans fwbuilder)

Willem M. Poort
la source
1
+1 Brillant. J'examinerai cela lorsque j'aurai un peu de temps pendant les vacances et que je vous répondrai. Merci beaucoup pour l'aide.
Shabbyrobe
Salut, tnx Willem M. Poort, j'ai utilisé votre mini-howto pour essayer de connecter mon iphone et mon serveur vpn avec ubuntu 10.10 mais quelque chose s'est mal passé ... avez-vous un guide ou un lien plus spécifique à suggérer? tnx encore! Fabio