Guide d'administration système : services IP

Partie IV IPsec

Cette section met l'accent sur la sécurité à l'échelle du réseau. L'architecture IPsec (IP security) protège le réseau au niveau du paquet. IKE (Internet Key Exchange, échange de clé Internet) gère les clés pour IPsec. Oracle Solaris IP Filter contient un pare-feu.

Chapitre 19 Architecture IPsec (présentation)

L'architecture IPsec (IP security) offre la protection cryptographique des datagrammes IP dans les paquets réseau IPv4 et IPv6.

Le présent chapitre contient les informations suivantes :

Pour implémenter IPsec sur votre réseau, reportez-vous au Chapitre 20Configuration d'IPsec (tâches). Pour des informations de référence, reportez-vous au Chapitre 21Architecture IPsec (référence).

Nouveautés IPsec

Solaris 10 4/09 : À partir de cette version, l'utilitaire de gestion des services (SMF) gère IPsec en tant qu'ensemble de services.

Par défaut, deux services IPsec sont activés lors de l'initialisation du système :

Par défaut, les services de gestion des clés sont désactivés à l'initialisation du système :

Pour activer les stratégies IPsec sous SMF, effectuez les étapes suivantes :

  1. Ajoutez des entrées de stratégie IPsec au fichier ipsecinit.conf.

  2. Configurez le protocole IKE (Internet Key Exchange) ou configurez manuellement les clés.

  3. Actualisez le service de stratégie IPsec.

  4. Activez le service de gestion des clés.

Pour plus d'informations sur l'utilitaire SMF, reportez-vous au Chapitre 18, Managing Services (Overview) du System Administration Guide: Basic Administration. Voir aussi les pages de manuel smf(5) et svcadm(1M).

À partir de cette version, les commandes ipsecconf et ipseckey ont une option -c permettant de vérifier la syntaxe de leurs fichiers de configuration respectifs. De plus, le profil de droits Network IPsec Management est fourni pour administrer IPsec et IKE.

Solaris 10 7/07 : À partir de cette version, IPsec implémente entièrement les tunnels en mode Tunnel et les utilitaires de prise en charge des tunnels sont modifiés.

Solaris10 1/06 : à partir de cette version, IKE est entièrement compatible avec la prise en charge NAT-Traversal comme décrit dans le document RFC 3947 et RFC 3948. Les opérations IKE utilisent la bibliothèque PKCS #11 à partir de la structure cryptographique, ce qui améliore les performances.

La structure cryptographique fournit un fichier keystore de clés softtoken pour les applications qui utilisent le métaconnecteur. Lorsque IKE utilise le métaconnecteur, vous avez la possibilité de stocker les clés sur un disque, sur une carte connectée ou dans le fichier keystore de clés softtoken.

Introduction à IPsec

Pour protéger les paquets IP, IPsec les chiffre et/ou les authentifie. IPsec s'exécute au sein du module IP, bien en dessous de la couche d'application. Par conséquent, une application Internet peut tirer profit d'IPsec sans pour autant avoir à modifier sa configuration. Une utilisation à bon escient d'IPsec en fait un outil efficace de sécurisation du trafic réseau.

La protection IPsec implique cinq composants principaux :

IPsec applique les mécanismes de sécurité aux datagrammes IP circulant en direction de l'adresse IP de destination. À l'aide des informations contenues dans la base de données SADB, le destinataire vérifie que les paquets entrants sont légitimes et les déchiffre. Les applications peuvent appeler IPsec pour appliquer les mécanismes aux datagrammes IP au niveau de chaque socket.

Notez que le comportement des sockets diffère en fonction des ports :

RFC IPsec

Le groupe IETF (Internet Engineering Task Force) a publié un certain nombre de documents RFC (Request for Comments, demande de commentaires) décrivant l'architecture de sécurité de la couche IP. Tous les RFC constituent la propriété intellectuelle de l'Internet Society. Pour plus d'informations sur les RFC, reportez-vous au site Web http://ietf.org/. Les références de sécurité IP les plus générales sont couvertes par les RFC suivants :

Terminologie IPsec

Les documents RFC IPsec définissent un certain nombre de termes qui s'avèrent utiles lors de l'implémentation d'IPsec sur des systèmes. Les tableaux suivants répertorient les termes IPsec, leur acronyme et leur définition. Le Tableau 22–1 dresse la liste des termes de négociation de clé.

Tableau 19–1 Termes IPsec, acronymes et usages

Terme IPsec 

Acronymes 

Définition 

Association de sécurité 

SA (Security Association) 

Connexion unique entre deux nœuds sur un réseau. La connexion est définie par les trois éléments suivants : un protocole de sécurité, un index de paramètre de sécurité et une destination IP. La destination IP peut être une adresse IP ou un socket. 

Base de données d'associations de sécurité 

SADB (Security Associations Database) 

Base de données contenant toutes les associations de sécurité actives. 

Index de paramètre de sécurité 

SPI (Security Parameter Index) 

Valeur d'indexation d'une association de sécurité. Une SPI est une valeur 32 bits qui différencie les SA partageant une destination IP et un protocole de sécurité. 

Base de données de stratégie de sécurité

SPD (Security Policy Database) 

Base de données déterminant si les paquets entrants et sortants présentent le niveau de protection spécifié. 

Échange de clés 

 

Processus de génération de clés pour les algorithmes cryptographiques asymétriques. Les principales méthodes utilisées sont les protocoles RSA et Diffie-Hellman. 

Protocole Diffie-Hellman 

DH 

Protocole d'échange de clés impliquant la génération et l'authentification de clés et souvent appelé échange de clés authentifiées.

Protocole RSA 

RSA 

Protocole d'échange de clés impliquant la génération et la distribution de clés, Ce protocole porte le nom de ses trois créateurs : Rivest, Shamir et Adleman. 

Association de sécurité Internet et protocole de gestion des clés 

ISAKMP (Internet Security Association and Key Management Protocol) 

Structure courante d'établissement du format des attributs SA, et de négociation, modification et suppression des SA. ISAKMP est le standard IETF de gestion des SA IPsec. 

Flux de paquets IPsec

La Figure 19–1 illustre la procédure suivie par un paquet adressé IP, en tant que partie intégrante d'un datagramme IP lors d'un appel IPsec sur un paquet sortant. Le diagramme du flux indique l'endroit auquel les en-têtes d'authentification AH et les associations de sécurité ESP sont susceptibles d'être appliqués au paquet. Les méthodes d'application de ces entités et de sélection des algorithmes sont décrites dans les sections suivantes.

La Figure 19–2 illustre le processus entrant IPsec.

Figure 19–1 Application d'IPsec au processus de paquet sortant

Le diagramme du flux indique que le paquet sortant est protégé d'abord par ESP, puis par AH. Le paquet se dirige ensuite vers un tunnel ou une interface physique.

Figure 19–2 Application d'IPsec au processus de paquet entrant

Le diagramme du flux indique qu'IPsec traite d'abord l'en-tête AH, puis l'en-tête ESP sur les paquets entrants. Tout paquet dont la protection est insuffisante est abandonné.

Associations de sécurité IPsec

Uneassociation de sécurité (SA, Security Association) IPsec spécifie les propriétés de sécurité que reconnaissent les hôtes lors de la communication. Une seule SA protège les données dans une direction. La protection s'applique à un seul hôte ou à une adresse de groupe (multidiffusion). La communication s'effectuant généralement entre homologues ou entre client et serveur, la sécurité du trafic dans les deux directions requiert la présence de deux SA.

Les trois éléments suivants identifient une SA IPsec de manière unique :

Le SPI, valeur arbitraire 32 bits, est transmis avec un paquet AH ou ESP. Les pages de manuel ipsecah(7P) et ipsecesp(7P) expliquent l'étendue de la protection AH et ESP. Une somme de contrôle d'intégrité permet d'authentifier un paquet. En cas d'échec de l'authentification, le paquet est rejeté.

Les associations de sécurité sont stockées dans une base de données d'associations de sécurité (SADB). Un moteur d'administration socket, l'interface PF_KEY, autorise les applications privilégiées à gérer la base de données. Par exemple, l'application IKE et la commande ipseckeys font appel à l'interface socket PF_KEY.

Gestion des clés dans IPsec

Les associations de sécurité (SA) requièrent des numéros de clé pour l'authentification et le chiffrement. Le processus permettant de gérer ces numéros de clés est appelé la gestion des clés. Le protocole IKE (Internet Key Exchange, échange de clé Internet) gère les clés automatiquement. La commande ipseckey permet la gestion manuelle des clés, le cas échéant.

Les SA sur les paquets IPv4 et IPv6 peuvent recourir à chacune des méthodes. Il est recommandé d'utiliser la gestion automatique à moins d'avoir une bonne raison de préférer la gestion manuelle. Par exemple, la gestion manuelle de clés s'impose dans le cadre d'interopérations avec des systèmes autres que les systèmes Solaris.

Dans la version actuelle, l'utilitaire SMF fournit les services de gestion de clés pour IPsec :

Dans les versions antérieures à la version Solaris 10 4/09, les commandes in.iked et ipseckey permettent de gérer les numéros de clé.

Mécanismes de protection IPsec

IPsec offre deux protocoles de sécurité dans le cadre de la protection des données :

AH protège les données à l'aide d'un algorithme d'authentification. ESP protège les données à l'aide d'un algorithme de chiffrement, mais peut avoir recours à un algorithme d'authentification facultatif. On appelle mécanisme l'implémentation d'un algorithme.

En-tête Authentification

L'en-tête d'authentification offre l'authentification des données, un niveau élevé d'intégrité et la protection de rediffusion des datagrammes IP. AH protège la majeure partie du datagramme IP. Comme l'illustre la figure suivante, AH est inséré entre l'en-tête IP et l'en-tête de transport.

Dans le diagramme, l'en-tête AH apparaît entre les en-têtes IP et TCP.

L'en-tête de transport peut être TCP, UDP, SCTP ou ICMP. Dans le cas de l'utilisation d'un tunnel, l'en-tête de transport peut être un autre en-tête IP.

ESP (Encapsulating Security Payload, association de sécurité)

Le module protocole ESP assure la confidentialité des encapsulations ESP. ESP propose également les services AH. Toutefois, ESP n'offre sa protection qu'à la partie des datagrammes d'encapsulation ESP. ESP fournit des services d'authentification facultatifs afin d'assurer l'intégrité du paquet protégé. Du fait qu'ESP utilise une technologie de chiffrement, un système fournissant ESP peut être soumis à des lois sur le contrôle des importations et exportations.

ESP encapsule ses données de sorte à protéger uniquement les données figurant à la suite de son commencement dans le datagramme, comme illustré ci-dessous.

Dans le diagramme, l'en-tête ESP apparaît entre les en-têtes IP et TCP. L'en-tête TCP est chiffré par l'en-tête ESP.

Dans un paquet TCP, ESP encapsule uniquement l'en-tête TCP et ses données. Si le paquet est un datagramme IP-in-IP, ESP protège le datagramme IP interne. La stratégie par socket permet l'auto-encapsulation. Ainsi, ESP peut encapsuler les options IP, le cas échéant.

Lorsque l'auto-encapsulation est définie, l'en-tête IP est copié afin de créer un datagramme IP-in-IP. Par exemple, lorsque l'auto-encapsulation n'est pas définie sur un socket TCP, le datagramme est envoyé dans le format suivant :


[ IP(a -> b) options + TCP + data ]

Lorsque l'auto-encapsulation est définie sur ce socket TCP, le datagramme est envoyé dans le format suivant :


[ IP(a -> b) + ESP [ IP(a -> b) options + TCP + data ] ]

Pour de plus amples informations, reportez-vous à la section Modes Transport et Tunnel dans IPsec.

Considérations de sécurité lors de l'utilisation de AH et ESP

Le tableau suivant permet de comparer les protections AH et ESP.

Tableau 19–2 Protections assurées par AH et ESP dans IPsec

Protocole 

Paquets protégés 

Protection 

Attaques contrées 

AH 

Protection des paquets de l'en-tête IP jusqu'à l'en-tête de transport 

Intégrité élevée, authentification des données : 

  • réception garantie des données exactes envoyées par l'expéditeur

  • attaques par rejeu possibles lorsqu'un AH n'active pas la protection par rejeu

Rejeu, couper-coller 

fournisseur de services aux entreprises 

Protection des paquets figurant à la suite du début d'ESP dans le datagramme 

Chiffrement du datagramme IP à l'aide de l'option de chiffrement Confidentialité garantie 

Écoute électronique 

Protection identique à la protection AH à l'aide de l'option d'authentification 

Rejeu, couper-coller 

Intégrité élevée, authentification des données et confidentialité à l'aide des deux options 

Rejeu, couper-coller, écoute électronique 

Authentification et chiffrement dans IPsec

Les protocoles de sécurité IPsec font appel à deux types d'algorithmes : les algorithmes d'authentification et les algorithmes de chiffrement. Le module AH recourt aux algorithmes d'authentification. Le module ESP peut utiliser aussi bien les algorithmes d'authentification que les algorithmes de chiffrement. La commande ipsecalgs affiche la liste des algorithmes présents sur le système, ainsi que leurs propriétés. Pour plus d'informations, reportez-vous à la page de manuel ipsecalgs(1M) Vous pouvez aussi utiliser les fonctions décrites dans la page de manuel getipsecalgbyname(3NSL)pour obtenir les propriétés des algorithmes.

Pour accéder aux algorithmes sur un système Solaris, IPsec fait appel à la structure cryptographique Solaris. Celle-ci offre un référentiel central d'algorithmes, en plus d'autres services. Elle permet à IPsec de tirer profit des accélérateurs cryptographiques hautes performances et offre des fonctions de contrôle de ressources. Par exemple, la structure permet de limiter le temps CPU consacré aux opérations cryptographiques dans le noyau.

Pour plus d'informations, consultez les références suivantes :

Algorithmes d'authentification dans IPsec

Les algorithmes d'authentification génèrent une valeur de somme de contrôle d'intégrité, digest, à partir des données et d'une clé. Le module AH recourt aux algorithmes d'authentification. Le module ESP peut également y avoir recours.

Algorithmes de chiffrement dans IPsec

Les algorithmes de chiffrement chiffrent les données à l'aide d'une clé. Dans IPsec, le module ESP fait appel aux algorithmes de chiffrement. Les algorithmes agissent sur les données dans des unités d'une taille de bloc.

Les diverses versions du SE Solaris10 offrent différents algorithmes de chiffrement par défaut.


Attention – Attention –

À partir de la version Solaris 10 7/07, n'ajoutez plus Solaris Encryption Kit à votre système. Le kit effectue une mise à niveau inférieure du patch de chiffrement de votre système. Le kit n'est pas compatible avec le chiffrement de votre système.


Stratégies de protection IPsec

Les stratégies de protection IPsec peuvent recourir aux mécanismes de sécurité, quels qu'ils soient. Vous pouvez appliquer les stratégies IPsec aux niveaux suivants :

IPsec applique la stratégie à l'échelle du système aux datagrammes entrants et sortants. Les datagrammes sortants sont envoyés avec ou sans protection. Si la protection est appliquée, les algorithmes sont soit spécifiques, soit non spécifiques. Vous pouvez appliquer d'autres règles aux datagrammes sortants, en raison des données supplémentaires connues du système. Les datagrammes sortants peuvent être acceptés ou rejetés. La décision d'accepter ou de rejeter un datagramme sortant est fonction de plusieurs critères qui peuvent se chevaucher et être contradictoires. Pour résoudre les conflits éventuels, il faut identifier la règle à analyser en premier. Le trafic est accepté automatiquement, sauf si une entrée de stratégie indique qu'il doit ignorer toutes les autres stratégies.

La stratégie qui protège normalement un datagramme peut être ignorée. Vous pouvez spécifier une exception dans la stratégie à l'échelle du système ou demander un contournement dans la stratégie par socket. Au niveau du trafic système, les stratégies sont mises en œuvre, mais les mécanismes de sécurité à proprement parler ne sont pas appliqués. En revanche, la stratégie sortante sur un paquet interne au système se traduit par un paquet sortant auquel ces mécanismes ont été appliqués.

La configuration des stratégies IPsec s'effectue à l'aide du fichier ipsecinit.conf et de la commande ipsecconf. La page de manuel ipsecconf(1M) contient des exemples et des explications complémentaires.

Modes Transport et Tunnel dans IPsec

Les normes IPsec définissent deux modes distincts d'opération IPsec : le mode Transport et le mode Tunnel. Ces modes n'ont aucune incidence sur le codage des paquets. Les paquets sont protégés par AH, ESP ou ces deux protocoles dans chaque mode. L'application de la stratégie des modes est différente lorsque le paquet interne est un paquet IP :

En mode Transport, l'en-tête extérieur ainsi que l'en-tête suivant et tout port pris en charge par celui-ci permettent de déterminer la stratégie IPsec. En fait, IPsec peut mettre en œuvre différentes stratégies en mode Transport entre deux adresses IP au niveau d'un seul port. Par exemple, si l'en-tête suivant est un en-tête TCP, qui prend en charge les ports, la stratégie IPsec peut alors être définie pour un port TCP de l'adresse IP externe. De même, si l'en-tête suivant est IP, l'en-tête extérieur et l'en-tête IP intérieur permettent de déterminer la stratégie IPsec.

Le mode Tunnel ne fonctionne que pour les datagrammes IP-in-IP. La mise sous tunnel en mode Tunnel peut s'avérer utile lorsque des personnes travaillant à domicile se connectent à un emplacement central. En mode Tunnel, la stratégie IPsec est mise en œuvre sur le contenu du datagramme IP interne. Différentes stratégies IPsec peuvent être mises en œuvre pour différentes adresses IP internes. En d'autres termes, l'en-tête IP interne, ainsi que son en-tête suivant et les ports que ce dernier prend en charge, peuvent mettre en œuvre une stratégie. Contrairement au mode Transport, le mode Tunnel ne permet pas à l'en-tête IP extérieur de dicter la stratégie de son datagramme IP interne.

Par conséquent, en mode Tunnel, la stratégie IPsec peut être spécifiée pour les sous-réseaux d'un LAN derrière un routeur et pour les ports de ces sous-réseaux. La stratégie IPsec peut également être spécifiée pour des adresses IP données (des hôtes) sur ces sous-réseaux. Les ports de ces hôtes peuvent aussi avoir une stratégie IPsec spécifique. Toutefois, si un protocole de routage dynamique est exécuté sur un tunnel, veillez à ne pas utiliser de sélection de sous-réseau ou d'adresse, car la vue de la topologie réseau sur le réseau homologue pourrait être modifiée. Les modifications annuleraient la stratégie IPsec statique. La section Protection d'un VPN à l'aide d'IPsec contient des exemples de mises en tunnel comprenant la configuration de routes statiques.

Dans SE Solaris, le , mode Tunnel peut être appliquée uniquement dans une interface de réseau de tunnels IP. La commande ipsecconf fournit un mot-clé tunnel pour sélectionner une interface de réseau de tunnels IP. Lorsque le mot-clé tunnel figure dans une règle, tous les sélecteurs spécifiés dans cette règle s'appliquent au paquet interne.

En mode Transport, ESP et/ou AH peuvent protéger le datagramme.

La figure suivante illustre un en-tête IP avec un paquet TCP non protégé.

Figure 19–3 Paquet IP non protégé transportant des informations TCP

Dans le diagramme, l'en-tête IP est suivi de l'en-tête TCP. L'en-tête TCP n'est pas protégé.

En mode Transport, ESP protège les données, comme illustré ci-dessous. La zone ombrée indique la partie chiffrée du paquet.

Figure 19–4 Paquet IP protégé transportant des informations TCP

Dans le diagramme, l'en-tête ESP apparaît entre les en-têtes IP et TCP. L'en-tête TCP est chiffré par l'en-tête ESP.

En mode Transport, AH protège les données comme illustré ci-dessous.

Figure 19–5 Paquet protégé par un en-tête d'authentification

Dans le diagramme, l'en-tête AH apparaît entre les en-têtes IP et TCP.

AH couvre en fait les données avant leur apparition dans le datagramme. Par conséquent, la protection assurée par AH, même en mode Transport, couvre en partie l'en-tête IP.

En mode Tunnel, l'intégralité du datagramme figure à l'intérieur de la protection d'un en-tête IPsec. Le datagramme de la Figure 19–3 est protégé en mode Tunnel par un en-tête IPsec externe, ESP dans ce cas, comme indiqué sur l'illustration suivante.

Figure 19–6 Paquet IPsec protégé en mode Tunnel

Le diagramme illustre l'en-tête ESP après l'en-tête IP et avant un en-tête IP et un en-tête TCP. Les deux derniers en-têtes sont protégés par chiffrement.

La commande ipsecconf inclut des mots-clés permettant de définir des tunnels en mode Tunnel ou Transport.

Réseaux privés virtuels et IPsec

Un tunnel configuré est une interface point-à-point. Le tunnel permet l'encapsulation d'un paquet IP dans un autre paquet IP. Un tunnel correctement configuré requiert une source et une destination. Pour plus d'informations, reportez-vous à la page de manuel tun(7M) et à la section Configuration de tunnels pour la prise en charge d'IPv6.

Un tunnel crée une interface physique liée à IP. L'intégrité du lien physique est fonction des protocoles de sécurité sous-jacents. La configuration sécurisée des associations de sécurité (SA) rend le tunnel digne de confiance. Les paquets sortant du tunnel doivent provenir de l'homologue spécifié dans la destination de tunnel. Si la confiance est établie, vous pouvez avoir recours au transfert IP par interface pour créer un VPN.

Vous pouvez créer un VPN à l'aide d'IPsec. IPsec sécurise la connexion. Par exemple, une organisation ayant recours à la technologie VPN pour connecter deux bureaux de réseaux distincts peut déployer IPsec pour sécuriser le trafic entre ces deux bureaux.

Dans l'illustration suivante, deux bureaux utilisent Internet pour constituer leur VPN, avec IPsec déployé sur leurs systèmes réseau.

Figure 19–7 Réseau privé virtuel

Dans le diagramme, les bureaux 1 et 2 communiquent par le biais de l'interface hme0. Chaque bureau utilise hme1 pour la communication interne.

La section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4 contient un exemple détaillé de configuration.

Un exemple similaire avec des adresses IPv6 est fourni à la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv6.

Passage de la translation d'adresses et IPsec

IKE peut négocier des SA IPsec dans une zone NAT Cela permet aux systèmes de se connecter en toute sécurité à partir d'un réseau distant, même lorsqu'ils résident derrière un périphérique NAT. Par exemple, les employés travaillant à domicile ou se connectant depuis un site de conférence peuvent protéger leur trafic à l'aide d'IPsec.

NAT est l'acronyme de Network Address Translation (translation d'adresse réseau). Un routeur NAT permet d'associer une adresse interne privée à une adresse Internet unique. Les routeurs NAT équipent de nombreux points d'accès publics à Internet, comme ceux qu'on trouve dans les hôtels. Pour plus d'informations, reportez-vous à la section Utilisation de la fonctionnalité NAT de Oracle Solaris IP Filter.

La capacité à utiliser IKE lorsqu'un boîtier NAT est placé entre deux systèmes communiquant est appelé NAT Traversal ou NAT-T. Dans la version Solaris10, NAT-T présente les limitations suivantes :

Les RFC suivants décrivent la fonctionnalité NAT et les limites de NAT-T. Vous pouvez vous procurer des copies de ces RFC sur le site http://www.rfc-editor.org.

Pour une utilisation conjointe de IPsec et NAT, reportez-vous à la section Configuration du protocole IKE pour les systèmes portables (liste des tâches).

IPsec et SCTP

Le système d'exploitation Solaris prend en charge le protocole SCTP (Streams Control Transmission Protocol). Bien que prise en charge, l'utilisation du protocole SCTP et du numéro de port SCTP dans le cadre de la spécification de la stratégie IPsec n'est pas stable. Les extensions IPsec pour SCTP spécifiées dans le document RFC 3554 ne sont pas encore implémentées. Ces restrictions peuvent être source de complications lors de la création de la stratégie IPsec pour SCPT.

SCTP peut avoir recours à plusieurs adresses source et cible dans le cadre d'une association SCTP unique. Lorsque la stratégie IPsec est appliquée à une seule adresse source ou cible, la communication peut échouer si SCTP change l'adresse source ou cible de cette association. La stratégie IPsec reconnaît uniquement l'adresse d'origine. Pour plus d'informations sur SCTP, consultez les documents RFC et Protocol SCTP.

IPsec et les zones Solaris

Pour les zones IP partagées, la stratégie IPsec est configurée à partir de la zone globale. Le fichier de configuration de la stratégie IPsec, ipsecinit.conf, existe uniquement dans la zone globale. Le fichier peut contenir des entrées s'appliquant aux zones non globales et des entrées s'appliquant à la zone globale.

Pour les zones IP exclusives, la stratégie IPsec est configurée dans la zone non globale.

Pour plus d'informations à propos de l'utilisation d'IPsec avec des zones, reportez-vous à la section Protection du trafic à l'aide d'IPsec. Pour plus d'informations sur les zones, reportez-vous au Chapitre 16, Introduction aux zones Solaris du Guide d’administration système : Gestion des ressources des conteneurs et des zones Oracle Solaris.

IPsec et domaines logiques

Le protocole IPsec fonctionne avec des domaines logiques. Le domaine logique doit être en cours d'exécution sur une version du système d'exploitation Solaris comprenant le protocole IPsec, comme la version Solaris 10.

Pour créer des domaines logiques, vous devez utiliser Oracle VM Server pour SPARC. Cette application s'appelait auparavant Sun Logical Domains. Pour savoir comment configurer des domaines logiques, reportez-vous au Logical Domains 1.2 Administration Guide ou au Oracle VM Server for SPARC 2.0 Administration Guide.

Fichiers et utilitaires IPsec

Le Tableau 19–3 décrit les fichiers, commandes et identificateurs de service utilisés pour configurer et gérer IPsec. Exhaustif, ce tableau inclut les commandes et fichiers de gestion des clés.

À partir de la version Solaris 10 4/09, IPsec est géré par SMF. Pour plus d'informations sur les identificateurs de services, reportez-vous au Chapitre 18, Managing Services (Overview) du System Administration Guide: Basic Administration.

Tableau 19–3 Liste des utilitaires et fichiers IPsec sélectionnés

Utilitaire IPsec, fichier ou service 

Description 

Page de manuel 

svc:/network/ipsec/ipsecalgs

Dans la version actuelle, le service SMF qui gère les algorithmes IPsec. 

smf(5), ipsecalgs(1M)

svc:/network/ipsec/manual-key

Dans la version actuelle, le service SMF qui gère les associations de sécurité (SA) manuelles.  

smf(5), ipseckey(1M)

svc:/network/ipsec/policy

Dans la version actuelle, le service SMF qui gère la stratégie IPsec.

smf(5), ipsecconf(1M)

svc:/network/ipsec/ike

Dans la version actuelle, le service SMF pour la gestion automatique des SA IPsec.  

smf(5), in.iked(1M)

Fichier /etc/inet/ipsecinit.conf

Fichier de stratégie IPsec. Dans les versions antérieures à la version Solaris 10 4/09, si ce fichier existe, IPsec est activé au démarrage.

Dans la version actuelle, le service policy de SMF utilise ce fichier pour configurer la stratégie IPsec lors de l'initialisation du système.

ipsecconf(1M)

Commande ipsecconf

Commande de stratégie IPsec. Utile pour afficher et modifier la stratégie IPsec actuelle, ainsi que pour effectuer des tests. Dans les versions antérieures à la version Solaris 10 4/09, les scripts d'initialisation utilisent ipsecconf pour lire le fichier /etc/inet/ipsecinit.conf et activer IPsec.

Dans la version actuelle, ipsecconf est utilisé par le service policy de SMF pour configurer la stratégie IPsec lors de l'initialisation du système.

ipsecconf(1M)

Interface socket PF_KEY

SADB (Interface for Security Associations Database, interface de la base de données des associations de sécurité). Responsable de la gestion manuelle et automatique des clés.

pf_key(7P)

Commande ipseckey

Commandes de génération de clés pour les SA IPsec ipseckey est un point d'entrée de commandes de l'interface PF_KEY. ipseckey permet de créer, supprimer ou modifier les SA.

ipseckey(1M)

Fichier /etc/inet/secret/ipseckeys

Clés pour SA IPsec. Dans les versions antérieures à la version Solaris 10 4/09, si le fichier ipsecinit.conf existe, le fichier ipseckeys est automatiquement lu au démarrage.

Dans la version actuelle, ipseckeys est utilisé par le service manual-key de SMF pour configurer manuellement les SA à l'initialisation du système.

 

Commande ipsecalgs

Commande d'algorithmes IPsec. Utile pour l'affichage et la modification de la liste d'algorithmes IPsec et de leurs propriétés.

Dans la version actuelle, est utilisée par le service ipsecalgs de SMF pour synchroniser les algorithmes IPsec connus avec le noyau, à l'initialisation du système.

ipsecalgs(1M)

Fichier /etc/inet/ipsecalgs

Contient les définitions d'algorithme et les protocoles IPsec configurés. Ce fichier est géré par la commande ipsecalgs et ne doit jamais être modifié manuellement.

 

Fichier /etc/inet/ike/config

Fichier de configuration et de stratégie IKE. Par défaut, ce fichier n'existe pas. Dans les versions antérieures à la version Solaris 10 4/09, si ce fichier existe, le démon IKE, in.iked, permet la gestion automatique des clés. La gestion se base sur des règles et des paramètres généraux figurant dans le fichier /etc/inet/ike/config. Reportez-vous à la section Utilitaires et fichiers IKE.

Dans la version actuelle, si ce fichier existe, le service svc:/network/ipsec/ike lance le démon IKE, in.iked pour la gestion automatique des clés.

ike.config(4)

Modifications IPsec dans la version Solaris10

Vous trouverez une liste complète des nouvelles fonctionnalités de Solaris et la description des différentes versions de Solaris dans le guide Nouveautés apportées à Oracle Solaris 10 9/10. À partir de la version Solaris 9, IPsec inclut les fonctions suivantes :

Chapitre 20 Configuration d'IPsec (tâches)

Ce chapitre fournit les procédures d'implémentation d'IPsec sur votre réseau. Les procédures sont décrites dans la liste des tâches ci-dessous :

Vous trouverez une présentation d'IPsec au Chapitre 19Architecture IPsec (présentation). Des informations de référence sur IPsec sont fournies au Chapitre 21Architecture IPsec (référence).

Protection du trafic à l'aide d'IPsec (liste des tâches)

La liste des tâches ci-dessous répertorie les procédures de configuration d'IPsec sur un ou plusieurs systèmes. En outre, vous trouverez des procédures utiles dans les sections d'exemples des pages de manuel ipsecconf(1M), ipseckey(1M) et ifconfig(1M).

Tâche 

Description 

Voir 

Sécurisation du trafic entre deux systèmes 

Protège les paquets transmis d'un système à un autre. 

Sécurisation du trafic entre deux systèmes à l'aide d'IPsec

Sécurisation d'un serveur Web à l'aide de la stratégie IPsec 

Requiert un trafic non-Web pour utiliser IPsec. Les clients Web sont identifiés par des ports particuliers : les vérifications IPsec sont ignorées. 

Utilisation d'IPsec pour protéger un serveur Web du trafic non-web.

Affichage des stratégies IPsec 

Affiche les stratégies IPsec actuellement appliquées, dans l'ordre dans lequel elles sont mises en œuvre. 

Affichage des stratégies IPsec

Génération de numéros aléatoires 

Génère des numéros aléatoires pour définir les numéros de clé afin de permettre la création manuelle d'associations de sécurité. 

Génération de numéros aléatoires sur un système Solaris

Section How to Generate a Symmetric Key by Using the pktool Command du System Administration Guide: Security Services

Création et remplacement manuels des associations de sécurité 

Fournit les données brutes des associations de sécurité : 

  • Nom d'algorithme IPsec et numéros de clé ;

  • Clé de l'index de paramètre de sécurité ;

  • Adresses IP source et de destination.

Création manuelle d'associations de sécurité IPsec

Vérification de la protection des paquets par IPsec 

Recherche des en-têtes spécifiques indiquant la méthode de protection des datagrammes IP dans la sortie de commande snoop.

Vérification de la protection des paquets par IPsec

(Facultatif) Création d'un rôle de sécurité réseau 

Crée un rôle pouvant configurer un réseau sécurisé, mais possédant moins de permissions que le superutilisateur. 

Configuration d'un rôle pour la sécurité réseau

Gestion d'IPsec et des numéros de clés en tant qu'ensemble de services SMF 

Décrit quand et comment utiliser les commandes permettant d'activer, de désactiver, d'actualiser et de redémarrer les services. Décrit également les commandes permettant de modifier les valeurs de propriété des services.  

Procédure de gestion des services IKE et IPsec

Configuration d'un réseau privé virtuel (VPN, Virtual Private Network) sécurisé 

Configure IPsec entre deux systèmes séparés par Internet. 

Protection d'un VPN à l'aide d'IPsec (liste des tâches)

Protection du trafic à l'aide d'IPsec

Cette section décrit les procédures permettant de sécuriser le trafic entre deux systèmes et de sécuriser un serveur Web. Pour protéger un VPN, reportez-vous à la section Protection d'un VPN à l'aide d'IPsec (liste des tâches) . Des procédures supplémentaires fournissent des numéros de clé et des associations de sécurité et vérifient que IPsec fonctionne tel qu'il est configuré.

Les informations ci-dessous s'appliquent à toutes les tâches de configuration IPsec :

ProcedureSécurisation du trafic entre deux systèmes à l'aide d'IPsec

Cette procédure correspond à la configuration suivante :

Avant de commencer

Vous devez vous trouver dans la zone globale pour configurer la stratégie IPsec pour le système ou pour une zone IP partagée. Dans une zone IP exclusive, vous devez configurer la stratégie IPsec dans la zone non globale.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    Les connexions à distance peuvent compromettre la sécurité du trafic de données critiques. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Exécutez la commande ssh pour assurer une connexion à distance sécurisée. Voir l' Exemple 20–1.


  2. Sur chaque système, vérifiez les entrées d'hôte.

    Dans la version actuelle, ajoutez les entrées d'hôte au fichier /etc/inet/hosts.

    Sur un système exécutant une version antérieure à la version Solaris 10 7/07, insérez les entrées IPv4 et IPv6 dans le fichier /etc/inet/ipnodes. Les entrées d'un système doivent être contiguës dans le fichier. Pour de plus amples informations sur les fichiers de configuration système, reportez-vous à la section Fichiers de configuration TCP/IP et au Chapitre 11Présentation détaillée de IPv6 (référence).

    Si vous connectez des systèmes utilisant exclusivement des adresses IPv4, modifiez le fichier /etc/inet/hosts. Dans cet exemple, les systèmes à connecter s'exécutent dans une version Solaris antérieure et utilisent des adresses IPv6.

    1. Sur un système appelé enigma, saisissez les lignes suivantes dans le fichier hosts ou ipnodes :


      # Secure communication with partym
      192.168.13.213 partym
      2001::eeee:3333:3333 partym
    2. Sur un système appelé partym, saisissez les lignes suivantes dans le fichier hosts ou ipnodes :


      # Secure communication with enigma
      192.168.116.16 enigma
      2001::aaaa:6666:6666 enigma

    L'utilisation de services d'assignation de noms pour des noms symboliques comporte des risques.

  3. Sur chaque système, créez le fichier de stratégie IPsec.

    Le nom de fichier est /etc/inet/ipsecinit.conf. Vous en trouverez un exemple dans le fichier /etc/inet/ipsecinit.sample.

  4. Ajoutez une entrée de stratégie IPsec au fichier ipsecinit.conf.

    1. Sur le système enigma, ajoutez la stratégie ci-dessous :


      {laddr enigma raddr partym} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. Sur le système partym, ajoutez la même stratégie :


      {laddr partym raddr enigma} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

      La syntaxe des entrées de stratégie IPsec est décrite dans la page de manuel ipsecconf(1M).

  5. Sur chaque système, ajoutez une paire de SA IPsec entre les deux systèmes.

    Vous pouvez configurer le protocole IKE (Internet Key Exchange, échange de clé Internet) afin de créer automatiquement les SA. Vous pouvez également ajouter les SA manuellement.


    Remarque –

    Il est recommandé d'utiliser IKE, sauf si, pour des raisons spécifiques, vous devez générer les clés et les mettre à jour manuellement. La gestion des clés à l'aide d'IKE est plus sécurisée.


  6. Activez la stratégie IPsec.

    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, réinitialisez le système.


      # init 6
      

      Reportez-vous ensuite à la section Vérification de la protection des paquets par IPsec.

    • À partir de la version Solaris 10 4/09, actualisez le service IPsec et activez le service de gestion des clés.

      Suivez les étapes Étape 7 à Étape 10.

  7. Vérifiez la syntaxe du fichier de stratégie IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    

    Corrigez les éventuelles erreurs, vérifiez la syntaxe du fichier, puis continuez.

  8. Actualisez la stratégie IPsec.


    # svcadm refresh svc:/network/ipsec/policy:default
    

    La stratégie IPsec est activée par défaut. Actualisez-la. Si vous avez désactivé la stratégie IPsec, activez-la.


    # svcadm enable svc:/network/ipsec/policy:default
    
  9. Activez les clés pour IPsec.

    • Si vous avez configuré le service IKE lors l'Étape 5, effectuez l'une des opérations suivantes :

      • Si le service ike n'est pas activé, activez-le.


        # svcadm enable svc:/network/ipsec/ike:default
        
      • Si le service ike est activé, redémarrez-le.


        # svcadm restart svc:/network/ipsec/ike:default
        
    • Si vous avez configuré manuellement les clés lors de l'Étape 5, effectuez l'une des opérations suivantes :

      • Si le service manual-key n'est pas activé, activez-le.


        # svcadm enable svc:/network/ipsec/manual-key:default
        
      • Si le service manual-key est activé, actualisez-le.


        # svcadm refresh svc:/network/ipsec/manual-key:default
        
  10. Assurez-vous que les paquets sont protégés.

    La procédure est décrite à la section Vérification de la protection des paquets par IPsec.


Exemple 20–1 Ajout d'une stratégie IPsec lors de l'utilisation d'une connexion ssh

Dans cet exemple, l'administrateur en tant que superutilisateur configure la stratégie IPsec et des clés sur deux systèmes à l'aide de la commande ssh pour atteindre le second système. Pour plus d'informations, reportez-vous à la page de manuel ssh(1).

La prochaine fois que les deux systèmes communiquent, y compris par le biais d'une connexion ssh, la communication est protégée par IPsec.



Exemple 20–2 Sécurisation du trafic à l'aide d'IPsec sans réinitialisation

L'exemple suivant est utile lorsque vous exécutez une version antérieure à la version Solaris 10 4/09. Dans votre version, IPsec n'est pas géré en tant que service. Cet exemple décrit l'implémentation d'IPsec dans un environnement de test. Dans un environnement de production, il est plus sécurisé de réinitialiser que d'exécuter la commande ipsecconf. Les considérations de sécurité sont indiquées à la fin de cet exemple.

Au lieu de réinitialiser à l'Étape 6, choisissez l'une des options suivantes :

Considérations de sécurité : lisez l'avertissement qui s'affiche lorsque vous exécutez la commande ipsecconf. Un socket déjà verrouillé, c'est-à-dire un socket déjà utilisé, constitue une porte dérobée non sécurisée sur le système. Pour plus d'informations, reportez-vous à la section Considérations de sécurité à propos de ipsecinit.conf et ipsecconf.


ProcedureUtilisation d'IPsec pour protéger un serveur Web du trafic non-web.

Un serveur Web sécurisé permet aux clients Web de communiquer avec le service Web. Sur un serveur Web sécurisé, le trafic non Web doit passer des tests de sécurité. La procédure suivante inclut les contournements pour le trafic Web. En outre, ce serveur Web peut effectuer des requêtes client DNS non sécurisées. Tout autre trafic requiert ESP avec les algorithmes AES et SHA-1.

Avant de commencer

Vous devez configurer la stratégie IPsec dans la zone globale. Dans une zone IP exclusive, vous devez configurer la stratégie IPsec dans la zone non globale. Vous avez effectué les étapes de la section Sécurisation du trafic entre deux systèmes à l'aide d'IPsec afin que les conditions suivantes soient remplies :

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Exécutez la commande ssh pour assurer une connexion à distance sécurisée.


  2. Déterminez les services qui doivent ignorer les vérifications de stratégie de sécurité.

    Pour un serveur Web, ces services incluent les ports TCP 80 (HTTP) et 443 (HTTP sécurisé). Si le serveur Web assure la recherche de noms DNS, le serveur doit peut-être inclure également le port 53 pour TCP et UDP.

  3. Créez une stratégie IPsec pour le serveur Web et activez-la.

    • À partir de la version Solaris 10 4/09, suivez les étapes Étape 4 à Étape 7.

    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, suivez les étapes Étape 8 à Étape 11.

    L'Étape 12 est facultative dans toutes les versions de Solaris.

  4. Ajoutez la stratégie du serveur Web au fichier de stratégie IPsec.

    Ajoutez les lignes suivantes dans le fichier /etc/inet/ipsecinit.conf :


    # Web traffic that web server should bypass.
    {lport  80 ulp tcp dir both} bypass {}
    {lport 443 ulp tcp dir both} bypass {}
    
    # Outbound DNS lookups should also be bypassed.
    {rport 53 dir both} bypass {}
    
    # Require all other traffic to use ESP with AES and SHA-1.
    # Use a unique SA for outbound traffic from the port
    {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

    Cette configuration permet uniquement au trafic sécurisé d'accéder au système, avec les exceptions de contournement décrites à l'Étape 4.

  5. Vérifiez la syntaxe du fichier de stratégie IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. Actualisez la stratégie IPsec.


    # svcadm refresh svc:/network/ipsec/policy:default
    
  7. Actualisez les clés pour IPsec.

    Votre installation est terminée. Si vous le souhaitez, vous pouvez effectuer l'Étape 12.

  8. Créez un fichier dans le répertoire /etc/inet pour la stratégie de serveur Web.


    Remarque –

    Les étapes ci-dessous permettent de configurer un serveur Web exécutant une version antérieure à la version Solaris 10 4/09.


    Attribuez au fichier un nom indiquant son objectif, par exemple FichierInitWebIPsec. Tapez les lignes suivantes dans ce fichier :


    # Web traffic that web server should bypass.
    {lport  80 ulp tcp dir both} bypass {}
    {lport 443 ulp tcp dir both} bypass {}
    
    # Outbound DNS lookups should also be bypassed.
    {rport 53 dir both} bypass {}
    
    # Require all other traffic to use ESP with AES and SHA-1.
    # Use a unique SA for outbound traffic from the port
    {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

    Cette configuration permet uniquement au trafic sécurisé d'accéder au système, avec les exceptions de contournement décrites à l'Étape 4.

  9. Copiez le contenu du fichier créé lors de l'Étape 8 dans le fichier /etc/inet/ipsecinit.conf.

  10. Protégez le fichier FichierInitWebIPsec à l'aide de permissions de lecture seule.


    # chmod 400 IPsecWebInitFile
    
  11. Sécurisez le serveur Web sans réinitialiser.

    Procédez de l'une des manières suivantes :

    • Si vous effectuez la gestion des clés à l'aide d'IKE, arrêtez le démon in.iked, puis relancez-le.


      # pkill in.iked
      # /usr/lib/inet/in.iked
      
    • Si vous gérez manuellement les clés, exécutez les commandes ipseckey et ipsecconf.

      Utilisez le fichier FichierInitWebIPsec en argument de la commande ipsecconf. Si vous utilisez le fichier ipsecinit.conf en argument, la commande ipsecconf génère des erreurs lorsque les stratégies du fichier sont déjà implémentées sur le système.


      # ipseckey -c -f /etc/inet/secret/ipseckeys 
      # ipsecconf -a /etc/inet/IPsecWebInitFile 
      

    Attention – Attention –

    Lisez l'avertissement qui s'affiche lorsque vous exécutez la commande ipsecconf. Un socket déjà verrouillé, c'est-à-dire un socket déjà utilisé, constitue une porte dérobée non sécurisée sur le système. Pour plus d'informations, reportez-vous à la section Considérations de sécurité à propos de ipsecinit.conf et ipsecconf. Le même avertissement s'applique au redémarrage du démon in.iked.


    Vous pouvez également réinitialiser. La réinitialisation assure la mise en œuvre de la stratégie IPsec sur toutes les connexions TCP. À la réinitialisation, les connexions TCP utilisent la stratégie du fichier de stratégie IPsec.

  12. (Facultatif) Autorisez un système distant à communiquer avec le serveur Web pour le trafic non-Web.

    Tapez la stratégie ci-dessous dans le fichier ipsecinit.conf d'un système distant :


    # Communicate with web server about nonweb stuff
    #
    {laddr webserver} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

    Un système distant peut communiquer de manière sécurisée avec le serveur Web pour le trafic non-Web uniquement lorsque les stratégies IPsec des systèmes sont identiques.

ProcedureAffichage des stratégies IPsec

Vous pouvez afficher les stratégies configurées dans le système lorsque vous exécutez la commande ipsecconf sans argument.

Avant de commencer

Vous devez exécuter la commande ipsecconf dans la zone globale. Dans une zone IP exclusive, vous devez exécuter la commande ipsecconf dans la zone non globale.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil Network IPsec Management (gestion IPsec du réseau).

    Si vous exécutez une version antérieure à la version Solaris 10 4/09, le profil Network IPsec Management n'est pas disponible. Utilisez le profil Network Security.

    Pour créer un rôle incluant un profil de sécurité réseau et attribuer ce rôle à un utilisateur, reportez-vous à la section Configuration d'un rôle pour la sécurité réseau.

  2. Affichage des stratégies IPsec

    1. Affichez les entrées de stratégie IPsec globales dans l'ordre dans lequel les entrées ont été insérées.


      $ ipsecconf
      

      La commande affiche chaque entrée avec un index suivi d'un numéro.

    2. Affichez les entrées de stratégie IPsec dans l'ordre dans lequel les correspondances sont repérées.


      $ ipsecconf -l
      
    3. Affichez les entrées de stratégie IPsec, y compris les entrées définies par tunnel, dans l'ordre dans lequel les correspondances sont repérées.


      $ ipsecconf -L
      

ProcedureGénération de numéros aléatoires sur un système Solaris

Si vous spécifiez les clés manuellement, leurs numéros doivent être aléatoires. Dans un système Solaris, les numéros de clé sont au format hexadécimal. D'autres systèmes d'exploitation peuvent nécessiter des numéros de clé au format ASCII. Si vous souhaitez générer des numéros de clé pour un système Solaris qui communique avec un système d'exploitation requérant le format ASCII, reportez-vous à l'Exemple 23–1.

Si votre site possède un générateur de nombres aléatoires, utilisez-le. Dans le cas contraire, vous pouvez utiliser la commande od avec le périphérique Solaris /dev/random en entrée. Pour de plus amples informations, reportez-vous à la page de manuel od(1).

Dans la version Solaris 10 4/09, vous pouvez également utiliser la commande pktool. La syntaxe de cette commande est plus simple que la syntaxe de la commande od. Pour plus de détails, reportez-vous à la section How to Generate a Symmetric Key by Using the pktool Command du System Administration Guide: Security Services.

  1. Générez des numéros aléatoires au format hexadécimal.


    % od -x|-X -A n file | head -n
    
    -x

    Affiche le vidage octal au format hexadécimal. Le format hexadécimal s'avère utile pour les numéros de clé. Le numéro hexadécimal obtenu s'imprime par blocs de 4 caractères.

    -X

    Affiche le vidage octal au format hexadécimal. Le numéro hexadécimal obtenu s'imprime par blocs de 8 caractères.

    -A n

    Supprime la base de décalage d'entrée de l'affichage.

    fichier

    Constitue la source des numéros aléatoires.

    head -n

    Limite l'affichage aux n premières lignes de la sortie de commande.

  2. Combinez la sortie afin de créer une clé de longueur adéquate.

    Supprime les espaces entre les numéros sur une ligne afin de créer des clés de 32 caractères. Une clé de 32 caractères correspond à 128 bits. Tout index de paramètre de sécurité (SPI, Security Parameter Index) doit être défini à l'aide d'une clé de 8 caractères. La clé doit utiliser le préfixe 0x.


Exemple 20–3 Génération de numéros de clé pour IPsec

Dans l'exemple suivant, deux lignes de clés s'affichent par groupes de huit caractères hexadécimaux chacun.


% od -X -A n /dev/random | head -2
         d54d1536 4a3e0352 0faf93bd 24fd6cad
         8ecc2670 f3447465 20db0b0c c83f5a4b

En combinant les quatre numéros de la première ligne, vous pouvez créer une clé de 32 caractères. Un numéro de 8 caractères précédé de 0x (0xf3447465, par exemple) définit une valeur de SPI adéquate.

Dans l'exemple suivant, deux lignes de clés s'affichent par groupes de quatre caractères hexadécimaux chacun.


% od -x -A n /dev/random | head -2
         34ce 56b2 8b1b 3677 9231 42e9 80b0 c673
         2f74 2817 8026 df68 12f4 905a db3d ef27

En combinant les huit numéros de la première ligne, vous pouvez créer une clé de 32 caractères.


ProcedureCréation manuelle d'associations de sécurité IPsec

La procédure suivante fournit les numéros de clé de la procédure : Sécurisation du trafic entre deux systèmes à l'aide d'IPsec. Vous générez des clés pour deux systèmes, partym et enigma. Vous générez des clés sur un système, puis utilisez les clés du premier système sur les deux systèmes.

Avant de commencer

La gestion manuelle des numéros de clé pour une zone IP partagée s'effectue dans la zone globale.

  1. Générez les numéros de clé pour les SA.

    Il vous faut trois numéros aléatoires hexadécimaux pour le trafic sortant et trois autres numéros aléatoires hexadécimaux pour le trafic entrant.

    Un système doit donc générer les numéros suivants :

    • deux numéros aléatoires hexadécimaux comme valeur du mot-clé spi : un numéro pour le trafic sortant et un numéro pour le trafic entrant. Chaque numéro peut comporter huit caractères maximum.

    • Deux numéros aléatoires hexadécimaux pour l'algorithme SHA1 pour authentification. Pour une clé de 160 bits, chaque numéro doit comporter 40 caractères. L'un d'eux est dédié à dst enigma, l'autre à dst partym.

    • Deux numéros aléatoires hexadécimaux pour l'algorithme AES pour chiffrement. Pour une clé de 256 bits, chaque numéro doit comporter 64 caractères. L'un d'eux est dédié à dst enigma, l'autre à dst partym.

    Si un générateur de nombres aléatoires est disponible sur votre site, utilisez-le. Vous pouvez également exécuter la commande od. La procédure est décrite à la section Génération de numéros aléatoires sur un système Solaris.

  2. Connectez-vous à la console système de l'un des systèmes en tant qu'administrateur principal ou en tant que superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Exécutez la commande ssh pour assurer une connexion à distance sécurisée.


  3. Créez les SA.

    • À partir de la version Solaris 10 4/09, suivez les étapes Étape 8 à Étape 10.

    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, suivez les étapes Étape 4 à Étape 9.

  4. Activez le mode de la commande ipseckey.


    # ipseckey
    
    >

    L'invite > indique que le mode de la commande ipseckey est activé.

  5. Lors du remplacement de SA existantes, videz les SA actuelles.


    > flush
    > 

    Pour éviter qu'un concurrent ait le temps de déceler vos SA, remplacez les numéros de clé.


    Remarque –

    Vous devez coordonner les remplacements des clés sur les systèmes en communication. Lorsque vous remplacez les SA sur un système, vous devez également les remplacer sur le système distant.


  6. Pour créer des SA, tapez la commande ci-dessous.


    > add protocol spi random-hex-string \
    src addr dst addr2 \
    protocol-prefix_alg protocol-algorithm  \
    protocol-prefixkey random-hex-string-of-algorithm-specified-length
    

    Cette syntaxe permet également de remplacer les SA après les avoir vidées.

    protocole

    Défini sur esp ou ah.

    chaîne-hex-aléatoire

    Spécifie un numéro aléatoire de huit caractères maximum au format hexadécimal. Les caractères sont précédés de 0x. Si les numéros saisis dépassent la limite définie par le SPI, le système ignore les numéros en trop. Si le nombre de numéros n'atteint pas la limite du SPI, le système complète l'entrée.

    adr

    Spécifie l'adresse IP d'un système.

    adr2

    Spécifie l'adresse IP du système homologue de adr.

    préfixe-protocole

    Défini sur encr ou auth. Le préfixe encr est utilisé avec le protocole esp. Le préfixe auth est utilisé avec le protocole ah, ainsi que pour l'authentification du protocole esp.

    algorithme-protocole

    Spécifie un algorithme pour ESP ou AH. Chaque algorithme requiert une clé d'une longueur spécifique.

    MD5 et SHA1 sont des algorithmes d'authentification. SHA256 et SHA512 sont pris en charge depuis version la Solaris 10 4/09. DES, 3DES, AES et Blowfish sont des algorithmes de chiffrement.

    chaîne-hex-aléatoire-longueur-requise-par-algorithme

    Définit un numéro hexadécimal aléatoire de la longueur requise par l'algorithme. Par exemple, l'algorithme MD5 requiert une chaîne de 32 caractères pour sa clé de 128 bits. L'algorithme 3DES requiert une chaîne de 48 caractères pour sa clé de 192 bits.

    1. Protégez les paquets sortants sur le système enigma, par exemple.

      Utilisez les numéros aléatoires générés à l'Étape 1.

      Pour Solaris10 1/06 :


      > add esp spi 0x8bcd1407 \
      src 192.168.116.16 dst 192.168.13.213 \
      encr_alg aes \
      auth_alg sha1 \
      encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
      authkey 6fab07fec4f2895445500ed992ab48835b9286ff
      >

      Remarque –

      Le système homologue doit utiliser le même numéro et le même SPI.


    2. Toujours dans le mode de la commande ipseckey sur le système enigma, protégez les paquets sortants.

      Tapez les commandes suivantes pour protéger les paquets :


      > add esp spi 0x122a43e4 \
      src 192.168.13.213 dst 192.168.116.16 \
      encr_alg aes \
      auth_alg sha1 \
      encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
      authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
      >

      Remarque –

      Les clés et SPI peuvent être différents pour chaque SA. Vous devez attribuer différentes clés et un SPI différent à chaque SA.


  7. Pour quitter le mode de la commande ipseckey, appuyez sur Ctrl-D ou tapez quit.

  8. Ajoutez les numéros de clé requis au fichier /etc/inet/secret/ipseckeys.

    Dans les versions antérieures à la version Solaris 10 4/09, cette étape permet de s'assurer que les numéros de clé requis sont disponibles pour IPsec au moment de la réinitialisation.

    Les lignes du fichier /etc/inet/secret/ipseckeys sont identiques à celles de la ligne de commande ipseckey.

    1. Par exemple, le fichier /etc/inet/secret/ipseckeys du système enigma serait similaire à l'exemple ci-dessous :


      # ipseckeys - This file takes the file format documented in 
      #   ipseckey(1m).
      #   Note that naming services might not be available when this file
      #   loads, just like ipsecinit.conf.
      #
      # for outbound packets on enigma
      add esp spi 0x8bcd1407 \
         src 192.168.116.16 dst 192.168.13.213  \
         encr_alg aes \
         auth_alg sha1  \
         encrkey  c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
         authkey  6fab07fec4f2895445500ed992ab48835b9286ff
      #
      # for inbound packets
      add esp spi 0x122a43e4 \
         src 192.168.13.213 dst 192.168.116.16 \
         encr_alg aes \
         auth_alg sha1  \
         encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
         authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
    2. Protégez le fichier à l'aide de permissions de lecture seule.


      # chmod 400 /etc/inet/secret/ipseckeys
      
  9. Répétez la procédure sur le système partym.

    Utilisez les mêmes numéros de clé que sur enigma.

    Les numéros de clés utilisés sur chacun des systèmes doivent être identiques. Comme illustré dans l'exemple ci-dessous, les commentaires du fichier ipseckeys constituent la seule différente. Les commentaires sont différents parce que dst enigma correspond à du trafic entrant sur le système enigma et à du trafic sortant sur le système partym.


    # partym ipseckeys file
    #
    # for inbound packets
    add esp spi 0x8bcd1407 \
       src 192.168.116.16 dst 192.168.13.213  \
       encr_alg aes \
       auth_alg sha1  \
       encrkey  c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
       authkey  6fab07fec4f2895445500ed992ab48835b9286ff
    #
    # for outbound packets
    add esp spi 0x122a43e4 \
       src 192.168.13.213 dst 192.168.116.16 \
       encr_alg aes \
       auth_alg sha1  \
       encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
       authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
  10. Activez le service manual-key.


    # svcadm enable svc:/network/ipsec/manual-key
    

    Pour remplacer des clés dans la version actuelle, reportez-vous à l'Exemple 20–4.


Exemple 20–4 Remplacement des SA IPsec

Dans cet exemple, l'administrateur configure un système exécutant la version actuelle Solaris10. L'administrateur crée de nouvelles clés, modifie les informations de clé dans le fichier ipseckeys, puis redémarre le service.


ProcedureVérification de la protection des paquets par IPsec

Pour vérifier que les paquets sont protégés, testez la connexion à l'aide de la commande snoop. Les préfixes suivants peuvent apparaître dans la sortie snoop :

Avant de commencer

Pour créer la sortie snoop, vous devez être superutilisateur ou prendre un rôle équivalent. Vous devez avoir accès aux deux systèmes afin de tester la connexion.

  1. Sur un système, par exemple partym, connectez-vous en tant que superutilisateur.


    % su -
    Password: Type root password
    # 
  2. À partir du système partym, préparez l'analyse des paquets à l'aide de la commande snoop à partir d'un système distant.

    Dans une fenêtre de terminal sur partym, analysez les paquets du système enigma.


    # snoop -v enigma
    Using device /dev/hme (promiscuous mode)
  3. Envoyez un paquet à partir du système distant.

    Dans une autre fenêtre de terminal, connectez-vous à distance au système enigma. Tapez le mot de passe. Ensuite, connectez-vous en tant que superutilisateur et envoyez un paquet du système enigma vers le système partym. Le paquet doit être capturé à l'aide de la commande snoop -v enigma.


    % ssh enigma
    Password: Type your password
    % su -
    Password: Type root password
    # ping partym
    
  4. Examinez la sortie de la commande snoop.

    Sur le système partym, la sortie devrait contenir les informations AH et ESP après les informations d'en-tête IP initiales. Les informations AH et ESP semblables à l'exemple ci-dessous indiquent que les paquets sont protégés :


    IP:   Time to live = 64 seconds/hops
    IP:   Protocol = 51 (AH)
    IP:   Header checksum = 4e0e
    IP:   Source address = 192.168.116.16, enigma
    IP:   Destination address = 192.168.13.213, partym
    IP:   No options
    IP:
    AH:  ----- Authentication Header -----
    AH:
    AH:  Next header = 50 (ESP)
    AH:  AH length = 4 (24 bytes)
    AH:  <Reserved field = 0x0>
    AH:  SPI = 0xb3a8d714
    AH:  Replay = 52
    AH:  ICV = c653901433ef5a7d77c76eaa
    AH:
    ESP:  ----- Encapsulating Security Payload -----
    ESP:
    ESP:  SPI = 0xd4f40a61
    ESP:  Replay = 52
    ESP:     ....ENCRYPTED DATA....
    
    ETHER:  ----- Ether Header -----
    ...

ProcedureConfiguration d'un rôle pour la sécurité réseau

Si vous administrez vos systèmes selon le modèle RBAC (Role-Based Access Control, contrôle d'accès à base de rôles), suivez cette procédure pour générer un rôle de gestion ou de sécurité du réseau.

  1. Recherchez les profils de droit réseau dans la base de données prof_attr.

    Dans la version actuelle, le résultat est semblable à ce qui suit :


    % cd /etc/security
    % grep Network prof_attr
    Network IPsec Management:::Manage IPsec and IKE...
    Network Link Security:::Manage network link security...
    Network Management:::Manage the host and network configuration...
    Network Security:::Manage network and host security...
    Network Wifi Management:::Manage wifi network configuration...
    Network Wifi Security:::Manage wifi network security...

    Si vous exécutez une version antérieure à la version Solaris 10 4/09, la sortie est semblable à ce qui suit :


    % cd /etc/security
    % grep Network prof_attr
    Network Management:::Manage the host and network configuration  
    Network Security:::Manage network and host security  
    System Administrator::: Network Management 

    Le profil de gestion du réseau est un profil supplémentaire inclus dans le profil d'administrateur système. Si vous avez attribué le profil de droits d'administrateur système à un rôle, alors ce dernier permet d'exécuter les commandes définies dans le profil de gestion du réseau.

  2. Déterminez les commandes incluses dans le profil de droits de gestion du réseau.


    % grep "Network Management" /etc/security/exec_attr
    Network Management:solaris:cmd:::/usr/sbin/ifconfig:privs=sys_net_config
    …
    Network Management:suser:cmd:::/usr/sbin/snoop:uid=0

    Les commandes de stratégie solaris s'exécutent avec un privilège ( privs=sys_net_config). Les commandes de stratégie suser s'exécutent en tant que superutilisateur (uid=0).

  3. Choisissez l'étendue des rôles de sécurité réseau sur votre site.

    Basez votre choix sur les profils de droits définis lors de l'Étape 1.

    • Pour créer un rôle qui gère l'ensemble de la sécurité du réseau, utilisez le profil de droits Network Security.

    • Dans la version actuelle, pour créer un rôle qui gère IPsec et IKE uniquement, utilisez le profil de droits Network IPsec Management.

  4. Créez un rôle de sécurité réseau incluant le profil de droits Network Management.

    Un rôle auquel est appliqué le profil de droits Network Security ou Network IPsec Management, en plus du profil Network Management, peut exécuter les commandes ifconfig, snoop, ipsecconf et ipseckey, entre autres, avec les privilèges appropriés.

    Pour créer un rôle et l'attribuer à un utilisateur, ainsi que pour enregistrer les modifications avec le service de noms, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services .


Exemple 20–5 Répartition des responsabilités de sécurité réseau entre les rôles

Dans cet exemple, l'administrateur répartit les responsabilités de sécurité réseau entre deux rôles. Un rôle peut administrer la sécurité des connexions Wi-Fi et des liens et un autre rôle administrer IPsec et IKE. Chaque rôle est assigné à trois personnes, une personne par période de travail.

Ces rôles sont créés par l'administrateur comme suit :


ProcedureProcédure de gestion des services IKE et IPsec

Les étapes suivantes présentent les utilisations les plus probables des services SMF pour IPsec, IKE et la gestion manuelle des clés. Par défaut, les services policy et ipsecalgs sont activés. Également par défaut, les services ike et manual-key sont désactivés.

  1. Pour gérer la stratégie IPsec, effectuez l'une des opérations suivantes :

    • Après l'ajout de nouvelles stratégies au fichier .conf, actualisez le service policy.


      # svcadm refresh svc:/network/ipsec/policy
      
    • Après la modification de la valeur d'une propriété du service, affichez la valeur de la propriété, puis actualisez et redémarrez le service policy.


      # svccfg -s policy setprop config/config_file=/etc/inet/MyIpsecinit.conf
      # svcprop -p config/config_file policy
      /etc/inet/MyIpsecinit.conf
      # svcadm refresh svc:/network/ipsec/policy
      # svcadm restart svc:/network/ipsec/policy
      
  2. Pour gérer automatiquement les clés, effectuez l'une des opérations suivantes :

    • Après l'ajout d'entrées dans le fichier /etc/inet/ike/config, activez le service ike.


      # svcadm enable svc:/network/ipsec/ike
      
    • Après modification des entrées dans le fichier /etc/inet/ike/config, actualisez le service ike.


      # svcadm refresh svc:/network/ipsec/ike
      
    • Après la modification de la valeur d'une propriété du service, affichez la valeur de la propriété, puis actualisez et redémarrez le service.


      # svccfg -s ike setprop config/admin_privilege=modkeys
      # svcprop -p config/admin_privilege ike
      modkeys
      # svcadm refresh svc:/network/ipsec/ike
      # svcadm restart svc:/network/ipsec/ike
      
    • Pour arrêter le service ike, désactivez-le.


      # svcadm disable svc:/network/ipsec/ike
      
  3. Pour gérer manuellement les clés, effectuez l'une des opérations suivantes :

    • Après l'ajout d'entrées pour le fichier /etc/inet/secret/ipseckeys, activez le service manual-key.


      # svcadm enable svc:/network/ipsec/manual-key
      
    • Une fois que vous avez modifié le fichier ipseckeys, actualisez le service.


      # svcadm refresh manual-key
      
    • Après la modification de la valeur d'une propriété du service, affichez la valeur de la propriété, puis actualisez et redémarrez le service.


      # svccfg -s manual-key setprop config/config_file=/etc/inet/secret/MyIpseckeyfile
      # svcprop -p config/config_file manual-key
      /etc/inet/secret/MyIpseckeyfile
      # svcadm refresh svc:/network/ipsec/manual-key
      # svcadm restart svc:/network/ipsec/manual-key
      
    • Pour empêcher la gestion manuelle des clés, désactivez le service manual-key.


      # svcadm disable svc:/network/ipsec/manual-key
      
  4. Si vous modifiez le tableau des protocoles IPsec et des algorithmes, actualisez le service ipsecalgs.


    # svcadm refresh svc:/network/ipsec/ipsecalgs
    
Erreurs fréquentes

Pour connaître l'état d'un service, utilisez la commande de service svcs. Si le service est en mode maintenance, suivez les suggestions de débogage dans la sortie de la commande de service svcs -x.

Protection d'un VPN à l'aide d'IPsec

Les tunnels IPsec peuvent protéger un VPN. Dans la version Solaris 10 7/07, un tunnel peut être en mode Tunnel ou en mode Transport. Le mode Tunnel est compatible avec l'implémentation d'IPsec par d'autres fournisseurs. Le mode Transport est compatible avec les versions précédentes du SE Solaris. Les modes de tunnel sont expliqués à la section Modes Transport et Tunnel dans IPsec.

Les tunnels en mode Tunnel permettent un contrôle plus détaillé du trafic. En mode Tunnel, vous pouvez spécifier la protection particulière à appliquer pour une adresse IP interne, selon un niveau de détail allant jusqu'au port.

Protection d'un VPN à l'aide d'IPsec via des tunnels en mode Tunnel (exemple)

Figure 20–1 Diagramme de tunnel IPsec

Le diagramme présente un VPN connecté à deux LAN. Chaque LAN possède quatre sous-réseaux.

Les exemples ci-dessous considèrent que le tunnel est configuré pour tous les sous-réseaux des LAN :


## Tunnel configuration ##
# Tunnel name is ip.tun0
# Intranet point for the source is 10.1.2.1
# Intranet point for the destination is 10.2.3.1
# Tunnel source is 192.168.1.10
# Tunnel destination is 192.168.2.10

Exemple 20–6 Création d'un tunnel utilisable par tous les sous-réseaux

Dans cet exemple, l'intégralité du trafic issu des LAN locaux du LAN Central de la Figure 20–1 peut être mis en tunnel du routeur 1 au routeur 2, puis fourni à tous les LAN locaux du LAN Overseas. Le trafic est chiffré à l'aide d'AES.


## IPsec policy ##
{tunnel ip.tun0 negotiate tunnel} 
 ipsec {encr_algs aes encr_auth_algs sha1 sa shared}


Exemple 20–7 Création d'un tunnel connectant deux sous-réseaux

Dans cet exemple, seul le trafic entre le sous-réseau 10.1.2.0/24 du LAN Central et le sous-réseau 10.2.3.0/24 du LAN Overseas est mis en tunnel et chiffré. En l'absence d'autres stratégies IPsec pour Central, si le LAN Central tente de transmettre des données pour d'autres LAN via ce tunnel, le trafic est abandonné au niveau du routeur 1.


## IPsec policy ##
{tunnel ip.tun0 negotiate tunnel laddr 10.1.2.0/24 raddr 10.2.3.0/24} 
 ipsec {encr_algs aes encr_auth_algs md5 sha1 shared}


Exemple 20–8 Création d'un tunnel pour le trafic d'e-mail entre deux sous-réseaux

Dans cet exemple, un tunnel est créé pour les échanges d'e-mail exclusivement. Le trafic est fourni à partir du sous-réseau 10.1.2.0/24 du LAN Central vers le serveur de courrier sur le sous-réseau 10.2.3.0/24 du LAN Overseas. L'e-mail est chiffré à l'aide de Blowfish. Les stratégies s'appliquent aux ports de courrier locaux et distants. La stratégie rport protège l'e-mail envoyé par Central au port de courrier distant d'Overseas. La stratégie lport protège l'e-mail reçu par Central en provenance d'Overseas sur le port local 25.


## IPsec policy for email from Central to Overseas ##
{tunnel ip.tun0 negotiate tunnel ulp tcp rport 25 
 laddr 10.1.2.0/24 raddr 10.2.3.0/24} 
 ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}

## IPsec policy for email from Overseas to Central ##
{tunnel ip.tun0 negotiate tunnel ulp tcp lport 25 
 laddr 10.1.2.0/24 raddr 10.2.3.0/24} 
 ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}


Exemple 20–9 Création d'un tunnel pour le trafic FTP pour tous les sous-réseaux

Dans cet exemple, la stratégie IPsec protège les ports FTP de la Figure 20–1 à l'aide d'AES pour tous les sous-réseaux du LAN Central vers tous les sous-réseaux du LAN Overseas. Cette configuration fonctionne pour le mode actif de FTP.


## IPsec policy for outbound FTP from Central to Overseas ##
{tunnel ip.tun0 negotiate tunnel ulp tcp rport 21} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
{tunnel ip.tun0 negotiate tunnel ulp tcp lport 20} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## IPsec policy for inbound FTP from Central to Overseas ##
{tunnel ip.tun0 negotiate tunnel ulp tcp lport 21} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
{tunnel ip.tun0 negotiate tunnel ulp tcp rport 20} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

Protection d'un VPN à l'aide d'IPsec (liste des tâches)

La liste des tâches suivante fait référence aux procédures de configuration d'IPsec dans le cadre de la protection du trafic sur Internet. Ces procédures permettent de configurer un VPN (Virtual Private Network, réseau privé virtuel) sécurisé entre deux systèmes séparés par Internet. Grâce à cette technologie, vous pouvez notamment protéger le trafic de données entre les employés travaillant à domicile et le site de la société.

Tâche 

Description 

Voir 

Protection du trafic de tunnel en mode Tunnel sur IPv4 

Protège le trafic en mode Tunnel entre deux systèmes Solaris10, deux systèmes Oracle Solaris ou entre un système Solaris10 et un système Oracle Solaris Express. Le système Solaris10 doit exécuter au moins la version Solaris 10 7/07. 

Protège également le trafic en mode Tunnel entre un système Solaris10 ou un système Oracle Solaris Express et un système exécuté sur une autre plate-forme. Le système Solaris10 doit exécuter au moins la version Solaris 10 7/07. 

Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4

Protection du trafic de tunnel en mode Tunnel sur IPv6 

Protège le trafic en mode Tunnel entre deux systèmes Oracle Solaris utilisant le protocole IPv6. 

Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv6

Protection du trafic de tunnel en mode Transport sur IPv4 

Protège le trafic en mode Transport entre deux systèmes Solaris10, deux systèmes Solaris ou entre un système Solaris10 et un système Oracle Solaris. Le système Solaris10 doit exécuter au moins la version Solaris 10 7/07. 

Protège également le trafic en mode Transport entre un système exécutant une version antérieure de SE Solaris et un système Solaris10 ou Oracle Solaris. Le système Solaris10 doit exécuter au moins la version Solaris 10 7/07. 

Protection d'un VPN à l'aide d'un tunnel IPsec en mode Transport sur IPv4

Protège le trafic à l'aide d'une syntaxe plus ancienne et désapprouvée Cette méthode s'avère particulièrement utile pour communiquer avec un système exécutant une version antérieure du SE Solaris. Elle simplifie la comparaison des fichiers de configuration sur les deux systèmes. 

Exemple 20–11

Exemple 20–16

Protection du trafic de tunnel en mode Transport sur IPv6 

Protège le trafic en mode Tunnel entre deux systèmes Oracle Solaris utilisant le protocole IPv6. 

Protection d'un VPN à l'aide d'un tunnel IPsec en mode Transport sur IPv6

Protection contre l'usurpation d'adresse IP 

Crée un service SMF afin d'empêcher le système de transmettre des paquets sur un réseau VPN sans que ceux-ci soient déchiffrés.  

Protection contre l'usurpation d'adresse IP

Description de la topologie réseau requise par les tâches IPsec afin de protéger un VPN

Les procédures suivant cette section sont définies pour la configuration ci-dessous. Le réseau est illustré sur la Figure 20–2.

Figure 20–2 Exemple de VPN entre plusieurs sites séparés par Internet

Le diagramme indique les détails du VPN entre les sites européen et californien de la société.

Comme l'illustration précédente l'indique, les procédures pour le réseau IPv4 utilisent les paramètres de configuration suivants :

Paramètre 

Europe 

Californie 

Nom du système 


enigma

partym

Interface intranet du système 


hme1

hme1

Adresse intranet du réseau, dite également adresse -point dans l'Étape 7


10.16.16.6

10.1.3.3

Interface Internet du système 


hme0

hme0

Adresse Internet du système, dite également adresse tsrc dans l'Étape 7


192.168.116.16

192.168.13.213

Nom du routeur Internet 


router-E

router-C

Adresse du routeur Internet 


192.168.116.4

192.168.13.5

Nom du tunnel 


ip.tun0

ip.tun0

Les adresses IPv6 sont utilisées dans les procédures. Les noms de tunnel sont identiques.

Paramètre 

Europe 

Californie 

Adresse intranet du système 


6000:6666::aaaa:1116

6000:3333::eeee:1113

Adresse Internet du système 


2001::aaaa:6666:6666

2001::eeee:3333:3333

Adresse du routeur Internet 


2001::aaaa:0:4

2001::eeee:0:1

ProcedureProtection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4

En mode Tunnel, le paquet IP interne détermine la stratégie IPsec qui protège son contenu.

Cette procédure prolonge la procédure Sécurisation du trafic entre deux systèmes à l'aide d'IPsec. La configuration est décrite à la section Description de la topologie réseau requise par les tâches IPsec afin de protéger un VPN.


Remarque –

Effectuez cette procédure sur les deux systèmes.


Outre la connexion de deux systèmes, vous connectez deux intranets qui leur sont connectés. Les systèmes de cette procédure fonctionnent comme des passerelles.

Avant de commencer

Vous devez vous trouver dans la zone globale pour configurer la stratégie IPsec pour le système ou pour une zone IP partagée. Dans une zone IP exclusive, vous devez configurer la stratégie IPsec dans la zone non globale.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Contrôlez le flux de paquets avant de configurer IPsec.

    1. Assurez-vous que le transfert IP et le routage dynamique IP sont désactivés.


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      IPv4 forwarding     disabled           disabled
         IPv4 routing     default (enabled)   enabled
      …

      Si le transfert IP et le routage dynamique IP sont activés, vous pouvez les désactiver en tapant :


      # routeadm -d ipv4-routing -d ipv4-forwarding
      # routeadm -u
      

      La désactivation du transfert IP évite le transfert des paquets d'un réseau à un autre via ce système. La commande routeadm est décrite à la page de manuel routeadm(1M).

    2. Activez le multiréseau de destination strict IP.


      # ndd -set /dev/ip ip_strict_dst_multihoming 1
      

      L'activation du multiréseau de destination strict IP assure que les paquets de l'une des adresses de destination du système arrivent à l'adresse de destination adéquate.

      Lorsque le multiréseau de destination strict est activé, les paquets arrivant sur une interface particulière doivent être adressés à l'une des adresses IP locales de cette interface. Tous les autres paquets sont abandonnés, même les paquets envoyés vers d'autres adresses locales du système.


      Attention – Attention –

      Par défaut, lors de l'initialisation du système, la valeur multiréseau est désélectionnée. Pour rendre persistante la valeur modifiée, reportez-vous à la section Protection contre l'usurpation d'adresse IP.


    3. Désactivez la plupart des services réseau, voire tous les services réseau.


      Remarque –

      Si le système a été installé avec le profil SMF "limité", vous pouvez ignorer cette étape. Tous les services réseau sont désactivés, à l'exception de Solaris Secure Shell.


      La désactivation des services réseau évite que le système soit affecté par les paquets IP. Par exemple, vous pouvez utiliser un démon SNMP, une connexion telnet ou une connexion rlogin.

      Procédez de l'une des manières suivantes :

      • Si vous exécutez Solaris10 11/06 ou une version supérieure, exécutez le profil SMF "limité".


        # netservices limited
        
      • Dans le cas contraire, désactivez les services réseau un à un.


        # svcadm disable network/ftp:default
        # svcadm disable network/finger:default
        # svcadm disable network/login:rlogin
        # svcadm disable network/nfs/server:default
        # svcadm disable network/rpc/rstat:default
        # svcadm disable network/smtp:sendmail
        # svcadm disable network/telnet:default
        
    4. Assurez-vous que la plupart des services réseau sont désactivés.

      Assurez-vous que les montages en loopback et le service ssh sont en cours d'exécution.


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      …
      online         Aug_09   svc:/network/ssh:default
  3. Ajoutez une paire de SA entre les deux systèmes.

    Procédez de l'une des manières suivantes :

  4. Ajoutez une stratégie IPsec.

    Modifiez le fichier /etc/inet/ipsecinit.conf afin d'ajouter la stratégie IPsec pour le VPN. Pour renforcer la stratégie, reportez-vous à l'Exemple 20–12. Vous trouverez d'autres exemples à la section Protection d'un VPN à l'aide d'IPsec via des tunnels en mode Tunnel (exemple).

    Dans cette stratégie, la protection IPsec n'est pas requise entre les systèmes du réseau local et l'adresse IP interne de la passerelle, d'où l'ajout d'une déclaration bypass.

    1. Sur le système enigma, saisissez l'entrée suivante dans le fichier ipsecinit.conf :


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.16.16.6 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate tunnel} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. Sur le système partym, tapez l'entrée suivante dans le fichier ipsecinit.conf :


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.1.3.3 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate tunnel} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
  5. (Facultatif) Vérifiez la syntaxe du fichier de stratégie IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. Pour configurer le tunnel et le protéger à l'aide d'IPsec, suivez les étapes en fonction de la version de Solaris utilisée :

    • À partir de la version Solaris 10 4/09, suivez les étapes Étape 7 à Étape 13, puis exécutez le protocole de routage tel qu'indiqué à l'Étape 22.

    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, suivez les étapes Étape 14 à Étape 22.

  7. Configurez le tunnel ip.tun0 dans le fichier /etc/hostname.ip.tun0.

    La syntaxe du fichier est la suivante :


    system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  8. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. Pour lire les informations du fichier de configuration du tunnel, redémarrez les services réseau.


    # svcadm restart svc:/network/initial:default
    
  10. Activez le transfert IP pour l'interface hme1.

    1. Sur le système enigma, ajoutez l'entrée de routeur au fichier /etc/hostname.hme1.


      192.168.116.16 router
    2. Sur le système partym, ajoutez l'entrée de routeur au fichier /etc/hostname.hme1.


      192.168.13.213 router

    Le transfert IP signifie que les paquets arrivant peuvent être transférés. Le transfert IP signifie également que les paquets quittant l'interface peuvent provenir d'un autre emplacement. Pour que le transfert de paquet s'effectue sans erreur, vous devez activer le transfert IP à la fois sur l'interface réceptrice et sur l'interface émettrice.

    Étant donné que l'interface hme1 se trouve dans l'intranet, le transfert IP doit être activé pour hme1. Comme ip.tun0 connecte les deux systèmes via Internet, le transfert IP doit être activé pour ip.tun0.

    Le transfert IP de l'interface hme0 est désactivé afin d'éviter toute injection de paquets par un concurrent externe dans l'intranet protégé. Le terme externe fait référence à Internet.

  11. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.

    1. Sur le système enigma, ajoutez l'indicateur private au fichier /etc/hostname.hme0.


      10.16.16.6 private
    2. Sur le système partym, ajoutez l'indicateur private au fichier /etc/hostname.hme0.


      10.1.3.3 private

    Même si le transfert de l'IP de hme0 est désactivé, l'implémentation d'un protocole de routage peut permettre d'annoncer l'interface. Par exemple, le protocole in.routed peut encore annoncer que hme0 est disponible pour transférer des paquets à ses homologues dans l'intranet. Pour éviter ces annonces, définissez l'indicateur private de l'interface.

  12. Ajoutez manuellement une route par défaut sur l'interface hme0.

    La route par défaut doit correspondre à un routeur bénéficiant d'un accès direct à Internet.

    1. Sur le système enigma, ajoutez la route suivante :


      # route add default 192.168.116.4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add default 192.168.13.5
      

      Même si l'interface hme0 ne fait pas partie de l'intranet, hme0 n'a pas besoin de passer par Internet pour atteindre le système homologue. Pour trouver son homologue, hme0 requiert des informations sur le routage Internet. Pour le reste d'Internet, le système VPN apparaît comme étant un hôte, non un routeur. Par conséquent, vous pouvez utiliser un routeur par défaut ou exécuter le protocole de recherche de routeur pour rechercher le système. Pour de plus amples informations, reportez-vous aux pages de manuel route(1M) et in.routed(1M).

  13. Pour terminer la procédure, passez à l'Étape 22 pour exécuter un protocole de routage.

  14. Configurez le tunnel ip.tun0.


    Remarque –

    Les étapes suivantes permettent de configurer un tunnel sur un système exécutant une version antérieure à la version Solaris 10 4/09.


    Utilisez les commandes ifconfig pour créer l'interface point à point :


    # ifconfig ip.tun0 plumb
    
    # ifconfig ip.tun0 system1-point system2-point \
    tsrc system1-taddr tdst system2-taddr
    
    1. Sur le système enigma, saisissez les commandes ci-dessous :


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \
      tsrc 192.168.116.16 tdst 192.168.13.213
      
    2. Sur le système partym, tapez les commandes ci-dessous :


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.1.3.3 10.16.16.6  \
      tsrc 192.168.13.213 tdst 192.168.116.16
      
  15. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # ipsecconf
    
  16. Affichez le routeur pour le tunnel.


    # ifconfig ip.tun0 router up
    
  17. Activez le transfert IP pour l'interface hme1.


    # ifconfig hme1 router
    

    Le transfert IP signifie que les paquets arrivant peuvent être transférés. Le transfert IP signifie également que les paquets quittant l'interface peuvent provenir d'un autre emplacement. Pour que le transfert de paquet s'effectue sans erreur, vous devez activer le transfert IP à la fois sur l'interface réceptrice et sur l'interface émettrice.

    Comme l'interface hme1 se trouve dans l'intranet, le transfert IP doit être activé pour hme1. Comme ip.tun0 connecte les deux systèmes via Internet, le transfert IP doit être activé pour ip.tun0.

    Le transfert IP de l'interface hme0 est désactivé afin d'éviter toute injection de paquets par un concurrent externe dans l'intranet protégé. Le terme externe fait référence à Internet.

  18. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.


    # ifconfig hme0 private
    

    Même si le transfert IP de hme0 est désactivé, l'implémentation d'un protocole de routage est susceptible d'annoncer l'interface. Par exemple, le protocole in.routed peut encore annoncer que hme0 est disponible pour transférer des paquets à ses homologues dans l'intranet. Pour éviter ces annonces, définissez l'indicateur private de l'interface.

  19. Ajoutez manuellement une route par défaut à travers hme0.

    La route par défaut doit correspondre à un routeur bénéficiant d'un accès direct à Internet.

    1. Sur le système enigma, ajoutez la route suivante :


      # route add default 192.168.116.4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add default 192.168.13.5
      

      Même si l'interface hme0 ne fait pas partie de l'intranet, hme0 n'a pas besoin de passer par Internet pour atteindre le système homologue. Pour trouver son homologue, hme0 requiert des informations sur le routage Internet. Pour le reste d'Internet, le système VPN apparaît comme étant un hôte, non un routeur. Par conséquent, vous pouvez utiliser un routeur par défaut ou exécuter le protocole de recherche de routeur pour rechercher le système. Pour de plus amples informations, reportez-vous aux pages de manuel route(1M) et in.routed(1M).

  20. Assurez-vous que le VPN démarre à la réinitialisation en ajoutant une entrée au fichier /etc/hostname.ip.tun0.


    system1-point system2-point tsrc system1-taddr tdst system2-taddr router up
    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  21. Configurez les fichiers d'interface afin de transmettre les paramètres adéquats au démon de routage.

    1. Sur le système enigma, modifiez les fichiers /etc/hostname. interface.


      # cat /etc/hostname.hme0
      ## enigma
      10.16.16.6 private

      # cat /etc/hostname.hme1
      ## enigma
      192.168.116.16 router
    2. Sur le système partym, modifiez les fichiers /etc/hostname. interface.


      # cat /etc/hostname.hme0
      ## partym
      10.1.3.3 private

      # cat /etc/hostname.hme1
      ## partym
      192.168.13.213 router
  22. Exécutez un protocole de routage.


    # routeadm -e ipv4-routing
    # routeadm -u
    

    Vous devrez peut-être configurer le protocole de routage avant de l'exécuter. Pour plus d'informations, reportez-vous à la section Protocoles de routage dans Oracle Solaris. La procédure est décrite à la section Configuration d'un routeur IPv4.


Exemple 20–10 Création temporaire des tunnels lors du test

Dans cet exemple, l'administrateur teste la création d'un tunnel sur un système Solaris 10 4/09. Par la suite, l'administrateur utilise la procédure Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4 pour rendre les tunnels permanents. Lors du test, l'administrateur effectue les séries d'actions suivantes sur les systèmes system1 et system2 :



Exemple 20–11 Création d'un tunnel sur un système Solaris de version antérieure en utilisant la ligne de commande

Dans la version Solaris 10 7/07, la syntaxe de la commande ifconfig a été simplifiée. Dans cet exemple, l'administrateur teste la création d'un tunnel sur un système exécutant une version de Solaris antérieure à la version Solaris 10 7/07. À l'aide de la syntaxe d'origine de la commande ifconfig, l'administrateur peut utiliser les mêmes commandes sur les deux systèmes communicants. Ensuite, l'administrateur doit effectuer la procédure de la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4 pour rendre les tunnels permanents.

Lors du test, l'administrateur doit effectuer les étapes suivantes sur les systèmes system1 et system2 :



Exemple 20–12 Requête de stratégie IPsec sur tous les systèmes sur un LAN

Dans cet exemple, l'administrateur met en commentaire la stratégie bypass configurée à l'Étape 4, ce qui renforce la protection. Avec cette configuration de stratégie, chaque système du LAN doit activer IPsec afin de communiquer avec le routeur.


# LAN traffic must implement IPsec.
# {laddr 10.1.3.3 dir both} bypass {}

# WAN traffic uses ESP with AES and SHA-1.
{tunnel ip.tun0 negotiate tunnel} ipsec {encr_algs aes encr_auth_algs sha1}


Exemple 20–13 Utilisation d'IPsec pour protéger le trafic Telnet différemment du trafic SMTP

Dans cet exemple, la première règle protège le trafic telnet sur le port 23 avec Blowfish et SHA-1. La deuxième règle protège le trafic SMTP sur le port 25 avec AES et MD5.


{laddr 10.1.3.3 ulp tcp dport 23 dir both} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa unique}
{laddr 10.1.3.3 ulp tcp dport 25 dir both} 
 ipsec {encr_algs aes encr_auth_algs md5 sa unique}


Exemple 20–14 Utilisation d'un tunnel IPsec en mode Tunnel pour protéger un sous-réseau différemment d'un autre trafic réseau

La configuration de tunnel ci-dessous protège l'intégralité du trafic du sous-réseau 10.1.3.0/24 via le tunnel :


{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

Les configurations de tunnel ci-dessous protègent le trafic du sous-réseau 10.1.3.0/24 vers d'autres sous-réseaux via le tunnel. Les sous-réseaux dont le numéro commence par 10.2.x.x traversent le tunnel.


{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.1.0/24} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}

{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.2.0/24} 
  ipsec {encr_algs blowfish encr_auth_algs sha1 sa shared}

{tunnel ip.tun0 negotiate tunnel laddr 10.1.3.0/24 raddr 10.2.3.0/24} 
  ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

ProcedureProtection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv6

Les étapes de configuration d'un VPN sur un réseau IPv6 sont identiques à celles de la configuration d'un VPN sur un réseau IPv4. Toutefois, la syntaxe des commandes est légèrement différente. Les raisons pour lesquelles des commandes spécifiques sont requises sont expliquées en détail aux étapes correspondantes de la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4.


Remarque –

Effectuez cette procédure sur les deux systèmes.


Cette procédure utilise les paramètres de configuration ci-dessous.

Paramètre 

Europe 

Californie 

Nom du système 


enigma

partym

Interface intranet du système 


hme1

hme1

Interface Internet du système 


hme0

hme0

Adresse intranet du système 


6000:6666::aaaa:1116

6000:3333::eeee:1113

Adresse Internet du système 


2001::aaaa:6666:6666

2001::eeee:3333:3333

Nom du routeur Internet 


router-E

router-C

Adresse du routeur Internet 


2001::aaaa:0:4

2001::eeee:0:1

Nom du tunnel 


ip6.tun0

ip6.tun0

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Contrôlez le flux de paquets avant de configurer IPsec.

    Les effets de ces commandes sont décrits à l'Étape 2 de la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4.

    1. Assurez-vous que le transfert IP et le routage dynamique IP sont désactivés.


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      …
      IPv6 forwarding     disabled          disabled
         IPv6 routing     disabled          disabled

      Si le transfert IP et le routage dynamique IP sont activés, vous pouvez les désactiver en tapant :


      # routeadm -d ipv6-forwarding -d ipv6-routing
      # routeadm -u
      
    2. Activez le multiréseau de destination strict IP.


      # ndd -set /dev/ip ip6_strict_dst_multihoming 1
      

      Attention – Attention –

      La valeur par défaut de ip6_strict_dst_multihoming est rétablie lors de l'initialisation du système. Pour rendre persistante la valeur modifiée, reportez-vous à la section Protection contre l'usurpation d'adresse IP.


    3. Désactivez la plupart des services réseau, voire tous les services réseau.


      Remarque –

      Si le système a été installé avec le profil SMF "limité", vous pouvez ignorer cette étape. Tous les services réseau sont désactivés, à l'exception de Solaris Secure Shell.


      La désactivation des services réseau évite que le système soit affecté par les paquets IP. Par exemple, vous pouvez utiliser un démon SNMP, une connexion telnet ou une connexion rlogin.

      Procédez de l'une des manières suivantes :

      • Si vous exécutez Solaris10 11/06 ou une version supérieure, exécutez le profil SMF "limité".


        # netservices limited
        
      • Dans le cas contraire, désactivez les services réseau un à un.


        # svcadm disable network/ftp:default
        # svcadm disable network/finger:default
        # svcadm disable network/login:rlogin
        # svcadm disable network/nfs/server:default
        # svcadm disable network/rpc/rstat:default
        # svcadm disable network/smtp:sendmail
        # svcadm disable network/telnet:default 
    4. Assurez-vous que la plupart des services réseau sont désactivés.

      Assurez-vous que les montages en loopback et le service ssh sont en cours d'exécution.


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      ...
      online         Aug_09   svc:/network/ssh:default
  3. Ajoutez une paire de SA entre les deux systèmes.

    Procédez de l'une des manières suivantes :

  4. Ajoutez la stratégie IPsec pour le réseau VPN.

    Modifiez le fichier /etc/inet/ipsecinit.conf afin d'ajouter la stratégie IPsec pour le VPN.

    1. Sur le système enigma, saisissez l'entrée suivante dans le fichier ipsecinit.conf :


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic to and from this host can bypass IPsec.
      {laddr 6000:6666::aaaa:1116 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate tunnel} 
        ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. Sur le système partym, tapez l'entrée suivante dans le fichier ipsecinit.conf :


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic to and from this host can bypass IPsec.
      {laddr 6000:3333::eeee:1113 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate tunnel} 
        ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
  5. (Facultatif) Vérifiez la syntaxe du fichier de stratégie IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. Pour configurer le tunnel et le protéger à l'aide d'IPsec, suivez les étapes en fonction de la version de Solaris utilisée :

    • À partir de la version Solaris 10 4/09, suivez les étapes Étape 7 à Étape 13, puis exécutez le protocole de routage tel qu'indiqué à l'Étape 22.

    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, suivez les étapes Étape 14 à Étape 22.

  7. Configurez le tunnel ip6.tun0 dans le fichier /etc/hostname.ip6.tun0.

    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname.ip6.tun0 :


      6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname.ip6.tun0 :


      6000:3333::eeee:1113  6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
  8. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. Pour lire les informations du fichier de configuration du tunnel dans le noyau, redémarrez les services réseau.


    # svcadm restart svc:/network/initial:default
    
  10. Activez le transfert IP pour l'interface hme1.

    1. Sur le système enigma, ajoutez l'entrée de routeur au fichier /etc/hostname6.hme1.


      2001::aaaa:6666:6666 inet6 router
    2. Sur le système partym, ajoutez l'entrée de routeur au fichier /etc/hostname6.hme1.


      2001::eeee:3333:3333 inet6 router
  11. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.

    1. Sur le système enigma, ajoutez l'indicateur private au fichier /etc/hostname6.hme0.


      6000:6666::aaaa:1116 inet6 private
    2. Sur le système partym, ajoutez l'indicateur private au fichier /etc/hostname6.hme0.


      6000:3333::eeee:1113 inet6 private
  12. Ajoutez manuellement une route par défaut à travers hme0.

    1. Sur le système enigma, ajoutez la route suivante :


      # route add -inet6 default 2001::aaaa:0:4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add -inet6 default 2001::eeee:0:1
      
  13. Pour terminer la procédure, passez à l'Étape 22 pour exécuter un protocole de routage.

  14. Configurez un tunnel sécurisé ip6.tun0.


    Remarque –

    Les étapes suivantes permettent de configurer un tunnel sur un système exécutant une version antérieure à la version Solaris 10 4/09.


    1. Sur le système enigma, saisissez les commandes ci-dessous :


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6 6000:6666::aaaa:1116 6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666   tdst 2001::eeee:3333:3333
      
    2. Sur le système partym, tapez les commandes ci-dessous :


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6 6000:3333::eeee:1113 6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666
      
  15. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # ipsecconf
    
  16. Affichez le routeur pour le tunnel.


    # ifconfig ip6.tun0 router up
    
  17. Sur chaque système, exécutez le transfert IP pour l'interface hme1.


    # ifconfig hme1 router
    
  18. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.


    # ifconfig hme0 private
    
  19. Ajoutez manuellement une route par défaut à travers hme0.

    La route par défaut doit correspondre à un routeur bénéficiant d'un accès direct à Internet.

    1. Sur le système enigma, ajoutez la route suivante :


      # route add -inet6 default 2001::aaaa:0:4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add -inet6 default 2001::eeee:0:1
      
  20. Assurez-vous que le VPN démarre à la réinitialisation en ajoutant une entrée au fichier /etc/hostname6.ip6.tun0.

    L'entrée réplique les paramètres spécifiés dans la commande ifconfig lors de l'Étape 14.

    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname6.ip6.tun0 :


      6000:6666::aaaa:1116 6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666  tdst 2001::eeee:3333:3333 router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname6.ip6.tun0 :


      6000:3333::eeee:1113 6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666  router up
  21. Sur chaque système, configurez les fichiers d'interface afin de transmettre les paramètres adéquats au démon de routage.

    1. Sur le système enigma, modifiez les fichiers /etc/hostname6. interface.


      # cat /etc/hostname6.hme0
      ## enigma
      6000:6666::aaaa:1116 inet6 private

      #  cat /etc/hostname6.hme1
      ## enigma
      2001::aaaa:6666:6666 inet6 router
    2. Sur le système partym, modifiez les fichiers /etc/hostname6. interface.


      # cat /etc/hostname6.hme0
      ## partym
      6000:3333::eeee:1113 inet6 private

      # cat /etc/hostname6.hme1
      ## partym
      2001::eeee:3333:3333 inet6 router
  22. Exécutez un protocole de routage.


    # routeadm -e ipv6-routing
    # routeadm -u
    

    Vous devrez peut-être configurer le protocole de routage avant de l'exécuter. Pour plus d'informations, reportez-vous à la section Protocoles de routage dans Oracle Solaris. Pour connaître la procédure, reportez-vous à la section Configuration d'un routeur IPv6.

ProcedureProtection d'un VPN à l'aide d'un tunnel IPsec en mode Transport sur IPv4

En mode Transport, l'en-tête extérieur détermine la stratégie IPsec qui protège le paquet IP interne.

Cette procédure prolonge la procédure Sécurisation du trafic entre deux systèmes à l'aide d'IPsec. Outre la connexion de deux systèmes, vous connectez deux intranets qui leur sont connectés. Les systèmes de cette procédure fonctionnent comme des passerelles.

La configuration utilisée pour cette procédure est décrite à la section Description de la topologie réseau requise par les tâches IPsec afin de protéger un VPN. Les raisons pour lesquelles des commandes spécifiques sont requises sont expliquées en détail aux étapes correspondantes de la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4.


Remarque –

Effectuez cette procédure sur les deux systèmes.


  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Contrôlez le flux de paquets avant de configurer IPsec.

    1. Assurez-vous que le transfert IP et le routage dynamique IP sont désactivés.


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      IPv4 forwarding     disabled           disabled
         IPv4 routing     default (enabled)   enabled
      …

      Si le transfert IP et le routage dynamique IP sont activés, vous pouvez les désactiver en tapant :


      # routeadm -d ipv4-routing -d ipv4-forwarding
      # routeadm -u
      
    2. Activez le multiréseau de destination strict IP.


      # ndd -set /dev/ip ip_strict_dst_multihoming 1
      

      Attention – Attention –

      La valeur par défaut de ip_strict_dst_multihoming est rétablie lors de l'initialisation du système. Pour rendre persistante la valeur modifiée, reportez-vous à la section Protection contre l'usurpation d'adresse IP.


    3. Désactivez la plupart des services réseau, voire tous les services réseau.


      Remarque –

      Si le système a été installé avec le profil SMF "limité", vous pouvez ignorer cette étape. Tous les services réseau sont désactivés, à l'exception de Solaris Secure Shell.


      La désactivation des services réseau évite que le système soit affecté par les paquets IP. Par exemple, vous pouvez utiliser un démon SNMP, une connexion telnet ou une connexion rlogin.

      Procédez de l'une des manières suivantes :

      • Si vous exécutez Solaris10 11/06 ou une version supérieure, exécutez le profil SMF "limité".


        # netservices limited
        
      • Dans le cas contraire, désactivez les services réseau un à un.


        # svcadm disable network/ftp:default
        # svcadm disable network/finger:default
        # svcadm disable network/login:rlogin
        # svcadm disable network/nfs/server:default
        # svcadm disable network/rpc/rstat:default
        # svcadm disable network/smtp:sendmail
        # svcadm disable network/telnet:default 
    4. Assurez-vous que la plupart des services réseau sont désactivés.

      Assurez-vous que les montages en loopback et le service ssh sont en cours d'exécution.


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      …
      online         Aug_09   svc:/network/ssh:default
  3. Ajoutez une paire de SA entre les deux systèmes.

    Procédez de l'une des manières suivantes :

  4. Ajoutez une stratégie IPsec.

    Modifiez le fichier /etc/inet/ipsecinit.conf afin d'ajouter la stratégie IPsec pour le VPN. Pour renforcer la stratégie, reportez-vous à l'Exemple 20–15.

    1. Sur le système enigma, saisissez l'entrée suivante dans le fichier ipsecinit.conf :


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.16.16.6 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. Sur le système partym, tapez l'entrée suivante dans le fichier ipsecinit.conf :


      # LAN traffic to and from this host can bypass IPsec.
      {laddr 10.1.3.3 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
  5. (Facultatif) Vérifiez la syntaxe du fichier de stratégie IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. Pour configurer le tunnel et le protéger à l'aide d'IPsec, suivez les étapes en fonction de la version de Solaris utilisée :

    • À partir de la version Solaris 10 4/09, suivez les étapes Étape 7 à Étape 13, puis exécutez le protocole de routage tel qu'indiqué à l'Étape 22.

    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, suivez les étapes Étape 14 à Étape 22.

  7. Configurez le tunnel ip.tun0 dans le fichier /etc/hostname.ip.tun0.

    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 tdst 192.168.13.213 router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 tdst 192.168.116.16 router up
  8. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. Pour lire les informations du fichier hostname.ip.tun0 dans le noyau, redémarrez les services réseau.


    # svcadm restart svc:/network/initial:default
    
  10. Activez le transfert IP pour l'interface hme1.

    1. Sur le système enigma, ajoutez l'entrée du routeur au fichier /etc/hostname.hme1.


      192.168.116.16 router
    2. Sur le système partym, ajoutez l'entrée du routeur au fichier /etc/hostname.hme1.


      192.168.13.213 router
  11. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.

    1. Sur le système enigma, ajoutez l'indicateur private au fichier /etc/hostname.hme0.


      10.16.16.6 private
    2. Sur le système partym, ajoutez l'indicateur private au fichier /etc/hostname.hme0.


      10.1.3.3 private
  12. Ajoutez manuellement une route par défaut sur hme0.

    1. Sur le système enigma, ajoutez la route suivante :


      # route add default 192.168.116.4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add default 192.168.13.5
      
  13. Pour terminer la procédure, passez à l'Étape 22 pour exécuter un protocole de routage.

  14. Configurez le tunnel ip.tun0.


    Remarque –

    Les étapes suivantes permettent de configurer un tunnel sur un système exécutant une version antérieure à la version Solaris 10 4/09.


    Utilisez les commandes ifconfig pour créer l'interface point à point :


    # ifconfig ip.tun0 plumb
    
    # ifconfig ip.tun0 system1-point system2-point \
    tsrc system1-taddr tdst system2-taddr
    
    1. Sur le système enigma, saisissez les commandes ci-dessous :


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.16.16.6 10.1.3.3 \
      tsrc 192.168.116.16 tdst 192.168.13.213
      
    2. Sur le système partym, tapez les commandes ci-dessous :


      # ifconfig ip.tun0 plumb
      
      # ifconfig ip.tun0 10.1.3.3 10.16.16.6  \
      tsrc 192.168.13.213 tdst 192.168.116.16
      
  15. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # ipsecconf
    
  16. Affichez le routeur pour le tunnel.


    # ifconfig ip.tun0 router up
    
  17. Activez le transfert IP pour l'interface hme1.


    # ifconfig hme1 router
    
  18. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.


    # ifconfig hme0 private
    
  19. Ajoutez manuellement une route par défaut à travers hme0.

    La route par défaut doit correspondre à un routeur bénéficiant d'un accès direct à Internet.


    # route add default router-on-hme0-subnet
    
    1. Sur le système enigma, ajoutez la route suivante :


      # route add default 192.168.116.4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add default 192.168.13.5
      
  20. Assurez-vous que le VPN démarre à la réinitialisation en ajoutant une entrée au fichier /etc/hostname.ip.tun0.


    system1-point system2-point tsrc system1-taddr \
    tdst system2-taddr encr_algs aes encr_auth_algs sha1 router up
    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.16.16.6 10.1.3.3 tsrc 192.168.116.16 \
      tdst 192.168.13.213 router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname.ip.tun0 :


      10.1.3.3 10.16.16.6 tsrc 192.168.13.213 \
      tdst 192.168.116.16 router up
  21. Configurez les fichiers d'interface afin de transmettre les paramètres adéquats au démon de routage.

    1. Sur le système enigma, modifiez les fichiers /etc/hostname. interface.


      # cat /etc/hostname.hme0
      ## enigma
      10.16.16.6 private

      # cat /etc/hostname.hme1
      ## enigma
      192.168.116.16 router
    2. Sur le système partym, modifiez les fichiers /etc/hostname. interface.


      # cat /etc/hostname.hme0
      ## partym
      10.1.3.3 private

      # cat /etc/hostname.hme1
      ## partym
      192.168.13.213 router
  22. Exécutez un protocole de routage.


    # routeadm -e ipv4-routing
    # routeadm -u
    

Exemple 20–15 Requête de stratégie IPsec sur tous les systèmes en mode Transport

Dans cet exemple, l'administrateur met en commentaire la stratégie bypass configurée à l'Étape 4, ce qui renforce la protection. Avec cette configuration de stratégie, chaque système du LAN doit activer IPsec afin de communiquer avec le routeur.


# LAN traffic must implement IPsec.
# {laddr 10.1.3.3 dir both} bypass {}

# WAN traffic uses ESP with AES and SHA-1.
{tunnel ip.tun0 negotiate transport} ipsec {encr_algs aes encr_auth_algs sha1}


Exemple 20–16 Configuration d'un tunnel IPsec en mode Transport à l'aide d'une syntaxe désapprouvée

Dans cet exemple, l'administrateur connecte un système Solaris 10 7/07 à un système exécutant la version Solaris10. Par conséquent, l'administrateur utilise la syntaxe Solaris10 dans le fichier de configuration et inclut les algorithmes IPsec à la commande ifconfig.

L'administrateur suit la procédure décrite à la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Transport sur IPv4, à l'exception des modifications syntaxiques ci-dessous.


ProcedureProtection d'un VPN à l'aide d'un tunnel IPsec en mode Transport sur IPv6

Les étapes de configuration d'un VPN sur un réseau IPv6 sont identiques à celles de la configuration d'un VPN sur un réseau IPv4. Toutefois, la syntaxe des commandes est légèrement différente. Les raisons pour lesquelles des commandes spécifiques sont requises sont expliquées en détail aux étapes correspondantes de la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Tunnel sur IPv4.


Remarque –

Effectuez cette procédure sur les deux systèmes.


Cette procédure utilise les paramètres de configuration ci-dessous.

Paramètre 

Europe 

Californie 

Nom du système 


enigma

partym

Interface intranet du système 


hme1

hme1

Interface Internet du système 


hme0

hme0

Adresse intranet du système 


6000:6666::aaaa:1116

6000:3333::eeee:1113

Adresse Internet du système 


2001::aaaa:6666:6666

2001::eeee:3333:3333

Nom du routeur Internet 


router-E

router-C

Adresse du routeur Internet 


2001::aaaa:0:4

2001::eeee:0:1

Nom du tunnel 


ip6.tun0

ip6.tun0

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Contrôlez le flux de paquets avant de configurer IPsec.

    1. Assurez-vous que le transfert IP et le routage dynamique IP sont désactivés.


      # routeadm
      Configuration       Current         Current
             Option       Configuration  System State
      --------------------------------------------------
      …
      IPv6 forwarding     disabled          disabled
         IPv6 routing     disabled          disabled

      Si le transfert IP et le routage dynamique IP sont activés, vous pouvez les désactiver en tapant :


      # routeadm -d ipv6-forwarding -d ipv6-routing
      # routeadm -u
      
    2. Activez le multiréseau de destination strict IP.


      # ndd -set /dev/ip ip6_strict_dst_multihoming 1
      

      Attention – Attention –

      La valeur par défaut de ip6_strict_dst_multihoming est rétablie lors de l'initialisation du système. Pour rendre persistante la valeur modifiée, reportez-vous à la section Protection contre l'usurpation d'adresse IP.


    3. Assurez-vous que la plupart des services réseau sont désactivés.

      Assurez-vous que les montages en loopback et le service ssh sont en cours d'exécution.


      # svcs | grep network
      online         Aug_02   svc:/network/loopback:default
      …
      online         Aug_09   svc:/network/ssh:default
  3. Ajoutez une paire de SA entre les deux systèmes.

    Procédez de l'une des manières suivantes :

  4. Ajoutez une stratégie IPsec.

    Modifiez le fichier /etc/inet/ipsecinit.conf afin d'ajouter la stratégie IPsec pour le VPN.

    1. Sur le système enigma, saisissez l'entrée suivante dans le fichier ipsecinit.conf :


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic can bypass IPsec.
      {laddr 6000:6666::aaaa:1116 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1}
    2. Sur le système partym, tapez l'entrée suivante dans le fichier ipsecinit.conf :


      # IPv6 Neighbor Discovery messages bypass IPsec.
      {ulp ipv6-icmp type 133-137 dir both} pass {}
      
      # LAN traffic can bypass IPsec.
      {laddr 6000:3333::eeee:1113 dir both} bypass {}
      
      # WAN traffic uses ESP with AES and SHA-1.
      {tunnel ip6.tun0 negotiate transport} 
       ipsec {encr_algs aes encr_auth_algs sha1}
  5. (Facultatif) Vérifiez la syntaxe du fichier de stratégie IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. Pour configurer le tunnel et le protéger à l'aide d'IPsec, suivez les étapes en fonction de la version de Solaris utilisée :

    • À partir de la version Solaris 10 4/09, suivez les étapes Étape 7 à Étape 13, puis exécutez le protocole de routage tel qu'indiqué à l'Étape 22.

    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, suivez les étapes Étape 14 à Étape 22.

  7. Configurez le tunnel ip6.tun0 dans le fichier /etc/hostname.ip6.tun0.

    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname.ip6.tun0 :


      6000:6666::aaaa:1116 6000:3333::eeee:1113 tsrc 2001::aaaa:6666:6666 tdst 2001::eeee:3333:3333 router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname.ip6.tun0 :


      6000:3333::eeee:1113  6000:6666::aaaa:1116 tsrc 2001::eeee:3333:3333 tdst 2001::aaaa:6666:6666 router up
  8. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # svcadm refresh svc:/network/ipsec/policy:default
    
  9. Pour lire le contenu du fichier hostname.ip6.tun0 dans le noyau, redémarrez les services réseau.


    # svcadm restart svc:/network/initial:default
    
  10. Activez le transfert IP pour l'interface hme1.

    1. Sur le système enigma, ajoutez l'entrée de routeur au fichier /etc/hostname6.hme1.


      2001::aaaa:6666:6666 inet6 router
    2. Sur le système partym, ajoutez l'entrée de routeur au fichier /etc/hostname6.hme1.


      2001::eeee:3333:3333 inet6 router
  11. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.

    1. Sur le système enigma, ajoutez l'indicateur private au fichier /etc/hostname6.hme0.


      6000:6666::aaaa:1116 inet6 private
    2. Sur le système partym, ajoutez l'indicateur private au fichier /etc/hostname6.hme0.


      6000:3333::eeee:1113 inet6 private
  12. Ajoutez manuellement une route par défaut à travers hme0.

    1. Sur le système enigma, ajoutez la route suivante :


      # route add -inet6 default 2001::aaaa:0:4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add -inet6 default 2001::eeee:0:1
      
  13. Pour terminer la procédure, passez à l'Étape 22 pour exécuter un protocole de routage.

  14. Configurez un tunnel sécurisé ip6.tun0.


    Remarque –

    Les étapes suivantes permettent de configurer un tunnel sur un système exécutant une version antérieure à la version Solaris 10 4/09.


    1. Sur le système enigma, saisissez les commandes ci-dessous :


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6 6000:6666::aaaa:1116 6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666   tdst 2001::eeee:3333:3333
      
    2. Sur le système partym, tapez les commandes ci-dessous :


      # ifconfig ip6.tun0 inet6 plumb
      
      # ifconfig ip6.tun0 inet6  6000:3333::eeee:1113  6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666
      
  15. Protégez le tunnel à l'aide de la stratégie IPsec créée.


    # ipsecconf
    
  16. Affichez le routeur pour le tunnel.


    # ifconfig ip6.tun0 router up
    
  17. Activez le transfert IP pour l'interface hme1.


    # ifconfig hme1 router
    
  18. Assurez-vous que les protocoles de routage n'indiquent pas la route par défaut sur l'intranet.


    # ifconfig hme0 private
    
  19. Sur chaque système, ajoutez manuellement une route par défaut à travers hme0.

    La route par défaut doit correspondre à un routeur bénéficiant d'un accès direct à Internet.

    1. Sur le système enigma, ajoutez la route suivante :


      # route add -inet6 default 2001::aaaa:0:4
      
    2. Sur le système partym, ajoutez la route suivante :


      # route add -inet6 default 2001::eeee:0:1
      
  20. Sur chaque système, assurez-vous que le VPN démarre à la réinitialisation en ajoutant une entrée au fichier /etc/hostname6.ip6.tun0.

    L'entrée réplique les paramètres spécifiés dans la commande ifconfig lors de l'Étape 14.

    1. Sur le système enigma, ajoutez l'entrée suivante au fichier hostname6.ip6.tun0 :


      6000:6666::aaaa:1116  6000:3333::eeee:1113 \
      tsrc 2001::aaaa:6666:6666   tdst 2001::eeee:3333:3333  router up
    2. Sur le système partym, ajoutez l'entrée suivante au fichier hostname6.ip6.tun0 :


      6000:3333::eeee:1113  6000:6666::aaaa:1116 \
      tsrc 2001::eeee:3333:3333   tdst 2001::aaaa:6666:6666  router up
  21. Configurez les fichiers d'interface afin de transmettre les paramètres adéquats au démon de routage.

    1. Sur le système enigma, modifiez les fichiers /etc/hostname6. interface.


      # cat /etc/hostname6.hme0
      ## enigma
      6000:6666::aaaa:1116 inet6 private

      #  cat /etc/hostname6.hme1
      ## enigma
      2001::aaaa:6666:6666 inet6 router
    2. Sur le système partym, modifiez les fichiers /etc/hostname6. interface.


      # cat /etc/hostname6.hme0
      ## partym
      6000:3333::eeee:1113 inet6 private

      # cat /etc/hostname6.hme1
      ## 
      partym2001::eeee:3333:3333 inet6 router
  22. Exécutez un protocole de routage.


    # routeadm -e ipv6-routing
    # routeadm -u
    

Exemple 20–17 Configuration d'IPsec en mode Transport sur IPv6 à l'aide d'une syntaxe désapprouvée

Dans cet exemple, l'administrateur connecte un système Solaris 10 7/07 à un système exécutant la version Solaris10. Par conséquent, l'administrateur utilise la syntaxe Solaris10 dans le fichier de configuration et inclut les algorithmes IPsec à la commande ifconfig.

La procédure suivie par l'administrateur est identique à celle de la section Protection d'un VPN à l'aide d'un tunnel IPsec en mode Transport sur IPv6, à l'exception des modifications syntaxiques ci-dessous.


ProcedureProtection contre l'usurpation d'adresse IP

Afin d'empêcher le système de transmettre des paquets vers une autre interface sans tenter de les déchiffrer, le système doit contrôler les éventuelles usurpations d'adresse IP. Une méthode de prévention consiste à définir un paramètre multiréseau strict de destination IP, par le biais de la commande ndd. Lorsque ce paramètre est défini dans un manifeste SMF, le paramètre est défini lors du redémarrage du système.


Remarque –

Effectuez cette procédure sur les deux systèmes.


  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.

  2. Créez un manifeste SMF spécifique à un site afin de vérifier la présence d'éventuelles usurpations d'adresse IP.

    Utilisez l'exemple de script suivant, /var/svc/manifest/site/spoof_check.xml.

    <?xml version="1.0"?>
    <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
    
    <service_bundle type='manifest' name='Custom:ip_spoof_checking'>
    
    <!--    This is a custom smf(5) manifest for this system. Place this
            file in /var/svc/manifest/site, the directory for local
            system customizations. The exec method uses an unstable
            interface to provide a degree of protection against IP
            spoofing attacks when this system is acting as a router.
    
            IP spoof protection can also be achieved by using ipfilter(5).
            If ipfilter is configured, this service can be disabled.
    
            Note: Unstable interfaces might be removed in later
            releases.  See attributes(5).
    -->
    
    <service
            name='site/ip_spoofcheck'
            type='service'
            version='1'>
    
            <create_default_instance enabled='false' />
            <single_instance />
    
            <!--    Don't enable spoof protection until the
                    network is up.
            -->
            <dependency
                    name='basic_network'
                    grouping='require_all'
                    restart_on='none'
                    type='service'>
            <service_fmri value='svc:/milestone/network' />
            </dependency>
    
            <exec_method
                    type='method'
                    name='start'
                    exec='/usr/sbin/ndd -set /dev/ip ip_strict_dst_multihoming 1'
    <!--    
         For an IPv6 network, use the IPv6 version of this command, as in:
                    exec='/usr/sbin/ndd -set /dev/ip ip6_strict_dst_multihoming 1
    -->
                    timeout_seconds='60'
            />
    
            <exec_method
                    type='method'
                    name='stop'
                    exec=':true'
                    timeout_seconds='3'
            />
    
            <property_group name='startd' type='framework'>
                    <propval
                            name='duration'
                            type='astring'
                            value='transient'
                    />
            </property_group>
    
            <stability value='Unstable' />
    
    </service>
    </service_bundle>
  3. Importez ce manifeste dans le référentiel SMF.


    # svccfg import /var/svc/manifest/site/spoof_check.xml
    
  4. Activez le service ip_spoofcheck.

    Utilisez le nom qui est défini dans le fichier manifeste, /site/ip_spoofcheck.


    # svcadm enable /site/ip_spoofcheck
    
  5. Assurez-vous que le service ip_spoofcheck est en ligne.


    # svcs /site/ip_spoofcheck
    

Chapitre 21 Architecture IPsec (référence)

Ce chapitre contient les informations de référence suivante :

Pour obtenir les instructions relatives à l'implémentation d'IPsec sur votre réseau, reportez-vous au Chapitre 20Configuration d'IPsec (tâches). Pour une présentation d'IPsec, reportez-vous au Chapitre 19Architecture IPsec (présentation).

Utilitaire de gestion du service IPsec

L'utilitaire de gestion des services (SMF) fournit les services suivants pour IPsec :

Pour plus d'informations sur l'utilitaire SMF, reportez-vous au Chapitre 18, Managing Services (Overview) du System Administration Guide: Basic Administration. Voir aussi les pages de manuel smf(5), svcadm(1M) et svccfg(1M).

Commande ipsecconf

Pour configurer la stratégie IPsec d'un hôte, vous devez exécuter la commande ipsecconf. À l'exécution de la commande de configuration de la stratégie, le système crée des entrées de stratégie IPsec dans le noyau. Elles lui permettent de vérifier la stratégie appliquée à tous les datagrammes IP entrants et sortants. Les datagrammes transférés ne sont pas soumis aux vérifications de stratégie ajoutées à l'aide de cette commande. La commande ipsecconf configure également la base de données de stratégie de sécurité (SPD, Security Policy Database).

Pour exécuter la commande ipsecconf, vous devez prendre le rôle de superutilisateur ou un rôle équivalent. La commande accepte les entrées qui protègent le trafic bidirectionnel. Elle accepte également celles qui protègent le trafic unidirectionnel.

Les entrées de stratégie au format d'adresse locale et d'adresse distante peuvent protéger le trafic dans les deux directions à l'aide d'une entrée de stratégie unique. Par exemple, les entrées de modèles laddr host1 et raddr host2 protègent le trafic dans les deux directions quand aucune direction n'est spécifiée pour l'hôte nommé. Par conséquent, une seule entrée de stratégie est nécessaire pour chaque hôte.

Les entrées de stratégie au format adresse source vers adresse de destination protège le trafic dans une seule direction. Par exemple, une entrée de stratégie suivant le modèle saddr host1 daddr host2 protège le trafic entrant ou le trafic sortant, non le trafic bidirectionnel. Par conséquent, pour protéger le trafic dans les deux directions, vous devez appliquer la commande ipsecconf à une autre entrée, saddr host2 daddr host1, par exemple.

Pour garantir l'activation de la stratégie IPsec au démarrage de la machine, vous pouvez créer le fichier de stratégie IPsec /etc/inet/ipsecinit.conf. Ce fichier est lu au démarrage des services réseau. Pour obtenir les instructions relatives à la création du fichier de stratégie IPsec, reportez-vous à la section Protection du trafic à l'aide d'IPsec (liste des tâches).

À partir de la version Solaris 10 4/09, avec l'option -c, la commande ipsecconf vérifie la syntaxe du fichier de stratégie IPsec que vous fournissez en argument.

Les entrées de stratégie ajoutées par le biais de la commande ipsecconf ne sont pas conservées après la réinitialisation du système. Pour vous assurer que la stratégie IPsec est active lorsque le système démarre, ajoutez l'entrée de stratégie au fichier /etc/inet/ipsecinit.conf. Dans la version actuelle, actualisez ou activez le service policy. Dans une version antérieure à la version Solaris 10 4/09, réinitialisez ou utilisez la commande ipsecconf. Pour des exemples, reportez-vous à la section Protection du trafic à l'aide d'IPsec (liste des tâches).

Fichier ipsecinit.conf

Pour appeler les stratégies de sécurité IPsec au démarrage du Système d'exploitation Solaris (SE Solaris), vous devez créer un fichier de configuration pour initialiser IPsec avec vos entrées de stratégie IPsec spécifiques. Le nom par défaut de ce fichier est /etc/inet/ipsecinit.conf. Reportez-vous à la page de manuel ipsecconf(1M) pour plus d'informations sur les entrées d'une stratégie et leur format. Une fois les stratégies configurées, vous pouvez exécuter la commande ipsecconf pour consulter ou modifier la configuration existante. À partir de la version Solaris 10 4/09, vous actualisez le service policy pour modifier la configuration existante.

Fichier exemple ipsecinit.conf

Le logiciel Solaris inclut le fichier exemple de stratégie IPsec, ipsecinit.sample. Vous pouvez l'utiliser comme modèle pour créer votre propre fichier ipsecinit.conf. Le fichier ipsecinit.sample contient les exemples suivants :


#
# For example,
#
#	 {rport 23} ipsec {encr_algs des encr_auth_algs md5}
#
# will protect the telnet traffic originating from the host with ESP using
# DES and MD5. Also:
#
#	 {raddr 10.5.5.0/24} ipsec {auth_algs any}
#
# will protect traffic to or from the 10.5.5.0 subnet with AH 
# using any available algorithm.
#
#
# To do basic filtering, a drop rule may be used. For example:
#
#	 {lport 23 dir in} drop {}
#	 {lport 23 dir out} drop {}
# will disallow any remote system from telnetting in.
#
# If you are using IPv6, it may be useful to bypass neighbor discovery
# to allow in.iked to work properly with on-link neighbors. To do that,
# add the following lines:
#
#        {ulp ipv6-icmp type 133-137 dir both } pass { }
#
# This will allow neighbor discovery to work normally.

Considérations de sécurité à propos de ipsecinit.conf et ipsecconf

Prenez la plus grande précaution lorsque vous transmettez une copie du fichier ipsecinit.conf sur un réseau. Un utilisateur malintentionné est en mesure de lire un fichier monté sur le réseau lorsque ce fichier est en cours de lecture. Par exemple, si le fichier /etc/inet/ipsecinit.conf est ouvert ou copié à partir d'un système de fichiers monté via NFS, un utilisateur malintentionné peut modifier la stratégie qu'il contient.

Veillez à configurer les stratégies IPsec avant de démarrer toute communication. En effet, les nouvelles entrées de stratégie peuvent affecter les connexions existantes. De même, ne modifiez pas les stratégies au milieu d'une communication.

En particulier, vous ne pouvez pas modifier la stratégie IPsec des sockets SCTP, TCP ou UDP sur lesquels un appel de fonction connect() ou accept() a été émis. Un socket dont la stratégie ne peut pas être modifiée est appelé un socket verrouillé. Les nouvelles entrées de stratégie ne protègent pas les sockets qui sont déjà verrouillés. Pour plus d'informations, reportez-vous aux pages de manuel connect(3SOCKET) et accept(3SOCKET).

Protégez votre système d'attribution de nom. Lorsque les deux conditions suivantes sont vérifiées, vos noms d'hôtes ne sont plus fiables.

Les défaillances de sécurité proviennent souvent d'une mauvaise utilisation des outils, non des outils eux-mêmes. Utilisez la commande ipsecconf avec prudence. Une console ou autre TTY connecté offrent les modes d'opération les plus sûrs.

Commande ipsecalgs

La structure cryptographique de Solaris fournit des algorithmes d'authentification et de chiffrement pour IPsec. La commande ipsecalgs permet d'établir la liste des algorithmes pris en charge par chacun des protocoles IPsec. La configuration ipsecalgs est stockée dans le fichier /etc/inet/ipsecalgs. En général, ce fichier n'a pas besoin d'être modifié. Cependant, si le fichier doit être modifié, utilisez la commande ipsecalgs. Le fichier ne doit jamais être édité directement. Dans la version actuelle, les algorithmes pris en charge sont synchronisés avec le noyau à l'initialisation du système par le service svc:/network/ipsec/ipsecalgs:default.

Les protocoles et algorithmes IPsec valides sont décrits par le DOI, ISAKMP, traité dans le document RFC 2407. Au sens global, un DOI (Domain of Interpretation, domaine d'interprétation) définit les formats de données, les types d'échange du trafic réseau ainsi que les conventions d'appellation des informations liées à la sécurité. Les stratégies de sécurité, les algorithmes et les modes de chiffrement sont toutes des informations ayant trait à la sécurité.

En particulier, le DOI ISAKMP définit les conventions d'attribution de nom et de numéro des algorithmes IPsec valides et de leurs protocoles, PROTO_IPSEC_AH et PROTO_IPSEC_ESP. Chaque algorithme est associé à exactement un protocole. Ces définitions DOI ISAKMP figurent dans le fichier /etc/inet/ipsecalgs. Les numéros d'algorithme et de protocole sont définis par l'IANA (Internet Assigned Numbers Authority). La commande ipsecalgs permet d'allonger la liste des algorithmes IPsec.

Pour plus d'informations sur les algorithmes, reportez-vous à la page de manuel ipsecalgs(1M) Pour plus d'informations sur la structure cryptographique Solaris, reportez-vous au Chapitre 13, Oracle Solaris Cryptographic Framework (Overview) du System Administration Guide: Security Services.

Base de données des associations de sécurité IPsec

Les informations sur les numéros de clés des services de sécurité IPsec sont conservées dans la base de données des associations de sécurité (SADB). Les associations de sécurité (SA) protègent les paquets entrants et sortants. Les SADB sont gérées par un processus utilisateur, éventuellement par plusieurs processus de coopération, qui envoient des messages sur un socket de type spécial. Ce mode de gestion des SADB s'apparente à la méthode décrite à la page de manuel route(7P) Seuls les superutilisateurs ou les utilisateurs ayant un rôle équivalent ont accès à la base de données.

Le démon in.iked et la commande ipseckey utilisent l'interface socket PF_KEY dans le cadre de la gestion des SADB. Pour plus d'informations sur la gestion des requêtes et des messages par les SADB, reportez-vous à la page de manuel pf_key(7P).

Utilitaires de génération de clés IPsec

Le protocole IKE permet la gestion automatique des clés pour les adresses IPv4 et IPv6. Pour obtenir les instructions relatives à la configuration IKE, reportez-vous au Chapitre 23Configuration du protocole IKE (tâches). L'utilitaire de génération manuelle de clés est la commande ipseckey, décrite à la page de manuel ipseckey(1M).

Utilisez la commande ipseckey pour remplir manuellement la base de données des associations de sécurité (SADB). En règle générale, les SA sont générées manuellement lorsqu'IKE n'est pas disponible pour une raison quelconque. Cependant, si les valeurs SPI sont uniques, la génération manuelle des SA et IKE peuvent être utilisés en même temps.

La commande ipseckey permet d'afficher toutes les SA connues du système, que les clés aient été ajoutées manuellement ou par le biais d'IKE. À partir de la version Solaris 10 4/09, avec l'option -c, la commande ipseckey permet de vérifier la syntaxe du fichier de clés que vous spécifiez en tant qu'argument.

Les SA IPsec qui sont ajoutées par le biais de la commande ipseckey ne sont pas conservées après la réinitialisation du système. Dans la version actuelle, pour activer manuellement les SA ajoutés à l'initialisation du système, ajoutez des entrées au fichier /etc/inet/secret/ipseckeys, puis activez le service svc:/network/ipsec/manual-key:default. Pour connaître la procédure, reportez-vous à la section Création manuelle d'associations de sécurité IPsec.

Bien qu'elle présente un nombre limité d'options générales, la commande ipseckey prend en charge un langage de commande enrichi. Si vous le souhaitez, une interface de programmation de génération manuelle de clés peut transmettre les requêtes. Pour de plus amples informations, reportez-vous à la page de manuel pf_key(7P).

Considérations de sécurité pour la commande ipseckey

La commande ipseckey permet au superutilisateur ou à un rôle auquel a été attribué le profil de droits Network Security ou Network IPsec Management de saisir des informations de clés cryptographiques confidentielles. Un utilisateur malintentionné accédant à ces informations peut compromettre la sécurité du trafic IPsec.

Prenez en considération les points suivants lorsque vous gérez des informations de génération de clés à l'aide de la commande ipseckey :

Les défaillances de sécurité proviennent souvent d'une mauvaise utilisation des outils, non des outils eux-mêmes. Utilisez la commande ipseckey avec prudence. Une console ou autre TTY connecté offrent les modes d'opération les plus sûrs.

Extensions IPsec d'autres utilitaires

La commande ifconfig offre des options de gestion de la stratégie IPsec sur une interface tunnel. La commande snoop peut analyser les en-têtes AH et ESP.

IPsec et commande ifconfig

Dans les versions Solaris10, Solaris10 7/05, Solaris10 1/06, et Solaris10 11/06 : Pour prendre en charge IPsec, la commande ifconfig offre les options de sécurité suivantes : Dans la version Solaris 10 7/07, ces options de sécurité sont gérées par la commande ipsecconf.

Vous devez indiquer toutes les options de sécurité IPsec d'un tunnel dans un appel unique. Par exemple, si la protection du trafic se limite à l'utilisation d'ESP, vous devez configurer le tunnel ip.tun0 une seule fois avec les deux options de sécurité, comme illustré ci-dessous :


# ifconfig ip.tun0 encr_algs aes encr_auth_algs md5

De la même manière, une entrée ipsecinit.conf configure le tunnel une fois avec les deux options de sécurité, comme illustré ci-dessous :


# WAN traffic uses ESP with AES and MD5.
   {} ipsec {encr_algs aes encr_auth_algs md5}

Option de sécurité auth_algs

Cette option active AH IPsec pour un tunnel dont vous spécifiez l'algorithme d'authentification. L'option auth_algs présente le format suivant :


auth_algs authentication-algorithm

En ce qui concerne l'algorithme, vous pouvez indiquer un numéro ou un nom, y compris le paramètre any pour n'exprimer aucune préférence d'algorithme spécifique. Pour désactiver la sécurité du tunnel, spécifiez l'option suivante :


auth_algs none

Pour obtenir la liste des algorithmes d'authentification disponibles, exécutez la commande ipsecalgs.


Remarque –

L'option auth_algs n'est pas compatible avec NAT-Traversal. Pour plus d'informations, reportez-vous à la section Passage de la translation d'adresses et IPsec.


Option de sécurité encr_auth_algs

Cette option active ESP IPsec pour un tunnel dont vous spécifiez l'algorithme d'authentification. L'option encr_auth_algs présente le format suivant :


encr_auth_algs authentication-algorithm

En ce qui concerne l'algorithme, vous pouvez indiquer un numéro ou un nom, y compris le paramètre any pour n'exprimer aucune préférence d'algorithme spécifique. Si vous indiquez un algorithme de chiffrement ESP sans algorithme d'authentification, la valeur de l'algorithme d'authentification ESP est définie par défaut sur le paramètre any.

Pour obtenir la liste des algorithmes d'authentification disponibles, exécutez la commande ipsecalgs.

Option de sécurité encr_algs

Cette option active ESP IPsec pour un tunnel dont vous spécifiez l'algorithme de chiffrement. L'option encr_algs présente le format suivant :


encr_algs encryption-algorithm

En ce qui concerne l'algorithme, vous pouvez indiquer un nom ou un numéro. Pour désactiver la sécurité du tunnel, spécifiez l'option suivante :


encr_algs none

Si vous spécifiez un algorithme d'authentification ESP sans algorithme de chiffrement, la valeur de chiffrement d'ESP est définie par défaut sur le paramètre null.

Pour obtenir la liste des algorithmes de chiffrement disponibles, exécutez la commande ipsecalgs.

IPsec et commande snoop

La commande snoop permet l'analyse des en-têtes ESP et AH. En raison du chiffrement des données ESP, la commande snoop ne détecte pas les en-têtes chiffrés et protégés par ESP. AH ne chiffre pas les données. Par conséquent, la commande snoop peut contrôler le trafic protégé par AH. L'option -V de la commande signale l'utilisation d'AH sur un paquet. Pour plus d'informations, reportez-vous à la page de manuel snoop(1M).

La section Vérification de la protection des paquets par IPsec contient un exemple détaillé de sortie snoop sur un paquet protégé.

Chapitre 22 Protocole IKE (présentation)

Le protocole IKE (Internet Key Exchange, échange de clé Internet) automatise la gestion des clés pour IPsec. Ce chapitre aborde les sujets suivants :

Pour plus d'informations sur l'implémentation du protocole IKE, reportez-vous au Chapitre 23Configuration du protocole IKE (tâches). Pour obtenir des informations de référence, reportez-vous au Chapitre 24Protocole IKE (référence). Pour plus d'informations sur les protocoles IPsec, reportez-vous au Chapitre 19Architecture IPsec (présentation).

Nouveautés du protocole IKE

Solaris 10 4/09 : À partir de cette version, l'utilitaire de gestion des services (SMF) gère IKE en tant que service. Par défaut, le service svc:/network/ipsec/ike:default est désactivé. Par ailleurs, dans cette version, le profil de droits Network IPsec Management permet d'administrer IPsec et IKE.

Solaris 10 7/07 : à partir de cette version, le protocole IKE peut utiliser l'algorithme AES et être configuré dans la zone globale en vue de son utilisation dans des zones non globales.

Gestion des clés avec IKE

La gestion des numéros de clé des associations de sécurité (Security Associations, SA) pour IPsec est appelée gestion des clés. La gestion automatique des clés requiert un canal de communication sécurisé pour la création, l'authentification et l'échange des clés. Le Système d'exploitation Solaris utilise IKE pour automatiser la gestion des clés. IKE s'intègre facilement dans les environnement à grande échelle et peut fournir un canal sécurisé pour un grand volume de trafic. Les associations de sécurité IPsec sur paquets IPv4 et IPv6 peuvent utiliser le protocole IKE.

Lorsque IKE est utilisé sur un système équipé d'une carte Sun Crypto Accelerator 1000, 6000 ou Sun Crypto Accelerator 4000, les opérations de clés publiques peuvent être déchargées sur l'accélérateur. Les opérations de clés publiques n'utilisent pas les ressources du système d'exploitation. Lorsque IKE est utilisé sur un système équipé d'une carte Sun Crypto Accelerator 4000 ou Sun Crypto Accelerator 6000, les certificats et les clés publiques et privées peuvent être stockés sur la carte. Le stockage des clés hors du système fournit une couche de protection supplémentaire.

Négociation des clés IKE

Le démon IKE in.iked négocie et authentifie les numéros de clé des associations de sécurité (SA, security associations) de façon sécurisée. Il utilise des germes de sécurité aléatoires pour les clés des fonctions internes fournies par le Système d'exploitation Solaris. Le protocole IKE assure une confidentialité de transmission parfaite (PFS, perfect forward secrecy). En mode PFS, les clés qui protègent la transmission des données ne sont pas utilisées pour générer des clés complémentaires. Les germes de sécurité employés pour créer des clés de transmission de données ne sont pas réutilisés. Reportez-vous à la page de manuel in.iked(1M).

Lorsque le démon IKE découvre la clé de chiffrement d'un système public distant, le système local peut utiliser cette clé. Il l'emploie pour chiffrer les messages, qui ne peuvent alors être lus que par ce système distant. L'intervention du démon IKE se décompose en deux phases, dites d'échange.

Terminologie relative aux clés IKE

Le tableau ci-dessous répertorie les termes utilisés dans la négociation des clés et les acronymes les plus couramment employés. Vous y trouverez également une définition de chacun de ces termes ainsi que leur contexte d'utilisation.

Tableau 22–1 Terminologie de négociation des clés, acronymes et utilisation

Terminologie de négociation des clés 

Acronymes 

Définition et utilisation 

Échange de clés 

 

Processus de génération de clés pour les algorithmes cryptographiques asymétriques. Les principales méthodes utilisées sont les protocoles RSA et Diffie-Hellman. 

Protocole Diffie-Hellman 

DH 

Protocole d'échange de clés impliquant la génération et l'authentification de clés et souvent appelé échange de clés authentifiées.

Protocole RSA 

RSA 

Protocole d'échange de clés impliquant la génération et le transport de clés. Ce protocole porte le nom de ses trois créateurs : Rivest, Shamir et Adleman. 

Confidentialité de transmission parfaite

PFS (perfect forward secrecy) 

Ne s'applique qu'à l'échange de clés authentifiées. Le mode PFS garantit que l'éventuelle découverte de secrets à long terme ne compromet pas les clés des communications précédentes.  

Perfect Forward Secrecy, secret rigoureux des transmission .Avec la fonction PFS, la clé visant à protéger la transmission des données n'est pas utilisée pour dériver d'autres clés. Il en est de même pour la source de la clé. 

Méthode Oakley 

 

Méthode de création sécurisée de clés pour la phase 2. Ce protocole est similaire à l'échange de clés Diffie-Hellman et implique la génération et l'authentification de clés. La méthode Oakley s'emploie pour négocier des PFS. 

Phase 1 d'IKE

La phase 1 est connue sous le nom de Main Mode (mode principal). Pendant la phase 1, IKE utilise des méthodes de chiffrement de clé publique pour s'authentifier auprès d'entités IKE homologues. Il en résulte une association de sécurité (SA, security association) ISAKMP (Internet Security Association and Key Management Protocol). Une SA ISAKMP est un canal sécurisé sur lequel IKE négocie les numéros de clé des datagrammes IP. Contrairement aux SA IPsec, les SA ISAKMP sont bidirectionnelles. Il n'est donc pas nécessaire de disposer de plus d'une association de sécurité.

La façon dont IKE négocie les numéros de clé lors de la phase 1 peut être configurée. IKE lit les informations concernant la configuration dans le fichier /etc/inet/ike/config. Ces informations incluent :

Les deux méthodes d'authentification utilisent respectivement les clés prépartagées et les certificats de clés publiques. Les certificats de clés publiques peuvent être autosignés ou émis par l'autorité de certification (AC) d'un fournisseur d'infrastructures de clés publiques (PKI). telles que beTrusted, Entrust, GeoTrust, RSA Security et Verisign.

Phase 2 d'IKE

La phase 2 est connue sous le nom de Quick Mode (mode rapide). Lors de la phase 2, IKE crée et gère les SA IPsec entre les systèmes qui exécutent le démon IKE. IKE utilise le canal sécurisé qui a été créé lors de la phase 1 pour protéger la transmission des numéros de clé. Le démon IKE crée les clés à partir d'un générateur de nombres aléatoires à l'aide du périphérique /dev/random. Le démon actualise les clés à une fréquence qui peut être configurée. Les numéros de clé sont accessibles aux algorithmes spécifiés dans le fichier de configuration ipsecinit.conf de la stratégie IPsec.

Choix de configuration IKE

Le fichier de configuration /etc/inet/ike/config contient des entrées de stratégie IKE. Pour que deux démons IKE puissent s'authentifier mutuellement, les entrées doivent être valides et les numéros de clé doivent être disponibles. Les entrées des fichiers de configuration déterminent la façon dont les numéros de clé seront utilisés pour authentifier l'échange qui a lieu lors de la phase 1. Il y a deux possibilités : les clés prépartagées ou les certificats de clés publiques.

Si l'entrée est auth_method preshared, ce sont les clés prépartagées qui sont utilisées pour authentifier l'échange. Si auth_method possède une valeur autre que preshared, l'authentification s'effectue à l'aide de certificats de clés publiques. Ces certificats peuvent être autosignés ou installés par un fournisseur de PKI. Pour plus d'informations, reportez-vous à la page de manuel ike.config(4).

IKE avec clés prépartagées

Les clés prépartagées sont créées par un administrateur sur un système. Elles sont ensuite partagées hors bande avec les administrateurs de systèmes distants. Prenez soin de créer de longues clés aléatoires et de protéger le fichier et la transmission hors bande. Les clés sont placées dans le fichier /etc/inet/secret/ike.preshared de chaque système. Le fichier ike.preshared est réservé à IKE et le fichier ipseckeys à IPsec. Toute compromission des clés du fichier ike.preshared compromet toutes les clés qui en sont dérivées.

Le système de clés prépartagées doit être identique au système distant de clés correspondant. Les clés sont liées à une adresse IP donnée. Elles sont plus sécurisées lorsqu'un administrateur contrôle les systèmes communicants. Pour plus d'informations, reportez-vous à la page de manuel ike.preshared(4).

IKE avec certificats de clés publiques

Grâce aux certificats de clés publiques, les systèmes communicants n'ont plus besoin de partager de numéros de clé secrets hors bande. Les clés publiques utilisent le protocole Diffie-Hellman (DH) pour authentifier et négocier les clés. Les certificats de clés publiques peuvent être soit autosignés, soit certifiés par une autorité de certification (AC).

Les certificats de clés publiques autosignés sont créés par l'administrateur. La commande ikecert certlocal -ks permet de créer la partie privée des biclés du système. Le certificat autosigné est ensuite émis, au format X.509, par le système distant. Le certificat du système distant est entré à l'aide de la commande ikecert certdb pour la partie publique de la clé. Les certificats autosignés résident dans le répertoire /etc/inet/ike/publickeys des systèmes communicants. Lorsque vous utilisez l'option -T, les certificats résident sur le matériel connecté.

Les certificats autosignés sont à mi-chemin entre les clés prépartagées et les AC. Contrairement aux clés prépartagées, les certificats autosignés peuvent être utilisés sur une machine portable ou sur un système susceptible d'être renuméroté. Pour autosigner un certificat pour un système n'ayant pas de numéro fixe, utilisez un nom alternatif de DNS (www.example.org ) ou d'email (root@domain.org).

Les clés publiques peuvent être délivrées par un fournisseur de PKI ou une AC. Elles doivent être installées, avec les certificats AC qui les accompagnent, dans le répertoire /etc/inet/ike/publickeys. Lorsque vous utilisez l'option -T, les certificats résident sur le matériel connecté. Les fournisseurs émettent également des listes de révocation de certificats (LRC). Outre les clés et les certificats AC, vous devez également installer les LRC dans le répertoire /etc/inet/ike/crls.

Les certificats AC présentent l'avantage d'être certifiés par une organisation externe, et non par l'administrateur du site. Il s'agit en quelque sorte de certificats "certifiés". Comme les certificats autosignés, les certificats AC peuvent être utilisés sur une machine portable ou sur un système susceptible d'être renuméroté. Contrairement aux certificats autosignés, ils s'intègrent facilement aux environnement à grande échelle afin de protéger un grand nombre de systèmes communicants.

Protocole IKE et accélération matérielle

Les algorithmes IKE recoupent de nombreux calculs, notamment lors de la phase 1. Les systèmes qui traitent un grand nombre d'échanges peuvent utiliser une carte Sun Crypto Accelerator 1000 pour traiter les opérations de clés publiques. Les cartes Sun Crypto Accelerator 6000 et Sun Crypto Accelerator 4000 peuvent également être utilisées pour gérer les calculs onéreux relatifs à la phase 1.

Pour plus d'informations sur la manière dont le protocole IKE doit être configuré pour décharger les calculs sur la carte d'accélération, reportez-vous à la section Configuration du protocole IKE en vue de l'utilisation d'une carte Sun Crypto Accelerator 1000 . Pour plus d'informations sur le stockage des clés, reportez-vous à la section Configuration du protocole IKE en vue de l'utilisation d'une carte Sun Crypto Accelerator 4000 et à la page de manuel cryptoadm(1M).

Protocole IKE et stockage matériel

Les certificats de clés publiques, ainsi que les clés privées et publiques peuvent être stockés sur une carte Sun Crypto Accelerator 6000 ou &sca 4;. En chiffrement RSA, la longueur maximale des clés prise en charge par la carte Sun Crypto Accelerator 4000 est de 2 048 bits. En chiffrement DSA, elle est de 1 024 bits. La carte Sun Crypto Accelerator 6000 prend en charge les algorithmes SHA-512 et ECC.

Pour plus d'informations sur la manière dont le protocole IKE doit être configuré pour accéder à la carte, reportez-vous à la section Configuration du protocole IKE en vue de l'utilisation d'une carte Sun Crypto Accelerator 1000 . Pour plus d'informations sur l'ajout de certificats et de clés publiques à la carte, reportez-vous à la section Génération et stockage de certificats de clés publiques sur le matériel.

Utilitaires et fichiers IKE

Vous trouverez, dans le tableau ci-dessous, une liste des fichiers de configuration de la stratégie IKE, les emplacements de stockage des clés IKE et les différentes commandes et divers services permettant d'implémenter IKE. Pour plus d'informations sur ces services, reportez-vous au Chapitre 18, Managing Services (Overview) du System Administration Guide: Basic Administration.

Tableau 22–2 Fichiers de configuration IKE, emplacements de stockage des clés, commandes et services

Fichier, emplacement, commande ou service  

Description 

Pour plus d'informations 

svc:/network/ipsec/ike

Dans la version actuelle, le service SMF gère IKE.

smf(5)

Démon /usr/lib/inet/in.iked

Démon IKE (Internet Key Exchange). Active la gestion automatique des clés. Dans la version actuelle, le service ike active ce démon. Dans les versions précédentes, la commande in.iked est utilisée.

in.iked(1M)

Commande /usr/sbin/ikeadm

Commande d'administration IKE permettant d'afficher et de modifier la stratégie IKE.

ikeadm(1M)

Commande /usr/sbin/ikecert

Commande de gestion de bases de données de certificats permettant de manipuler les bases de données locales détentrices de certificats de clés publiques. Ces bases de données peuvent également être stockées sur une carte Sun Crypto Accelerator 4000 connectée.

ikecert(1M)

Fichier /etc/inet/ike/config

Fichier de configuration par défaut de la stratégie IKE dans le répertoire /etc/inet. Contient les règles du site pour la concordance des requêtes IKE entrantes et la préparation des requêtes IKE sortantes.

Dans la version actuelle, si ce fichier existe, le démon in.iked démarre lorsque le service IKE est activé. L'emplacement de ce fichier peut être modifié à l'aide de la commande svccfg.

ike.config(4)

Fichier ike.preshared

Fichier de clés prépartagées du répertoire /etc/inet/secret. Contient des numéros de clé secrets destinés à l'authentification pendant la phase 1. Ce fichier s'utilise lorsque IKE est configuré avec des clés prépartagées.

ike.preshared(4)

Répertoire ike.privatekeys

Répertoire de clés privés de /etc/inet/secret. Contient les clés privées de la biclé.

ikecert(1M)

Répertoire publickeys

Répertoire de /etc/inet/ike contenant les fichiers de certificats et clés publiques. Contient la clé publique de la biclé.

ikecert(1M)

Répertoire crls

Répertoire de /etc/inet/ike contenant les listes de révocation des clés publiques et des fichiers de certificats.

ikecert(1M)

Carte Sun Crypto Accelerator 1000  

Matériel accélérant les opérations de clés publiques en les déchargeant du système d'exploitation. 

ikecert(1M)

Carte Sun Crypto Accelerator 4000 

Matériel accélérant les opérations de clés publiques en les déchargeant du système d'exploitation. Les clés publiques, les clés privées et les certificats de clés publiques peuvent également être stockés sur cette carte. 

ikecert(1M)

Modifications apportées à IKE dans Solaris10

À partir de Solaris 9, IKE inclut les fonctionnalités suivantes :

Chapitre 23 Configuration du protocole IKE (tâches)

Ce chapitre décrit la procédure de configuration du protocole Internet Key Exchange (IKE) sur vos systèmes. Une fois configuré, ce protocole génère automatiquement les numéros de clé IPsec sur votre réseau. Le présent chapitre contient les informations suivantes :

Pour voir une présentation du protocole IKE, reportez-vous au Chapitre 22Protocole IKE (présentation). Pour obtenir des informations de référence sur le protocole IKE, reportez-vous au Chapitre 24Protocole IKE (référence). Pour consulter d'autres procédures, reportez-vous aux sections Exemples des pages de manuel ikeadm(1M), ikecert(1M) et ike.config(4).

Configuration du protocole IKE (liste des tâches)

L'authentification du protocole IKE peut s'effectuer à l'aide de clés prépartagées ou de certificats autosignés ou émanant d'autorités de certifications (AC). Les méthodes d'authentification IKE sont liées par une règle aux points d'extrémité protégés. Vous pouvez donc utiliser toutes les méthodes d'authentification IKE ou une seule d'entre elles sur un système. Un pointeur menant à une bibliothèque PKCS #11 permet aux certificats d'utiliser un accélérateur matériel connecté.

Une fois le protocole IKE configuré, vous devez effectuer les tâches IPsec qui utilisent cette configuration. Le tableau ci-dessous répertorie les tâches correspondant aux différentes configurations IKE.

Tâche 

Description 

Voir 

Configuration du protocole IKE avec des clés prépartagées 

Protégez les communications entre deux systèmes en faisant en sorte qu'ils partagent une clé secrète. 

Configuration du protocole IKE avec des clés prépartagées (liste des tâches)

Configuration du protocole IKE avec des certificats de clés publiques 

Protégez les communications à l'aide de certificats de clés publiques. Ces certificats peuvent être autosignés ou attestés par un fournisseur de PKI. 

Configuration du protocole IKE avec des certificats de clés publiques (liste des tâches)

Franchissement d'un boîtier NAT 

Configurez les protocoles IPsec et IKE pour communiquer avec un système portable 

Configuration du protocole IKE pour les systèmes portables (liste des tâches)

Configuration du protocole IKE pour générer et stocker les certificats de clés publiques sur le matériel connecté 

Accélérez les opérations IKE à l'aide d'une carte Sun Crypto Accelerator 1000 ou Sun Crypto Accelerator 4000. Vous pouvez également stocker les certificats de clés publiques sur la carte Sun Crypto Accelerator 4000. 

Configuration du protocole IKE en vue de l'utilisation du matériel connecté (liste des tâches)

Ajustement des paramètres de négociation de la phase 1 

Modifiez la durée des négociations de clés IKE. 

Modification des paramètres de transmission du protocole IKE (liste des tâches)

Configuration du protocole IKE avec des clés prépartagées (liste des tâches)

Le tableau ci-dessous répertorie les procédures de configuration et de maintenance du protocole IKE avec des clés prépartagées.

Tâche 

Description 

Voir 

Configuration du protocole IKE avec des clés prépartagées 

Créez un fichier de stratégie IKE ainsi qu'une clé à partager. 

Configuration du protocole IKE avec des clés prépartagées

Actualisation des clés prépartagées sur un système IKE en cours d'exécution 

Ajoutez des numéros de clé IKE sur les systèmes communicants. 

Actualisation des clés IKE prépartagées

Ajout de clés prépartagées à un système IKE en cours d'exécution 

Ajoutez une nouvelle entrée de stratégie IKE et de nouveaux numéros de clé à un système appliquant actuellement la stratégie IKE. 

Ajout d'une clé IKE prépartagée pour une nouvelle entrée de stratégie dans ipsecinit.conf

Vérification de la concordance des clés prépartagées 

Affichez les clés prépartagées sur les deux systèmes pour vous assurer qu'elles sont identiques. 

Méthode de vérification de la concordance des clés prépartagées IKE

Configuration du protocole IKE avec des clés prépartagées

Les clés prépartagées sont la méthode d'authentification la plus simple pour IKE. Elles s'utilisent notamment lors de la configuration du protocole IKE sur deux systèmes gérés par le même administrateur. N'oubliez cependant pas que, contrairement aux certificats de clés publiques, les clés prépartagées sont liées à une adresse IP donnée et ne peuvent pas s'utiliser avec des systèmes portables ou des systèmes susceptibles d'être renumérotés. Tenez également compte du fait que, si vous utilisez des clés prépartagées, vous ne pourrez pas décharger de calculs IKE sur le matériel connecté.

ProcedureConfiguration du protocole IKE avec des clés prépartagées

La longueur des clés des algorithmes d'implémentation du protocole IKE est variable. Elle dépend du niveau de sécurité dont vous souhaitez doter le site. En règle générale, la longueur des clés est proportionnelle au niveau de sécurité.

Les noms de systèmes choisis pour illustrer cette procédure sont : enigma et partym. Remplacez enigma et partym par les noms de vos systèmes.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Copiez le fichier /etc/inet/ike/config.sample dans le fichier /etc/inet/ike/config sur chacun des systèmes.

  3. Entrez les règles et paramètres globaux dans le fichier ike/config sur chacun des systèmes.

    Les règles et paramètres globaux de ce fichier doivent garantir le fonctionnement de la stratégie IPsec du fichier ipsecinit.conf. Les exemples ike/config ci-dessous vont de pair avec les exemples ipsecinit.conf de la section Sécurisation du trafic entre deux systèmes à l'aide d'IPsec.

    1. Modifiez par exemple le fichier /etc/inet/ike/config sur le système enigma :


      ### ike/config file on enigma, 192.168.116.16
      
      ## Global parameters
      #
      ## Phase 1 transform defaults
      p1_lifetime_secs 14400
      p1_nonce_len 40
      #
      ## Defaults that individual rules can override.
      p1_xform
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 2
      #
      ## The rule to communicate with partym
      #  Label must be unique
      { label "enigma-partym"
        local_addr 192.168.116.16
        remote_addr 192.168.13.213
        p1_xform
         { auth_method preshared oakley_group 5 auth_alg sha1 encr_alg aes }
        p2_pfs 5
      }
      

      Remarque –

      Tous les arguments du paramètre auth_method doivent se trouver sur la même ligne.


    2. Modifiez le fichier /etc/inet/ike/config sur le système partym :


      ### ike/config file on partym, 192.168.13.213
      ## Global Parameters
      #
      p1_lifetime_secs 14400
      p1_nonce_len 40
      #
      p1_xform
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 2
      
      ## The rule to communicate with enigma
      #  Label must be unique
      { label "partym-enigma"
        local_addr 192.168.13.213
        remote_addr 192.168.116.16
      p1_xform
         { auth_method preshared oakley_group 5 auth_alg sha1 encr_alg aes }
      p2_pfs 5
      }
      
  4. Vérifiez la syntaxe du fichier sur chacun des systèmes.


    # /usr/lib/inet/in.iked -c -f /etc/inet/ike/config
    
  5. Générez des nombres aléatoires que vous utiliserez comme numéros de clé.

    Si votre site possède un générateur de nombres aléatoires, utilisez-le. Sur un système Solaris, vous pouvez utiliser la commande od. La commande suivante vous permet par exemple d'imprimer deux lignes de nombres hexadécimaux :


    % od -X -A n /dev/random | head -2
             f47cb0f4 32e14480 951095f8 2b735ba8
             0a9467d0 8f92c880 68b6a40e 0efe067d

    Pour plus de détails sur la commande od, reportez-vous à la section Génération de numéros aléatoires sur un système Solaris et à la page de manuel od(1).


    Remarque –

    D'autres systèmes d'exploitation peuvent nécessiter des numéros de clé au format ASCII. Pour générer une clé identique dans les deux formats, hexadécimal et ASCII, reportez-vous à l'Exemple 23–1.


  6. Créez une clé à partir du résultat de l'Étape 5.


    f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e

    Pour cette procédure, l'algorithme d'authentification est SHA–1, comme indiqué à l'Étape 3. La taille du hachage, c'est-à-dire la taille de la sortie de l'algorithme d'authentification, détermine la taille minimale recommandée pour une clé prépartagée. La taille de la sortie de l'algorithme SHA–1 est de 160 bits ou 40 caractères. Dans cet exemple, la clé possède 56 caractères, ce qui permet au protocole IKE de disposer de numéros de clé supplémentaires.

  7. Créez un fichier /etc/inet/secret/ike.preshare sur chacun des systèmes.

    Placez la clé prépartagée dans chacun des fichiers.

    1. Sur le système enigma par exemple, le fichier ike.preshared se présente comme suit :


      # ike.preshared on enigma, 192.168.116.16
      #…
      { localidtype IP
      	localid 192.168.116.16
      	remoteidtype IP
      	remoteid 192.168.13.213
      	# enigma and partym's shared key in hex (192 bits)
      	key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e
      	}
    2. Sur le système partym, le fichier ike.preshared se présente comme suit :


      # ike.preshared on partym, 192.168.13.213
      #…
      { localidtype IP
      	localid 192.168.13.213
      	remoteidtype IP
      	remoteid 192.168.116.16
      	# partym and enigma's shared key in hex (192 bits)
      	key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e
      	}

    Remarque –

    Les clés prépartagées doivent être identiques sur chacun des systèmes.



Exemple 23–1 Génération de numéros de clé identiques pour deux systèmes dotés de systèmes d'exploitation différents

Le protocole IPsec de Solaris fonctionne avec d'autres systèmes d'exploitation. Si votre système communique avec un système qui requiert des clés prépartagées ASCII, vous devez générer une clé dans les deux formats, hexadécimal et ASCII.

Dans cet exemple, l'administrateur système de Solaris veut générer une clé de 56 caractères. Il utilise la commande ci-dessous pour générer une clé hexadécimale à partir d'une phrase de passe ASCII. L'option -tx1 imprime les octets un par un sur tous les systèmes Solaris.


# /bin/echo "papiermache with cashews and\c" | od -tx1 | cut -c 8-55 | \
tr -d '\n' | tr -d ' ' | awk '{print}'
7061706965726d616368652077697468206361736865777320616e64

Après suppression des décalages et concaténation de la sortie hexadécimale, la clé hexadécimale pour le système Solaris est 7061706965726d616368652077697468206361736865777320616e64. L'administrateur place cette valeur dans le fichier ike.preshared sur le système Solaris.


# Shared key in hex (192 bits)
key 7061706965726d616368652077697468206361736865777320616e64

Sur le système qui requiert des clés prépartagées ASCII, la phrase de passe correspond à la clé prépartagée. L'administrateur Solaris communique la phrase de passe papiermache with cashews and à l'autre administrateur par téléphone.


ProcedureActualisation des clés IKE prépartagées

Cette procédure permet de remplacer une clé prépartagée existante à intervalles réguliers.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Générez des nombres aléatoires et créez une clé possédant une longueur appropriée.

    Pour plus d'informations, reportez-vous à la section Génération de numéros aléatoires sur un système Solaris. Si vous générez une clé prépartagée pour un système Solaris qui communique avec un système d'exploitation nécessitant une clé ASCII, reportez-vous à l'Exemple 23–1.

  3. Remplacez la clé actuelle par une nouvelle clé.

    À titre d'exemple, sur les hôtes enigma et partym, cela revient à remplacer la valeur de key stockée dans le fichier /etc/inet/secret/ike.preshared par un nouveau nombre possédant la même longueur.

  4. Lisez la nouvelle clé dans le noyau.

    • À partir de la version Solaris 10 4/09 actualisez le service ike.


      # svcadm refresh ike
      
    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, arrêtez et redémarrez le démon in.iked.

      1. Vérifiez le niveau de privilège du démon in.iked.


        # /usr/sbin/ikeadm get priv
        Current privilege level is 0x0, base privileges enabled

        Vous pouvez modifier les numéros de clé si la commande renvoie un niveau de privilège 0x1 ou 0x2. Si le niveau renvoyé est 0x0, vous ne pouvez ni modifier ni afficher les numéros de clé. Par défaut, le démon in.iked s'exécute au niveau de privilège 0x0.

      2. Si le niveau de privilège est 0x0, arrêtez le démon et redémarrez-le.

        Lorsque le démon redémarre, il lit la nouvelle version du fichier ike.preshared.


        # pkill in.iked
        # /usr/lib/inet/in.iked
        
      3. Si le niveau de privilège est 0x1 ou 0x2, lisez la nouvelle version du fichier ike.preshared.


        # ikeadm read preshared
        

ProcedureAffichage des clés IKE prépartagées

Par défaut, la commande ikeadm vous empêche de consulter les clés réelles dans le fichier de vidage d'une SA phase 1. L'affichage des clés est utile lors du débogage.

Pour afficher les clés réelles, vous devez augmenter le niveau de privilège du démon. Pour obtenir une description des niveaux de privilège, reportez-vous à la section Commande d'administration du protocole IKE .


Remarque –

Pour effectuer cette procédure sur une version antérieure à la version Solaris 10 4/09, voir l'Exemple 23–2.


Avant de commencer

IKE est configuré et le service ike est en cours d'exécution.

  1. Affichez les clés IKE prépartagées.


    # ikeadm
    ikeadm> dump preshared
    
  2. Si une erreur se produit, vous devez augmenter le niveau de privilège du démon in.iked.

    1. Augmentez le niveau de privilège du démon in.iked dans le référentiel SMF.


      # svcprop -p config/admin_privilege ike
      base
      # svccfg -s ike setprop config/admin_privilege=keymat
      
    2. Augmentez le niveau de privilège du démon in.iked en cours d'exécution.


      # svcadm refresh ike ; svcadm restart ike
      
    3. (Facultatif) Confirmez que le niveau de privilège est keymat.


      # svcprop -p config/admin_privilege ike
      keymat
    4. Affichez les clés en exécutant de nouveau l'Étape 1.

  3. Réappliquez le niveau de privilège de base au démon IKE.

    1. Après l'affichage des clés, rétablissez le niveau de privilège à sa valeur par défaut.


      # svccfg -s ike setprop config/admin_privilege=base
      
    2. Actualisez, puis redémarrez IKE.


      # svcadm refresh ike ; svcadm restart ike
      

Exemple 23–2 Vérification des clés IKE prépartagées dans une version antérieure à la version Solaris 10 4/09

Dans l'exemple suivant, l'administrateur affiche les clés sur un système Solaris n'exécutant pas la version actuelle de Solaris. L'administrateur souhaite vérifier que les clés de ce système sont identiques aux clés du système communicant. Après avoir vérifié que les clés sont identiques sur les deux systèmes, l'administrateur rétablit le niveau de privilège sur 0.


ProcedureAjout d'une clé IKE prépartagée pour une nouvelle entrée de stratégie dans ipsecinit.conf

Si vous ajoutez des entrées de stratégie IPsec pendant que IPsec and IKE sont en cours d'exécution, vous devez lire la nouvelle stratégie et les règles IKE dans le noyau. À partir de la version Solaris 10 4/09, redémarrez le service policy et actualisez le service ike une fois les nouvelles clés ajoutées.


Remarque –

Pour effectuer cette procédure sur une version antérieure à la version Solaris 10 4/09, voir l'Exemple 23–3.


Avant de commencer

L'exécution de cette procédure nécessite le respect des conditions suivantes :

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Sur ce système, générez des nombres aléatoires et construisez une clé de 64 ou 448 bits.

    Pour plus d'informations, reportez-vous à la section Génération de numéros aléatoires sur un système Solaris. Si vous générez une clé prépartagée pour un système Solaris qui communique avec un système d'exploitation nécessitant une clé ASCII, reportez-vous à l'Exemple 23–1.

  3. Transmettez la clé à l'administrateur du système distant.

    Vous devez tous deux ajouter simultanément la même clé prépartagée. La sécurité de cette clé est directement liée à celle du moyen de transmission. Utilisez donc de préférence un moyen hors bande de type courrier recommandé ou fax protégé. Vous pouvez également utiliser une session ssh pour administrer les deux systèmes.

  4. Créez une règle pour la gestion des clés de enigma et ada par IKE.

    1. Sur le système enigma, ajoutez la règle suivante au fichier /etc/inet/ike/config :


      ### ike/config file on enigma, 192.168.116.16
       
      ## The rule to communicate with ada
      
      {label "enigma-to-ada"
       local_addr 192.168.116.16
       remote_addr 192.168.15.7
       p1_xform
       {auth_method preshared oakley_group 5 auth_alg sha1 encr_alg blowfish}
       p2_pfs 5
      	}
    2. Sur le système ada, ajoutez la règle suivante :


      ### ike/config file on ada, 192.168.15.7
       
      ## The rule to communicate with enigma
      
      {label "ada-to-enigma"
       local_addr 192.168.15.7
       remote_addr 192.168.116.16
       p1_xform
       {auth_method preshared oakley_group 5 auth_alg sha1 encr_alg blowfish}
       p2_pfs 5
      }
  5. Assurez-vous que les clés IKE prépartagées sont disponibles lors de la réinitialisation.

    1. Sur le système enigma, ajoutez les informations suivantes au fichier /etc/inet/secret/ike.preshared :


      # ike.preshared on enigma for the ada interface
      # 
      { localidtype IP
        localid 192.168.116.16
        remoteidtype IP
        remoteid 192.168.15.7
        # enigma and ada's shared key in hex (32 - 448 bits required)
        key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d
      }
    2. Sur le système ada, ajoutez les informations suivantes au fichier ike.preshared :


      # ike.preshared on ada for the enigma interface
      # 
      { localidtype IP
        localid 192.168.15.7
        remoteidtype IP
        remoteid 192.168.116.16
        # ada and enigma's shared key in hex (32 - 448 bits required)
        key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d
      }
  6. Sur chaque système, redémarrez le service de stratégie IPsec afin de sécuriser l'interface ajoutée.


    # svcadm restart policy
    
  7. Sur chaque système, actualisez le service ike.


    # svcadm refresh ike
    
  8. Assurez-vous que les systèmes peuvent communiquer entre eux.

    Reportez-vous à la section Méthode de vérification de la concordance des clés prépartagées IKE.


Exemple 23–3 Ajout d'une clé IKE prépartagée pour une nouvelle entrée de stratégie IPsec

Dans l'exemple suivant, l'administrateur ajoute une clé prépartagée à un système Solaris n'exécutant pas la version actuelle de Solaris. L'administrateur suit la procédure précédente pour modifier les fichiers ike/config et ike.preshared et pour générer des clés et contacter le système distant. L'administrateur utilise différentes commandes pour lire la nouvelle stratégie IPsec et les nouvelles règles IKE dans le noyau.


ProcedureMéthode de vérification de la concordance des clés prépartagées IKE

La concordance clés prépartagées des systèmes communicants est nécessaire à l'authentification.

Avant de commencer

IPsec est configuré et a été activé entre les deux systèmes sur lesquels vous travaillez. Vous exécutez la version actuelle Solaris10.


Remarque –

Pour effectuer cette procédure sur une version antérieure à la version Solaris 10 4/09, voir l'Exemple 23–2.


  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Sur chaque système, vérifiez le niveau de privilège du démon in.iked.


    # svcprop -p config/admin_privilege ike
    base
    • Si le niveau de privilège est keymat, passez à l'Étape 3.

    • Si le niveau de privilège est base ou modkeys, augmentez le niveau de privilège.

      Effectuez une actualisation, puis redémarrez le service ike.


      # svccfg -s ike setprop config/admin_privilege=keymat
      # svcadm refresh ike ; svcadm restart ike
      # svcprop -p config/admin_privilege ike
      keymat
  3. Affichez, sur chacun des systèmes, les informations concernant les clés prépartagées.


    # ikeadm dump preshared
    PSKEY: Preshared key (24 bytes): f47cb…/192
    LOCIP: AF_INET: port 0, 192.168.116.16 (enigma).
    REMIP: AF_INET: port 0, 192.168.13.213 (partym).
  4. Comparez les résultats obtenus.

    Si les clés prépartagées ne sont pas identiques, remplacez l'une d'entre elles dans le fichier /etc/inet/secret/ike.preshared.

  5. Lorsque la vérification est terminée, rétablissez le niveau de privilège par défaut sur chacun des systèmes.


    # svccfg -s ike setprop config/admin_privilege=base
    # svcadm restart ike
    

Configuration du protocole IKE avec des certificats de clés publiques (liste des tâches)

Le tableau ci-dessous répertorie les procédures de création de certificats de clés publiques pour IKE. Ces procédures incluent l'accélération et le stockage de certificats sur le matériel connecté.

Tâche 

Description 

Voir 

Configuration du protocole IKE avec des certificats de clés publiques autosignés 

Créez et placez deux certificats sur chaque système : 

  • un certificat autosigné ;

  • le certificat de clé publique du système distant.

Configuration du protocole IKE avec des certificats de clés publiques autosignés

Configuration du protocole IKE avec un certificat PKI émanant d'une autorité de certification 

Créez une demande de certificat et placez trois certificats sur chacun des systèmes : 

  • le certificat créé par l'autorité de certification (AC) suite à votre demande ;

  • le certificat de clé publique de l'AC ;

  • la LRC de l'AC.

Configuration du protocole IKE avec des certificats signés par une AC

Configuration de certificats de clés publiques sur le matériel local 

Procédez de l'une des manières suivantes :  

  • Générez un certificat autosigné sur le matériel local et ajoutez la clé publique d'un système distant sur le matériel.

  • Générez une demande de certificat sur le matériel local et ajoutez les certificats de clés publiques de l'AC sur le matériel.

Génération et stockage de certificats de clés publiques sur le matériel

Mise à jour de la liste de révocation de certificats (LRC) d'une PKI 

Accédez à la LRC depuis un point de distribution central. 

Traitement des listes de révocation de certificats

Configuration du protocole IKE avec des certificats de clés publiques

Grâce aux certificats de clés publiques, les systèmes communicants n'ont plus besoin de partager de numéros de clé secrets hors bande. Contrairement aux clés prépartagées, les certificats de clés publiques peuvent être utilisés sur une machine portable ou sur un système susceptible d'être renuméroté.

Les certificats de clés publiques peuvent également être stockés sur le matériel connecté. Pour plus d'informations sur cette procédure, reportez-vous à la section Configuration du protocole IKE en vue de l'utilisation du matériel connecté (liste des tâches).

ProcedureConfiguration du protocole IKE avec des certificats de clés publiques autosignés

Les certificats autosignés nécessitent un temps système inférieur à celui des certificats publics émanant d'une AC, mais s'intègrent plus difficilement dans un environnement à grande échelle.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Ajoutez un certificat autosigné à la base de données ike.privatekeys.


    # ikecert certlocal -ks|-kc -m keysize -t keytype \
    -D dname -A altname \
    [-S validity-start-time] [-F validity-end-time] [-T token-ID]
    -ks

    Crée un certificat autosigné.

    -kc

    Crée une demande de certificat. Pour plus d'informations sur cette procédure, reportez-vous à la section Configuration du protocole IKE avec des certificats signés par une AC.

    -m taille de clé

    Taille de la clé. La taille de clé peut être 512, 1 024, 2 048, 3 072 ou 4 096.

    -t type de clé

    Spécifie le type d'algorithme à utiliser. Le type de clé peut être rsa-sha1, rsa-md5 ou dsa-sha1.

    -D nom distinctif

    Nom distinctif X.509 de l'objet du certificat. Le nom distinctif se présente de la manière suivante : C=pays, O=organisation, OU=unité d'organisation, CN=nom commun. Les balises valides sont C, O, OU et CN.

    -A nom alternatif

    Nom alternatif du certificat. Le nom alternatif se présente de la manière suivante : tag=value. Les balises valides sont IP, DNS, email et DN.

    -S, début de validité

    Indique la date de début de validité absolue ou relative du certificat.

    -F, fin de validité

    Indique la date de fin de validité absolue ou relative du certificat.

    -T ID de jeton

    Permet à un jeton matériel PKCS #11 de générer les clés. Les certificats sont alors stockés sur le matériel.

    1. Exécutée par exemple sur le système partym, la commande se présente comme suit :


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      -A IP=192.168.13.213
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/0.
      Enabling external key providers - done.
      Acquiring private keys for signing - done.
      Certificate: 
       Proceeding with the signing operation.
       Certificate generated successfully (…/publickeys/0)
      Finished successfully.
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. Exécutée sur le système enigma, elle se présente de la manière suivante :


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
      -A IP=192.168.116.16
      Creating software private keys.
        …
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  3. Enregistrez le certificat et envoyez-le au système distant.

    Vous pouvez le coller dans un e-mail.

    1. Transmettez le certificat de partym à l'administrateur de enigma :


      To: admin@ja.enigmaexample.com
      From: admin@us.partyexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. L'administrateur de enigma vous envoie le certificat enigma suivant :


      To: admin@us.partyexample.com
      From: admin@ja.enigmaexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  4. Sur chaque système, ajoutez le certificat que vous avez reçu.

    1. Copiez la clé publique que l'administrateur vous a envoyée par e-mail.

    2. Saisissez la commande ikecert certdb -a et appuyez sur la touche Retour.

      Aucune invite ne s'affiche lorsque vous appuyez sur la touche Retour.


      # ikecert certdb -a Press the Return key
      
    3. Collez la clé publique, puis appuyez sur la touche Retour. Pour clore l'entrée, appuyez sur Ctrl-D.


      -----BEGIN X509 CERTIFICATE-----
      MIIC…
      …
      ----END X509 CERTIFICATE----- Press the Return key
      <Control>-D
      
  5. Vérifiez auprès de l'autre administrateur que ce certificat est bien de lui.

    Vous pouvez par exemple lui téléphoner et comparer la valeur de hachage de la clé publique. La valeur de hachage de clé publique du certificat partagé doit être identique pour les deux systèmes.

    1. Répertoriez les certificats stockés sur votre système.

      Par exemple, sur le système partym, le certificat public se trouve à l'emplacement 1 et le certificat privé à l'emplacement 0.


      partym # ikecert certdb -l
      Certificate Slot Name: 0   Type: rsa-md5 Private Key
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: B2BD13FCE95FD27ECE6D2DCD0DE760E2
      
      Certificate Slot Name: 1   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 0) Points to certificate's private key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
      
    2. Comparez cette valeur avec le hachage de la clé publique sur le système enigma.

      Vous pouvez communiquer la valeur de hachage par téléphone.


      enigma # ikecert certdb -l
      Certificate Slot Name: 4   Type: rsa-md5 Private Key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: DF3F108F6AC669C88C6BD026B0FCE3A0
      
      Certificate Slot Name: 5   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 4)
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
      
  6. Approuvez les deux certificats sur chacun des systèmes.

    Éditez le fichier /etc/inet/ike/config pour reconnaître les certificats.

    L'administrateur du système distant fournit la valeur des paramètres cert_trust, remote_addr et remote_id.

    1. Sur le système partym par exemple, le fichier ike/config se présente de la manière suivante :


      # Explicitly trust the following self-signed certs
      # Use the Subject Alternate Name to identify the cert
      
      # Verified remote address and remote ID
      # Verified public key hash per telephone call from administrator
      cert_trust "192.168.13.213" Local system's certificate Subject Alt Name
      cert_trust "192.168.116.16" Remote system's certificate Subject Alt Name
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 5
      
      {
       label "US-partym to JA-enigmax"
       local_id_type dn
       local_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
    2. Sur le système enigma, ajoutez les valeurs de enigma des paramètres locaux dans le fichier ike/config.

      Pour les paramètres distants, utilisez les valeurs de partym. Assurez-vous que la valeur du mot-clé label est unique. Elle doit différer de la valeur label du système distant.


      …
      {
       label "JA-enigmax to US-partym"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …

Exemple 23–4 Vérification de la validité du certificat d'un autre administrateur

Dans cet exemple, les administrateurs vérifient la concordance des certificats à l'aide de l'attribut Subject Name.

Le premier administrateur enregistre la sortie de la génération et du listage du certificat dans un fichier. La sortie de la commande ikecert s'imprimant en erreur standard, l'administrateur redirige l'erreur standard vers le fichier.


sys1# cd /
sys1# ikecert certlocal -ks -m1024 -t rsa-md5 \
-D"C=US, O=TestCo, CN=Co2Sys" 2>/tmp/for_co2sys
Certificate added to database.
sys1# ikecert certdb -l "C=US, O=TestCo, CN=Co2Sys" 2>>/tmp/for_co2sys

L'administrateur vérifie le contenu du fichier.


sys1# cat /tmp/for_co2sys
Creating private key.
-----BEGIN X509 CERTIFICATE-----
MIIB7TCCAVagAwIBAgIEZkHfOTANBgkqhkiG9w0BAQQFADAxMQwwCgYDVQQGEwNV
U0ExEDAOBgNVBAoMB3Rlc3RfY28xDzANBgNVBAMTBkVuaWdtYTAeFw0wODAxMTUx
OTI1MjBaFw0xMjAxMTUxOTI1MjBaMDExDDAKBgNVBAYTA1VTQTEQMA4GA1UECgwH
dGVzdF9jbzEPMA0GA1UEAxMGRW5pZ21hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQCPxGv0rUzHMnFtkx9uwYuPiWbftmWfa9iDt6ELOEuw3zlboy2qtuRUZohz
FIbCxAJevdCY6a+pktvYy3/2nJL0WATObO5T0FKn3F0bphajinLYbyCrYhEzD9E2
gkiT2D9/ttbSiMvi9usphprEDcLAFaWgCJiHnKPBEkjC0vhA3wIDAQABoxIwEDAO
BgNVHQ8BAf8EBAMCBaAwDQYJKoZIhvcNAQEEBQADgYEAL/q6xgweylGQylqLCwzN
5PIpjfzsNPf3saTyh3VplwEOW6WTHwRQT17IO/1Oc6Jnz9Mr0ZrbHWDXq+1sx180
F8+DMW1Qv1UR/lGMq3ufDG3qedmSN6txDF8qLlPCUML0YL8m4oGdewqGb+78aPyE
Y/cJRsK1hWbYyseqcIkjj5k=
-----END X509 CERTIFICATE-----
Certificate Slot Name: 2   Key Type: rsa
        (Private key in certlocal slot 2)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

Ensuite, l'administrateur envoie le fichier par courrier électronique au deuxième administrateur.

Celui-ci place le fichier dans un répertoire sécurisé, puis importe le certificat à partir du fichier.


sys2# cd /
sys2# ikecert certdb -a < /sec/co2sys

La commande ikecert importe uniquement le texte entre les lignes -----BEGIN et -----END. L'administrateur vérifie que le certificat local possède une clé de hachage publique identique à celle du fichier co2sys.


sys2# ikecert certdb -l
Certificate Slot Name: 1   Key Type: rsa
        (Private key in certlocal slot 1)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

Le deuxième administrateur s'assure par téléphone que le premier administrateur a bien envoyé ce message électronique et vérifie l'attribut Subject Name du certificat.



Exemple 23–5 Spécification de dates de début et de fin de validité de certificat.

Dans cet exemple, l'administrateur du système partym définit la période de validité du certificat. Le certificat est antidaté de 2,5 jours et sa période de validité est de 4 ans et 6 mois à compter de la date de création.


# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
-A IP=192.168.13.213 \
-S -2d12h -F +4y6m

L'administrateur du système enigma définit la période de validité du certificat. Le certificat est antidaté de 2 jours et sa période de validité s'étend jusqu'au 31 décembre 2010, minuit.


# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
-A IP=192.168.116.16 \
-S -2d -F "12/31/2010 12:00 AM"

ProcedureConfiguration du protocole IKE avec des certificats signés par une AC

Les certificats publics émanant d'autorités de certification (AC) requièrent une négociation avec une organisation externe. Ces certificats s'intègrent très facilement dans les environnements à grande échelle afin protéger un grand nombre de systèmes communicants.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. La commande ikecert certlocal -kc permet de créer une demande de certificat.

    Pour consulter la description des arguments de cette commande, reportez-vous à l'Étape 2 de la section Configuration du protocole IKE avec des certificats de clés publiques autosignés.


    # ikecert certlocal -kc -m keysize -t keytype \
    -D dname -A altname
    
    1. La commande suivante permet par exemple de créer une demande de certificats sur le système partym :


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany\, Inc., OU=US-Partym, CN=Partym" \
      > -A "DN=C=US, O=PartyCompany\, Inc., OU=US-Partym"
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/2.
      Enabling external key providers - done.
      Certificate Request: 
        Proceeding with the signing operation.
        Certificate request generated successfully (…/publickeys/0)
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIByjCCATMCAQAwUzELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFEV4YW1wbGVDb21w
      …
      lcM+tw0ThRrfuJX9t/Qa1R/KxRlMA3zckO80mO9X
      -----END CERTIFICATE REQUEST-----
    2. La commande suivante permet de créer une demande de certificat sur le système enigma :


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax, CN=Enigmax" \
      > -A "DN=C=JA, O=EnigmaCo\, Inc., OU=JA-Enigmax"
      Creating software private keys.
      …
      Finished successfully.
      -----BEGIN CERTIFICATE REQUEST-----
      MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
      …
      8qlqdjaStLGfhDOO
      -----END CERTIFICATE REQUEST-----
  3. Soumettez la demande de certificat à un fournisseur de PKI.

    Le fournisseur de PKI vous indiquera la procédure de soumission des demandes de certificat. Dans la plupart des cas, celle-ci s'effectue en remplissant un formulaire directement sur le site Web du fournisseur. Dans ce formulaire, vous devrez notamment indiquer la preuve de la légitimité de votre demande. Il suffit généralement de coller votre certificat dans le formulaire. Après avoir vérifié votre demande, le fournisseur émet les deux objets de certificats suivants et une liste des certificats révoqués :

    • Votre certificat de clé publique – Ce certificat est basé sur la demande que vous avez envoyée au fournisseur. Cette demande est intégrée au certificat, qui vous identifie de manière unique.

    • Un certificat AC – La signature du fournisseur. L'AC vérifie que votre certificat de clé publique est légitime.

    • Une liste de révocation de certificats (LRC) – La liste la plus récente des certificats révoqués par le fournisseur. Cette liste n'est pas expédiée sous la forme d'un objet de certificat séparé si l'accès à la LRC est intégré au certificat de clé publique.

      Si un URI de LRC est intégré au certificat de clé publique, IKE peut récupérer automatiquement la LRC. De la même façon, si une entrée de DN (nom de répertoire sur un serveur LDAP) est intégrée au certificat de clé publique, IKE peut récupérer la LRC sur un serveur LDAP que vous avez spécifié et la mettre en cache.

      Pour consulter un exemple d'URI et d'entrée de DN intégrés à un certificat de clé publique, reportez-vous à la section Traitement des listes de révocation de certificats.

  4. Ajoutez tous les certificats sur votre système.

    L'option -a de la commande ikecert certdb -a ajoute l'objet collé à la base de données de certificats correspondante de votre système. Pour plus d'informations, reportez-vous à la section IKE avec certificats de clés publiques.

    1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    2. Ajoutez le certificat de clé publique que vous avez reçu du fournisseur de PKI.


      # ikecert certdb -a
      Press the Return key
      Paste the certificate:
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
      
    3. Ajoutez le certificat AC émanant du fournisseur de PKI.


      # ikecert certdb -a
      Press the Return key
      Paste the CA:
      -----BEGIN X509 CERTIFICATE-----
      …
      -----END X509 CERTIFICATE----
      Press the Return key
      <Control>-D
      
    4. Si le fournisseur de PKI vous a envoyé une liste de révocation de certificats, ajoutez-la à la base de données certrldb :


      # ikecert certrldb -a
      Press the Return key
      Paste the CRL:
      -----BEGIN CRL-----
      …
      -----END CRL----
      Press the Return key
      <Control>-D
      
  5. Le mot-clé cert_root permet d'identifier le fournisseur de PKI dans le fichier /etc/inet/ike/config.

    Utilisez le nom que le fournisseur de PKI vous a indiqué.

    1. Sur le système partym, par exemple, le fichier ike/config peut se présenter de la manière suivante :


      # Trusted root cert
      # This certificate is from Example PKI
      # This is the X.509 distinguished name for the CA that it issues.
      
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
       { auth_method rsa_sig oakley_group 1 auth_alg sha1 encr_alg des }
      p2_pfs 2
      
      {
       label "US-partym to JA-enigmax - Example PKI"
       local_id_type dn
       local_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }

      Remarque –

      Tous les arguments du paramètre auth_method doivent se trouver sur la même ligne.


    2. Créez un fichier similaire sur le système enigma.

      Le fichier enigma ike/config doit :

      • inclure la même valeur cert_root ;

      • utiliser les valeurs de enigma pour les paramètres locaux ;

      • utiliser les valeurs de partym pour les paramètres distants ;

      • créer une valeur unique pour le mot-clé label. Elle doit différer de la valeur label du système distant.


      …
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      …
      {
       label "JA-enigmax to US-partym - Example PKI"
       local_id_type dn
       local_id   "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …
  6. Spécifiez le mode de traitement des LRC par le protocole IKE.

    Choisissez l'option appropriée :

    • Pas de LRC disponible

      Si le fournisseur de PKI ne fournit pas de LRC, ajoutez le mot-clé ignore_crls au fichier ike/config.


      # Trusted root cert
      …
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example,…
      ignore_crls

      Le mot-clé ignore_crls indique au protocole IKE de ne pas chercher de LRC.

    • LRC disponible

      Si le fournisseur de PKI vous communique un point de distribution central pour les LRC, vous pouvez modifier le fichier ike/config de manière à ce qu'il pointe sur cet emplacement.

      Pour consulter des exemples de ce type de configuration, reportez-vous à la section Traitement des listes de révocation de certificats.


Exemple 23–6 Utilisation de rsa_encrypt lors de la configuration du protocole IKE

    Lorsque vous utilisez auth_method rsa_encrypt dans le fichier ike/config, vous devez ajouter le certificat homologue à la base de données publickeys.

  1. Envoyez ce certificat à l'administrateur du système distant.

    Vous pouvez le coller dans un e-mail.

    L'administrateur de partym envoie le message suivant :


    To: admin@ja.enigmaexample.com
    From: admin@us.partyexample.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII…
    ----END X509 CERTIFICATE-----

    L'administrateur de enigma envoie l'e-mail suivant :


    To: admin@us.partyexample.com
    From: admin@ja.enigmaexample.com
    Message: -----BEGIN X509 CERTIFICATE-----
    MII
    …
    -----END X509 CERTIFICATE-----
  2. Sur chacun des systèmes, ajoutez à la base de données publickeys locale le certificat envoyé par e-mail.


    # ikecert certdb -a
    Press the Return key
    -----BEGIN X509 CERTIFICATE-----
    MII…
    -----END X509 CERTIFICATE-----
    Press the Return key
    <Control>-D
    

En cachant les identités à l'aide du protocole IKE, la méthode d'authentification utilisée en chiffrement RSA prévient les risques d'écoute électronique. Étant donné que la méthode rsa_encrypt cache l'identité de l'homologue, le protocole IKE ne peut récupérer son certificat. La méthode rsa_encrypt requiert donc que les homologues IKE connaissent leurs clés publiques respectives.

C'est pourquoi vous devez ajouter le certificat de l'homologue à la base de données publickeys lorsque vous utilisez la méthode auth_method de rsa_encrypt dans le fichier /etc/inet/ike/config. La base de données publickeys détient alors trois certificats pour chaque couple de systèmes communicants :

Dépannage – La charge du protocole IKE, qui inclut les trois certificats, peut s'avérer trop importante pour le chiffrement via rsa_encrypt. L'apparition d'erreurs indiquant que l'autorisation a échoué ou que la charge n'est pas conforme peut signifier que la méthode rsa_encrypt est incapable de chiffrer la totalité de la charge. Pour réduire la charge, utilisez une autre méthode (par exemple, rsa_sig, qui ne requiert que deux certificats).


ProcedureGénération et stockage de certificats de clés publiques sur le matériel

Le processus de génération et de stockage de certificats de clés publiques sur du matériel est similaire au processus de génération et de stockage de certificats de clés publiques sur un système. Dans le premier cas, il convient d'identifier le matériel à l'aide des commandes ikecert certlocal et ikecert certdb, accompagnées de l'option -T et de l'ID de jeton.

Avant de commencer
  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Générez un certificat autosigné ou une demande de certificat et spécifiez l'ID de jeton.

    Procédez de l'une des manières suivantes :


    Remarque –

    Pour RSA, la carte Sun Crypto Accelerator 4000 prend en charge des clés d'une longueur maximum de 2 048 bits. Pour DSA, la longueur maximum des clés est de 1 024 bits.


    • Pour un certificat autosigné, utilisez la syntaxe suivante :


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      > -a -T dca0-accel-stor IP=192.168.116.16
      Creating hardware private keys.
      Enter PIN for PKCS#11 token: Type user:password
      

      L'argument de l'option -T est l'ID de jeton de la carte Sun Crypto Accelerator 4000 connectée.

    • Pour une demande de certificat, utilisez la syntaxe suivante :


      # ikecert certlocal -kc -m 1024 -t rsa-md5 \
      > -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      > -a -T dca0-accel-stor IP=192.168.116.16
      Creating hardware private keys.
      Enter PIN for PKCS#11 token: Type user:password
      

    Pour obtenir une description des arguments de la commande ikecert, reportez-vous à la page de manuel ikecert(1M).

  3. Lorsque l'invite demandant le PIN s'affiche, entrez le nom de l'utilisateur de la carte Sun Crypto Accelerator 4000 suivi de deux points et du mot de passe de l'utilisateur.

    Si la carte Sun Crypto Accelerator 4000 possède un utilisateur ikemgr dont le mot de passe est rgm4tigt, entrez :


    Enter PIN for PKCS#11 token: ikemgr:rgm4tigt
    

    Remarque –

    La réponse est stockée en texte en clair sur le disque.


    Après entrée du mot de passe, le certificat s'imprime :


    Enter PIN for PKCS#11 token: ikemgr:rgm4tigt
    -----BEGIN X509 CERTIFICATE-----
    MIIBuDCCASECAQAwSTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDFBhcnR5Q29tcGFu
    …
    oKUDBbZ9O/pLWYGr
    -----END X509 CERTIFICATE-----
  4. Envoyez votre certificat aux personnes concernées.

    Procédez de l'une des manières suivantes :

  5. Éditez le fichier /etc/inet/ike/config sur votre système pour reconnaître les certificats.

    Procédez de l'une des manières suivantes :

    • Certificat autosigné

      Utilisez les valeurs fournies par l'administrateur du système distant pour les paramètres cert_trust, remote_id et remote_addr. Sur le système enigma par exemple, le fichier ike/config se présente comme suit :


      # Explicitly trust the following self-signed certs
      # Use the Subject Alternate Name to identify the cert
      
      cert_trust "192.168.116.16"  Local system's certificate Subject Alt Name
      cert_trust "192.168.13.213"  Remote system's certificate Subject Alt name
      
      
      # Solaris 10 1/06 release: default path does not have to be typed in
      #pkcs11_path "/usr/lib/libpkcs11.so" Hardware connection
      
      # Solaris 10 release: use this path
      #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so"
      …
      {
       label "JA-enigmax to US-partym"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
    • Demande de certificat

      Entrez le nom que le fournisseur de PKI vous a communiqué comme valeur du mot-clé cert_root. Sur le système enigma par exemple, le fichier ike/config peut se présenter comme suit :


      # Trusted root cert
      # This certificate is from Example PKI
      # This is the X.509 distinguished name for the CA that it issues.
      
      cert_root "C=US, O=ExamplePKI\, Inc., OU=PKI-Example, CN=Example PKI"
      
      # Solaris 10 1/06 release: default path does not have to be typed in
      #pkcs11_path "/usr/lib/libpkcs11.so" Hardware connection
      
      # Solaris 10 release: use this path
      #pkcs11_path "/opt/SUNWconn/cryptov2/lib/libvpkcs11.so"
      …
      {
       label "JA-enigmax to US-partym - Example PKI"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id  "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
  6. Placez les certificats de l'autre partie sur le matériel.

    Répondez à la demande de PIN comme lors de l'Étape 3.


    Remarque –

    Vous devez ajouter les certificats de clés publiques au matériel connecté qui a généré votre clé privée.


    • Certificat autosigné.

      Ajoutez le certificat autosigné du système distant. Dans cet exemple, il est stocké dans le fichier DCA.ACCEL.STOR.CERT.


      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT
      Enter PIN for PKCS#11 token: Type user:password
      

      Si le certificat autosigné a utilisé rsa_encrypt comme valeur du paramètre auth_method, ajoutez le certificat de l'homologue au magasin du matériel.

    • Certificats émanant d'un fournisseur de PKI.

      Ajoutez le certificat généré par le fournisseur suite à votre demande et ajoutez l'AC.


      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CERT
      Enter PIN for PKCS#11 token: Type user:password
      

      # ikecert certdb -a -T dca0-accel-stor < DCA.ACCEL.STOR.CA.CERT
      Enter PIN for PKCS#11 token: Type user:password
      

      Pour ajouter une liste de révocation de certificats (LRC) communiquée par un fournisseur de PKI, reportez-vous à la section Traitement des listes de révocation de certificats.

ProcedureTraitement des listes de révocation de certificats

Les listes de révocation de certificats (LRC) sont émises par une AC et contiennent les certificats périmés ou compromis. Vous pouvez traiter les LRC de quatre façons :

La section ci-dessous décrit la procédure permettant de paramétrer l'utilisation des LRC à partir d'un point de distribution central dans le protocole IKE.

  1. Affichez le certificat que vous avez reçu de l'AC.


    # ikecert certdb -lv certspec
    
    -l

    Liste les certificats dans la base de données de certificats IKE.

    -v

    Liste les certificats en mode détaillé. Utilisez cette option avec précaution.

    spécification de certificat

    Modèle permettant de rechercher les certificats correspondants dans la base de données de certificats IKE.

    Par exemple, le certificat ci-dessous a été émis par Sun Microsystems (les détails ont été modifiés).


    # ikecert certdb -lv example-protect.sun.com
    Certificate Slot Name: 0   Type: dsa-sha1
       (Private key in certlocal slot 0)
     Subject Name: <O=Sun Microsystems Inc, CN=example-protect.sun.com>
     Issuer Name: <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc>
     SerialNumber: 14000D93
       Validity:
          Not Valid Before: 2002 Jul 19th, 21:11:11 GMT
          Not Valid After:  2005 Jul 18th, 21:11:11 GMT
       Public Key Info:
          Public Modulus  (n) (2048 bits): C575A…A5
          Public Exponent (e) (  24 bits): 010001
       Extensions:
          Subject Alternative Names:
                  DNS = example-protect.sun.com
          Key Usage: DigitalSignature KeyEncipherment
          [CRITICAL]
       CRL Distribution Points:
          Full Name:
             URI = #Ihttp://www.sun.com/pki/pkismica.crl#i
             DN = <CN=Sun Microsystems Inc CA (Cl B), O=Sun Microsystems Inc>
          CRL Issuer: 
          Authority Key ID:
          Key ID:              4F … 6B
          SubjectKeyID:        A5 … FD
          Certificate Policies
          Authority Information Access

    Notez l'entrée CRL Distribution Points. L'entrée URI indique que la LRC de cette organisation est disponible sur le Web. L'entrée DN indique que la LRC est disponible sur un serveur LDAP. Après que le protocole IKE a accédé à la LRC, celle-ci est mise en cache en vue de futures utilisations.

    Pour accéder à la LRC, vous devez tout d'abord accéder à un point de distribution.

  2. Choisissez l'une des méthodes suivantes pour accéder à la LRC depuis un point de distribution central.

    • Utilisez l'URI.

      Ajoutez le mot-clé use_http au fichier /etc/inet/ike/config de l'hôte. Le fichier ike/config se présente comme suit :


      # Use CRL from organization's URI
      use_http
    • Utilisez un proxy Web.

      Ajoutez le mot-clé proxy au fichier ike/config. Le mot-clé proxy adopte un URL comme argument, comme indiqué ci-dessous :


      # Use own web proxy
      proxy "http://proxy1:8080"
      
    • Utilisez un serveur LDAP.

      Utilisez le nom du serveur LDAP comme argument du mot-clé ldap-list dans le fichier /etc/inet/ike/config de l'hôte. Le nom du serveur LDAP est fourni par votre organisation. L'entrée dans le fichier ike/config se présente comme suit :


      # Use CRL from organization's LDAP
      ldap-list "ldap1.sun.com:389,ldap2.sun.com"
      …

    Le protocole IKE récupère la LRC et la met en cache jusqu'à ce que le certificat expire.


Exemple 23–7 Ajout d'une LRC à la base de données certrldb locale

Si la LRC du fournisseur de PKI n'est pas disponible à partir d'un point de distribution central, vous pouvez ajouter cette liste manuellement à la base de données certrldb locale. Pour extraire la LRC dans un fichier, suivez les instructions du fournisseur de PKI, puis ajoutez la LRC à la base de données à l'aide de la commande ikecert certrldb -a.


# ikecert certrldb -a < Sun.Cert.CRL

Configuration du protocole IKE pour les systèmes portables (liste des tâches)

Le tableau ci-dessous décrit les procédures permettant de configurer le protocole IKE pour gérer des systèmes qui se connectent à distance à un site central.

Tâche 

Description 

Voir 

Établissement de la communication avec un site central depuis un lieu hors site 

Permettez aux systèmes hors site de communiquer avec un site central. Ces systèmes peuvent être portables. 

Configuration du protocole IKE pour les systèmes hors site

Utilisation d'un certificat racine et du protocole IKE sur un système central acceptant le trafic des systèmes portables 

Configurez un système de passerelle pour accepter le trafic IPsec d'un système ne possédant pas d'adresse IP fixe. 

Exemple 23–8

Utilisation d'un certificat racine et du protocole IKE sur un système ne possédant pas d'adresse IP fixe 

Configurez le système portable de manière à protéger son trafic avec le site central (par exemple, le siège de l'entreprise). 

Exemple 23–9

Utilisation de certificats autosignés et du protocole IKE sur un système central acceptant le trafic de systèmes portables 

Configurez un système de passerelle avec des certificats autosignés pour accepter le trafic IPsec d'un système portable. 

Exemple 23–10

Utilisation de certificats autosignés et du protocole IKE sur un système ne possédant pas d'adresse IP fixe 

Configurez un système portable avec des certificats autosignés pour protéger son trafic avec un site central. 

Exemple 23–11

Configuration du protocole IKE pour les systèmes portables

Lorsqu'ils sont configurés correctement, les ordinateurs portables peuvent communiquer avec les ordinateurs centraux de l'entreprise via IPsec et IKE. L'utilisation combinée d'une stratégie IPsec globale et d'une méthode d'authentification de clé publique permet de protéger le trafic des systèmes hors site avec le système central.

ProcedureConfiguration du protocole IKE pour les systèmes hors site

Les protocoles IPsec et IKE requièrent un ID unique pour identifier la source et la destination. Pour les systèmes portables hors site ne possédant pas d'adresse IP unique, vous devez utiliser un autre type d'ID permettant d'identifier un système de manière unique (par exemple, DNS, DN ou email).

Il est toujours préférable de configurer les systèmes portables ou hors site possédant une adresse IP unique avec un autre type d'ID. Par exemple, si ces systèmes tentent de se connecter à un site central par l'intermédiaire d'un boîtier NAT, leur adresse unique n'est pas utilisée. Le boîtier NAT leur assigne une adresse IP arbitraire que le système central ne reconnaît pas.

Les clés prépartagées ne sont pas, elles non plus, un moyen d'authentification approprié pour les systèmes portables, car elles requièrent une adresse IP fixe. Les certificats autosignés ou les certificats PKI permettent par contre aux systèmes portables de communiquer avec le site central.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Configurez le système central de manière à ce qu'il reconnaisse les systèmes portables.

    1. Paramétrez le fichier /etc/hosts.

      Il n'est pas nécessaire que le système central reconnaisse des adresses spécifiques de systèmes portables.


      # /etc/hosts on central
      central 192.xxx.xxx.x
      
    2. Paramétrez le fichier ipsecinit.conf.

      Le système central nécessite une stratégie autorisant une plage étendue d'adresses IP. Les certificats de la stratégie IKE garantissent ultérieurement la légitimité des systèmes connectés.


      # /etc/inet/ipsecinit.conf on central
      # Keep everyone out unless they use this IPsec policy:
      {} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    3. Paramétrez le fichier ike.config.

      Le DNS identifie le système central et les certificats permettent d'authentifier le système.


      ## /etc/inet/ike/ike.config on central
      # Global parameters
      #
      # Find CRLs by URI, URL, or LDAP
      # Use CRL from organization's URI
      use_http
      #
      # Use web proxy
      proxy "http://somecache.domain:port/"
      #
      # Use LDAP server
      ldap_server   "ldap-server1.domain.org,ldap2.domain.org:port"
      #
      # List CA-signed certificates
      cert_root    "C=US, O=Domain Org, CN=Domain STATE"
      #
      # List self-signed certificates - trust server and enumerated others
      #cert_trust    "DNS=central.domain.org"
      #cert_trust    "DNS=mobile.domain.org"
      #cert_trust    "DN=CN=Domain Org STATE (CLASS), O=Domain Org
      #cert_trust    "email=root@central.domain.org"
      #cert_trust    "email=user1@mobile.domain.org"
      #
      
      # Rule for mobile systems with certificate
      {
        label "Mobile systems with certificate"
        local_id_type DNS
      
      # Any mobile system who knows my DNS or IP can find me.
      
        local_id "central.domain.org"
        local_addr 192.xxx.xxx.x
      
      # Root certificate ensures trust,
      # so allow any remote_id and any remote IP address.
        remote_id ""
        remote_addr 0.0.0.0/0
      
      p2_pfs 5
      
      p1_xform
      {auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
      }
  3. Connectez-vous à chacun des systèmes portables et configurez-les de manière à ce qu'ils trouvent le système central.

    1. Paramétrez le fichier /etc/hosts.

      Le fichier /etc/hosts n'a pas besoin d'une adresse pour le système portable, mais peut en fournir une. Il doit contenir une adresse IP publique pour le système central.


      # /etc/hosts on mobile
      mobile 10.x.x.xx
      central 192.xxx.xxx.x
      
    2. Paramétrez le fichier ipsecinit.conf.

      Le système portable doit être capable de trouver le système central à partir de son adresse IP publique. Les deux systèmes doivent avoir la même stratégie IPsec.


      # /etc/inet/ipsecinit.conf on mobile
      # Find central
      {raddr 192.xxx.xxx.x} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    3. Paramétrez le fichier ike.config.

      L'identificateur ne peut pas être une adresse IP. Pour les systèmes portables, les identificateurs valides sont les suivants :

      • DN=nom-répertoire-ldap

      • DNS=adresse-DNS

      • email=adresse-e-mail

      Les certificats permettent d'authentifier le système portable.


      ## /etc/inet/ike/ike.config on mobile
      # Global parameters
      #
      # Find CRLs by URI, URL, or LDAP
      # Use CRL from organization's URI
      use_http
      #
      # Use web proxy
      proxy "http://somecache.domain:port/"
      #
      # Use LDAP server
      ldap_server   "ldap-server1.domain.org,ldap2.domain.org:port"
      #
      # List CA-signed certificates
      cert_root    "C=US, O=Domain Org, CN=Domain STATE"
      #
      # Self-signed certificates - trust me and enumerated others
      #cert_trust    "DNS=mobile.domain.org"
      #cert_trust    "DNS=central.domain.org"
      #cert_trust    "DN=CN=Domain Org STATE (CLASS), O=Domain Org
      #cert_trust    "email=user1@domain.org"
      #cert_trust    "email=root@central.domain.org"
      #
      # Rule for off-site systems with root certificate
      {
      	label "Off-site mobile with certificate"
      	local_id_type DNS
      
      # NAT-T can translate local_addr into any public IP address
      # central knows me by my DNS
      
      	local_id "mobile.domain.org"
      	local_addr 0.0.0.0/0
      
      # Find central and trust the root certificate
      	remote_id "central.domain.org"
      	remote_addr 192.xxx.xxx.x
      
      p2_pfs 5
      
      p1_xform
      {auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
      }
  4. Lisez la configuration IKE dans le noyau.

    • À partir de la version Solaris 10 4/09, activez le service ike.


      # svcadm enable svc:/network/ipsec/ike
      
    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, réinitialisez le système.


      # init 6
      

      Vous pouvez également arrêter et relancer le démon in.iked.


Exemple 23–8 Configuration d'un ordinateur central pour qu'il accepte le trafic IPsec d'un système portable

Le protocole IKE peut commencer les négociations derrière un boîtier NAT, mais il est préférable de ne pas faire intervenir de boîtier de ce type. Dans l'exemple ci-dessous, les certificats racine ont été émis par une AC. Ils ont été placés sur les deux systèmes (un système portable et un système central). Le système central accepte les négociations IPsec émanant d'un système situé derrière un boîtier NAT. main1 est le système acceptant les connexions de systèmes hors site. Pour paramétrer les systèmes hors site, reportez-vous à l'Exemple 23–9.


## /etc/hosts on main1
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on main1
# Keep everyone out unless they use this IPsec policy:
{} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on main1
# Global parameters
#
# Find CRLs by URI, URL, or LDAP
# Use CRL from organization's URI
use_http
#
# Use web proxy
proxy "http://cache1.domain.org:8080/"
#
# Use LDAP server
ldap_server   "ldap1.domain.org,ldap2.domain.org:389"
#
# List CA-signed certificate
cert_root "C=US, O=ExamplePKI Inc, OU=PKI-Example, CN=Example PKI"
#
# Rule for off-site systems with root certificate
{
  label "Off-site system with root certificate"
  local_id_type DNS
  local_id "main1.domain.org"
  local_addr 192.168.0.100

# Root certificate ensures trust,
# so allow any remote_id and any remote IP address.
  remote_id ""
  remote_addr 0.0.0.0/0

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1}
p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg aes auth_alg sha1}
p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1}
p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg aes auth_alg sha1}
}


Exemple 23–9 Configuration d'un système situé derrière un boîtier NAT avec IPsec

Dans l'exemple ci-dessous, les certificats racine ont été émis par une AC et placés sur le système portable et sur le système central. mobile1 se connecte au siège de l'entreprise depuis un domicile privé. Le réseau du FAI (fournisseur d'accès Internet) utilise un boîtier NAT pour pouvoir assigner une adresse privée à mobile1. Le boîtier NAT convertit l'adresse privée en une adresse IP publique partagée par d'autres nœuds du réseau du FAI. Le siège de l'entreprise ne se trouve pas derrière un boîtier NAT. Pour paramétrer l'ordinateur du siège de l'entreprise, reportez-vous à l'Exemple 23–8.


## /etc/hosts on mobile1
mobile1 10.1.3.3
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on mobile1
# Find main1
{raddr 192.168.0.100} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on mobile1
# Global parameters
#
# Find CRLs by URI, URL, or LDAP
# Use CRL from organization's URI
use_http
#
# Use web proxy
proxy "http://cache1.domain.org:8080/"
#
# Use LDAP server
ldap_server   "ldap1.domain.org,ldap2.domain.org:389"
#
# List CA-signed certificate
cert_root "C=US, O=ExamplePKI Inc, OU=PKI-Example, CN=Example PKI"
#
# Rule for off-site systems with root certificate
{
  label "Off-site mobile1 with root certificate"
  local_id_type DNS
  local_id "mobile1.domain.org"
  local_addr 0.0.0.0/0

# Find main1 and trust the root certificate
  remote_id "main1.domain.org"
  remote_addr 192.168.0.100

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
}


Exemple 23–10 Acceptation de certificats autosignés émanant d'un système portable

Dans l'exemple ci-dessous, les certificats autosignés ont été émis par le système portable et le système central, et ont été placés sur les deux systèmes. main1 est le système acceptant les connexions de systèmes hors site. Pour paramétrer les systèmes hors site, reportez-vous à l'Exemple 23–11.


## /etc/hosts on main1
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on main1
# Keep everyone out unless they use this IPsec policy:
{} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on main1
# Global parameters
#
# Self-signed certificates - trust me and enumerated others
cert_trust    "DNS=main1.domain.org"
cert_trust    "jdoe@domain.org"
cert_trust    "user2@domain.org"
cert_trust    "user3@domain.org"
#
# Rule for off-site systems with trusted certificate
{
  label "Off-site systems with trusted certificates"
  local_id_type DNS
  local_id "main1.domain.org"
  local_addr 192.168.0.100

# Trust the self-signed certificates
# so allow any remote_id and any remote IP address.
  remote_id ""
  remote_addr 0.0.0.0/0

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
}


Exemple 23–11 Utilisation de certificats autosignés pour contacter un système central

Dans l'exemple ci-dessous, mobile1 se connecte au siège de l'entreprise depuis un domicile privé. Les certificats ont été émis par le système portable et le système central, et ont été placés sur les deux systèmes. Le réseau du FAI utilise un boîtier NAT pour assigner une adresse privée à mobile1. Le boîtier NAT convertit l'adresse privée en une adresse IP publique partagée par d'autres nœuds du réseau du FAI. Le siège de l'entreprise ne se trouve pas derrière un boîtier NAT. Pour paramétrer l'ordinateur du siège de l'entreprise, reportez-vous à l'Exemple 23–10.


## /etc/hosts on mobile1
mobile1 10.1.3.3
main1 192.168.0.100

## /etc/inet/ipsecinit.conf on mobile1
# Find main1
{raddr 192.168.0.100} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

## /etc/inet/ike/ike.config on mobile1
# Global parameters

# Self-signed certificates - trust me and the central system
cert_trust    "jdoe@domain.org"
cert_trust    "DNS=main1.domain.org"
#
# Rule for off-site systems with trusted certificate
{
  label "Off-site mobile1 with trusted certificate"
  local_id_type email
  local_id "jdoe@domain.org"
  local_addr 0.0.0.0/0

# Find main1 and trust the certificate
  remote_id "main1.domain.org"
  remote_addr 192.168.0.100

p2_pfs 5

p1_xform
{auth_method rsa_sig oakley_group 5 encr_alg blowfish auth_alg sha1 }
}

Configuration du protocole IKE en vue de l'utilisation du matériel connecté (liste des tâches)

Le tableau ci-dessous répertorie les procédures permettant de signaler au protocole IKE la connexion des composants matériels. Pour que le protocole IKE puisse utiliser un composant matériel connecté, vous devez préalablement l'informer de l'existence de ce composant. Pour utiliser le composant matériel, suivez les procédures décrites à la section Configuration du protocole IKE avec des certificats de clés publiques.


Remarque –

Vous n'avez pas besoin de renseigner l'IKE sur le matériel sur puce. Par exemple, le processeur UltraSPARC® T2 offre l'accélération cryptographique. Vous n'avez pas besoin de configurer IKE pour qu'il recherche les accélérateurs sur puce.


Tâche 

Description 

Voir 

Déchargement des opérations de clés IKE sur la carte Sun Crypto Accelerator 1000  

Reliez le protocole IKE à la bibliothèque PKCS #11. 

Configuration du protocole IKE en vue de l'utilisation d'une carte Sun Crypto Accelerator 1000

Déchargement des opérations de clés IKE et stockage des clés sur la carte Sun Crypto Accelerator 4000 

Reliez le protocole IKE et la bibliothèque PKCS #11, puis répertoriez le matériel connecté. 

Configuration du protocole IKE en vue de l'utilisation d'une carte Sun Crypto Accelerator 4000

Configuration du protocole IKE en vue de l'utilisation du matériel connecté

Les certificats des clés publiques peuvent également être stockés sur un matériel connecté. La carte Sun Crypto Accelerator 1000 est destinée uniquement au stockage. Les cartes Sun Crypto Accelerator 4000 et Sun Crypto Accelerator 6000 permettent le stockage, ainsi que le déchargement d'opérations de clés publiques du système vers la carte.

ProcedureConfiguration du protocole IKE en vue de l'utilisation d'une carte Sun Crypto Accelerator 1000

Avant de commencer

La procédure ci-dessous suppose que la carte Sun Crypto Accelerator 1000 est connectée au système et que le ou les logiciels correspondants ont été installés et configurés. Pour obtenir des instructions, reportez-vous au Sun Crypto Accelerator 1000 Board Version 2.0 Installation and User’s Guide.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Assurez-vous que la bibliothèque PKCS #11 est liée.

    Entrez la commande suivante pour déterminer si la bibliothèque PKCS #11 est liée :


    # ikeadm get stats
    Phase 1 SA counts:
    Current:   initiator:          0   responder:          0
    Total:     initiator:          0   responder:          0
    Attempted: initiator:          0   responder:          0
    Failed:    initiator:          0   responder:          0
               initiator fails include 0 time-out(s)
    PKCS#11 library linked in from /usr/lib/libpkcs11.so
    # 
  3. Solaris10 1/06 : à partir de cette version, vous pouvez stocker des clés dans le fichier keystore de clés softtoken.

    Pour plus d'informations sur le keystore fourni par la structure cryptographique de Solaris, reportez-vous à la page de manuel cryptoadm(1M). Pour plus d'informations sur l'utilisation du keystore, reportez-vous à l'Example 23–12.

ProcedureConfiguration du protocole IKE en vue de l'utilisation d'une carte Sun Crypto Accelerator 4000

Avant de commencer

La procédure ci-dessous suppose que la carte Sun Crypto Accelerator 4000 est connectée au système et que le ou les logiciels correspondants ont été installés et configurés. Pour obtenir des instructions, reportez-vous au Sun Crypto Accelerator 4000 Board Version 1.1 Installation and User’s Guide.

Si vous utilisez une carte Sun Crypto Accelerator 6000, reportez-vous au Sun Crypto Accelerator 6000 Board Version 1.1 User’s Guide.

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Assurez-vous que la bibliothèque PKCS #11 est liée.

    IKE utilise les routines de la bibliothèque pour gérer la génération des clés et leur stockage sur la carte Sun Crypto Accelerator 4000. Entrez la commande suivante pour déterminer si une bibliothèque PKCS #11 a été liée :


    $ ikeadm get stats
    …
    PKCS#11 library linked in from /usr/lib/libpkcs11.so
    $

    Remarque –

    Pour RSA, la carte Sun Crypto Accelerator 4000 prend en charge des clés d'une longueur maximum de 2 048 bits. Pour DSA, la longueur maximum des clés est de 1 024 bits.


  3. Déterminez l'ID de jeton de la carte Sun Crypto Accelerator 4000.


    $ ikecert tokens
    Available tokens with library "/usr/lib/libpkcs11.so":
    
    "Sun Metaslot                     "

    La bibliothèque renvoie un ID de jeton, également appelé nom du keystore, de 32 caractères. Dans l'exemple ci-dessous, vous pouvez utiliser le jeton Sun Metaslot avec la commande ikecert pour stocker et accélérer les clés IKE.

    Pour plus d'informations sur l'utilisation du jeton, reportez-vous à la section Génération et stockage de certificats de clés publiques sur le matériel.

    Les espaces situés à la fin sont automatiquement remplis par la commande ikecert.


Exemple 23–12 Découverte et utilisation de jetons metaslot

Les jetons peuvent être stockés sur un disque, sur une carte connectée ou dans le fichier keystore de clés softtoken fourni par la structure de chiffrement de Solaris. L'ID de jeton du keystore de softtoken peut se présenter comme suit :


$ ikecert tokens
Available tokens with library "/usr/lib/libpkcs11.so":

"Sun Metaslot                   "

Pour créer une phrase de passe pour un keystore de softtoken, reportez-vous à la page de manuel pktool(1).

La commande ci-dessous permet d'ajouter un certificat au keystore de softtoken. Sun.Metaslot.cert est le fichier contenant le certificat AC.


# ikecert certdb -a -T "Sun Metaslot" < Sun.Metaslot.cert
Enter PIN for PKCS#11 token: Type user:passphrase

Modification des paramètres de transmission du protocole IKE (liste des tâches)

Le tableau ci-dessous répertorie les procédures permettant de configurer les paramètres de transmission du protocole IKE.

Tâche 

Description 

Voir 

Amélioration de l'efficacité de la négociation des clés 

Modifiez les paramètres de négociation des clés. 

Modification de la durée de la phase 1 de la négociation des clés IKE

Configuration de la négociation des clés pour autoriser les délais de transmission 

Allongez la durée de négociation des clés. 

Exemple 23–13

Configuration de la négociation des clés pour qu'elle s'effectue rapidement ou pour que les échecs s'affichent rapidement 

Réduisez la durée de négociation des clés. 

Exemple 23–14

Modification des paramètres de transmission du protocole IKE

Lorsque le protocole IKE négocie les clés, la vitesse de transmission risque de compromettre la réussite de l'opération. En temps normal, il n'est pas nécessaire de modifier les valeurs par défaut des paramètres de transmission du protocole IKE. Dans certains cas (par exemple, optimisation de la négociation sur des lignes surchargées ou pour la reproduction d'un problème), vous pouvez toutefois juger utile de le faire.

Le fait de prolonger la durée de négociation permet à IKE de négocier les clés sur les lignes de transmission problématiques. Vous pouvez augmenter certains paramètres pour que la négociation réussisse dès la première tentative. Si elle échoue, vous pouvez espacer les tentatives suivantes pour optimiser les chances de succès.

Le fait de réduire la durée de négociation permet d'utiliser des lignes fiables. Vous pouvez relancer plus rapidement toute négociation ayant échoué. La réduction de la durée de négociation permet également d'accélérer le processus de reproduction d'un problème afin d'établir un diagnostic. Elle permet également d'utiliser les associations de sécurité (SA, security associations) de la phase 1 pendant toute leur durée de vie.

ProcedureModification de la durée de la phase 1 de la négociation des clés IKE

  1. Sur la console du système, connectez-vous en tant qu'administrateur principal ou superutilisateur.

    Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.


    Remarque –

    En vous connectant à distance, vous exposez le trafic de données confidentielles à des risques d'écoute électronique. Même si vous protégez la connexion à distance d'une manière ou d'une autre, la sécurité du système se limite à celle de la session à distance. Utilisez la commande ssh pour une connexion à distance sécurisée.


  2. Modifiez la valeur par défaut des paramètres globaux de transmission sur chacun des systèmes.

    Sur chacun des systèmes, modifiez les paramètres de durée de la phase 1 dans le fichier /etc/inet/ike/config.


    ### ike/config file on system
    
    ## Global parameters
    #
    ## Phase 1 transform defaults
    #
    #expire_timer      300
    #retry_limit         5
    #retry_timer_init    0.5 (integer or float)
    #retry_timer_max    30   (integer or float)
    expire_timer

    Délai de suppression d'une tentative de négociation IKE de phase 1 en attente (en secondes). Par défaut, la tentative reste active pendant 30 secondes.

    retry_limit

    Nombre de retransmissions avant abandon de toute négociation IKE. Par défaut, IKE essaie cinq fois.

    retry_timer_init

    Intervalle initial entre les retransmissions. Cet intervalle est doublé jusqu'à ce que la valeur retry_timer_max soit atteinte. L'intervalle initial est de 0,5 secondes.

    retry_timer_max

    Intervalle maximum (en secondes) entre les retransmissions. L'intervalle de retransmission cesse d'augmenter lorsque cette limite est atteinte. Par défaut, cette limite est de 30 secondes.

  3. Lisez la configuration modifiée dans le noyau.

    • À partir de la version Solaris 10 4/09, actualisez le service ike.


      # svcadm refresh svc:/network/ipsec/ike
      
    • Si vous exécutez une version antérieure à la version Solaris 10 4/09, réinitialisez le système.


      # init 6
      

      Vous pouvez également arrêter et relancer le démon in.iked.


Exemple 23–13 Augmentation de la durée de négociation de la phase 1 du protocole IKE

Dans l'exemple ci-dessous, un système est connecté à son homologue IKE via une ligne encombrée. Les paramètres d'origine figurent en commentaires dans le fichier. Les nouveaux paramètres augmentent la durée de négociation.


### ike/config file on partym
## Global Parameters
#
## Phase 1 transform defaults
#expire_timer   300
#retry_limit      5
#retry_timer_init 0.5 (integer or float)
#retry_timer_max 30   (integer or float)
#
expire_timer  600
retry_limit  10
retry_timer_init  2.5
retry_timer_max  180


Exemple 23–14 Réduction de la durée de négociation de la phase 1 du protocole IKE

Dans l'exemple ci-dessous, un système est connecté à son homologue IKE via une ligne à haut débit peu encombrée. Les paramètres d'origine figurent en commentaires dans le fichier. Les nouveaux paramètres diminuent la durée de négociation.


### ike/config file on partym
## Global Parameters
#
## Phase 1 transform defaults
#expire_timer   300
#retry_limit      5
#retry_timer_init 0.5 (integer or float)
#retry_timer_max 30   (integer or float)
#
expire_timer  120
retry_timer_init  0.20

Chapitre 24 Protocole IKE (référence)

Ce chapitre aborde les sujets suivants :

Pour plus d'informations sur l'implémentation du protocole IKE, reportez-vous au Chapitre 23Configuration du protocole IKE (tâches). Pour obtenir une présentation du protocole, reportez-vous au Chapitre 22Protocole IKE (présentation).

Utilitaire de gestion du service IKE

Service svc:/network/ipsec/ike:default : l'utilitaire de gestion des services (SMF) fournit le service ike qui permet de gérer IKE. Par défaut, ce service est désactivé. Avant d'activer ce service, vous devez créer un fichier de configuration IKE, /etc/inet/ike/config.

Les propriétés suivantes du service ike sont configurables :

Pour plus d'informations sur l'utilitaire SMF, reportez-vous au Chapitre 18, Managing Services (Overview) du System Administration Guide: Basic Administration. Voir aussi les pages de manuel smf(5), svcadm(1M) et svccfg(1M).

Démon IKE

Le démon in.iked automatise la gestion des clés cryptographiques pour IPsec sur les systèmes Solaris. Il négocie avec un système distant exécutant le même protocole pour fournir, de manière protégée, des numéros de clé authentifiés destinés aux associations de sécurité (SA). Le démon doit s'exécuter sur tous les systèmes qui sont censés communiquer en toute sécurité.

Par défaut, le service svc:/network/ipsec/ike:default n'est pas activé. Après que vous avez configuré le fichier /etc/inet/ike/config et activé le service ike, le démon in.iked se lance à l'initialisation du système.

Une fois le démon IKE en cours d'exécution, le système s'authentifie auprès de son entité IKE homologue lors de la phase 1. L'homologue, ainsi que les méthodes d'authentification, sont définis dans le fichier de stratégie IKE. Le démon crée alors les clés pour la phase 2. Les clés IKE sont actualisées automatiquement à un intervalle spécifié dans le fichier de stratégie. Le démon in.iked est à l'écoute des demandes IKE entrantes émanant du réseau et des demandes de trafic hors bande via le socket PF_KEY. Pour plus d'informations, reportez-vous à la page de manuel pf_key(7P).

Le démon IKE est pris en charge par deux commandes. La commande ikeadm peut être utilisée pour afficher et modifier temporairement la stratégie IKE. Pour modifier de manière définitive la stratégie IKE, vous devez modifier les propriétés du service ike. Pour connaître la procédure, reportez-vous à la section Affichage des clés IKE prépartagées.

et la commande ikecert d'afficher et de gérer les bases de données de clés publiques. Cette dernière gère les bases de données ike.privatekeys et publickeys locales, ainsi que les opérations de clés publiques et le stockage de ces clés sur du matériel.

Fichier de stratégie IKE

Le fichier de configuration de la stratégie IKE, /etc/inet/ike/config, gère les clés des interfaces protégées dans le fichier de stratégie IPsec, /etc/inet/ipsecinit.conf. Le fichier de stratégie IKE gère les clés pour IKE et pour les SA IPsec. Le démon IKE requiert lui-même des numéros de clé lors de la phase 1.

La gestion des clés avec IKE inclut des règles et des paramètres globaux. Les règles IKE identifient les systèmes ou réseaux sécurisés par les numéros de clé. Elles spécifient également la méthode d'authentification. Les paramètres globaux incluent des éléments tels que le chemin vers un accélérateur matériel connecté. Pour consulter des exemples de fichiers de stratégie IKE, reportez-vous à la section Configuration du protocole IKE avec des clés prépartagées (liste des tâches). Pour des exemples et une description des entrées de stratégies IKE, consultez la page de manuel ike.config(4).

Les SA IPsec prises en charge par IKE protègent les datagrammes IP conformément aux stratégies paramétrées dans le fichier de configuration des stratégies IPsec, /etc/inet/ipsecinit.conf. Le fichier de stratégie IKE détermine si la confidentialité de transmission parfaite (PFS, perfect forward security) est utilisée lors de la création des SA IPsec.

Le fichier ike/config peut inclure le chemin vers une bibliothèque implémentée conformément au standard RSA Security Inc. PKCS #11 Cryptographic Token Interface (Cryptoki). IKE utilise la bibliothèque PKCS #11 pour accéder au matériel d'accélération et de stockage des clés.

En matière de sécurité, les considérations concernant le fichier ike/config sont similaires à celles concernant le fichier ipsecinit.conf. Pour plus d'informations, reportez-vous à la section Considérations de sécurité à propos de ipsecinit.conf et ipsecconf.

Commande d'administration du protocole IKE

La commande ikeadm permet d'effectuer les opérations suivantes :

Pour consulter des exemples et une description complète des options de cette commande, reportez-vous à la page de manuel ikeadm(1M)

Le niveau de privilège du démon IKE en cours d'exécution détermine les aspects du démon IKE susceptibles d'être affichés et modifiés. Trois niveaux de privilège sont possibles.

Niveau base

Vous ne pouvez ni afficher ni modifier les numéros de clé. Le niveau base est le niveau de privilège par défaut.

Niveau modkeys

À ce niveau, vous pouvez supprimer, modifier et ajouter des clés prépartagées.

Niveau keymat

Ce niveau vous permet d'afficher les numéros de clé actuels à l'aide de la commande ikeadm.

Pour modifier temporairement un privilège, vous pouvez utiliser la commande ikeadm. Pour une modification permanente, modifiez la propriété admin_privilege du service ike. Pour connaître la procédure, reportez-vous à la section Procédure de gestion des services IKE et IPsec.

En matière de sécurité, les considérations concernant la commande ikeadm sont similaires à celles concernant la commande ipseckey. Pour plus d'informations, reportez-vous à la section Considérations de sécurité pour la commande ipseckey.

Fichiers de clés prépartagées IKE

Lorsque vous créez des clés manuellement, elles sont stockées dans des fichiers du répertoire /etc/inet/secret. Le fichier ike.preshared contient les clés prépartagées des SA ISAKMP (Internet Security Association and Key Management Protocol) et le fichier ipseckeys contient les clés prépartagées des SA IPsec. Ces fichiers sont protégés en mode 0600 et le répertoire secret en mode 0700.


Remarque –

Les clés prépartagées ne peuvent être stockées sur des composants matériels. Elles sont générées et stockées sur le système.


Commandes et bases de données de clés publiques IKE

La commande ikecert permet de manipuler les bases de données de clés publiques du système local. Utilisez-la lorsque le fichier ike/config requiert des certificats de clés publiques. Ces bases de données étant utilisées par IKE pour authentifier la phase 1 de l'échange, elles doivent être alimentées avant l'activation du démon in.iked. Trois sous-commandes permettent de gérer chacune des trois bases de données : certlocal, certdb et certrldb.

La commande ikecert permet aussi de gérer le stockage des clés. Elles peuvent être stockées sur disque, sur une carte Sun Crypto Accelerator 6000 ou &sca 4; connectée, ou dans un fichier keystore de clés softtoken. Ce fichier est disponible lorsque le metaslot de la structure cryptographique de Solaris est utilisé pour communiquer avec le matériel. La commande ikecert utilise la bibliothèque PKCS #11 pour localiser le lieu de stockage des clés.

Pour plus d'informations, consultez la page de manuel ikecert(1M) Pour plus d'informations sur le metaslot et sur le fichier keystore de clés softtoken, reportez-vous à la page de manuel cryptoadm(1M).

Commande ikecert tokens

L'argument tokens répertorie les ID de jetons disponibles. Les ID de jetons permettent aux commandes ikecert certlocal et ikecert certdb de générer des certificats de clés publiques et des demandes de certificats. Ces certificats et demandes de certificats peuvent également être stockés par la structure cryptographique dans le fichier keystore de clés softtoken ou sur une carte Sun Crypto Accelerator 6000 ou &sca 4; connectée. La commande ikecert utilise la bibliothèque PKCS #11 pour déterminer l'emplacement de stockage des certificats.

Commande ikecert certlocal

La sous-commande certlocal gère la base de données des clés privées. Les options de cette sous-commande permettent d'ajouter, d'afficher et de supprimer des clés privées. Cette sous-commande permet également de créer un certificat autosigné ou une demande de certificat. L'option -ks crée un certificat autosigné et l'option-kc une demande de certificat. Les clés sont stockées sur le système, dans le répertoire /etc/inet/secret/ike.privatekeys, ou sur un composant matériel connecté (option -T).

Lorsque vous créez une clé privée, les options de la commande ikecert certlocal doivent avoir des entrées connexes dans le fichier ike/config. Le tableau ci-dessous détaille les correspondances entre les options ikecert et les entrées ike/config.

Tableau 24–1 Correspondances entre les options ikecert et les entrées ike/config

Option ikecert

Entréeike/config

Description 

-A nom-alternatif-sujet

cert_trust nom-alternatif-sujet

Pseudonyme identifiant le certificat de manière unique. Il peut s'agir d'une adresse IP, d'une adresse e-mail ou d'un nom de domaine. 

-D, nom-distinctif-X.509

nom-distinctif-X.509

Nom complet de l'autorité de certification, incluant le pays (C), le nom de l'organisation (ON), l'unité d'organisation (OU) et le nom commun (CN). 

-t dsa-sha1

auth_method dss_sig

Méthode d'authentification légèrement plus lente que RSA.

-t rsa-md5 et

-t rsa-sha1

auth_method rsa_sig

Méthode d'authentification légèrement plus rapide que la méthode DSA.

La clé publique RSA doit être suffisamment importante pour chiffrer la charge utile la plus lourde. Les charges les plus lourdes sont habituellement les données d'identité (par exemple, le nom distinctif X.509).

-t rsa-md5 et

-t rsa-sha1

auth_method rsa_encrypt

Le chiffrement RSA met les identités d'IKE à l'abri des écoutes électroniques, mais implique que les homologues IKE connaissent leurs clés publiques respectives. 

-T

pkcs11_path

La bibliothèque PKCS #11 prend en charge l'accélération des clés sur les cartes Sun Crypto Accelerator 1000, Sun Accelerator 6000 et Sun Crypto Accelerator 4000. La bibliothèque fournit également les jetons qui gèrent le stockage des clés sur les cartes Sun Crypto Accelerator 6000 et Sun Crypto Accelerator 4000.

Lorsque vous émettez une demande de certificat à l'aide de la commande ikecert certlocal -kc, vous envoyez la sortie de cette commande à un fournisseur de PKI ou à une AC. Si votre entreprise possède sa propre PKI, vous envoyez cette sortie à votre administrateur de PKI. Le fournisseur de PKI, l'AC ou votre administrateur de PKI crée alors les certificats. Ceux qui vous sont transmis par le fournisseur de PKI ou l'AC sont entrés dans la sous-commande certdb. La liste de révocation de certificats (LRC) que le fournisseur de PKI vous envoie est entrée dans la sous-commande certrldb.

Commande ikecert certdb

La sous-commande certdb gère la base de données des clés publiques. Les options de cette sous-commande vous permettent d'ajouter, d'afficher et de supprimer des certificats et des clés publiques. Cette sous-commande accepte l'entrée de certificats générés par la commande ikecert certlocal -ks sur un système distant. Pour plus d'informations sur cette procédure, reportez-vous à la section Configuration du protocole IKE avec des certificats de clés publiques autosignés. Cette commande accepte également l'entrée de certificats émanant de fournisseurs PKI ou d'AC. Pour plus d'informations sur cette procédure, reportez-vous à la section Configuration du protocole IKE avec des certificats signés par une AC.

Les certificats et les clés publiques sont stockés sur le système, dans le répertoire /etc/inet/ike/publickeys . L'option -T permet de stocker les certificats, les clés privées et les clés publiques sur les composants matériels connectés.

Commande ikecert certdb

La sous-commande certrldb gère la base de données des listes de révocation de certificats (LRC), /etc/inet/ike/crls. Cette base de données met à jour les listes de révocation des clés publiques. Les certificats qui ne sont plus valides figurent dans ces listes. Lorsqu'un fournisseur de PKI vous fait parvenir une LRC, vous pouvez l'installer dans cette base de données à l'aide de la commande ikecert certrldb. Pour plus d'informations sur cette procédure, reportez-vous à la section Traitement des listes de révocation de certificats.

Répertoire /etc/inet/ike/publickeys

Le répertoire /etc/inet/ike/publickeys contient la partie publique des biclés et leur certificat, qui sont stockés dans des fichiers ou à des emplacements. Ce répertoire est protégé en mode 0755 et peut être alimenté à l'aide de la commande ikecert certdb. L'option -T permet de stocker les clés sur une carte Sun Crypto Accelerator 6000 ou &sca 4; plutôt que dans le répertoire publickeys.

Les emplacements contiennent, sous forme chiffrée, le nom distinctif X.509 des certificats qui ont été générés sur un autre système. Si vous utilisez des certificats autosignés, vous devez indiquer le certificat que l'administrateur du système distant vous a envoyé comme entrée de commande. Si vous utilisez des certificats d'une AC, vous installez deux certificats signés d'une AC dans la base de données. Vous installez un certificat basé sur la requête de signature de certificat envoyée à l'AC. Vous installez également un certificat de l'AC.

Répertoire /etc/inet/secret/ike.privatekeys

Le répertoire /etc/inet/secret/ike.privatekeys contient des fichiers de clés privées qui font partie de biclés, c'est-à-dire les numéros de clé des SA ISAKMP. Ce répertoire est protégé en mode 0700. La commande ikecert certlocal permet d'alimenter le répertoire ike.privatekeys. Les clés privées sont effectives uniquement lors de l'installation de leur clé publique homologue, de certificats autosignés ou de certificats AC. Les clés publiques homologues sont stockées dans le répertoire /etc/inet/ike/publickey s ou sur une carte Sun Crypto Accelerator 6000 ou &sca 4;.

Répertoire /etc/inet/ike/crls

Le répertoire /etc/inet/ike/crls contient les fichiers des listes de révocation de certificats (LRC). Chaque fichier correspond à un fichier de certificat public du répertoire /etc/inet/ike/publickeys. Les fournisseurs de PKI fournissent les LRC correspondant à leurs certificats. La commande ikecert certrldb permet d'alimenter la base de données.

Chapitre 25 Oracle Solaris IP Filter (présentation)

Ce chapitre offre un aperçu de Oracle Solaris IP Filter. Pour plus d'informations sur les tâches de Oracle Solaris IP Filter, reportez-vous au Chapitre 26Oracle Solaris IP Filter (tâches).

Le présent chapitre contient les informations suivantes :

Nouvelles fonctions de Oracle Solaris IP Filter

Cette section décrit les nouvelles fonctions de Oracle Solaris IP Filter.

Vous trouverez une liste complète des nouvelles fonctionnalités de Oracle Solaris et la description des différentes versions de cette application dans le document Nouveautés apportées à Oracle Solaris 10 9/10

Crochets de filtre de paquets

À partir de la version Solaris 10 7/07:, les crochets de filtre de paquets sont désormais utilisés pour filtrer les paquets dans Oracle Solaris. Cette fonctionnalité offre les avantages suivants pour l'administration du système :

Pour de plus amples informations sur ces crochets, reportez-vous à la section Crochets de filtre de paquets. Pour obtenir la description des tâches associées aux crochets de filtre de paquets, reportez-vous au Chapitre 26Oracle Solaris IP Filter (tâches).

Filtrage de paquets IPv6 pour Oracle Solaris IP Filter

Solaris 10 6/06 : pour les administrateurs système dont une partie de l'infrastructure réseau est configurée avec le protocole IPv6, le filtrage de paquets IPv6 est dorénavant compris dans Oracle Solaris IP Filter. Ce filtrage peut se baser sur l'adresse IPv6 source/de destination, sur les pools contenant des adresses IPv6 et sur les en-têtes d'extension IPv6.

L'option -6 a été ajoutée aux commandes ipf et ipfstat pour les utiliser avec IPv6. L'interface de ligne de commande ne change pas pour les commandes ipmon et ippool, mais celles-ci prennent également en charge IPv6. La commande ipmon a été améliorée afin de permettre la journalisation des paquets IPv6 et la commande ippool prend désormais en charge l'inclusion des adresses IPv6 dans les pools.

Pour plus d'informations, reportez-vous à la section IPv6 pour Oracle Solaris IP Filter. Pour obtenir la description des tâches associées au filtrage de paquets IPv6, reportez-vous au Chapitre 26Oracle Solaris IP Filter (tâches).

Introduction à Oracle Solaris IP Filter

Oracle Solaris IP Filter remplace le pare-feu SunScreen en tant que logiciel de pare-feu pour Oracle Solaris. Tout comme le pare-feu SunScreen, Oracle Solaris IP Filter assure un filtrage de paquets avec état, ainsi que la translation d'adresse réseau (NAT, Network Address Translation). Oracle Solaris IP Filter permet également de filtrer les paquets sans état, ainsi que la création et la gestion des pools d'adresses.

Le filtrage de paquets assure une protection de base contre les attaques potentielles via le réseau. Oracle Solaris IP Filter peut filtrer les paquets par adresse IP, port, protocole, interface réseau et direction de trafic. Oracle Solaris IP Filter peut également filtrer par adresse IP source individuelle, adresse IP de destination, plage d'adresses IP ou pool d'adresses.

Oracle Solaris IP Filter est dérivé du logiciel Open Source IP Filter. Les modalités de la licence, l'attribution et le copyright du logiciel Open Source IP Filter se trouvent par défaut à l'emplacement suivant :/usr/lib/ipf/IPFILTER.LICENCE. Si vous avez installé Oracle Solaris dans un autre emplacement que celui par défaut, modifiez le chemin afin d'accéder au fichier se trouvant à l'emplacement de l'installation.

Sources d'informations pour le logiciel Open Source IP Filter

La page d'accueil du logiciel Open Source IP Filter de Darren Reed se trouve à l'adresse http://coombs.anu.edu.au/~avalon/ip-filter.html. Ce site Web fournit des informations relatives au logiciel Open Source IP Filter, notamment un lien vers le didacticiel "IP Filter Based Firewalls HOWTO" (Brendan Conoboy et Erik Fichtner, 2002). Vous trouverez dans ce didacticiel les instructions de construction de pare-feux dans un environnement BSD UNIX, expliquées pas à pas. Bien qu'il soit destiné à un environnement BSD UNIX, ce didacticiel peut également s'appliquer à la configuration de Oracle Solaris IP Filter.

Traitement des paquets de Oracle Solaris IP Filter

Lors du traitement d'un paquet, Oracle Solaris IP Filter exécute une série d'étapes. Le diagramme ci-dessous illustre les étapes du traitement d'un paquet et l'intégration du filtrage à la pile de protocole TCP/IP.

Figure 25–1 Séquence de traitement d'un paquet

Affiche les étapes associées au traitement d'un paquet par Oracle Solaris IP Filter.

Le traitement d'un paquet inclut les opérations suivantes :

Recommandations concernant l'utilisation de OpenSolaris IP Filter

Utilisation des fichiers de configuration Oracle Solaris IP Filter

Oracle Solaris IP Filter peut assurer des services de pare-feu ou de translation d'adresse réseau (NAT, Network Address Translation). Vous pouvez implémenter Oracle Solaris IP Filter en chargeant des fichiers de configuration. Oracle Solaris IP Filter contient un répertoire appelé /etc/ipf. Vous pouvez créer et enregistrer les fichiers de configuration ipf.conf, ipnat.conf et ippool.conf dans le répertoire /etc/ipf. Si ces fichiers existent dans le répertoire /etc/ipf, ils sont automatiquement chargés à l'initialisation. Il est également possible d'enregistrer les fichiers de configuration à un autre emplacement, puis de les charger manuellement. Pour obtenir des exemples de fichiers de configuration, reportez-vous à la section Création et modification des fichiers de configuration Oracle Solaris IP Filter.

Utilisation des ensembles de règles Oracle Solaris IP Filter

Pour gérer le pare-feu, vous devez spécifier des ensembles de règles à l'aide de Oracle Solaris IP Filter et filtrer le trafic réseau en fonction de ces ensembles de règles. Les types d'ensembles de règles suivants sont disponibles :

Par ailleurs, il est possible de créer des pools d'adresses pour référencer des groupes d'adresses IP. Ensuite, ces pools peuvent être utilisés dans un ensemble de règles. Les pools d'adresses permettent d'accélérer le traitement des règles. En outre, ils facilitent la gestion des grands groupes d'adresses.

Utilisation de la fonctionnalité de filtrage de paquets de Oracle Solaris IP Filter

Vous pouvez configurer le filtrage de paquets à l'aide des ensembles de règles de filtrage de paquets. La commande ipf permet d'utiliser les ensembles de règles de filtrage de paquets. Pour plus d'informations sur la commande ipf, reportez-vous à la page de manuel ipf(1M).

Vous pouvez créer des règles de filtrage de paquets via la ligne de commande, à l'aide de la commande ipf ou dans un fichier de configuration de filtrage de paquets. Si vous souhaitez charger les règles de filtrage de paquets à l'initialisation, créez le fichier de configuration /etc/ipf/ipf.conf pour y insérer les règles de filtrage de paquets. Dans le cas contraire, placez le fichier ipf.conf à un autre endroit, puis activez manuellement le filtrage de paquets à l'aide de la commande ipf.

Oracle Solaris IP Filter peut contenir deux ensembles de règles de filtrage de paquets : l'ensemble de règles actives et l'ensemble de règles inactives. Dans la plupart des cas, vous utiliserez l'ensemble de règles actif. Toutefois, la commande ipf -I permet d'appliquer une commande à la liste de règles inactives. Oracle Solaris IP Filter n'utilise pas la liste de règles inactives, sauf si vous la sélectionnez. La liste de règles inactives constitue l'emplacement auquel vous pouvez enregistrer des règles sans affecter le filtrage de paquets actif.

Oracle Solaris IP Filter traite les règles de la liste de règles du début à la fin de la liste de règles configurée et transmet ou bloque le paquet. Oracle Solaris IP Filter utilise un indicateur pour déterminer si un paquet doit être transmis ou non. Il parcourt l'intégralité de l'ensemble de règles et détermine si le paquet doit être transmis ou bloqué, en fonction de la dernière règle correspondante.

Il existe deux exceptions à ce processus. D'une part, si le paquet correspondant à une règle contenant le mot-clé quick, Si une règle inclut le mot-clé quick, l'action associée à cette règle est exécutée et les règles suivantes sont ignorées. D'autre part, si le paquet correspond à une règle contenant le mot-clé group, seules les règles portant l'indicateur de ce group sont vérifiées.

Configuration des règles de filtrage de paquets

Appliquez la syntaxe suivante pour créer des règles de filtrage de paquets :

action [in|out] option mot-clé, mot-clé...

  1. Chaque règle commence par une action. Oracle Solaris IP Filter applique l'action au paquet si celui-ci correspond à la règle. Les actions habituellement appliquées aux paquets sont répertoriées ci-dessous.

    block

    Empêche le paquet de traverser le filtre.

    pass

    Permet au paquet de traverser le filtre.

    log

    Consigne le paquet sans déterminer s'il est bloqué ou transmis. Exécutez la commande ipmon pour afficher le journal.

    count

    Inclut le paquet dans les statistiques du filtre. Exécutez la commande ipfstat pour afficher les statistiques.

    skip nombre

    Le filtre saute nombre règles de filtrage.

    auth

    Le paquet est authentifié par un programme utilisateur qui valide les informations qu'il contient. Le programme détermine si le paquet est transmis ou bloqué.

    preauth

    Le filtre détermine l'action à effectuer pour un paquet en fonction d'une liste de préauthentification.

  2. Le mot suivant est in ou out. Votre choix détermine si la règle de filtrage de paquets est appliquée à un paquet entrant (in) ou à un paquet sortant (out).

  3. Ensuite, vous pouvez insérer toute une liste d'options. Si vous en utilisez plusieurs, elles doivent être dans l'ordre indiqué ci-dessous.

    log

    Consigne le paquet si la règle constitue la dernière règle correspondante. Exécutez la commande ipmon pour afficher le journal.

    quick

    Exécute la règle contenant l'option quick si un paquet lui correspond. Toute vérification de règle subséquente est interrompue.

    on nom-interface

    Applique la règle uniquement si le paquet entre ou sort via l'interface spécifiée.

    dup-to nom-interface

    Copie le paquet et envoie la copie sur nom-interface vers une adresse IP éventuellement spécifiée.

    to nom-interface

    Déplace le paquet vers une file d'attente sortante sur nom-interface.

  4. Une fois les options spécifiées, vous avez le choix entre plusieurs mots-clés afin de déterminer si le paquet correspond à la règle. Les mots-clés doivent être utilisés dans l'ordre indiqué ci-dessous.


    Remarque –

    Par défaut, le filtre autorise la transmission de tout paquet ne correspondant à aucune règle du fichier de configuration.


    tos

    Filtre les paquets en fonction de leur type de service, exprimé sous forme d'entier décimal ou hexadécimal.

    ttl

    Filtre les paquets en fonction de leur durée de vie. La durée de vie d'un paquet est une valeur enregistrée dans celui-ci qui indique la durée pendant laquelle le paquet peut se trouver sur le réseau avant d'être abandonné.

    proto

    Les paquets correspondant à la règle sont déterminés en fonction d'un protocole spécifique. Vous pouvez employer l'un des noms de protocole spécifiés dans le fichier /etc/protocols ou un nombre décimal représentant le protocole. Le mot-clé tcp/udp peut être utilisé pour filtrer les paquets TCP ou UDP.

    from/to/all/ any

    Filtre les paquets en fonction des éléments suivants : l'adresse IP source, l'adresse IP de destination et le numéro de port. Le mot-clé all permet d'accepter tous les paquets, quelles que soient leur source et leur destination.

    with

    Les paquets correspondant à la règle sont ceux qui sont associés à des attributs spécifiques. Insérez le mot not ou no devant le mot-clé pour indiquer qu'un paquet ne correspond à la règle qu'en l'absence de l'option.

    flags

    Employé pour TCP afin de filtrer les paquets en fonction des indicateurs TCP définis. Pour plus d'informations sur les indicateurs TCP, reportez-vous à la page de manuel ipf(4).

    icmp-type

    Filtre les paquets en fonction du type d'ICMP. Ce mot-clé n'est employé que si l'option proto est définie sur icmp et que l'option flags n'est pas utilisée.

    keep options-keep

    Détermine les informations conservées pour le paquet. Les options state et frags sont disponibles comme options-keep. L'option state conserve les informations relatives à la session et peuvent être conservées sur les paquets TCP, UDP et ICMP. L'option frags permet de conserver les informations sur les fragments de paquets et d'appliquer les informations aux fragments suivants. Les options-keep permettent la transmission des paquets correspondant à la règle sans passer par la liste de contrôle d'accès.

    head numéro

    Crée un groupe pour les règles de filtrage, désigné par le numéro numéro.

    group numéro

    Ajoute la règle au groupe de numéro numéro au lieu du groupe par défaut. Toutes les règles de filtrage sont placées dans le groupe 0 si aucun autre groupe n'est spécifié.

L'exemple suivant illustre la constitution d'une syntaxe de règle de filtrage de paquets pour créer une règle. Pour bloquer le trafic entrant à partir de l'adresse IP 192.168.0.0/16, ajoutez la règle suivante à la liste de règles :


block in quick from 192.168.0.0/16 to any

Pour obtenir la syntaxe et la grammaire complètes utilisées pour écrire des règles de filtrage de paquets, reportez-vous à la page de manuel ipf(4) Pour une description des tâches de filtrage de paquets, reportez-vous à la section Gestion des ensembles de règles de filtrage de paquets de Oracle Solaris IP Filter. Pour une explication du schéma d'adresse IP (192.168.0.0/16) de l'exemple, reportez-vous au Chapitre 2Planification de votre réseau TCP/IP (tâches).

Utilisation de la fonctionnalité NAT de Oracle Solaris IP Filter

NAT configure des règles de mappage qui réalisent la translation des adresses IP source et de destination vers d'autres adresses Internet ou intranet. Ces règles modifient les adresses source et de destination des paquets IP entrants et sortants et envoient les paquets. Vous pouvez également utiliser NAT pour rediriger le trafic d'un port à un autre. NAT assure l'intégrité du paquet en cas de modification ou de redirection de celui-ci.

Exécutez la commande ipnat pour utiliser les listes de règles NAT. Pour plus d'informations sur la commande ipnat, reportez-vous à la page de manuel ipnat(1M).

Vous pouvez créer des règles NAT à la ligne de commande, à l'aide de la commande ipnat ou dans un fichier de configuration NAT. Les règles de configuration NAT résident dans le fichier ipnat.conf. Si vous souhaitez charger les règles NAT à l'initialisation, créez le fichier /etc/ipf/ipnat.conf afin d'y insérer les règles NAT. Dans le cas contraire, placez le fichier ipnat.conf à un autre endroit, puis activez manuellement le filtrage de paquets à l'aide de la commande ipnat.

Configuration des règles NAT

Appliquez la syntaxe ci-dessous pour créer des règles NAT :

commande nom-interface paramètres

  1. Toute règle commence par l'une des commandes ci-dessous :

    map

    Mappe une adresse IP ou un réseau IP vers une autre adresse IP ou un autre réseau IP selon un processus circulaire non contrôlé.

    rdr

    Redirige les paquets d'un couple port-adresse IP vers un autre couple port-adresse IP.

    bimap

    Établit une translation d'adresse réseau bidirectionnelle entre une adresse IP externe et une adresse IP interne.

    map-block

    Établit la translation basée sur les adresses IP statiques. Cette commande se base sur un algorithme qui force la translation des adresses vers une plage de destination.

  2. Le mot suivant correspond au nom de l'interface, par exemple hme0.

  3. Ensuite, vous avez le choix entre divers paramètres, afin de définir la configuration NAT. Les paramètres suivants sont disponibles :

    ipmask

    Désigne le masque réseau.

    dstipmask

    Désigne l'adresse cible de la translation de ipmask.

    mapport

    Désigne les protocoles tcp, udp ou tcp/udp, ainsi qu'une plage de numéros de port.

L'exemple suivant illustre la constitution d'une syntaxe de règle NAT pour créer une règle NAT. Pour réécrire un paquet sortant sur le périphérique de0 avec l'adresse source 192.168.1.0/24 et pour afficher son adresse source comme étant 10.1.0.0/16, ajoutez la règle ci-dessous à l'ensemble de règles NAT :


map de0 192.168.1.0/24 -> 10.1.0.0/16

Pour obtenir la syntaxe et la grammaire complètes utilisées pour écrire des règles NAT, reportez-vous à la page de manuel ipnat(4).

Utilisation de la fonctionnalité de pools d'adresses de Oracle Solaris IP Filter

Les pools d'adresses constituent une référence unique pour nommer un groupe de paires adresse/masque de réseau. Les processus fournis pas les pools d'adresses permettent de trouver plus rapidement les adresses IP correspondant aux règles. En outre, ils facilitent la gestion des grands groupes d'adresses.

Les règles de configuration de pool d'adresses sont définies dans le fichier ippool.conf. Si vous souhaitez charger le fichier de règles de pool d'adresses à l'initialisation, créez le fichier /etc/ipf/ippool.conf afin d'y insérer les règles de pool. Dans le cas contraire, placez le fichier ippool.conf à un autre endroit, puis activez manuellement le filtrage de paquets à l'aide de la commande ippool.

Configuration des pools d'adresses

Pour créer un pool d'adresses, appliquez la syntaxe suivante :


table role = role-name type = storage-format number = reference-number
table

Définit la référence des adresses.

role

Spécifie le rôle du pool dans Oracle Solaris IP Filter. À ce stade, vous ne pouvez faire référence qu'au rôle ipf.

type

Spécifie le format de stockage du pool.

numéro

Spécifie le numéro de référence utilisé par la règle de filtrage.

Par exemple, pour faire référence aux groupes d'adresses 10.1.1.1 et 10.1.1.2 et au réseau 192.16.1.0 à l'aide du numéro de pool 13, insérez la règle suivante dans le fichier de configuration de pool d'adresses :

table role = ipf type = tree number = 13 
{ 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24 };

Ensuite, pour faire référence au numéro de pool 13 dans une règle de filtrage, élaborez une règle similaire à la suivante :


pass in from pool/13 to any

Vous devez charger le fichier de pool avant de charger les règles contenant une référence au pool. Dans le cas contraire, le pool n'est pas défini, comme indiqué dans la sortie suivante :


# ipfstat -io
empty list for ipfilter(out)
block in from pool/13(!) to any

Si vous ajoutez le pool par la suite, l'ensemble de règle du noyau n'est pas mis à jour. Vous devez également recharger le fichier de règles faisant référence au pool.

Pour obtenir la syntaxe et la grammaire complètes utilisées pour écrire des règles de filtrage de paquets, reportez-vous à la page de manuel ippool(4).

Crochets de filtre de paquets

À partir de la version Solaris 10 7/07, les crochets de filtre de paquets remplacent le module pfil pour activer Oracle Solaris IP Filter. Dans les versions Oracle Solaris précédentes, une étape de configuration supplémentaire du module pfil était nécessaire pour configurer Oracle Solaris IP Filter. Cette configuration supplémentaire augmentait les risques d'erreurs entraînant le dysfonctionnement de Oracle Solaris IP Filter. L'insertion du module STREAMS pfil entre IP et le pilote de périphérique affectait également les performances. Enfin, le module pfil ne pouvait pas intercepter les paquets entre les zones.

Les crochets de filtre de paquets optimisent la procédure d'activation de Oracle Solaris IP Filter. Grâce à ces crochets, Oracle Solaris IP Filter contrôle les flux de paquet entrants et sortants du système Oracle Solaris à l'aide de seuils de filtre de préroutage (entrants) et de postroutage (sortants).

Avec les crochets de filtre de paquets, le module pfil devient inutile. Par conséquent, les composants suivants associés au module sont également supprimés.

Pour obtenir une description des tâches d'activation de Oracle Solaris IP Filter, reportez-vous au Chapitre 26Oracle Solaris IP Filter (tâches).

Oracle Solaris IP Filter et le module STREAMS pfil


Remarque –

Le module pfil n'est utilisé avec Oracle Solaris IP Filter que dans les versions Oracle Solaris 10 suivantes :

À partir de la version Solaris 10 7/07, le module pfil a été remplacé par les crochets de filtre de paquets et n'est plus utilisé avec Oracle Solaris IP Filter.


Le module STREAMS pfil est nécessaire pour activer Oracle Solaris IP Filter. Toutefois, Oracle Solaris IP Filter ne contient aucun mécanisme automatique permettant d'empiler le module sur chaque interface. Au lieu de cela, le module STREAMS pfil est géré par le service SMF svc:/network/pfil. Pour activer le filtrage sur une interface réseau, vous devez tout d'abord configurer le fichier pfil.ap. Ensuite, activez le service svc:/network/pfil afin de fournir le module STREAMS pfil à l'interface réseau. Pour activer le module STREAMS, réinitialisez le système ou démontez chacune des interfaces réseau sur lesquelles vous souhaitez réaliser le filtrage, puis remontez-les. Pour activer les capacités de filtrage de paquets IPv6, vous devez monter la version inet6 de l'interface.

Si aucun module pfil n'est trouvé pour les interfaces réseau, les services SMF sont placés en état de maintenance. Cette situation est souvent due à un fichier /etc/ipf/pfil.ap modifié incorrect. Si le service est placé en mode de maintenance, l'occurrence est consignée dans les fichiers journaux de filtrage.

Pour obtenir la description des tâches associées à l'activation de Oracle Solaris IP Filter, reportez-vous à la section Configuration de Oracle Solaris IP Filter.

Protocole IPv6 pour ProductBase; IP Filter

À partir de la version Solaris 10 6/06, le protocole IPv6 est pris en charge par Oracle Solaris IP Filter. Ce filtrage peut se baser sur l'adresse IPv6 source/de destination, sur les pools contenant des adresses IPv6 et sur les en-têtes d'extension IPv6.

De nombreux aspects de IPv6 sont similaires à IPv4. Toutefois, les en-têtes et tailles des paquets ne sont pas identiques dans les deux versions d'IP, ce qui constitue une considération de poids pour IP Filter. Les paquets IPv6 appelés jumbogrammes contiennent un datagramme de longueur supérieure à 65 535 octets. Oracle Solaris IP Filter ne prend pas en charge les jumbogrammes IPv6. Pour en savoir plus sur les autres fonctionnalités IPv6, reportez-vous à la section Fonctions principales d'IPv6.


Remarque –

Pour plus d'informations sur les jumbogrammes, reportez-vous au document IPv6 Jumbograms, RFC 2675 de l'IETF (Internet Engineering Task Force, groupe d'étude d'ingénierie Internet). [http://www.ietf.org/rfc/rfc2675.txt]


Les tâches IP Filter associées à IPv6 ne sont pas très différentes d'IPv4. La différence la plus notable est l'emploi de l'option -6 avec certaines commandes. Les commandes ipf et ipfstat incluent l'option -6 à utiliser avec le filtrage de paquets IPv6. Appliquez l'option -6 avec la commande ipf pour charger et vider les règles de filtrage de paquets IPv6. Pour afficher les statistiques IPv6, utilisez l'option -6 avec la commande ipfstat. Les commandes ipmon et ippool prennent également en charge IPv6, même si aucune option n'est associée à la prise en charge d'IPv6. La commande ipmon a été optimisée pour autoriser la journalisation des paquets IPv6. La commande ippool prend en charge les pools avec les adresses IPv6. Vous pouvez créer des pools d'adresses IPv4, des pools d'adresses IPv6 et des pools contenant à la fois des adresses IPv4 et IPv6.

Vous pouvez utiliser le fichier ipf6.conf pour créer des jeux de règles de filtrage de paquets pour IPv6. Par défaut, le fichier de configuration ipf6.conf figure dans le répertoire /etc/ipf. Comme pour les autres fichiers de configuration de filtrage, le fichier ipf6.conf se charge automatiquement au cours du processus d'initialisation s'il est stocké dans le répertoire /etc/ipf . Vous pouvez également créer un fichier de configuration IPv6, le conserver à un autre emplacement et le charger manuellement.


Remarque –

NAT ne prend pas en charge IPv6.


Une fois les règles de filtrage de paquets pour IPv6 configurées, activez les capacités de filtrage de paquets IPv6 en montant la version inet6 de l'interface.

Pour plus d'informations sur IPv6, reportez-vous au Chapitre 3Présentation d'IPv6. Pour obtenir une description des tâches associées à l'activation de Oracle Solaris IP Filter, reportez-vous au Chapitre 26Oracle Solaris IP Filter (tâches).

Pages de manuel Oracle Solaris IP Filter

Le tableau suivant répertorie les pages de manuel s'appliquant à Oracle Solaris IP Filter.

Page de manuel 

Description 

ipf(1M)

Exécutez la commande ipf pour effectuer les tâches suivantes :

  • utiliser les ensembles de règles de filtrage de paquets ;

  • désactiver et activer le filtrage ;

  • réinitialiser les statistiques et resynchroniser la liste d'interface du noyau avec la liste de statut d'interface actuelle.

ipf(4)

Contient la grammaire et la syntaxe de création des règles de filtrage de paquets Oracle Solaris IP Filter. 

ipfilter(5)

Fournit les informations d'octroi de licence du logiciel Open Source IP Filter. 

ipfs(1M)

Exécutez la commande ipfs pour enregistrer et restaurer les informations NAT et les informations de table d'état lors des réinitialisations.

ipfstat(1M)

Exécutez la commande ipfstat pour récupérer et afficher les statistiques relatives au traitement des paquets.

ipmon(1M)

Exécutez la commande ipmon pour ouvrir le périphérique du journal et afficher les paquets consignés pour le filtrage de paquets et pour NAT.

ipnat(1M)

Exécutez la commande ipnat pour effectuer les tâches suivantes :

  • utiliser les règles NAT ;

  • récupérer et afficher les statistiques NAT.

ipnat(4)

Contient la grammaire et la syntaxe pour la création de règles NAT. 

ippool(1M)

Exécutez la commande ippool pour créer et gérer les pools d'adresses.

ippool(4)

Contient la grammaire et la syntaxe de création des pools d'adresses Oracle Solaris IP Filter. 

ndd(1M)

Affiche les paramètres de filtrage actuels du module STREAMS pfil et les valeurs courantes des paramètres réglables.

Chapitre 26 Oracle Solaris IP Filter (tâches)

Ce chapitre fournit les instructions relatives à chaque étape des tâches Filtre Solaris IP . Pour obtenir des informations générales sur Oracle Solaris IP Filter, reportez-vous au Chapitre 25Oracle Solaris IP Filter (présentation).

Le présent chapitre contient les informations suivantes :

Configuration de Oracle Solaris IP Filter

La liste des tâches suivante explique les procédures de la configuration de Oracle Solaris IP Filter.

Tableau 26–1 Configuration de Oracle Solaris IP Filter (liste des tâches)

Tâche 

Description 

Voir 

Commencez par activer Oracle Solaris IP Filter. 

Par défaut, Oracle Solaris IP Filter n'est pas activé. Activez-le manuellement ou à l'aide des fichiers de configuration disponibles dans le répertoire /etc/ipf/, puis réinitialisez le système. À partir de la version Solaris 10 7/07, des crochets de filtre de paquets remplacent le module pfil pour activer Oracle Solaris IP Filter.

Activation de Oracle Solaris IP Filter

Réactivez Oracle Solaris IP Filter. 

Si Oracle Solaris IP Filter est désactivé, vous pouvez le réactiver soit en réinitialisant le système, soit en exécutant la commande ipf.

Réactivation de Oracle Solaris IP Filter

Activation du filtrage de loopback 

Disponible en option, le filtrage de loopback permet, par exemple, de filtrer le trafic entre les zones. 

Activation du filtrage de loopback

ProcedureActivation de Oracle Solaris IP Filter

Cette procédure permet d'activer Oracle Solaris IP Filter sur un système exécutant le SE Solaris 10 7/07 ou une version ultérieure. Si le système exécute une version Oracle Solaris 10 antérieure à la version Solaris 10 7/07, reportez-vous à la section Utilisation du module pfil pour activer Oracle Solaris IP Filter.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Créez un ensemble de règles de filtrage de paquets.

    L'ensemble de règles de filtrage de paquets contient les règles de filtrage de paquets utilisées par Oracle Solaris IP Filter. Pour charger les règles de filtrage de paquets à l'initialisation, modifiez le fichier /etc/ipf/ipf.conf afin d'implémenter le filtrage de paquets IPv4. Utilisez le fichier /etc/ipf/ipf6.conf pour les règles de filtrage de paquets IPv6. Si vous ne souhaitez pas charger les règles de filtrage de paquets à l'initialisation, insérez-les dans le fichier de votre choix, puis activez manuellement le filtrage de paquets. Pour plus d'informations sur le filtrage de paquets, reportez-vous à la section Utilisation de la fonctionnalité de filtrage de paquets de Oracle Solaris IP Filter. Pour plus d'informations sur l'utilisation des fichiers de configuration, reportez-vous à la section Création et modification des fichiers de configuration Oracle Solaris IP Filter.

  3. (Facultatif) Créez un fichier de configuration NAT (Network Address Translation, translation d'adresse réseau).


    Remarque –

    NAT ne prend pas en charge IPv6.


    Créez le fichier ipnat.conf si vous souhaitez utiliser la translation d'adresse réseau. Si vous souhaitez charger les règles NAT à l'initialisation, créez le fichier /etc/ipf/ipnat.conf afin d'y insérer les règles NAT. Si vous ne souhaitez pas charger les règles NAT à l'initialisation, placez le fichier ipnat.conf dans le répertoire de votre choix, puis activez manuellement les règles NAT.

    Pour plus d'informations sur la fonction NAT (Network Address Translation), reportez-vous à la section Utilisation de la fonctionnalité NAT de Oracle Solaris IP Filter.

  4. (Facultatif) Créez un fichier de configuration de pool d'adresses.

    Créez un fichier ipool.conf si vous souhaitez référencer un groupe d'adresses sous la forme d'un pool d'adresses unique. Pour charger le fichier de configuration de pool d'adresses à l'initialisation, créez le fichier /etc/ipf/ippool.conf afin d'y insérer le pool d'adresses. Si vous ne souhaitez pas charger le fichier de configuration de pool d'adresses à l'initialisation, placez le fichier ippool.conf dans le répertoire de votre choix, puis activez manuellement les règles.

    Un pool d'adresses peut contenir exclusivement des adresses IPv4 ou exclusivement des adresses IPv6. Il peut également contenir à la fois des adresses IPv4 et des adresses IPv6.

    Pour plus d'informations sur les pools d'adresses, reportez-vous à la section Utilisation de la fonctionnalité de pools d'adresses de Oracle Solaris IP Filter.

  5. (Facultatif) Activez le filtrage de trafic en loopback.

    Pour filtrer le trafic entre les zones configurées sur le système, le cas échéant, activez le filtrage de loopback. Reportez-vous à la section Activation du filtrage de loopback. Vous devez également définir les ensembles de règles adéquats applicables aux zones.

  6. Activez Oracle Solaris IP Filter.


    # svcadm enable network/ipfilter
    

ProcedureRéactivation de Oracle Solaris IP Filter

Si le filtrage de paquets a été temporairement désactivé, vous pouvez le réactiver.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Activez Oracle Solaris IP Filter et le filtrage selon l'une des méthodes ci-dessous :

    • Redémarrez l'ordinateur.


      # reboot
      

      Remarque –

      Lorsque IP Filter est activé, les fichiers suivants sont chargés après une réinitialisation s'ils sont présents : le fichier /etc/ipf/ipf.conf, le fichier /etc/ipf/ipf6.conf en cas d'utilisation d'IPv6 ou le fichier /etc/ipf/ipnat.conf.


    • Exécutez les commandes suivantes pour activer Oracle Solaris IP Filter et le filtrage :

      1. Activez Oracle Solaris IP Filter.


        # ipf -E
        
      2. Activez le filtrage de paquets.


        # ipf -f filename
        
      3. (Facultatif) Activez NAT.


        # ipnat -f filename
        

        Remarque –

        NAT ne prend pas en charge IPv6.


ProcedureActivation du filtrage de loopback


Remarque –

Vous pouvez filtrer le trafic de loopback uniquement si vous exécutez la version Solaris 10 7/07&; ou une version ultérieure. Dans les versions antérieures à Oracle Solaris 10, le filtrage de loopback n'était pas pris en charge.


  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Arrêtez Oracle Solaris IP Filter, le cas échéant.


    # svcadm disable network/ipfilter
    
  3. Ajoutez la ligne suivante au début du fichier /etc/ipf.conf ou /etc/ipf6.conf :


    set intercept_loopback true;

    Cette ligne doit précéder toutes les règles de filtre IP définies dans le fichier. Toutefois, vous pouvez insérer des commentaires avant la ligne, comme dans l'exemple ci-dessous :


    # 
    # Enable loopback filtering to filter between zones 
    # 
    set intercept_loopback true; 
    # 
    # Define policy 
    # 
    block in all 
    block out all 
    <other rules>
    ...
  4. Démarrez Oracle Solaris IP Filter.


    # svcadm enable network/ipfilter
    
  5. Pour vérifier le statut du filtrage de loopback, exécutez la commande ci-dessous :


    # ipf —T ipf_loopback
    ipf_loopback    min 0   max 0x1 current 1
    #

    Si le filtrage de loopback est désactivé, la commande génère la sortie suivante :


    ipf_loopback    min 0   max 0x1 current 0

Désactivation de Oracle Solaris IP Filter

Vous pouvez désactiver le filtrage de paquets et NAT pour :

La liste des tâches suivante identifie les procédures de désactivation des fonctions de Oracle Solaris IP Filter.

Tableau 26–2 Désactivation de Oracle Solaris IP Filter (liste des tâches)

Tâche 

Description 

Voir 

Désactivation du filtrage de paquets. 

Désactivez le filtrage de paquets à l'aide de la commande ipf.

Désactivation du filtrage de paquets

Désactivation de NAT. 

Désactivez NAT à l'aide de la commande ipnat.

Désactivation de NAT

Désactivation du filtrage de paquets et de NAT. 

Désactivez le filtrage de paquets et NAT à l'aide de la commande ipf.

Désactivation du filtrage de paquets

ProcedureDésactivation du filtrage de paquets

La procédure suivante permet de désactiver le filtrage de paquets Oracle Solaris IP Filter en vidant les règles de filtrage de paquets de l'ensemble de règles de filtrage actif. La procédure ne désactive pas Oracle Solaris IP Filter. Vous pouvez réactiver Oracle Solaris IP Filter en ajoutant des règles à l'ensemble de règles.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Pour désactiver les règles Oracle Solaris IP Filter, utilisez l'une des méthodes suivantes :

    • Supprimez du noyau l'ensemble de règles actif.


      # ipf -Fa
      

      Cette commande désactive toutes les règles de filtrage de paquets.

    • Supprimez les règles de filtrage appliquées aux paquets entrants.


      # ipf -Fi
      

      Cette commande désactive les règles de filtrage de paquets appliquées aux paquets entrants.

    • Supprimez les règles de filtrage appliquées aux paquets sortants.


      # ipf -Fo
      

      Cette commande désactive les règles de filtrage de paquets appliquées aux paquets sortants.

ProcedureDésactivation de NAT

La procédure ci-dessous permet de désactiver les règles NAT de Oracle Solaris IP Filter en les vidant de l'ensemble de règles NAT actif. La procédure ne désactive pas Oracle Solaris IP Filter. Vous pouvez réactiver Oracle Solaris IP Filter en ajoutant des règles à l'ensemble de règles.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Supprimez NAT du noyau.


    # ipnat -FC
    

    L'option -C permet de supprimer toutes les entrées de la liste de règles NAT actuelle. L'option -F permet de supprimer toutes les entrées actives de la table de translation NAT qui indique les mappages NAT actifs.

ProcedureDésactivation du filtrage de paquets

Lorsque vous exécutez cette procédure, NAT et le filtrage de paquets sont supprimés du noyau. Pour réactiver le filtrage de paquets et NAT après avoir exécuté cette procédure, le cas échéant, vous devez réactiver Filtre Solaris IP . Pour plus d'informations, reportez-vous à la section Réactivation de Oracle Solaris IP Filter.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Désactivez le filtrage de paquets et autorisez la transmission de tous les paquets sur le réseau.


    # ipf –D
    

    Remarque –

    La commande ipf -D vide les règles de l'ensemble de règles. Lorsque vous réactivez le filtrage, vous devez ajouter des règles à l'ensemble de règles.


Utilisation du module pfil

Cette section explique comment utiliser le module STREAMS pfil pour activer ou désactiver Oracle Solaris IP Filter et comment afficher les statistiques pfil. Ces procédures s'appliquent uniquement aux systèmes exécutant l'une des versions de Oracle Solaris 10 suivantes :

La liste des tâches ci-dessous identifie les procédures associées à la configuration du module pfil.

Tableau 26–3 Utilisation du module pfil (liste des tâches)

Tâche 

Description 

Voir 

Activation de Oracle Solaris IP Filter 

Par défaut, Oracle Solaris IP Filter n'est pas activé. Activez-le manuellement ou à l'aide des fichiers de configuration disponibles dans le répertoire /etc/ipf/, puis réinitialisez le système.

Activation de Oracle Solaris IP Filter dans des versions antérieures de Oracle Solaris 10

Activation d'une NIC pour le filtrage de paquets 

Configurez le module pfil afin d'activer le filtrage de paquets sur une NIC (Network Interface Card, carte d'interface réseau).

Activation d'une NIC pour le filtrage de paquets

Désactivation de Oracle Solaris IP Filter sur une carte réseau 

Retirez une NIC et autorisez la transmission de tous les paquets via la NIC. 

Désactivation de Oracle Solaris IP Filter sur une carte réseau

Affichage des statistiques pfil

L'affichage des statistiques du module pfil facilite le dépannage de Oracle Solaris IP Filter à l'aide de la commande ndd.

Affichage des statistiques pfil de Oracle Solaris IP Filter

ProcedureActivation de Oracle Solaris IP Filter dans des versions antérieures de Oracle Solaris 10

Oracle Solaris IP Filter est installé avec Oracle Solaris. Toutefois, le filtrage de paquets n'est pas activé par défaut. Pour activer &ProductBase IP Filter, suivez la procédure suivante :


Remarque –

Si votre système exécute la version Solaris 10 7/07 ou une version ultérieure, suivez la procédure Activation de Oracle Solaris IP Filter utilisant des crochets de filtre de paquets.


  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Ouvrez le fichier /etc/ipf/pfil.ap dans l'éditeur de fichiers de votre choix.

    Ce fichier contient les noms des cartes d'interface réseau (NIC, Network Interface Card) présentes sur l'hôte. Par défaut, les noms sont commentés. Annulez le commentaire des noms de périphérique correspondant au trafic réseau que vous souhaitez filtrer. Si la NIC de votre système n'est pas répertoriée, ajoutez une ligne pour la spécifier.


    # vi /etc/ipf/pfil.ap
    # IP Filter pfil autopush setup
    #
    # See autopush(1M) manpage for more information.
    #
    # Format of the entries in this file is:
    #
    #major  minor lastminor modules
    
    #le     -1      0       pfil
    #qe     -1      0       pfil
    hme     -1      0       pfil (Device has been uncommented for filtering)
    #qfe    -1      0       pfil
    #eri    -1      0       pfil
    #ce     -1      0       pfil
    #bge    -1      0       pfil
    #be     -1      0       pfil
    #vge    -1      0       pfil
    #ge     -1      0       pfil
    #nf     -1      0       pfil
    #fa     -1      0       pfil
    #ci     -1      0       pfil
    #el     -1      0       pfil
    #ipdptp -1      0       pfil
    #lane   -1      0       pfil
    #dmfe   -1      0       pfil
  3. Activez les modifications apportées au fichier /etc/ipf/pfil.ap en redémarrant l'instance de service network/pfil.


    # svcadm restart network/pfil
    
  4. Créez un ensemble de règles de filtrage de paquets.

    L'ensemble de règles de filtrage de paquets contient les règles de filtrage de paquets utilisées par Oracle Solaris IP Filter. Pour charger les règles de filtrage de paquets à l'initialisation, modifiez le fichier /etc/ipf/ipf.conf afin d'implémenter le filtrage de paquets IPv4. Utilisez le fichier /etc/ipf/ipf6.conf pour les règles de filtrage de paquets IPv6. Si vous ne souhaitez pas charger les règles de filtrage de paquets à l'initialisation, insérez-les dans le fichier de votre choix, puis activez manuellement le filtrage de paquets. Pour plus d'informations sur le filtrage de paquets, reportez-vous à la section Utilisation de la fonctionnalité de filtrage de paquets de Oracle Solaris IP Filter. Pour plus d'informations sur l'utilisation des fichiers de configuration, reportez-vous à la section Création et modification des fichiers de configuration Oracle Solaris IP Filter.

  5. (Facultatif) Créez un fichier de configuration NAT (Network Address Translation, translation d'adresse réseau).


    Remarque –

    NAT ne prend pas en charge IPv6.


    Créez le fichier ipnat.conf si vous souhaitez utiliser la translation d'adresse réseau. Si vous souhaitez charger les règles NAT à l'initialisation, créez le fichier /etc/ipf/ipnat.conf afin d'y insérer les règles NAT. Si vous ne souhaitez pas charger les règles NAT à l'initialisation, placez le fichier ipnat.conf dans le répertoire de votre choix, puis activez manuellement les règles NAT.

    Pour plus d'informations sur la fonction NAT (Network Address Translation), reportez-vous à la section Utilisation de la fonctionnalité NAT de Oracle Solaris IP Filter.

  6. (Facultatif) Créez un fichier de configuration de pool d'adresses.

    Créez un fichier ipool.conf si vous souhaitez référencer un groupe d'adresses sous la forme d'un pool d'adresses unique. Pour charger le fichier de configuration de pool d'adresses à l'initialisation, créez le fichier /etc/ipf/ippool.conf afin d'y insérer le pool d'adresses. Si vous ne souhaitez pas charger le fichier de configuration de pool d'adresses à l'initialisation, placez le fichier ippool.conf dans le répertoire de votre choix, puis activez manuellement les règles.

    Un pool d'adresses peut contenir exclusivement des adresses IPv4 ou exclusivement des adresses IPv6. Il peut également contenir à la fois des adresses IPv4 et des adresses IPv6.

    Pour plus d'informations sur les pools d'adresses, reportez-vous à la section Utilisation de la fonctionnalité de pools d'adresses de Oracle Solaris IP Filter.

  7. Activez Oracle Solaris IP Filter selon l'une des méthodes suivantes :

    • Activez IP Filter et réinitialisez la machine.


      # svcadm enable network/ipfilter
      # reboot
      

      Remarque –

      La réinitialisation est requise si l'exécution des commandes ifconfig unplumb et ifconfig plumb sur les NIC n'est pas sécurisée.


    • Activez les NIC à l'aide des commandes ifconfig unplumb et ifconfig plumb. Activez ensuite IP Filter. La version inet6 de l'interface doit être montée afin de permettre l'implémentation du filtrage de paquets IPv6.


      # ifconfig hme0 unplumb
      # ifconfig hme0 plumb 192.168.1.20 netmask 255.255.255.0 up
      # ifconfig hme0 inte6 unplumb
      # ifconfig hme0 inet6 plumb fec3:f849::1/96 up
      # svcadm enable network/ipfilter
      

      Pour de plus amples informations sur la commande ifconfig, reportez-vous à la page de manuel ifconfig(1M).

ProcedureActivation d'une NIC pour le filtrage de paquets

Oracle Solaris IP Filter est activé lors de l'initialisation, lorsque le fichier /etc/ipf/ipf.conf (ou le fichier /etc/ipf/ipf6.conf, si vous utilisez des adresses IPv6) est présent. Si vous devez activer le filtrage sur une carte réseau une fois Oracle Solaris IP Filter activé, suivez la procédure suivante :

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Ouvrez le fichier /etc/ipf/pfil.ap dans l'éditeur de fichiers de votre choix.

    Ce fichier contient les noms des NIC présentes sur l'hôte. Par défaut, les noms sont commentés. Annulez le commentaire des noms de périphérique correspondant au trafic réseau que vous souhaitez filtrer. Si la NIC de votre système n'est pas répertoriée, ajoutez une ligne pour la spécifier.


    # vi /etc/ipf/pfil.ap
    # IP Filter pfil autopush setup
    #
    # See autopush(1M) manpage for more information.
    #
    # Format of the entries in this file is:
    #
    #major  minor lastminor modules
    
    #le     -1      0       pfil
    #qe     -1      0       pfil
    hme     -1      0       pfil (Device has been uncommented for filtering)
    #qfe    -1      0       pfil
    #eri    -1      0       pfil
    #ce     -1      0       pfil
    #bge    -1      0       pfil
    #be     -1      0       pfil
    #vge    -1      0       pfil
    #ge     -1      0       pfil
    #nf     -1      0       pfil
    #fa     -1      0       pfil
    #ci     -1      0       pfil
    #el     -1      0       pfil
    #ipdptp -1      0       pfil
    #lane   -1      0       pfil
    #dmfe   -1      0       pfil
  3. Activez les modifications apportées au fichier /etc/ipf/pfil.ap en redémarrant l'instance de service network/pfil.


    # svcadm restart network/pfil
    
  4. Activez la NIC selon l'une des méthodes ci-dessous :

    • Redémarrez l'ordinateur.


      # reboot
      

      Remarque –

      La réinitialisation est requise si l'exécution des commandes ifconfig unplumb et ifconfig plumb sur les NIC n'est pas sécurisée.


    • Activez les NIC à filtrer à l'aide de la commande ifconfig avec les options unplumb et plumb. La version inet6 de chaque interface doit être montée afin de permettre l'implémentation du filtrage de paquets IPv6.


      # ifconfig hme0 unplumb
      # ifconfig hme0 plumb 192.168.1.20  netmask 255.255.255.0  up
      # ifconfig hme0 inet6 unplumb
      # ifconfig hme0 inet6 plumb fec3:f840::1/96 up
      

      Pour de plus amples informations sur la commande ifconfig, reportez-vous à la page de manuel ifconfig(1M).

ProcedureDésactivation de Oracle Solaris IP Filter sur une carte réseau

Pour arrêter le filtrage des paquets sur une NIC, le cas échéant, suivez la procédure ci-dessous.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Ouvrez le fichier /etc/ipf/pfil.ap dans l'éditeur de fichiers de votre choix.

    Ce fichier contient les noms des NIC présentes sur l'hôte. Le commentaire des NIC utilisées pour filtrer le trafic réseau est annulé. Commentez les noms des périphériques que vous ne souhaitez plus utiliser pour filtrer le trafic réseau.


    # vi /etc/ipf/pfil.ap
    # IP Filter pfil autopush setup
    #
    # See autopush(1M) manpage for more information.
    #
    # Format of the entries in this file is:
    #
    #major  minor lastminor modules
    
    #le     -1      0       pfil
    #qe     -1      0       pfil
    #hme    -1      0       pfil (Commented-out device no longer filters network traffic)
    #qfe    -1      0       pfil
    #eri    -1      0       pfil
    #ce     -1      0       pfil
    #bge    -1      0       pfil
    #be     -1      0       pfil
    #vge    -1      0       pfil
    #ge     -1      0       pfil
    #nf     -1      0       pfil
    #fa     -1      0       pfil
    #ci     -1      0       pfil
    #el     -1      0       pfil
    #ipdptp -1      0       pfil
    #lane   -1      0       pfil
    #dmfe   -1      0       pfil
  3. Désactivez la NIC selon l'une des méthodes ci-dessous :

    • Redémarrez l'ordinateur.


      # reboot
      

      Remarque –

      La réinitialisation est requise si l'exécution des commandes ifconfig unplumb et ifconfig plumb sur les NIC n'est pas sécurisée.


    • Désactivez les NIC à l'aide de la commande ifconfig avec les options unplumb et plumb. La version inet6 de chaque interface doit être démontée afin de permettre la désactivation du filtrage de paquets IPv6. Procédez comme suit. Le périphérique système hme est utilisé en exemple :

      1. Identifiez le numéro majeur du périphérique à désactiver.


        # grep hme /etc/name_to_major
        hme 7
      2. Affichez la configuration autopush actuelle pour hme0.


        # autopush -g -M 7 -m 0
           Major     Minor     Lastminor       Modules
               7      ALL          -           pfil
      3. Supprimez la configuration autopush.


        # autopush -r -M 7 -m 0
        
      4. Ouvrez le périphérique et attribuez les adresses IP au périphérique.


        # ifconfig hme0 unplumb
        # ifconfig hme0 plumb 192.168.1.20  netmask 255.255.255.0  up
        # ifconfig hme0 inet6 unplumb
        # ifconfig hme0 inet6 plumb fec3:f840::1/96 up
        

        Pour de plus amples informations sur la commande ifconfig, reportez-vous à la page de manuel ifconfig(1M).

ProcedureAffichage des statistiques pfil de Oracle Solaris IP Filter

Vous pouvez afficher les statistiques pfil lors du dépannage de Oracle Solaris IP Filter.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichage des statistiques pfil


    # ndd -get /dev/pfil qif_status
    

Exemple 26–1 Affichage des statistiques pfil de Oracle Solaris IP Filter

L'exemple ci-dessous illustre l'affichage des statistiques pfil.


# ndd -get /dev/pfil qif_status
ifname ill q OTHERQ num sap hl nr nw bad copy copyfail drop notip nodata
   notdata
QIF6 0 300011247b8 300011248b0 6 806 0 4 9 0 0 0 0 0 0 0
dmfe1 3000200a018 30002162a50 30002162b48 5 800 14 171 13681 0 0 0 0 0 0 0

Utilisation des ensembles de règles Oracle Solaris IP Filter

La liste des tâches ci-dessous identifie les procédures des ensembles de règles Oracle Solaris IP Filter.

Tableau 26–4 Utilisation des ensembles de règles Oracle Solaris IP Filter (liste des tâches)

Tâche 

Description 

Voir 

Gestion, affichage et modification des ensembles de règles pour le filtrage de paquets Oracle Solaris IP Filter 

 

Gestion des ensembles de règles de filtrage de paquets de Oracle Solaris IP Filter

 

Affichez un ensemble de règles actif pour le filtrage de paquets. 

Affichage de l'ensemble actif de règles de filtrage de paquets

 

Affichez un ensemble de règles inactif pour le filtrage de paquets. 

Affichage de l'ensemble inactif de règles de filtrage de paquets

 

Activez un nouvel ensemble de règles actif. 

Activation d'un nouvel ensemble de règles de filtrage de paquets ou d'un ensemble mis à jour

 

Supprimez un ensemble de règles. 

Suppression d'un ensemble de règles de filtrage de paquets

 

Ajoutez des règles aux ensembles de règles. 

Ajout de règles à l'ensemble actif de règles de filtrage de paquets

Ajout de règles à l'ensemble inactif de règles de filtrage de paquets

 

Basculez entre les ensembles de règles actif et inactif. 

Basculement entre les ensembles actif et inactif de règles de filtrage de paquets

 

Supprimez du noyau un ensemble de règles inactif. 

Suppression d'un ensemble inactif de règles de filtrage de paquets du noyau

Gestion, affichage et modification des règles NAT de Oracle Solaris IP Filter 

 

Gestion des règles NAT de Oracle Solaris IP Filter

 

Affichez les règles NAT actives. 

Affichage des règles NAT actives

 

Supprimez les règles NAT. 

Suppression des règles NAT

 

Ajoutez des règles aux règles NAT. 

Ajout de règles aux règles NAT

Gestion, affichage et modification des pools d'adresses de Oracle Solaris IP Filter 

 

Gestion des pools d'adresses de Oracle Solaris IP Filter

 

Affichez les pools d'adresses actifs. 

Affichage des pools d'adresses actifs

 

Supprimez un pool d'adresses. 

Suppression d'un pool d'adresses

 

Ajoutez des règles à un pool d'adresses. 

Ajout de règles à un pool d'adresses

Gestion des ensembles de règles de filtrage de paquets de Oracle Solaris IP Filter

Lorsque Filtre Solaris IP est activé, les ensembles actif et inactif de règles de filtrage de paquets peuvent résider dans le noyau. L'ensemble de règles actif détermine le filtrage appliqué aux paquets entrants et aux paquets sortants. L'ensemble de règles inactif contient également des règles. Ces règles ne sont pas appliquées, sauf si vous définissez l'ensemble de règles inactif comme l'ensemble de règles actif. Vous pouvez gérer, afficher et modifier les ensembles actif et inactif de règles de filtrage de paquets.

ProcedureAffichage de l'ensemble actif de règles de filtrage de paquets

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichez l'ensemble actif de règles de filtrage de paquets chargé dans le noyau.


    # ipfstat -io
    

Exemple 26–2 Affichage de l'ensemble actif de règles de filtrage de paquets

L'exemple ci-dessous présente la sortie de l'ensemble actif de règles de filtrage de paquets chargé dans le noyau.


# ipfstat -io
empty list for ipfilter(out)
pass in quick on dmfe1 from 192.168.1.0/24 to any
pass in all
block in on dmfe1 from 192.168.1.10/32 to any

ProcedureAffichage de l'ensemble inactif de règles de filtrage de paquets

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichez l'ensemble inactif de règles de filtrage de paquets.


    # ipfstat -I -io
    

Exemple 26–3 Affichage de l'ensemble inactif de règles de filtrage de paquets

L'exemple ci-dessous présente la sortie d'un ensemble inactif de règles de filtrage de paquets.


# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all

ProcedureActivation d'un nouvel ensemble de règles de filtrage de paquets ou d'un ensemble mis à jour

Effectuez la procédure ci-dessous pour exécuter l'une ou l'autre des tâches suivantes :

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Procédez de l'une des façons suivantes :

    • Si vous souhaitez activer un ensemble de règles complètement différent, créez-le dans un fichier distinct.

    • Pour mettre à jour l'ensemble de règles actuel, modifiez le fichier de configuration contenant l'ensemble de règles.

  3. Supprimez l'ensemble de règles actuel et chargez le nouvel ensemble de règles.


    # ipf -Fa -f filename
    

    La variable fichier peut correspondre à un fichier contenant un ensemble de règles complètement différent, ou au fichier contenant l'ensemble de règles actif, mis à jour.

    L'ensemble de règles actif est supprimé du noyau. Les règles du fichier constituent dorénavant l'ensemble de règles actif.


    Remarque –

    Même si vous rechargez le fichier de configuration actuel, vous devez exécuter la commande. Dans le cas contraire, le système ignore l'ensemble de règles modifié défini dans le fichier de configuration mis à jour et continue d'appliquer l'ancien ensemble de règles.

    N'utilisez pas de commandes telles que ipf -D ou svcadm restart pour charger l'ensemble de règles mis à jour. Ces commandes affectent la sécurité du réseau, car elles désactivent le pare-feu avant de charger le nouvel ensemble de règles.



Exemple 26–4 Activation d'un nouvel ensemble de règles de filtrage de paquets

Dans l'exemple ci-dessous, un ensemble de règles de filtrage de paquets est remplacé par un autre ensemble se trouvant dans un fichier de configuration distinct, /etc/ipf/ipf.conf.


# ipfstat -io
empty list for ipfilter(out)
pass in quick on dmfe all
# ipf -Fa -f /etc/ipf/ipf.conf
# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any


Exemple 26–5 Rechargement d'un ensemble de règles de filtrage de paquets mis à jour

Dans l'exemple ci-dessous, un ensemble de règles de filtrage de paquets actuellement actif est rechargé suite à sa mise à jour. Dans cet exemple, le fichier utilisé est /etc/ipf/ipf.conf.


# ipfstat -io (Optional)
empty list for ipfilter (out)
block in log quick from 10.0.0.0/8 to any

(Edit the /etc/ipf/ipf.conf configuration file.)

# ip -Fa -f /etc/ipf/ipf.conf
# ipfstat -io (Optional)
empty list for ipfilter (out)
block in log quick from 10.0.0.0/8 to any
block in quick on elx10 from 192.168.0.0/12 to any

ProcedureSuppression d'un ensemble de règles de filtrage de paquets

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Supprimez l'ensemble de règles.


    # ipf -F [a|i|o]
    
    -a

    Supprime toutes les règles de filtrage de l'ensemble de règles.

    -i

    Supprime les règles de filtrage pour les paquets entrants.

    -o

    Supprime les règles de filtrage pour les paquets sortants.


Exemple 26–6 Suppression d'un ensemble de règles de filtrage de paquets

Dans l'exemple ci-dessous, toutes les règles de filtrage sont supprimées de l'ensemble de règles de filtrage actif.


# ipfstat -io
block out log on dmf0 all
block in log quick from 10.0.0.0/8 to any
# ipf -Fa
# ipfstat -io
empty list for ipfilter(out)
empty list for ipfilter(in)

ProcedureAjout de règles à l'ensemble actif de règles de filtrage de paquets

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Appliquez l'une des méthodes ci-dessous pour ajouter des règles à l'ensemble de règles actif :

    • Pour ajouter des règles à l'ensemble de règles via la ligne de commande, exécutez la commande ipf -f -.


      # echo "block in on dmfe1 proto tcp from 10.1.1.1/32 to any" | ipf -f -
      
    • Exécutez les commandes ci-dessous :

      1. Créez un ensemble de règles dans le fichier de votre choix.

      2. Ajoutez ces règles à l'ensemble de règles actif.


        # ipf -f filename
        

        Les règles présentes dans le fichier sont ajoutées à la fin de l'ensemble de règles actif. Filtre Solaris IP appliquant un algorithme de type "dernière règle correspondante", les nouvelles règles déterminent les priorités de filtrage, sauf si l'utilisateur ajoute le mot-clé quick. Si le paquet correspond à une règle contenant le mot-clé quick, l'action associée à cette règle est exécutée et les règles suivantes sont ignorées.


Exemple 26–7 Ajout de règles à l'ensemble actif de règles de filtrage de paquets

Dans l'exemple ci-dessous, une règle est ajoutée à l'ensemble actif de règles de filtrage de paquets à partir de la ligne de commande.


# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any
# echo "block in on dmfe1 proto tcp from 10.1.1.1/32 to any" | ipf -f -
# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any
block in on dmfe1 proto tcp from 10.1.1.1/32 to any

ProcedureAjout de règles à l'ensemble inactif de règles de filtrage de paquets

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Créez un ensemble de règles dans le fichier de votre choix.

  3. Ajoutez ces règles à l'ensemble de règles inactif.


    # ipf -I -f filename
    

    Les règles présentes dans le fichier sont ajoutées à la fin de l'ensemble de règles inactif. Filtre Solaris IP appliquant un algorithme de type "dernière règle correspondante", les nouvelles règles déterminent les priorités de filtrage, sauf si l'utilisateur ajoute le mot-clé quick. Si le paquet correspond à une règle contenant le mot-clé quick, l'action associée à cette règle est exécutée et les règles suivantes sont ignorées.


Exemple 26–8 Ajout de règles à l'ensemble de règles inactif

Dans l'exemple ci-dessous, une règle est ajoutée à l'ensemble de règles inactif à partir d'un fichier.


# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all
# ipf -I -f /etc/ipf/ipf.conf
# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all
block in log quick from 10.0.0.0/8 to any

ProcedureBasculement entre les ensembles actif et inactif de règles de filtrage de paquets

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Basculez entre les ensembles de règles actif et inactif.


    # ipf -s
    

    Cette commande permet de basculer entre les ensembles de règles actif et inactif dans le noyau. Si l'ensemble de règles inactif est vide, aucun filtrage de paquets n'est effectué.


Exemple 26–9 Basculement entre les ensembles actif et inactif de règles de filtrage de paquets

Dans l'exemple ci-dessous, la commande ipf -s est exécutée. L'ensemble de règles inactif devient alors l'ensemble de règles actif, tandis que l'ensemble de règles actif devient l'ensemble de règles inactif.


ProcedureSuppression d'un ensemble inactif de règles de filtrage de paquets du noyau

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Spécifiez l'ensemble de règles inactif via la commande "flush all".


    # ipf -I -Fa
    

    Cette commande vide l'ensemble de règles inactif du noyau.


    Remarque –

    Si vous exécutez ensuite la commande ipf -s, l'ensemble de règles inactif vide devient l'ensemble de règles actif. Si l'ensemble de règles actif est vide, aucun filtrage n'est effectué.



Exemple 26–10 Suppression d'un ensemble inactif de règles de filtrage de paquets du noyau

Dans l'exemple ci-dessous, l'ensemble inactif de règles de filtrage de paquets est vidé afin de supprimer toutes les règles.


# ipfstat -I -io
empty list for inactive ipfilter(out)
block in log quick from 10.0.0.0/8 to any
block in on dmfe1 proto tcp from 10.1.1.1/32 to any
# ipf -I -Fa
# ipfstat -I -io
empty list for inactive ipfilter(out)
empty list for inactive ipfilter(in)

Gestion des règles NAT de Oracle Solaris IP Filter

Appliquez les procédures ci-dessous pour gérer, afficher et modifier les règles NAT.

ProcedureAffichage des règles NAT actives

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichez les règles NAT actives.


    # ipnat -l
    

Exemple 26–11 Affichage des règles NAT actives

L'exemple ci-dessous présente la sortie de l'ensemble de règles NAT actif.


# ipnat -l
List of active MAP/Redirect filters:
map dmfe0 192.168.1.0/24 -> 20.20.20.1/32

List of active sessions:

ProcedureSuppression des règles NAT

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Supprimez les règles NAT actuelles.


    # ipnat -C
    

Exemple 26–12 Suppression des règles NAT

Dans l'exemple ci-dessous, les entrées des règles NAT actuelles sont supprimées.


# ipnat -l
List of active MAP/Redirect filters:
map dmfe0 192.168.1.0/24 -> 20.20.20.1/32

List of active sessions:
# ipnat -C
1 entries flushed from NAT list
# ipnat -l
List of active MAP/Redirect filters:

List of active sessions:

ProcedureAjout de règles aux règles NAT

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Appliquez l'une des méthodes ci-dessous pour ajouter des règles à l'ensemble de règles actif :

    • Pour ajouter des règles à l'ensemble de règles NAT via la ligne de commande, exécutez la commande ipnat -f -.


      # echo "map dmfe0 192.168.1.0/24 -> 20.20.20.1/32" | ipnat -f -
      
    • Exécutez les commandes ci-dessous :

      1. Créez des règles NAT supplémentaires dans le fichier de votre choix.

      2. Ajoutez ces règles aux règles NAT actives.


        # ipnat -f filename
        

        Les règles présentes dans le fichier sont ajoutées à la fin des règles NAT.


Exemple 26–13 Ajout de règles à l'ensemble de règles NAT

Dans l'exemple ci-dessous, une règle est ajoutée à l'ensemble de règles NAT via la ligne de commande.


# ipnat -l
List of active MAP/Redirect filters:

List of active sessions:
# echo "map dmfe0 192.168.1.0/24 -> 20.20.20.1/32" | ipnat -f -
# ipnat -l
List of active MAP/Redirect filters:
map dmfe0 192.168.1.0/24 -> 20.20.20.1/32

List of active sessions:

Gestion des pools d'adresses de Oracle Solaris IP Filter

Appliquez les procédures ci-dessous pour gérer, afficher et modifier les pools d'adresses.

ProcedureAffichage des pools d'adresses actifs

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichez le pool d'adresses actif.


    # ippool -l
    

Exemple 26–14 Affichage du pool d'adresses actif

Dans l'exemple ci-dessous, le contenu du pool d'adresses actif est affiché.


# ippool -l
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };

ProcedureSuppression d'un pool d'adresses

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Supprimez les entrées du pool d'adresses actuel.


    # ippool -F
    

Exemple 26–15 Suppression d'un pool d'adresses

Dans l'exemple ci-dessous, un pool d'adresses est supprimé.


# ippool -l
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };
# ippool -F
1 object flushed
# ippool -l

ProcedureAjout de règles à un pool d'adresses

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Appliquez l'une des méthodes ci-dessous pour ajouter des règles à l'ensemble de règles actif :

    • Pour ajouter des règles à l'ensemble de règles via la ligne de commande, exécutez la commande ippool -f -.


      # echo "table role = ipf type = tree number = 13 
      {10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24};" | ippool -f -
      
    • Exécutez les commandes ci-dessous :

      1. Créez des pools d'adresses supplémentaires dans le fichier de votre choix.

      2. Ajoutez ces règles au pool d'adresses actif.


        # ippool -f filename
        

        Les règles présentes dans le fichier sont ajoutées à la fin du pool d'adresses actif.


Exemple 26–16 Ajout de règles à un pool d'adresses

Dans l'exemple ci-dessous, un pool d'adresses est ajouté à l'ensemble de règles de pool d'adresses via la ligne de commande.


# ippool -l
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };
# echo "table role = ipf type = tree number = 100
 {10.0.0.0/32, 172.16.1.2/32, 192.168.1.0/24};" | ippool -f -
# ippool -l
table role = ipf type = tree number = 100
        { 10.0.0.0/32, 172.16.1.2/32, 192.168.1.0/24; };
table role = ipf type = tree number = 13
        { 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24; };

Affichage des statistiques et des informations de Oracle Solaris IP Filter

Tableau 26–5 Affichage des statistiques et des informations de Oracle Solaris IP Filter (liste des tâches)

Tâche 

Description 

Voir 

Affichage des tables d'état 

Affichez les tables d'état pour obtenir des informations sur le filtrage de paquets à l'aide de la commande ipfstat.

Affichage des tables d'état de Oracle Solaris IP Filter

Affichage des statistiques d'état 

Affichez les statistiques relatives à l'état des paquets à l'aide de la commande ipfstat - s.

Affichage des tables de statistiques de Oracle Solaris IP Filter

Affichage des statistiques NAT 

Affichez les statistiques NAT à l'aide de la commande ipnat -s.

Affichage des tables de statistiques de Oracle Solaris IP Filter

Affichage des statistiques de pool d'adresses 

Affichez les statistiques de pool d'adresses à l'aide de la commande ippool -s.

Affichage des statistiques de pool d'adresses de Oracle Solaris IP Filter

ProcedureAffichage des tables d'état de Oracle Solaris IP Filter

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichez la table d'état.


    # ipfstat
    

    Remarque –

    L'option -t permet d'afficher la table d'état au format de l'utilitaire top.



Exemple 26–17 Affichage des tables d'état de Oracle Solaris IP Filter

Dans l'exemple ci-dessous, une table d'état est affichée.


# ipfstat
bad packets:            in 0    out 0
 input packets:         blocked 160 passed 11 nomatch 1 counted 0 short 0
output packets:         blocked 0 passed 13681 nomatch 6844 counted 0 short 0
 input packets logged:  blocked 0 passed 0
output packets logged:  blocked 0 passed 0
 packets logged:        input 0 output 0
 log failures:          input 0 output 0
fragment state(in):     kept 0  lost 0
fragment state(out):    kept 0  lost 0
packet state(in):       kept 0  lost 0
packet state(out):      kept 0  lost 0
ICMP replies:   0       TCP RSTs sent:  0
Invalid source(in):     0
Result cache hits(in):  152     (out):  6837
IN Pullups succeeded:   0       failed: 0
OUT Pullups succeeded:  0       failed: 0
Fastroute successes:    0       failures:       0
TCP cksum fails(in):    0       (out):  0
IPF Ticks:      14341469
Packet log flags set: (0)
        none

ProcedureAffichage des tables de statistiques de Oracle Solaris IP Filter

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichez les statistiques d'état.


    # ipfstat -s
    

Exemple 26–18 Affichage des tables de statistiques de Oracle Solaris IP Filter

Dans l'exemple ci-dessous, les statistiques d'état sont affichées.


# ipfstat -s
IP states added:
        0 TCP
        0 UDP
        0 ICMP
        0 hits
        0 misses
        0 maximum
        0 no memory
        0 max bucket
        0 active
        0 expired
        0 closed
State logging enabled

State table bucket statistics:
        0 in use        
        0.00% bucket usage
        0 minimal length
        0 maximal length
        0.000 average length

ProcedureAffichage des tables de statistiques de Oracle Solaris IP Filter

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichage des statistiques NAT


    # ipnat -s
    

Exemple 26–19 Affichage des statistiques NAT de Oracle Solaris IP Filter

Dans l'exemple ci-dessous, les statistiques NAT sont affichées.


# ipnat -s
mapped  in      0       out     0
added   0       expired 0
no memory       0       bad nat 0
inuse   0
rules   1
wilds   0

ProcedureAffichage des statistiques de pool d'adresses de Oracle Solaris IP Filter

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichage des statistiques de pool d'adresses


    # ippool -s
    

Exemple 26–20 Affichage des statistiques de pool d'adresses de Oracle Solaris IP Filter

Dans l'exemple ci-dessous, les statistiques de pool d'adresses sont affichées.


# ippool -s
Pools:  3
Hash Tables:    0
Nodes:  0

Utilisation des fichiers journaux de Oracle Solaris IP Filter

Tableau 26–6 Utilisation des fichiers journaux de Oracle Solaris IP Filter (liste des tâches)

Tâche 

Description 

Voir 

Création d'un fichier journal 

Créez un fichier journal Oracle Solaris IP Filter distinct. 

Configuration d'un fichier journal de Oracle Solaris IP Filter

Affichage des fichiers journaux 

Affichez le fichier journal normal et les fichiers journaux d'état et NAT à l'aide de la commande ipmon.

Affichage des fichiers journaux de Oracle Solaris IP Filter

Vidage du tampon de journalisation des paquets 

Supprimez le contenu du tampon de journalisation des paquets à l'aide de la commande ipmon - F.

Vidage du fichier journal de paquets

Enregistrement des paquets consignés dans un fichier 

Les paquets consignés peuvent être enregistrés dans un fichier afin d'être consultés par la suite. 

Enregistrement dans un fichier des paquets consignés

ProcedureConfiguration d'un fichier journal de Oracle Solaris IP Filter

Par défaut, toutes les informations des journaux de Oracle Solaris IP Filter sont enregistrées dans le fichier syslogd. Configurez un fichier journal afin de séparer les informations de trafic Oracle Solaris IP Filter enregistrées des autres données susceptibles d'être consignées dans le fichier journal par défaut. Procédez comme suit.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Ajoutez les lignes suivantes au fichier /etc/syslog.conf :


    # Save IPFilter log output to its own file 
    local0.debug             /var/log/log-name
    

    Remarque –

    Sur la deuxième ligne, séparez local0.debug de /var/log/ journal à l'aide de la touche de tabulation (non la barre d'espace).


  3. Créez le fichier journal.


    # touch /var/log/log-name
    
  4. Redémarrez le service de journal système.


    # svcadm restart system-log
    

Exemple 26–21 Création d'un journal Oracle Solaris IP Filter

Dans l'exemple ci-dessous, le fichier ipmon.log est créé pour archiver les informations IP Filter.

Dans /etc/syslog.conf :


# Save IPFilter log output to its own file 
local0.debug             /var/log/ipmon.log

Sur la ligne de commande :


# touch /var/log/ipmon.log
# svcadm restart system-log

ProcedureAffichage des fichiers journaux de Oracle Solaris IP Filter

Avant de commencer

Il est conseillé de créer un fichier journal distinct pour enregistrer les données Oracle Solaris IP Filter. Reportez-vous à la section Configuration d'un fichier journal de Oracle Solaris IP Filter.

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Affichez le fichier journal normal, le fichier journal NAT ou le fichier journal d'état. Pour afficher un fichier journal, tapez la commande ci-dessous, conjointement avec l'option adéquate :


    # ipmon -o [S|N|I] filename
    
    S

    Affiche le fichier journal d'état.

    N

    Affiche le fichier journal NAT.

    I

    Affiche le fichier journal IP normal.

    Pour afficher le fichier journal normal et les fichiers journaux d'état et NAT, appliquez les options :


    # ipmon -o SNI filename
    
    • Si, dans un premier temps, vous avez arrêté manuellement le démon ipmon, vous pouvez également exécuter la commande suivante pour afficher le fichier journal de Oracle Solaris IP Filter et les fichiers journaux d'état et NAT :


      # ipmon -a filename
      

      Remarque –

      N'utilisez pas la syntaxe ipmon -a si le démon ipmon est en cours d'exécution. Normalement, le démon démarre automatiquement à l'initialisation du système. Si vous exécutez la commande ipmon -a, une autre copie de ipmon s'ouvre également. Dans ce cas, les deux copies lisent les mêmes informations de journal, mais tout message du journal n'est reçu que par l'une d'elles.


    Pour plus d'informations sur l'affichage des fichiers journaux, reportez-vous à la page de manuel ipmon(1M).


Exemple 26–22 Affichage des fichiers journaux de Oracle Solaris IP Filter

L'exemple ci-dessous présente la sortie du fichier /var/ipmon.log.


# ipmon -o SNI /var/ipmon.log
02/09/2004 15:27:20.606626 hme0 @0:1 p 129.146.157.149 -> 
129.146.157.145 PR icmp len 20 84 icmp echo/0 IN

ou


# pkill ipmon
# ipmon -aD /var/ipmon.log
02/09/2004 15:27:20.606626 hme0 @0:1 p 129.146.157.149 -> 
129.146.157.145 PR icmp len 20 84 icmp echo/0 IN

ProcedureVidage du fichier journal de paquets

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Videz le tampon de journalisation des paquets.


    # ipmon -F
    

Exemple 26–23 Vidage du fichier journal de paquets

L'exemple ci-dessous présente la sortie obtenue en cas de suppression d'un fichier journal. Le système génère un rapport même si le fichier journal est vide, comme dans cet exemple.


# ipmon -F
0 bytes flushed from log buffer
0 bytes flushed from log buffer
0 bytes flushed from log buffer

ProcedureEnregistrement dans un fichier des paquets consignés

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Enregistrez dans un fichier les paquets consignés.


    # cat /dev/ipl > filename
    

    Continuez la journalisation des paquets dans le fichier et interrompez la procédure en tapant Ctrl-C pour afficher de nouveau l'invite de ligne de commande.


Exemple 26–24 Enregistrement dans un fichier des paquets consignés

L'exemple ci-dessous présente les résultats obtenus lorsque les paquets consignés sont enregistrés dans un fichier.


# cat /dev/ipl > /tmp/logfile
^C#

# ipmon -f /tmp/logfile
02/09/2004 15:30:28.708294 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 52 -S IN
02/09/2004 15:30:28.708708 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 40 -A IN
02/09/2004 15:30:28.792611 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 70 -AP IN
02/09/2004 15:30:28.872000 hme0 @0:1 p 129.146.157.149,33923 -> 
 129.146.157.145,23 PR tcp len 20 40 -A IN
02/09/2004 15:30:28.872142 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 43 -AP IN
02/09/2004 15:30:28.872808 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 40 -A IN
02/09/2004 15:30:28.872951 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 47 -AP IN
02/09/2004 15:30:28.926792 hme0 @0:1 p 129.146.157.149,33923 -> 
  129.146.157.145,23 PR tcp len 20 40 -A IN 
.
.
(output truncated)

Création et modification des fichiers de configuration Oracle Solaris IP Filter

Vous devez modifier directement les fichiers de configuration afin de créer et modifier les ensembles de règles et les pools d'adresses. Les fichiers de configuration suivent les règles de syntaxe UNIX standard :

ProcedureCréation d'un fichier de configuration Oracle Solaris IP Filter

La procédure ci-dessous décrit la configuration des :

  1. Connectez-vous en tant que superutilisateur ou prenez un rôle bénéficiant du profil des droits de gestion IP Filter.

    Vous pouvez créer un rôle et lui attribuer le profil de droits de gestion IP Filter. Pour créer un rôle et l'attribuer à un utilisateur, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.

  2. Lancez l'éditeur de fichiers de votre choix. Créez et modifiez le fichier de configuration de la fonction que vous souhaitez configurer.

    • Pour créer un fichier de configuration des règles de filtrage de paquets, modifiez le fichier ipf.conf.

      Oracle Solaris IP Filter utilise les règles de filtrage de paquets spécifiées dans le fichier ipf.conf. Si vous placez le fichier de règles de filtrage de paquets dans le fichier /etc/ipf/ipf.conf, ce fichier est chargé à l'initialisation du système. Pour empêcher le chargement des règles de filtrage à l'initialisation, le cas échéant, placez-les dans le fichier de votre choix. Vous pouvez ensuite activer les règles à l'aide de la commande ipf, comme décrit à la section Activation d'un nouvel ensemble de règles de filtrage de paquets ou d'un ensemble mis à jour.

      Pour plus d'informations sur la création de règles de filtrage de paquets, reportez-vous à la section Utilisation de la fonctionnalité de filtrage de paquets de Oracle Solaris IP Filter.


      Remarque –

      Si le fichier ipf.conf est vide, aucun filtrage n'est appliqué. Un fichier ipf.conf vide correspond à un ensemble de règles défini comme suit :


      pass in all
      pass out all

    • Pour créer un fichier de configuration des règles NAT, modifiez le fichier ipnat.conf.

      &ProductBase IP Filter utilise les règles NAT spécifiées dans le fichier ipnat.conf. Si vous placez le fichier de règles NAT dans le fichier >/etc/ipf/ipnat.conf, ce fichier est chargé à l'initialisation du système. Pour empêcher le chargement des règles NAT à l'initialisation, le cas échéant, placez le fichier ipnat.conf dans le dossier de votre choix. Ensuite, vous pouvez activer les règles NAT à l'aide de la commande ipnat.

      Pour plus d'informations sur la création de règles NAT, reportez-vous à la section Utilisation de la fonctionnalité NAT de Oracle Solaris IP Filter.

    • Pour créer un fichier de configuration des pools d'adresses, modifiez le fichier ippool.conf.

      Oracle Solaris IP Filter utilise le pool d'adresses spécifié dans le fichier ippool.conf. Si vous placez le fichier de règles du pool d'adresses dans le fichier /etc/ipf/ippool.conf, ce fichier est chargé à l'initialisation du système. Pour empêcher le chargement du pool d'adresses à l'initialisation, le cas échéant, placez le fichier ippool.conf dans le dossier de votre choix. Ensuite, vous pouvez activer le pool d'adresses à l'aide de la commande ippool.

      Pour plus d'informations sur la création de pools d'adresses, reportez-vous à la section Utilisation de la fonctionnalité de pools d'adresses de Oracle Solaris IP Filter.

Exemples de fichiers de configuration Oracle Solaris IP Filter

Les exemples ci-dessous illustrent les règles de filtrage de paquets utilisées dans les configurations de filtrage.


Exemple 26–25 Configuration d'un hôte Oracle Solaris IP Filter

Cet exemple correspond à une configuration définie sur une machine hôte avec une interface réseau elxl.


# pass and log everything by default
pass in log on elxl0 all
pass out log on elxl0 all

# block, but don't log, incoming packets from other reserved addresses
block in quick on elxl0 from 10.0.0.0/8 to any
block in quick on elxl0 from 172.16.0.0/12 to any

# block and log untrusted internal IPs. 0/32 is notation that replaces 
# address of the machine running Solaris IP Filter.
block in log quick from 192.168.1.15 to <thishost>
block in log quick from 192.168.1.43 to <thishost>

# block and log X11 (port 6000) and remote procedure call 
# and portmapper (port 111) attempts
block in log quick on elxl0 proto tcp from any to elxl0/32 port = 6000 keep state
block in log quick on elxl0 proto tcp/udp from any to elxl0/32 port = 111 keep state

Cet ensemble de règles commence par deux règles illimitées qui permettent à tout type de données d'entrer et sortir via l'interface elxl. Le deuxième ensemble de règles empêche tout paquet entrant issu des espaces d'adresses privées 10.0.0.0 et 172.16.0.0 de traverser la pare-feu. L'ensemble de règles suivant bloque des adresses internes spécifiques de la machine hôte. Enfin, le dernier ensemble de règles empêche l'entrée des paquets via les ports 6000 et 111.



Exemple 26–26 Configuration d'un serveur Oracle Solaris IP Filter

Cet exemple présente la configuration d'une machine hôte tenant lieu de serveur Web. Cette machine possède une interface réseau eri.


# web server with an eri interface
# block and log everything by default; then allow specific services
# group 100 - inbound rules
# group 200 - outbound rules
# (0/32) resolves to our IP address)
*** FTP proxy ***


# block short packets which are packets fragmented too short to be real.
block in log quick all with short


# block and log inbound and outbound by default, group by destination
block in log on eri0 from any to any head 100
block out log on eri0 from any to any head 200


# web rules that get hit most often
pass in quick on eri0 proto tcp from any \
to eri0/32 port = http flags S keep state group 100
pass in quick on eri0 proto tcp from any \
to eri0/32 port = https flags S keep state group 100


# inbound traffic - ssh, auth
pass in quick on eri0 proto tcp from any \
to eri0/32 port = 22 flags S keep state group 100
pass in log quick on eri0 proto tcp from any \
to eri0/32 port = 113 flags S keep state group 100
pass in log quick on eri0 proto tcp from any port = 113 \
to eri0/32 flags S keep state group 100


# outbound traffic - DNS, auth, NTP, ssh, WWW, smtp
pass out quick on eri0 proto tcp/udp from eri0/32 \
to any port = domain flags S keep state group 200
pass in quick on eri0 proto udp from any port = domain to eri0/32 group 100

pass out quick on eri0 proto tcp from eri0/32 \
to any port = 113 flags S keep state group 200
pass out quick on eri0 proto tcp from eri0/32 port = 113 \
to any flags S keep state group 200

pass out quick on eri0 proto udp from eri0/32 to any port = ntp group 200
pass in quick on eri0 proto udp from any port = ntp to eri0/32 port = ntp group 100

pass out quick on eri0 proto tcp from eri0/32 \
to any port = ssh flags S keep state group 200

pass out quick on eri0 proto tcp from eri0/32 \
to any port = http flags S keep state group 200
pass out quick on eri0 proto tcp from eri0/32 \
to any port = https flags S keep state group 200

pass out quick on eri0 proto tcp from eri0/32 \
to any port = smtp flags S keep state group 200


# pass icmp packets in and out
pass in quick on eri0 proto icmp from any to eri0/32  keep state group 100
pass out quick on eri0 proto icmp from eri0/32 to any keep state group 200


# block and ignore NETBIOS packets
block in quick on eri0 proto tcp from any \
to any port = 135 flags S keep state group 100

block in quick on eri0 proto tcp from any port = 137 \
to any flags S keep state group 100
block in quick on eri0 proto udp from any to any port = 137 group 100
block in quick on eri0 proto udp from any port = 137 to any group 100

block in quick on eri0 proto tcp from any port = 138 \
to any flags S keep state group 100
block in quick on eri0 proto udp from any port = 138 to any group 100

block in quick on eri0 proto tcp from any port = 139 to any flags S keep state
group 100
block in quick on eri0 proto udp from any port = 139 to any group 100


Exemple 26–27 Configuration d'un routeur Oracle Solaris IP Filter

Cet exemple présente la configuration d'un routeur possédant une interface interne, ce0, et une interface externe, ce1.


# internal interface is ce0 at 192.168.1.1
# external interface is ce1 IP obtained via DHCP
# block all packets and allow specific services
*** NAT ***
*** POOLS ***


# Short packets which are fragmented too short to be real.
block in log quick all with short


# By default, block and log everything.
block in log on ce0 all
block in log on ce1 all
block out log on ce0 all
block out log on ce1 all


# Packets going in/out of network interfaces that aren't on the loopback
# interface should not exist.
block in log quick on ce0 from 127.0.0.0/8 to any
block in log quick on ce0 from any to 127.0.0.0/8
block in log quick on ce1 from 127.0.0.0/8 to any
block in log quick on ce1 from any to 127.0.0.0/8


# Deny reserved addresses.
block in quick on ce1 from 10.0.0.0/8 to any
block in quick on ce1 from 172.16.0.0/12 to any
block in log quick on ce1 from 192.168.1.0/24 to any
block in quick on ce1 from 192.168.0.0/16 to any


# Allow internal traffic
pass in quick on ce0 from 192.168.1.0/24 to 192.168.1.0/24
pass out quick on ce0 from 192.168.1.0/24 to 192.168.1.0/24


# Allow outgoing DNS requests from our servers on .1, .2, and .3
pass out quick on ce1 proto tcp/udp from ce1/32 to any port = domain keep state
pass in quick on ce0 proto tcp/udp from 192.168.1.2 to any port = domain keep state
pass in quick on ce0 proto tcp/udp from 192.168.1.3 to any port = domain keep state


# Allow NTP from any internal hosts to any external NTP server.
pass in quick on ce0 proto udp from 192.168.1.0/24 to any port = 123 keep state
pass out quick on ce1 proto udp from any to any port = 123 keep state


# Allow incoming mail
pass in quick on ce1 proto tcp from any to ce1/32 port = smtp keep state
pass in quick on ce1 proto tcp from any to ce1/32 port = smtp keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = smtp keep state


# Allow outgoing connections: SSH, WWW, NNTP, mail, whois
pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 22 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 22 keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 80 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 80 keep state
pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = 443 keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = 443 keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = nntp keep state
block in quick on ce1 proto tcp from any to any port = nntp keep state
pass out quick on ce1 proto tcp from 192.168.1.0/24 to any port = nntp keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = smtp keep state

pass in quick on ce0 proto tcp from 192.168.1.0/24 to any port = whois keep state
pass out quick on ce1 proto tcp from any to any port = whois keep state


# Allow ssh from offsite
pass in quick on ce1 proto tcp from any to ce1/32 port = 22 keep state


# Allow ping out
pass in quick on ce0 proto icmp all keep state
pass out quick on ce1 proto icmp all keep state


# allow auth out
pass out quick on ce1 proto tcp from ce1/32 to any port = 113 keep state
pass out quick on ce1 proto tcp from ce1/32 port = 113 to any keep state


# return rst for incoming auth
block return-rst in quick on ce1 proto tcp from any to any port = 113 flags S/SA


# log and return reset for any TCP packets with S/SA
block return-rst in log on ce1 proto tcp from any to any flags S/SA


# return ICMP error packets for invalid UDP packets
block return-icmp(net-unr) in proto udp all