Démon BSD

Documentation NetBSD :

IPsec et NetBSD

Cette page est en construction. Tous commentaires et suggestions sont les bienvenus.

FAQ IPsec

Autres liens


FAQ IPsec


Pour commencer (haut)

Le code Ipsec (protocole de sécurité IP) a été incorporé à la distribution NetBSD en juin 1999 et est inclus dans NetBSD 1.5 et suivants. IPsec garantie l'authentification et la confidentialité par paquet dans une communication. Il existe pour IPv6 et IPv4.

Notez que, pour pouvoir l'utiliser, le noyau doit être re-configuré. Cette caractéristique n'étant pas incluse dans le noyau GENERIC.

Les logiciels utilisateur comprennent le code IPsec par défaut là où c'est possible. Il n'est donc pas utile de les recompiler même si vous passez d'un noyau avec IPsec à un sans IPsec.

Si votre système date d'avant 1.5, votre situation est la suivante :

NOTE : Nous utilisons parfois le mot «sécurité IP» dans un sens plus large comme pare-feu IP, filtrage de paquets et ainsi de suite.

IPsec = AH + ESP + IPcomp + IKE (haut)

IPsec est formé de plusieurs protocoles différents : AH, ESP et IPcomp sont implémentés dans le noyau. IKE est un démon tournant avec les processus utilisateur. Le noyau et le démon coopèrent à l'aide d'une table de gestion de clés.

En fait, IKE est optionnel. Vous pouvez manuellement configurer les clés secrètes de AH et ESP. Mais prenez garde à une chose : n'utilisez pas la même clé définitivement. Si vous utilisez la même clé pendant longtemps, la confidentialité aura de plus en plus de chances d'être compromise.

NOTE : la sécurité des protocoles IPsec repose sur la confidentialité de clé secrètes. Si les clés sont découvertes, les protocoles IPsec ne sont plus sûrs. Faites attention aux autorisations d'accès des fichiers de configuration, de la base de données des clés et de tout ce qui peut causer des fuites d'informations.

Il existe deux ensembles de RFC. Celui qui concerne l'ancien IPsec commence au RFC1825 et le nouveau au RFC2401 (NDT : vous trouverez certains RFC traduits en français sur abcdrfc.free.fr). Comme NetBSD reconnait les deux, utilisez préférenciellement le nouvel IPsec.


    programmes utilisateur           démon IKE
          ^ | socket AF_INET{,6}          ^ |   socket PF_KEY
========= | | =========================== | | ======== frontière noyau/ utilisateur
          | v                             | v
       couche transport TCP/UDP        table de gestion de clés
          ^ |                             ^ | clé
          | |                             | |
          | v                             | v
       entrée/sortie IP logique <-------> AH/ESP/IPcomp logique
          ^ |
          | v
    Pilotes réseau (ethernet)

Mode transport et mode tunnel (haut)

AH, ESP et IPcomp fonctionnent dans deux modes : le mode transport et le mode tunnel. Le mode transport chiffre les communications entre deux interlocuteurs. Le mode tunnel encapsule les paquets dans de nouveaux en-têtes IPv4/v6. Il est conçu pour les passerelles VPN.
[[mode transport]]
ma machine ======== autre machine
	mode transport


paquets: [IP: moi->autre] données ESP utiles
                          <-----------------> chiffrées


[[mode tunnel]]
           (a)                     (b)                          (c)
ma machine ---- ma passerelle VPN ======== autre passerelle VPN ---- autre machine
			       mode tunnel

paquets en (a) : [IP: moi->autre] données utiles
paquets en (b): [IP: mapassrl->autrepassrl] ESP [IP: moi->autre] données utiles
                                            <----------------------------------> chiffré
paquets en (c): [IP: moi->autre] données utiles

«Politique» de gestion IPsec (haut)

Le noyau sait comment sécuriser les paquets mais il ne sait lesquels sécuriser. Nous devons donc le lui indiquer. La «Politique» de gestion IPsec est là pour que nous puissions établir nos spécifications.

La politique IPsec peut agir sur les paquets ou sur les sockets :

La politique IPsec décide quel protocole (AH, ESP ou IPcomp) utiliser pour un paquet. Vous pouvez configurer le noyau afin de mettre en place toute combinaison pour un paquet. Vous pouvez même appliquer un protocole plusieurs fois (comme plusieurs ESP sur un paquet). Il n'est pas évident que de multiples opérations ESP améliorent la sécurité mais cela peut être utilisé dans un but de test ou de débogage.

Configuration du noyau IPsec (haut)

Reportez-vous à traquer NetBSD-current pour plus de détails sur la compilation.
  1. Dans votre fichier de configuration, activez les options suivantes puis compilez un nouveau noyau.
    options IPSEC
    options IPSEC_ESP
    
  2. Compilez le noyau de la manière habituelle.
  3. Remplacez le noyau et redémarrez.

Les outils utilisateur gèrent IPsec par défaut. Aucune compilation supplémentaire n'est donc nécessaire.

Vous pouvez éventuellement aussi installer racoon et/ou isakmpd.

Exemples de configuration : chiffrage machine-machine (haut)

Si vous voulez lancer le chiffrage machine-machine (mode transport) en utilisant des clés configurées manuellement, les paramètrages suivants doivent être suffisants. Nous utilisons setkey(8) pour la configuration manuelle des clés.
#! /bin/sh
#
# les paquet ressemblent à : IPv4 ESP données utiles
# le noeud est 10.1.1.1, l'autre machine 20.1.1.1
setkey -c <<EOF
add 10.1.1.1 20.1.1.1 esp 9876 -E 3des-cbc "hogehogehogehogehogehoge";
add 20.1.1.1 10.1.1.1 esp 10000 -E 3des-cbc 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef;
spdadd 10.1.1.1 20.1.1.1 any -P out ipsec esp/transport//use;
EOF

Les deux premières lignes définissent les clés secrètes utilisées par ESP. Le nombre décimal, en quatrième position, est appelé SPI (security parameter index : index du paramètre de sécurité). Sa valeur sera inscrite dans les paquets ESP afin que la partie recevante puisse trouver la clé correspondante. Ce numéro doit être unique dans un noeud.

La dernière ligne configure la politique IPsec par paquet pour ce noeud. Les paquets envoyés par (10.1.1.1) à (20.1.1.1) seront chiffrés avec la clé définie dans le noyau. Il n'est pas interdit que des paquets non-chiffrés envoyés par 20.1.1.1 atteignent 10.1.1.1. Si vous voulez qu'ils soient rejetés, ajoutez la ligne suivante :

spdadd 10.1.1.1 20.1.1.1 any -P in ipsec esp/transport//require;

De l'autre côté (sur 20.1.1.1), la configuration est la suivante. Notez que les adresses doivent être inversées sur la ligne «spdadd» et non sur les lignes «add».

#! /bin/sh
#
# les paquet ressemblent à : IPv4 ESP données utiles
# le noeud est 20.1.1.1, l'autre machine 10.1.1.1
setkey -c <<EOF
add 10.1.1.1 20.1.1.1 esp 9876 -E 3des-cbc "hogehogehogehogehogehoge";
add 20.1.1.1 10.1.1.1 esp 10000 -E 3des-cbc 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
spdadd 20.1.1.1 10.1.1.1 any -P out ipsec esp/transport//use;
EOF

La syntaxe de la configuration de la politique est décrite dans ipsec_set_policy(3).

Lancez tcpdump(8) pour voir les paquets qui circulent sur le câble. S'ils sont chiffrés, il ne sera plus possible de les mettre sur écoute.

L'exemple ci-dessus utilise des clés lisibles. Leur utilisation est désencouragée par les spécifications car elles sont plus faciles à forcer que des clés binaires. Dans un contexte réel, mieux vaut donc utiliser des clés binaires.

La taille des clés est déterminée par les algorythmes. Pour 3des-cbc, par exemple, la clé DOIT faire 192 bits (24 octets). Si vous en indiquez une plus courte ou plus longue, setkey(8) vous renverra une erreur.

Si vous préférez utiliser d'autres algorythmes, la configuration est similaire. Voici un exemple avec rijndael-cbc (alias AES). rijndael-cbc utilise des clés de 128, 192 ou 256 bits.

#! /bin/sh
#
# les paquet ressemblent à : IPv4 ESP données utiles
# le noeud est 10.1.1.1, l'autre machine 20.1.1.1
# rijndael-cbc avec clé de 128 bits
setkey -c <<EOF
add 10.1.1.1 20.1.1.1 esp 9876 -E rijndael-cbc "hogehogehogehoge";
add 20.1.1.1 10.1.1.1 esp 10000 -E 3des-cbc 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef
spdadd 10.1.1.1 20.1.1.1 any -P out ipsec esp/transport//use;
EOF

Exemple de configuration : authentification machine-machine (haut)

Vous configurez AH de la même manière que ESP.
#! /bin/sh
#
# les paquet ressemblent à : IPv4 AH données utiles
# le noeud est 10.1.1.1, l'autre machine 20.1.1.1
setkey -c <<EOF
add 10.1.1.1 20.1.1.1 ah 9877 -A hmac-md5 "hogehogehogehoge";
add 20.1.1.1 10.1.1.1 ah 10001 -A hmac-md5 "mogamogamogamoga";
spdadd 10.1.1.1 20.1.1.1 any -P out ipsec ah/transport//use;
EOF

Exemple de configuration : authentification + chiffrage machine-machine (haut)

Si vous définissez des clés secrètes à la fois pour AH et ESP, vous pouvez utilisez ces deux protocoles. La documentation IPsec recommande d'utiliser AH après ESP.
#! /bin/sh
#
# les paquet ressemblent à : IPv4 AH données utiles
# le noeud est 10.1.1.1, l'autre machine 20.1.1.1
setkey -c <<EOF
add 10.1.1.1 20.1.1.1 esp 9876 -E 3des-cbc "hogehogehogehogehogehoge";
add 20.1.1.1 10.1.1.1 esp 10000 -E 3des-cbc 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef;
add 10.1.1.1 20.1.1.1 ah 9877 -A hmac-md5 "hogehogehogehoge";
add 20.1.1.1 10.1.1.1 ah 10001 -A hmac-md5 "mogamogamogamoga";
spdadd 10.1.1.1 20.1.1.1 any -P out ipsec esp/transport//use ah/transport//use;
EOF

Exemple de configuration : IPsec VPN (haut)

Avant tout, voici un certain nombre de problèmes avec la configuration IPsec VPN.

L'exemple qui suit considère la configuration réseau suivante. Les buts sont :

((( 10.0.1.0/24 )))	réseau VPN, branche Tokyo
  |10.0.1.1
passerelle 1
  |20.0.0.1
  |tunnel IPsec
  |20.0.0.2
passerelle 2
  |10.0.2.1
((( 10.0.2.0/24 )))	réseau VPN, le siège à New York

Voici la configuration de la passerelle 1.

#! /bin/sh
#
#Notez que le routage doit exister. Pour notre exemple :
#	route -n add -net 10.0.2.0 10.0.2.1
#	route -n add 10.0.2.1 10.0.1.1
# les paquets ressemblent à : IPv4 ESP IPv4 données-utiles
# le noeud est 10.0.1.1/20.0.0.1, l'autre machine 10.0.2.1/20.0.0.2
setkey -c <<EOF
add 20.0.0.1 20.0.0.2 esp 13245 -E blowfish-cbc "blowfishtest.001" ;
add 20.0.0.2 20.0.0.1 esp 13246 -E blowfish-cbc 0xdeadbeefdeadbeefdeadbeefdeadbeef;
spdadd 10.0.1.0/24 10.0.2.0/24 any -P out ipsec esp/tunnel/20.0.0.1-20.0.0.2/require ;
spdadd 10.0.2.0/24 10.0.1.0/24 any -P in ipsec esp/tunnel/20.0.0.2-20.0.0.1/require ;
EOF

(contribution de Per Harald Myrvang)

Exemple de configuration : tunnel Leaf-node (haut)

Le mode tunnel peut être utilisé dans la situation où tout le frafic doit être crypté entre un noeud du réseau (leaf node) et le routeur suivant mais pas au delà (par exemple d'un noeud sans fil à un routeur puisque le WEP 802.11 ne s'y prète pas).

Pour ce noeud (leaf node), utilisez :

#! /bin/sh
#
# le noeud est en 10.0.1.5, le routeur en 10.0.1.1
setkey -c <<EOF
add 10.0.1.1 10.0.1.5 esp 1011 -E rijndael-cbc "rijndaeltest.001" ;
add 10.0.1.5 10.0.1.1 esp 1012 -E rijndael-cbc 0xdeadbeefdeadbeefdeadbeefdeadbeef;
spdadd 10.0.1.5/32 0.0.0.0/0 any -P out ipsec esp/tunnel/10.0.1.5-10.0.1.1/require;
spdadd 0.0.0.0/0 10.0.1.5/32 any -P in ipsec esp/tunnel/10.0.1.1-10.0.1.5/require;
EOF

Pour le routeur, intervertissez les mots «in» et «out» des commandes «spdadd».

Définir les clés AH/ESP avec IKE (haut)

Voici la description de la configuration suivante :

Veuillez suivre les étapes soigneusement. Lancez tcpdump(8) pour voir comment les paquets sont échangés entre deux machines. Les statistiques de «netstat -sn» sont aussi utiles pour voir comment fonctionne la partie IPsec du noyau.

  1. Compilez et installez racoon, plus récent que 20000923a.
  2. Copiez /usr/pkg/share/examples/racoon/racoon.conf.sample dans /etc/racoon/racoon.conf. Modifiez les paramètres de racoon.conf à votre convenance. Il est VRAIMENT vital que les deux interlocuteurs utilisent la même configuration, les différences devront être réduites au minimum.
  3. racoon obéit aux paramètres de la politique IPsec lorsqu'il échange les clés IPsec. Nous devons donc définir ces dernières à l'aide de setkey(8). Sur la machine A, configurez la politique IPsec de cette façon. Dans cet exemple, «A» et «B» sont les adresse IP numériques v4 ou v6 des interlocuteurs.
    A# setkey -c
    spdadd A B any -P out ipsec esp/transport//require;
    spdadd B A any -P in ipsec esp/transport//require;
    ^D
    
  4. Sur la machine A, configurez la politique IPsec de cette façon, en utilisant setkey(8) :
    B# setkey -c
    spdadd B A any -P out ipsec esp/transport//require;
    spdadd A B any -P in ipsec esp/transport//require;
    ^D
    
  5. Sur les deux machines, préparez un fichier contenant les clés. Il est RÉELLEMENT crutial que les permissions d'accès accordées à ces fichiers soient soigneusement choisies. Autrement, IPsec ne servirait à rien d'autre qu'à faire perdre du temps au processeur. (racoon ne lira d'ailleurs pas de fichiers dont les autorisations ne sont pas assez strictes). Ici aussi, «A» et «B» sont les adresse IP numériques v4 ou v6 des interlocuteurs.
    A# cat >/etc/racoon/psk.txt
    B	spamspamspam
    ^D
    A# chmod 600 /etc/racoon/psk.txt
    
    B# cat >/etc/racoon/psk.txt
    A	spamspamspam
    ^D
    B# chmod 600 /etc/racoon/psk.txt
    
  6. Lancez /usr/pkg/sbin/racoon. Si vous voulez voir les messages de débogage, utilisez les arguments comme :
    # /usr/pkg/sbin/racoon -f /etc/racoon/racoon.conf -d 0xffffffff
    
  7. Echangez des paquets entre A et B. racoon affichera des messages sur la console et la clé sera établie.
    A# ping -n B
    (vous commencerez à avoir des réponses au bout d'un certain délais)
    ^C
    A# setkey -D
    (vous verrez les clés échangées par racoon)
    
racoon échangera les clés suivant la définition de la politique. En la modifiant, il est facile de configurer d'autres cas. L'exemple suivant établie les clés pour la situation suivante : Si vous rencontrez des problèmes avec cette configuration, activez les enregistrements complets de débogage (racoon -d 0xffffffff) et cherchez l'erreur. Toute différence peut mener à un échange infructueux.

Mise en place des clé manuelles et de la politique IPsec au démarrage (haut)

rc.conf(5) possède une entrée pour IPsec appelée «ipsec». En indiquant ipsec=YES, la commande ci-après sera exécutée pendant le démarrage, avant toute activité réseau :
/sbin/setkey -c < /etc/ipsec.conf
Par exemple, vous pouvez monter /usr par NFS chiffré. Le fichier /etc/ipsec.conf doit contenir les commandes valides de setkey(8), similaires à celles de l'exemple ci-dessus mais sans les sections setkey -c < ... EOF.

Interaction avec ipfilter (haut)

NetBSD implémente ipf(4), ipfilter de Darren Read. ipf(4) filtre les paquets et le fonctionnement de la politique IPsec est intrinsèquement identique. De ce fait, ces deux fonctions entrent en conflit.

Depuis NetBSD 1.5, ipf(4) et le mode tunnel d'IPsec ne s'entendent pas. Veuillez ne pas configurer une machine avec des règles de filtrage ipf(4) et le mode tunnel de IPsec (comme «passerelle NAT et IPsec en même temps»). Le problème est dû au fait que ipf(4) regarde les paquets encapsulé et non-encapsulés, rendant impossible la mise en place de règles de filtrages.

Depuis février 2001, dans NetBSD-current, l'interaction ipf(4)/IPsec a été clarifiée de la façon suivante :

  • ipf(4) consulte les paquet au format câble uniquement. Il les consulte avant le traitement IPsec sur les paquets entrants et après IPsec sur les paquets sortants.

Malgré l'ordre d'exécution, prêtez attention aux points suivants :

  • Si vous voulez que les paquets IPsec traversent ipf(4), n'établissez pas de règle ipf(4) qui les refuse. Vous devez laisser passer les paquets IP possédant le numéro de protocole approprié (50 pour ESP, 51 pour AH). NOTE : les numéros de protocoles sont complètement différents des numéros de port TCP/UDP.
  • Les paquets venant de périphériques tunnel (gif(4) et ipip(4)) continuent à passer par ipf(4). Vous devez identifier ces paquets en indiquant une directive nom d'interface dans ipf.conf(5).
Cette amélioration sera présente dans NetBSD 1.6 et 1.5.1 (et au delà).

Le diagramme suivant résume la nouvelle façon de faire.

Traitement du flux entrant :
        programmes                    démon IKE
          ^ socket AF_INET{,6}            ^ | socket PF_KEY
========= | ============================= | | ======== frontière noyau/utilisateur
          |                               | v
      couche transport, TCP/UDP        table de gestion de clés
          ^                               ^ | clé
          |                               | |
          |                               | v
  +-----entrée/sortie IP  <-------> AH/ESP/IPcomp
  v       ^          ^                      |
 périph   |          +----------------------+  packets IPsec décapsulés
 tunnel   |
  |     règles ipfilter
  |       ^
  +------>|
          |
        Pilote réseau (ethernet)

Traitement du flux sortant :
        programmes                      démon IKE
            | socket AF_INET{,6}          ^ | socket PF_KEY
=========== | =========================== | | ======== frontière noyau/utilisateur
            v                             | v
       couche transport, TCP/UDP        table de gestion de clés
            |                             ^ | clé
            |                             | |
            v                             | v
  +---->entrée/sortie IP <------------> AH/ESP/IPcomp
  |         |                           (encapsulation par tunnel IPsec)
périph      |
tunnel      |
  |     règles ipfilter
  |         |
  +---------+
            v
        Pilote réseau (ethernet)

Pièges communs et techniques de débogage (haut)

  • Certaines personnes confondent les trois notions suivantes. Prenez vos précautions si vous interagissez avec d'autres implémentations. Si vous les mélangez, vous serez incapable de mettre en place une configuration valide. Suivant la documentation, vous trouverez sans doutes des mots différents (soupir).
    • IPsec avec clé manuelle
      Dans le cas de NetBSD, la clé est définie à l'aide de setkey(8). Elle ne changera pas au cours du temps.
    • IPsec avec IKE et secret pré-partagé
      Dans le cas de NetBSD, nous utilisons racoon. L'interlocuteur est authentifié grâce au secret pré-partagé. racoon définie ensuite la clé IPsec dynamiquement et l'installe dans le noyau. La clé IPsec change au cours du temps.
    • IPsec avec IKE et certificats
      Dans le cas de NetBSD, nous utilisons racoon. L'interlocuteur est authentifié grâce au fichier certificat. racoon définie ensuite la clé IPsec dynamiquement et l'installe dans le noyau. La clé IPsec change au cours du temps.
  • La configuration d'IPsec N'EST PAS FACILE. Il existe énormément de boutons avec lesquels jouer et le débogage est rendu difficile de par la nature anti-écoute d'IPsec. Dans l'ensemble, en traquant les paquets, il est impossible de deviner ce qu'il se passe. Lisez des livres, de la documentation standard, des RFC, engagez des consultants... avant d'essayer de le configurer.
  • Lancez toujours tcpdump lorsque vous débuguez le réseau. Même si le trafic est chiffré, vous pouvez quand même voir si le paquet passe sur le câble ou non.
  • netstat(1) est votre ami. Lancez netstat -sn et vérifiez les compteurs de paquets IPsec.
  • Si vous avez du mal à faire tourner racoon, lancez-le avec le maximum de messages et consultez-les. (arguments de la ligne de commandes -d 0xffffffff)
  • Vous devez paramètrer NetBSD exactement de la même façon que l'interlocuteur pour qu'ils puissent inter-agir. Votre paquet doit être généré en utilisant le même protocole et le même algorythme que celui qu'attend le destinataire. Si ce n'est pas le cas, les erreurs que vous obtiendrez seront très difficiles à interpréter. Avec IPsec, les erreurs de chiffrage et d'authenticications sont calquées sur les abandons de paquets. Les problèmes de configurations feront que les paquets seront abandonnés au bord de la route sans indications. tcpdump ne vous aidera pas d'avantage puisque le contenu du paquet sera désormais indéchiffrable. Assurez-vous bien soigneusement que vos paramètres sont bien identiques à ceux de votre interlocuteur.

Problèmes connus (haut)

  • Le mode tunnel de AH ne fonctionne pas comme il devrait à cause de restrictions dans le gestionnaire de la politique IPsec du noyau. N'utilisez pas le mode tunnel d'AH.
  • racoon est en cours de développement et certaines caractéristiques sont manquantes ou à affiner. Consultez pkg/DESCR fourni avec racoon pour plus d'informations.
  • Les codes d'IPsec et ipf(4) se supportent mal l'un l'autre. Voyez "Interaction avec ipfilter" pour les détails.
  • Les règles de la politique IPsec n'ont pas été suffisamment testées pour les protocoles autres que tcp/udp. Utilisez le protocole «any» (= seule l'adresse correspond) pour être plus sûr. Le problème est général à tous les filtres de paquets (les descriptions de filtres normaux supportent mal les chaines d'en-tête).

Conformité aux standards, interactions (haut)

L'implémentation IPsec KAME (celle incluse dans NetBSD) est conforme aux derniers standards d'IPsec. La page KAME's NetBSD Implementation Note contient la liste complète des documents standards auxquels elle se conforme.

L'interaction avec d'autres implémentations a été confirmée à diverses occasions. La page KAME's NetBSD Implementation Note liste les implémentations avec lesquelles l'interaction correcte a été confirmée par le passé. Notez cependant que, des deux cotés, le code a pu être changé depuis les tests et qu'il soit devenu incompatible. Il est aussi possible que l'implémentation de NetBSD et celle de l'interlocuteur n'interagisse que dans certaines configurations.

Si vous tentez de faire dialoguer NetBSD avec une implémentation différente, notez bien que les spécifications d'IPsec mettent en place énormément de boutons avec lesquels jouer. Vous devez configurer NetBSD et son interlocuteur exactement de la même façon afin qu'ils se comprennent.

Compatibilité des API avec d'autres piles IPsec (haut)

Si vous écrivez des programmes reconnaissant IPsec, vous pourriez être intéressé par leur compatibilité entre les différentes plateformes IPsec.

L'API PF_KEY RFC2367 permet de manipuler la base de données des clés secrètes du noyau. La base de ces API est commune aux autres piles IPsec Unix et peut être compatible à certains degrés (par exemple, OpenBSD implémente aussi l'API PF_KEY). KAME l'étend d'une certaine façon, comme d'autres le font. Mais ces extensions ne sont pas compatibles avec d'autres piles IPsec (non KAME).

Il n'existe aucun document définissant une API de gestion de la politique IPsec. Nous ne pouvons donc attendre aucune compatibilité avec d'autres piles IPsec (non KAME) dans la gestion de la politique.

Il n'existe aucun standard définissant la syntaxe des fichiers de configuration. Il vous faudra les convertir si vous voulez les transférer vers ou depuis un autre système que NetBSD.

Comme NetBSD et FreeBSD ont tiré la base de leur code IPsec de son origine (KAME), il y a de grandes chances pour que les API soient compatibles. Notez cependant qu'il y a une différence entre le code IPsec de NetBSD et le code IPsec de FreeBSD, ceux-ci ayant été intégrés à des dates différentes. A l'heure où ces lignes sont écrites, les applications normales n'ont pas à se soucier de ces différences.

  • NetBSD 1.5 a incorporé la pile IPsec KAME début juin 2000.
  • FreeBSD 4.0-RELEASE a incorporé la pile IPsec KAME début novembre 1999.
  • Il n'y a aucune différence dans la configuration manuelle de clé IPsec, dans le comportement du noyau avec AH/ESP ni dans l'API ipsec_set_policy(3).
  • Il y a des différences dans le comportement du socket PF_KEY, dans l'API libipsec des fonction wrapper de PF_KEY et dans d'autres endroits. Ces différences sauteront aux yeux si vous implémentez une application qui manipule directement les socket PF_KEY (par exemple un démon IKE comme racoon ou un programme de définition de clé comme setkey(8)).

Durant le développement de NetBSD-current, entre NetBSD 1.4 et NetBSD 1.5, nous avons importé des portions de l'arborescence IPsec KAME. Ces imports rompent la compatibilité ascendante des API. Assurez-vous d'utiliser le code le plus récent si vous utilisez NetBSD-current entre NetBSD 1.4 et NetBSD 1.5. Avec NetBSD 1.5, nous assurerons une compatibilité binaire complète ou une vérification de numéro de version, dans les API de NetBSD 1.5.

Livres et autres lectures (haut)

Il existe littéralement des tonnes de livres sur le marché. Pour faire un recherche en France :

Retour vers la Documentation NetBSD : Réseau
Accueil
Accueil Documentation

(Nous contacter) $NetBSD: index.html,v 1.13 2006/06/22 15:49:10 jschauma Exp $
Copyright © 1998-2003 par la Fondation NetBSD, Inc. TOUS DROITS RÉSERVÉS.