JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Sécurisation du réseau dans Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Français)
search filter icon
search icon

Informations document

Préface

1.  Utilisation de la protection des liens dans des environnements virtualisés

2.  Réglage du réseau (tâches)

3.  Serveurs Web et protocole SSL (Secure Sockets Layer)

Le proxy SSL au niveau du noyau chiffre les communications des serveurs Web

Protection de serveurs Web à l'aide du proxy SSL au niveau du noyau (tâches)

Configuration d'un serveur Web Apache 2.2 afin qu'il utilise le proxy SSL au niveau du noyau

Configuration d'un serveur Oracle iPlanet Web Server afin qu'il utilise le proxy SSL au niveau du noyau

Configuration du proxy SSL au niveau du noyau de manière à utiliser le protocole SSL d'Apache 2.2 comme solution de repli

Utilisation du proxy SSL au niveau du noyau dans les zones

4.  IP Filter dans Oracle Solaris (présentation)

5.  IP Filter (tâches)

6.  Architecture IPsec (présentation)

7.  Configuration d'IPsec (tâches)

8.  Architecture IPsec (référence)

9.  Protocole IKE (présentation)

10.  Configuration du protocole IKE (tâches)

11.  Protocole IKE (référence)

Glossaire

Index

Protection de serveurs Web à l'aide du proxy SSL au niveau du noyau (tâches)

Les procédures suivantes indiquent comment configurer des serveurs Web de manière à ce qu'ils utilisent le proxy SSL au niveau du noyau :

Configuration d'un serveur Web Apache 2.2 afin qu'il utilise le proxy SSL au niveau du noyau

Le proxy SSL au niveau du noyau peut améliorer la vitesse de traitement des paquets SSL sur un serveur Web Apache 2.2. Cette procédure implémente le scénario simple illustré à la Figure 3-1.

Avant de commencer

Vous avez configuré un serveur Web Apache 2.2. Ce serveur Web est inclus dans Oracle Solaris.

Vous devez prendre le rôle root.

  1. Arrêtez le serveur Web.
    # svcadm disable svc:/network/http:apache22
  2. Placez la clé privée du serveur et le certificat du serveur dans un seul fichier.

    Si seul le paramètre SSLCertificateFile est indiqué dans le fichier ssl.conf, le fichier spécifié peut être utilisé directement pour le proxy SSL au niveau du noyau.

    Si le paramètre SSLCertificateKeyFile est également indiqué, vous devez combiner le fichier de certificat et le fichier de clé privée. Exécutez une commande semblable à l'exemple suivant pour combiner les fichiers :

    # cat cert.pem key.pem > cert-and-key.pem
  3. Déterminez les paramètres à utiliser avec la commande ksslcfg.

    La page de manuel ksslcfg(1M) contient la liste complète des options. Voici les paramètres que vous devez fournir :

    • key-format : utilisé avec l'option -f pour définir le certificat et le format de clé. Pour le proxy SSL au niveau du noyau, les formats pris en charge sont les suivants : pkcs11, pem et pkcs12.

    • key-and-certificate-file : utilisé avec l'option -i pour définir l'emplacement du fichier qui stocke la clé de serveur et le certificat pour les options key-format pem ou pkcs12.

    • password-file : utilisé avec l'option -p pour obtenir le mot de passe servant à chiffrer la clé privée pour les options key-format pem ou pkcs12. Pour pkcs11, le mot de passe est utilisé pour authentifier le jeton PKCS #11. Vous devez protéger le fichier de mots de passe à l'aide d'autorisations 0400. Ce fichier est requis pour les réinitialisations sans l'intervention d'un opérateur.

    • token-label : utilisé avec l'option -T pour indiquer le jeton PKCS #11.

    • certificate-label : utilisé avec l'option -C pour sélectionner l'étiquette dans l'objet de certificat dans le jeton PKCS #11.

    • proxy-port : utilisé avec l'option -x pour définir le port proxy SSL. Vous devez spécifier un port différent du port standard 80. Le serveur Web est à l'écoute du trafic de texte en clair non chiffré sur le port proxy SSL. Généralement, la valeur est 8443.

    • ssl-port : indique le port d'écoute pour le proxy SSL au niveau du noyau. Généralement, la valeur est 443.

  4. Créez l'instance de service pour le proxy SSL au niveau du noyau.

    Indiquez le port proxy SSL et les paramètres associés à l'aide de l'un des formats suivants :

    • Indiquez PEM ou PKCS #12 comme format de clé.
      # ksslcfg create -f key-format -i key-and-certificate-file \
      -p password-file -x proxy-port ssl-port
    • Indiquez PKCS #11 comme format de clé.
      # ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ 
      -p password-file -x proxy-port ssl-port
  5. Vérifiez que l'instance de service est en ligne.
    # svcs svc:/network/ssl/proxy
    STATE          STIME    FMRI
    online         02:22:22 svc:/network/ssl/proxy:default

    La sortie suivante indique que l'instance de service n'a pas été créée :

    svcs: Pattern 'svc:/network/ssl/proxy' doesn't match any instances
    STATE          STIME    FMRI
  6. Configurez le serveur Web pour qu'il soit à l'écoute sur le port proxy SSL.

    Modifiez le fichier /etc/apache2/2.2/http.conf et ajoutez une ligne pour définir le port proxy SSL. Si vous utilisez l'adresse IP du serveur, le serveur Web écoute uniquement sur cette interface. La ligne est similaire à ce qui suit :

    Listen proxy-port
  7. Définissez une dépendance SMF pour le serveur Web.

    Le service du serveur Web peut uniquement démarrer une fois que l'instance proxy SSL au niveau du noyau a démarré. Les commandes suivantes établissent cette dépendance&nbsp:

    # svccfg -s svc:/network/http:apache22
    svc:/network/http:apache22> addpg kssl dependency
    ...apache22> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443
    ...apache22> setprop kssl/grouping = astring: require_all
    ...apache22> setprop kssl/restart_on = astring: refresh
    ...apache22> setprop kssl/type = astring: service
    ...apache22> end
  8. Activez le service du serveur Web.
    # svcadm enable svc:/network/http:apache22

Configuration d'un serveur Oracle iPlanet Web Server afin qu'il utilise le proxy SSL au niveau du noyau

Le proxy SSL au niveau du noyau peut améliorer la vitesse de traitement des paquets SSL sur un serveur Oracle iPlanet Web Server. Cette procédure implémente le scénario simple illustré à la Figure 3-1.

Avant de commencer

Vous avez installé et configuré un serveur Oracle iPlanet Web Server. Le serveur peut être téléchargé à partir du site Oracle iPlanet Web Server. Pour plus d'instructions, reportez-vous à Oracle iPLANET WEB SERVER 7.0.15.

Vous devez vous connecter en tant qu'administrateur disposant du profil de droits Network Security (sécurité réseau). Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

  1. Arrêtez le serveur Web.

    Utilisez l'interface Web de l'administrateur pour arrêter le serveur. Pour plus d'instructions, reportez-vous à Oracle iPLANET WEB SERVER 7.0.15.

  2. Déterminez les paramètres à utiliser avec la commande ksslcfg.

    La page de manuel ksslcfg(1M) contient la liste complète des options. Pour obtenir la liste des paramètres que vous devez fournir, reportez-vous à l'Étape 3 in Configuration d'un serveur Web Apache 2.2 afin qu'il utilise le proxy SSL au niveau du noyau.

  3. Créez l'instance de service pour le proxy SSL au niveau du noyau.

    Indiquez le port proxy SSL et les paramètres associés à l'aide de l'un des formats suivants :

    • Indiquez PEM ou PKCS #12 comme format de clé.
      # ksslcfg create -f key-format -i key-and-certificate-file \
      -p password-file -x proxy-port ssl-port
    • Indiquez PKCS #11 comme format de clé.
      # ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ 
      -p password-file -x proxy-port ssl-port
  4. Vérifiez que l'instance est en ligne.
    # svcs svc:/network/ssl/proxy
    STATE          STIME    FMRI
    online         02:22:22 svc:/network/ssl/proxy:default
  5. Configurez le serveur Web pour qu'il soit à l'écoute sur le port proxy SSL.

    Pour plus d'instructions, reportez-vous à Oracle iPLANET WEB SERVER 7.0.15.

  6. Définissez une dépendance SMF pour le serveur Web.

    Le service du serveur Web peut uniquement démarrer une fois que l'instance proxy SSL au niveau du noyau a démarré. Les commandes suivantes établissent cette dépendance, en supposant que le FMRI du service de serveur Web est svc:/network/http:webserver7 :

    # svccfg -s svc:/network/http:webserver7
    svc:/network/http:webserver7> addpg kssl dependency
    ...webserver7> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443
    ...webserver7> setprop kssl/grouping = astring: require_all
    ...webserver7> setprop kssl/restart_on = astring: refresh
    ...webserver7> setprop kssl/type = astring: service
    ...webserver7> end
  7. Activez le service du serveur Web.
    # svcadm enable svc:/network/http:webserver7

Configuration du proxy SSL au niveau du noyau de manière à utiliser le protocole SSL d'Apache 2.2 comme solution de repli

Dans cette procédure, vous configurez de toutes pièces un serveur Web Apache 2.2 et configurez le proxy SSL au niveau du noyau en tant que mécanisme de traitement de session SSL principal. Lorsque l'ensemble de chiffrements SSL proposé par le client n'inclut aucun chiffrement offert par le proxy SSL au niveau du noyau, le serveur Web Apache 2.2 sert de solution de repli. Cette procédure met en oeuvre le scénario complexe illustré à la Figure 3-2.

Avant de commencer

Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

  1. Sur le serveur Apache 2.2, créez un certificat de clé destiné à être utilisé par le proxy SSL au niveau du noyau du serveur.
    1. Générez une demande de signature de certificat (CSR).

      La commande suivante génère une demande de signature de certificat et la clé privée qui lui est associée pour le proxy SSL au niveau du noyau :

      # cd /root
      # openssl req \
      > -x509 -new \
      > -subj "/C=CZ/ST=Prague region/L=Prague/CN=`hostname`" \
      > -newkey rsa:2048 -keyout webkey.pem \
      > -out webcert.pem
      Generating a 2048 bit RSA private key
      .+++
      ........+++
      writing new private key to 'webkey.pem'
      Enter PEM pass phrase: JohnnyCashIsCool
      Verifying - Enter PEM pass phrase:  JohnnyCashIsCool
      #
      # chmod 440 /root/webcert.pem ; chown root:webservd /root/webcert.pem

      Pour plus d'informations, reportez-vous à la page de manuel openssl(5).

    2. Envoyez la demande de signature de certificat à votre autorité de certification (CA).
    3. Remplacez le fichier webcert.pem par le certificat signé fourni par votre autorité de certification.
  2. Configurez le proxy SSL au niveau du noyau avec une phrase de passe et le certificat de clé publique/privée.
    1. Créez, enregistrez et protégez la phrase de passe.
      # echo "RefrigeratorsAreCool" > /root/kssl.pass
      # chmod 440 /root/kssl.pass; chown root:webservd /root/kssl.pass

      Remarque - La phrase de passe ne peut pas contenir d'espace.


    2. Rassemblez le certificat de clé privée et le certificat de clé publique dans un seul fichier.
      # cat /root/webcert.pem /root/webkey.pem > /root/webcombo.pem
    3. Configurez le proxy SSL au niveau du noyau avec le certificat de clé publique/privée et la phrase de passe.
      # ksslcfg create -f pem -i /root/webcombo.pem -x 8443 -p /root/kssl.pass 443
  3. Configurez le serveur Web de manière à ce qu'il écoute le texte en clair sur le port 8443.

    Modifiez la ligne Listen dans le fichier /etc/apache2/2.2/httpd.conf.

    # pfedit /etc/apache2/2.2/httpd.conf
    ...
    ## Listen 80
    Listen 8443
  4. Ajoutez le modèle de module SSL, ssl.conf, au répertoire de configuration Apache.
    # cp /etc/apache2/2.2/samples-conf.d/ssl.conf /etc/apache2/2.2/ssl.conf

    Ce module ajoute l'écoute des connexions chiffrées sur le port 443.

  5. Activez le serveur Web pour déchiffrer la phrase de passe dans le fichier /root/kssl.pass.
    1. Créez un script shell qui lit le fichier kssl.pass.
      # pfedit /root/put-passphrase.sh
      #!/usr/bin/ksh -p
      ## Reads SSL kernel proxy passphrase
      /usr/bin/cat /root/kssl.pass
    2. Définissez le script comme exécutable et protégez le fichier.
      # chmod 500 /root/put-passphrase.sh
      # chown webservd:webservd /root/put-passphrase.sh
    3. Modifiez le paramètre SSLPassPhraseDialog dans le fichier ssl.conf de manière à appeler ce script shell.
      # pfedit /etc/apache2/2.2/ssl.conf
      ...
      ## SSLPassPhraseDialog  builtin
      SSLPassPhraseDialog exec:/root/put-passphrase.sh
  6. Placez les certificats de clés publique et privée du serveur Web aux emplacements appropriés.

    Les valeurs des paramètres SSLCertificateFile et SSLCertificateKeyFile dans le fichier ssl.conf indiquent les emplacements et les noms attendus. Vous pouvez copier les certificats aux emplacements corrects ou créer des liens vers ces emplacements.

    # ln -s  /root/webcert.pem /etc/apache2/2.2/server.crtSSLCertificateFile default location
    # ln -s /root/webkey.pem /etc/apache2/2.2/server.keySSLCertificateKeyFile default location
  7. Activez le service Apache.
    # svcadm enable apache22
  8. (Facultatif) Vérifiez que les deux ports fonctionnent.

    Utilisez les commandes openssl s_client et kstat pour afficher les paquets.

    1. Utilisez un chiffrement qui est disponible au proxy SSL au niveau du noyau.
      # openssl s_client -cipher RC4-SHA -connect web-server:443

      Une augmentation de 1 du compteur kstat kssl_full_handshakes vérifie que la session SSL a été traitée par le proxy SSL au niveau du noyau.

      # kstat -m kssl -s kssl_full_handshakes
    2. Utilisez un chiffrement qui n'est pas disponible au proxy SSL au niveau du noyau.
      # openssl s_client -cipher CAMELLIA256-SHA -connect web-server:443

      Une augmentation de 1 du compteur kstat kssl_fallback_connections vérifie que le paquet est arrivé mais que la session SSL a été traitée par le serveur Web Apache.

      # kstat -m kssl -s kssl_fallback_connections

Exemple 3-1 Configuration d'un serveur Web Apache 2.2 afin qu'il utilise le proxy SSL au niveau du noyau

La commande suivante permet de créer une instance de service pour le proxy SSL au niveau du noyau qui utilise le format de clé pem :

# ksslcfg create -f pem -i cert-and-key.pem -p kssl.pass -x 8443 443

Utilisation du proxy SSL au niveau du noyau dans les zones

Le proxy SSL au niveau du noyau fonctionne dans les zones avec les restrictions suivantes :

Avant de commencer

Le service du serveur Web est configuré et activé dans la zone non globale.

Vous devez vous connecter en tant qu'administrateur disposant des profils de droits Network Security (sécurité réseau) et Zone Management (gestion de zone). Pour plus d'informations, reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

  1. Dans la zone non globale, arrêtez le serveur Web.

    Par exemple, pour arrêter un serveur Web Apache dans la zone apache-zone, exécutez la commande suivante :

    apache-zone # svcadm disable svc:/network/http:apache22
  2. Dans la zone globale, créez l'instance de service pour le proxy SSL au niveau du noyau dans la zone.

    Pour créer une instance de service pour apache-zone, utilisez une commande semblable à ce qui suit :

    # ksslcfg create -f pem -i /zone/apache-zone/root/keypair.pem \
    -p /zone/apache-zone/root/skppass -x 8443 apache-zone 443
  3. Dans la zone non globale, activez l'instance de service web.

    Activez par exemple le service Web dans apache-zone.

    apache-zone # svcadm enable svc:/network/http:apache22