JavaScript is required to for searching.
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)
search filter icon
search icon

Información del documento

Prefacio

1.  Uso de protección de enlaces en entornos virtualizados

2.  Ajuste de red (tareas)

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)

5.  Filtro IP (tareas)

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)

11.  Intercambio de claves de Internet (referencia)

Glosario

Índice

Protección de servidores web con el Proxy SSL en el nivel del núcleo (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

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.

  1. Detenga el servidor web.
    # svcadm disable svc:/network/http:apache22
  2. Coloque la clave privada del servidor y el certificado del servidor en un archivo.

    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
  3. Determine qué parámetros desea utilizar con el comando ksslcfg.

    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.

  4. Cree la instancia de servicio para 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:

    • Especifique PEM o PKCS #12 como formato de clave.
      # ksslcfg create -f key-format -i key-and-certificate-file \
      -p password-file -x proxy-port ssl-port
    • Especifique PKCS #11 como formato de clave.
      # ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ 
      -p password-file -x proxy-port ssl-port
  5. Verifique que la instancia del servicio esté en línea.
    # 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
  6. Configure el servidor web para recibir el puerto proxy SSL.

    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
  7. Defina una dependencia SMF para el servidor web.

    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
  8. Active el servicio de servidor web.
    # svcadm enable svc:/network/http:apache22

Cómo configurar un Oracle iPlanet Web Server para que utilice el Proxy SSL en el nivel del núcleo

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.

  1. Detenga el servidor web.

    Utilice la interfaz web del administrador para detener el servidor. Para obtener instrucciones, consulte Oracle iPLANET WEB SERVER 7.0.15.

  2. Determine qué parámetros desea utilizar con el comando ksslcfg.

    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.

  3. Cree la instancia de servicio para 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:

    • Especifique PEM o PKCS #12 como formato de clave.
      # ksslcfg create -f key-format -i key-and-certificate-file \
      -p password-file -x proxy-port ssl-port
    • Especifique PKCS #11 como formato de clave.
      # ksslcfg create -f pkcs11 -T PKCS#11-token -C certificate-label \ 
      -p password-file -x proxy-port ssl-port
  4. Verifique que la instancia esté en línea.
    # svcs svc:/network/ssl/proxy
    STATE          STIME    FMRI
    online         02:22:22 svc:/network/ssl/proxy:default
  5. Configure el servidor web para recibir el puerto proxy SSL.

    Para obtener instrucciones, consulte Oracle iPLANET WEB SERVER 7.0.15.

  6. Defina una dependencia SMF para el servidor web.

    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
  7. Active el servicio de servidor web.
    # svcadm enable svc:/network/http:webserver7

Cómo configurar el Proxy SSL en el nivel del núcleo para recurrir al SSL apweb;

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.

  1. En el servidor web Apache 2.2, cree un certificado de claves que utilizará el Proxy SSL en el nivel del núcleo del servidor.
    1. Genere una solicitud de firma de certificado (CSR).

      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).

    2. Envíe la CSR a la autoridad de certificación (CA).
    3. Reemplace el archivo webcert.pem con el certificado firmado de la CA.
  2. Configure el Proxy SSL en el nivel del núcleo con una frase de contraseña y el certificado de clave pública/privada.
    1. Cree, guarde y proteja la frase de contraseña.
      # 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.


    2. Combine el certificado de clave privada y de clave pública en un archivo.
      # cat /root/webcert.pem /root/webkey.pem > /root/webcombo.pem
    3. Configure el Proxy SSL en el nivel del núcleo con un certificado de clave pública/privada y una frase de contraseña.
      # ksslcfg create -f pem -i /root/webcombo.pem -x 8443 -p /root/kssl.pass 443
  3. Configure el servidor web para que escuche en el puerto 8443 el texto sin formato.

    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
  4. Agregue la plantilla del módulo SSL, ssl.conf, al directorio de configuración de Apache.
    # 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.

  5. Active el servidor web para descifrar la frase de contraseña en el archivo /root/kssl.pass.
    1. Cree una secuencia de comandos de shell que lea el archivo kssl.pass.
      # pfedit /root/put-passphrase.sh
      #!/usr/bin/ksh -p
      ## Reads SSL kernel proxy passphrase
      /usr/bin/cat /root/kssl.pass
    2. Haga que la secuencia de comandos sea ejecutable y proteja el archivo.
      # chmod 500 /root/put-passphrase.sh
      # chown webservd:webservd /root/put-passphrase.sh
    3. Modifique el parámetro SSLPassPhraseDialog en el archivo ssl.conf para que llame a esta secuencia de comandos de shell.
      # pfedit /etc/apache2/2.2/ssl.conf
      ...
      ## SSLPassPhraseDialog  builtin
      SSLPassPhraseDialog exec:/root/put-passphrase.sh
  6. Coloque los certificados de clave pública y clave privada del servidor web en la ubicación correcta.

    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
  7. Active el servicio Apache.
    # svcadm enable apache22
  8. (Opcional) Verifique que ambos puertos funcionen.

    Utilice los comandos openssl s_client y kstat para ver los paquetes.

    1. Utilice un cifrado que esté disponible en el Proxy SSL en el nivel del núcleo.
      # 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
    2. Utilice un cifrado que no esté disponible en el Proxy SSL en el nivel del núcleo.
      # 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

Cómo utilizar el Proxy SSL en el nivel del núcleo en las zonas

El Proxy SSL en el nivel del núcleo funciona en zonas con las siguientes limitaciones:

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.

  1. En la zona no global, detenga el servidor web.

    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
  2. En la zona global, cree la instancia de servicio para el Proxy SSL en el nivel del núcleo en la zona.

    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
  3. En la zona no global, active la instancia de servicio web.

    Por ejemplo, active el servicio web en apache-zone.

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