Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Protección de la red en Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library (Español) |
1. Uso de protección de enlaces en entornos virtualizados
3. Servidores web y el protocolo de capa de sockets seguros
Proxy SSL en el nivel del núcleo cifra las comunicaciones con el servidor web
Protección de servidores web con el Proxy SSL en el nivel del núcleo (tareas)
Cómo configurar un servidor web Apache 2.2 para utilizar el Proxy SSL en el nivel del núcleo
Cómo configurar un Oracle iPlanet Web Server para que utilice el Proxy SSL en el nivel del núcleo
Cómo configurar el Proxy SSL en el nivel del núcleo para recurrir al SSL apweb;
Cómo utilizar el Proxy SSL en el nivel del núcleo en las zonas
4. Filtro IP en Oracle Solaris (descripción general)
6. Arquitectura de seguridad IP (descripción general)
7. Configuración de IPsec (tareas)
8. Arquitectura de seguridad IP (referencia)
9. Intercambio de claves de Internet (descripción general)
10. Configuración de IKE (tareas)
Los procedimientos siguientes muestran cómo configurar servidores web para utilizar el Proxy SSL en el nivel del núcleo.
Cómo configurar un servidor web Apache 2.2 para utilizar el Proxy SSL en el nivel del núcleo
Cómo configurar un Oracle iPlanet Web Server para que utilice el Proxy SSL en el nivel del núcleo
Cómo configurar el Proxy SSL en el nivel del núcleo para recurrir al SSL apweb;
Cómo utilizar el Proxy SSL en el nivel del núcleo en las zonas
El Proxy SSL en el nivel del núcleo puede mejorar la velocidad del procesamiento de paquetes SSL en un servidor web Apache 2.2. Este procedimiento implementa el escenario simple que se muestra en la Figura 3-1.
Antes de empezar
Ya configuró un servidor web Apache 2.2. Este servidor web se incluye en Oracle Solaris.
Debe asumir el rol root.
# svcadm disable svc:/network/http:apache22
Si únicamente se especifica el parámetro SSLCertificateFile en el archivo ssl.conf, el archivo especificado se puede utilizar directamente para el Proxy SSL en el nivel del núcleo.
Si el parámetro SSLCertificateKeyFile también está especificado, debe combinar el archivo de certificado y el archivo de clave privada. Ejecute un comando similar al siguiente para combinar los archivos:
# cat cert.pem key.pem > cert-and-key.pem
Consulte la página del comando man ksslcfg(1M) para conocer la lista completa de opciones. Los parámetros que debe proporcionar son:
key-format: se utiliza con la opción -f para definir el certificado y el formato de clave. Para el Proxy SSL en el nivel del núcleo, los formatos admitidos son pkcs11, pemy pkcs12.
key-and-certificate-file: se utiliza con la opción -i para definir la ubicación del archivo que almacena la clave de servidor y el certificado para las opciones de key-format pem y pkcs12.
password-file: se utiliza con la opción -p para obtener la contraseña utilizada para cifrar la clave privada para las opciones de key-format pem o pkcs12. Para pkcs11, la contraseña se utiliza para realizar una autenticación al token PKCS #11. Debe proteger el archivo de contraseña con los permisos 0400. El archivo se requiere para reinicios desatendidos.
token-label: se utiliza con la opción -T para especificar el token PKCS #11.
certificate-label: se utiliza con la opción -C para seleccionar la etiqueta del objeto de certificado en el token PKCS #11.
proxy-port: se utiliza con la opción -x para definir el puerto proxy SSL. Debe especificar un puerto diferente del puerto estándar 80. El servidor web escucha en el puerto proxy SSL el tráfico de texto sin formato sin cifrar. Por lo general, el valor es 8443.
ssl-port: especifica el puerto de escucha para el Proxy SSL en el nivel del núcleo. Por lo general, el valor es 443.
Especifique el puerto proxy SSL y los parámetros asociados mediante uno de los siguientes formatos:
# 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 siguiente salida indica que no se creó la instancia de servicio:
svcs: Pattern 'svc:/network/ssl/proxy' doesn't match any instances STATE STIME FMRI
Edite el archivo /etc/apache2/2.2/http.conf y agregue una línea para definir el puerto proxy SSL. Si utiliza la dirección IP del servidor, el servidor web escucha en esa interfaz solamente. La línea es similar a la siguiente:
Listen proxy-port
El servicio de servidor web puede comenzar solamente después de que se haya iniciado la instancia del Proxy SSL en el nivel del núcleo. Los siguientes comandos establecen esa dependencia:
# 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
El Proxy SSL en el nivel del núcleo puede mejorar la velocidad del procesamiento de paquetes SSL en Oracle iPlanet Web Server. Este procedimiento implementa el escenario simple que se muestra en la Figura 3-1.
Antes de empezar
Ya instaló y configuró Oracle iPlanet Web Server. El servidor puede descargarse de Oracle iPlanet Web Server. Para obtener instrucciones, consulte Oracle iPLANET WEB SERVER 7.0.15.
Debe convertirse en un administrador que tiene asignado el perfil de derechos de seguridad de red. Para obtener más información, consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.
Utilice la interfaz web del administrador para detener el servidor. Para obtener instrucciones, consulte Oracle iPLANET WEB SERVER 7.0.15.
Consulte la página del comando man ksslcfg(1M) para conocer la lista completa de opciones. Para obtener la lista de parámetros que debe proporcionar, consulte el Paso 3 in Cómo configurar un servidor web Apache 2.2 para utilizar el Proxy SSL en el nivel del núcleo.
Especifique el puerto proxy SSL y los parámetros asociados mediante uno de los siguientes formatos:
# 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
Para obtener instrucciones, consulte Oracle iPLANET WEB SERVER 7.0.15.
El servicio de servidor web puede comenzar solamente después de que se haya iniciado la instancia del Proxy SSL en el nivel del núcleo. Los siguientes comandos establecen esa dependencia, suponiendo que el FMRI del servicio de servidor es 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
En este procedimiento, debe configurar un servidor web Apache 2.2 desde cero y configurar el Proxy SSL en el nivel del núcleo como el principal mecanismo de control de sesiones SSL. Cuando el conjunto de cifrados SSL que ofrece el cliente no incluye un cifrado que ofrece el Proxy SSL en el nivel del núcleo, el servidor web Apache 2.2 sirve como un mecanismo de reserva. Este procedimiento implementa el escenario complejo que se muestra en la Figura 3-2.
Antes de empezar
Debe asumir el rol root. Para obtener más información, consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.
El siguiente comando genera una CSR y la clave privada asociada para el Proxy SSL en el nivel del núcleo:
# 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
Para obtener más información, consulte la página del comando man openssl(5).
# echo "RefrigeratorsAreCool" > /root/kssl.pass # chmod 440 /root/kssl.pass; chown root:webservd /root/kssl.pass
Nota - La frase de contraseña no puede contener espacios en blanco.
# 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
Edite la línea Listen en el archivo /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
Este módulo agrega la escucha en el puerto 443 para conexiones cifradas.
# 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
Los valores de los parámetros SSLCertificateFile y SSLCertificateKeyFile del archivo ssl.conf contienen los nombres y la colocación esperados. Puede copiar los certificados a la ubicación correcta o establecer un enlace a ellos.
# 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
Utilice los comandos openssl s_client y kstat para ver los paquetes.
# openssl s_client -cipher RC4-SHA -connect web-server:443
Un aumento de 1 en el contador kstat kssl_full_handshakes verifica que la sesión SSL haya sido gestionada por el Proxy SSL en el nivel del núcleo.
# kstat -m kssl -s kssl_full_handshakes
# openssl s_client -cipher CAMELLIA256-SHA -connect web-server:443
Un aumento de 1 en el contador kstat kssl_fallback_connections verifica que el paquete llegó, pero la sesión SSL fue gestionada por el servidor web Apache.
# kstat -m kssl -s kssl_fallback_connections
Ejemplo 3-1 Configuración de un servidor web Apache 2.2 para utilizar el proxy SSL en el nivel del núcleo
El siguiente comando crea una instancia de servicio para el Proxy SSL en el nivel del núcleo que utiliza el formato de claves pem:
# ksslcfg create -f pem -i cert-and-key.pem -p kssl.pass -x 8443 443
El Proxy SSL en el nivel del núcleo funciona en zonas con las siguientes limitaciones:
Toda la administración SSL del núcleo se debe realizar en la zona global. El administrador de la zona global necesita acceder al certificado de la zona local y los archivos de claves. El servidor web de la zona local se puede iniciar una vez que la instancia de servicio se configure mediante el comando ksslcfg en la zona global.
Debe especificarse un nombre de host o dirección IP específicos con el comando ksslcfg al configurar la instancia. En especial, la instancia no puede especificar INADDR_ANY para la dirección IP.
Antes de empezar
El servicio de servidor web está configurado y activado en la zona no global.
Debe convertirse en un administrador que tiene asignado los perfiles de derechos de seguridad de red y gestión de zonas. Para obtener más información, consulte Cómo usar los derechos administrativos que tiene asignados de Administración de Oracle Solaris 11.1: servicios de seguridad.
Por ejemplo, para detener un servidor web Apache en la zona apache-zone, ejecute el siguiente comando:
apache-zone # svcadm disable svc:/network/http:apache22
Para crear una instancia de servicio para apache-zone, utilice un comando similar al siguiente:
# ksslcfg create -f pem -i /zone/apache-zone/root/keypair.pem \ -p /zone/apache-zone/root/skppass -x 8443 apache-zone 443
Por ejemplo, active el servicio web en apache-zone.
apache-zone # svcadm enable svc:/network/http:apache22