Bering, IPSec avec clefs RSA

Créer des tunnels IPSec à l'aide de clefs RSA...

Cette méthode peut être appliquée en même temps et en parallèle à l'usage des secrets prépartagés. Je vous recommande la lecture de la page précédente qui traite ce sujet : preshared_secrets.htm

                        ipsec configuration files

        1) IPSEC Main Configuration File
        2) Pluto Shared Secrets

  q) quit
  ----------------------------------------------------------------------------
        Selection:

Là encore, voyez les exemples laissés dans mes fichiers de configuration. Je passerai sous silence ce qui est déjà décrit dans la page relative aux phrases secrêtes prépartagées.

Comment ça marche ?

Voici un exemple de tunnel :

conn VE3BHFtoF6HQZ
        authby=rsasig
        left=%defaultroute
        leftsubnet=44.151.177.64/27
        leftfirewall=yes
        leftrsasigkey=0sAQOUJ7EANZKl2XSlf...
        leftid=@F6HQZ
        right=router.8inchfloppy.com
        rightsubnet=44.135.202.224/27
        rightfirewall=yes
        rightrsasigkey=0sAQNOi+qwOBgFHPbY...
        rightid=@VA3BHF
        esp=3des-md5-96
        auto=add

Le nom de la connexion est VE3BHFtoF6HQZ. C'est mon premier tunnel avec une zone radioamateur hors de nos frontières. Ce fût une première mondiale en ce qui concerne notre petit monde :-)

"authby=rsasig" signifie que les deux correspondants sont identifiés par leurs clefs RSA respectives.
Celles de la passerelles de sécurité sont enregistrées dans le fichier /etc/ipsec.secrets :

"leftrsasigkey=0sAQOUJ7EANZKl2XSlf..."
Notre clef RSA publique, voir plus bas.

"leftid=@F6HQZ"
l'identifiant de notre machine (arbitraire, mais pratique sous cette forme).

"rightid=@VA3BHF"
L'identifiant de mon camarade de jeux.

"rightrsasigkey=0sAQNOi+qwOBgFHPbY..."
La clef publique de notre correspondant à l'autre bout du tunnel, remise par lui-même dans un mail précédent.

Voyons maintenant notre fichier /etc/ipsec.secrets :

# This file holds shared secrets or RSA private keys for inter-Pluto
# authentication.  See ipsec_pluto(8) manpage, and HTML documentation.

80.13.8.11 212.180.113.45 : PSK "phrasesupersecreteprepartagee"
%any 44.151.177.94 : PSK "grossecretlepluslongpossible"


# RSA private key for this host, authenticating it to any other host
# which knows the public part.  Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with "ipsec showhostkey".
# -- Create your own RSA key with "ipsec rsasigkey" or :
# "ipsec newhostkey --output - --hostname bering > /newkey.txt"
# from another Debian full distro with freeswan installed and
# copy the output file into this ipsec.secrets file.
: RSA   {
        # RSA 2048 bits   bering   Thu Jun 10 21:56:18 2004
        # for signatures only, UNSAFE FOR ENCRYPTION
        #pubkey=0sAnjDWUZKl2XEAN/0afyq9vJIqXDAQOUJ7O8ycOfWx9cmTilSlWBiLM1deCOW5q
        #IN KEY 0x4200 4 1 AQOq/0afyq9vJIqXDAx9cmTilO8yAUJ7ECOW5NZKl2XSlWBiLM1de
        # (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
        Modulus: 0x9427b100e08e5b9abfd1a7f35923558188b39225752abdbca5d974aa5c303
        PublicExponent: 0x03
        # everything after this point is secret
        PrivateExponent: 0x18b741733393a90e40870f993754d9bfd56d0f441482ab3c74f4c
        Prime1: 0xc9dc86348fbf338521f40c47b9fe2b6f0147e92e3f1dff9a639f3ee3733855
        Prime2: 0xbbebdc968895dc660b4e03fd0d72e88153b919dec878de7c6b3285f0bfb2c2
        Exponent1: 0x869e193042306a2b2da7724a00beaa6bfc426aa7f77a29ecda9b742a4cd
        Exponent2: 0x7d428b9b06308f4b2a11e7ba5e9957fd3d47e3fa8745ab8cc5944078307
        Coefficient: 0x8e2fb96ee66813997b7df3bc5ba7d8d301fc6d385c1302b9584215ed5
        }
# do not change the indenting of that "}"

Voici la paire de clefs privée et publique qui sont utilisées par la passerelle IPSec locale, sous des phrases prépartagée présentées précédement.

A ne dévoiler sous aucun pretexte, à l'exception de la clef publique qui se trouve sur la ligne à partir du mot "pubkey=". Vous devez la copier telle quel, sans le début "pubkey=" jusqu'au bout de la ligne, et la coller après la déclaration "leftrsasigkey=" du fichier "/etc/ipsec.conf".

Pour créer ce jeux de clefs privée et publique, vous devez avoir un package IPSec complet sur un PC sous Linux et saisir l'instruction suivante en ligne de commande :

ipsec newhostkey --output - --hostname bering > /newkey.txt

Cette instruction enregistre des clefs sous un fichier "newkey.txt" ou de tout autre titre.
Vous n'avez plus qu'à le transférer dans votre routeur IPSec préféré et copier son contenu dans le fichier "/etc/ipsec.secrets" comme ci-dessus.

Le mode "opportunistic" éviterait toutes ces déclarations (pensez à la maintenance d'une centaine de tunnels), sauf le stockage de ces clefs RSA ou d'un certificat X509 :

conn me-to-anyone
        left=%defaultroute
        right=%opportunistic

Mais c'est une autre histoire... La prochaine probablement, si nous montons plusieurs microcellules wireless à usage exclusif radioamateurs de ce type...

A suivre...

Attention : n'oubliez pas de sauver votre package IPSec après modification !




Retour au Menu précédent

Home

73, de F6HQZ François BERGERET f6hqz-m@hamwlan.net


Dernière modif le : 08/27/06