| 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) |
1. Utilisation de la protection des liens dans des environnements virtualisés
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
4. IP Filter dans Oracle Solaris (présentation)
6. Architecture IPsec (présentation)
7. Configuration d'IPsec (tâches)
8. Architecture IPsec (référence)
9. Protocole IKE (présentation)
Les procédures suivantes indiquent comment configurer des serveurs Web de manière à ce qu'ils utilisent 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.
# svcadm disable svc:/network/http:apache22
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
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.
Indiquez le port proxy SSL et les paramètres associés à l'aide de l'un des formats suivants :
# ksslcfg create -f key-format -i key-and-certificate-file \ -p password-file -x proxy-port ssl-port
# ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ -p password-file -x proxy-port ssl-port
# 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
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
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 :
# 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
# svcadm enable svc:/network/http:apache22
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é.
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.
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.
Indiquez le port proxy SSL et les paramètres associés à l'aide de l'un des formats suivants :
# ksslcfg create -f key-format -i key-and-certificate-file \ -p password-file -x proxy-port ssl-port
# ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ -p password-file -x proxy-port ssl-port
# svcs svc:/network/ssl/proxy STATE STIME FMRI online 02:22:22 svc:/network/ssl/proxy:default
Pour plus d'instructions, reportez-vous à Oracle iPLANET WEB SERVER 7.0.15.
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
# svcadm enable svc:/network/http:webserver7
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é.
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).
# 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.
# cat /root/webcert.pem /root/webkey.pem > /root/webcombo.pem
# ksslcfg create -f pem -i /root/webcombo.pem -x 8443 -p /root/kssl.pass 443
Modifiez la ligne Listen dans le fichier /etc/apache2/2.2/httpd.conf.
# pfedit /etc/apache2/2.2/httpd.conf ... ## Listen 80 Listen 8443
# 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.
# pfedit /root/put-passphrase.sh #!/usr/bin/ksh -p ## Reads SSL kernel proxy passphrase /usr/bin/cat /root/kssl.pass
# chmod 500 /root/put-passphrase.sh # chown webservd:webservd /root/put-passphrase.sh
# pfedit /etc/apache2/2.2/ssl.conf ... ## SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/root/put-passphrase.sh
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
# svcadm enable apache22
Utilisez les commandes openssl s_client et kstat pour afficher les paquets.
# 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
# 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
Le proxy SSL au niveau du noyau fonctionne dans les zones avec les restrictions suivantes :
L'ensemble de la gestion SSL au niveau du noyau doit être réalisée dans la zone globale. L'administrateur de la zone globale doit pouvoir accéder aux fichiers de clés et de certificat de la zone locale. Le serveur Web de la zone locale peut être démarré une fois que l'instance de service a été configurée à l'aide de la commande ksslcfg dans la zone globale.
Un nom d'hôte ou une adresse IP spécifique doit être spécifié(e) avec la commande ksslcfg lorsque vous configurez l'instance. En particulier, l'instance ne peut pas spécifier INADDR_ANY pour l'adresse IP.
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é.
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
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
Activez par exemple le service Web dans apache-zone.
apache-zone # svcadm enable svc:/network/http:apache22