Guía de administración del sistema: servicios IP

ProcedureCómo utilizar IPsec para proteger un servidor web del tráfico que no procede de Internet

Un servidor web seguro permite a los clientes web comunicarse con el servicio web. En un servidor web seguro, el tráfico que no sea de la red debe someterse a comprobaciones de seguridad. El siguiente procedimiento incluye las omisiones del tráfico de red. Además, este servidor web puede realizar solicitudes de clientes DNS no seguras. El resto del tráfico requiere ESP con los algoritmos AES y SHA-1.

Antes de empezar

Debe encontrarse en la zona global para poder configurar la directiva IPsec. Para una zona de IP exclusiva, configure la directiva IPsec en la zona no global. Ha completado Cómo proteger el tráfico entre dos sistemas con IPsec para que se apliquen las condiciones siguientes:

  1. En la consola del sistema, asuma el rol de administrador principal o conviértase en superusuario.

    La función de administrador principal incluye el perfil de administrador principal. Para crear el rol y asignarlo a un usuario, consulte el Capítulo 2, Working With the Solaris Management Console (Tasks) de System Administration Guide: Basic Administration.


    Nota –

    El inicio de sesión remoto expone el tráfico cuya seguridad es crítica a intrusos. Aunque proteja de algún modo el inicio de sesión remoto, la seguridad del sistema se reducirá a la seguridad de la sesión remota. Utilice el comando ssh para iniciar una sesión remota de forma segura.


  2. Determine qué servicios deben omitir las comprobaciones de directiva de seguridad.

    En el caso de un servidor web, estos servicios incluyen los puertos TCP 80 (HTTP) y 443 (HTTP seguro). Si el servidor web proporciona consultas de nombres DNS, el servidor también podría incluir el puerto 53 tanto para TCP como para UDP.

  3. Cree una directiva IPsec para el servidor web y habilítela.

    • A partir de la versión Solaris 10 4/09, siga del Paso 4 al Paso 7.

    • Si está ejecutando una versión anterior a Solaris 10 4/09 , siga del Paso 8 al Paso 11.

    El Paso 12 es opcional en todas las versiones de Solaris.

  4. Agregue la directiva de servidor web al archivo de directiva IPsec.

    Agregue las líneas siguientes al archivo /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}

    Esta configuración sólo permite que el tráfico seguro acceda al sistema, con las excepciones de omisión que se describen en el Paso 4.

  5. Compruebe la sintaxis del archivo de directiva IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    
  6. Actualice la directiva IPsec.


    # svcadm refresh svc:/network/ipsec/policy:default
    
  7. Actualice las claves para IPsec.

    La configuración se ha completado. Si lo desea, puede llevar a cabo el Paso 12.

  8. Cree un archivo en el directorio /etc/inet para la directiva del servidor web.


    Nota –

    Los siguientes pasos configuran un servidor web que está ejecutando una versión anterior a Solaris 10 4/09.


    Asigne al archivo un nombre que indique su finalidad, por ejemplo IPsecWebInitFile. Escriba las siguientes líneas en el archivo:


    # 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}

    Esta configuración sólo permite que el tráfico seguro acceda al sistema, con las excepciones de omisión que se describen en el Paso 4.

  9. Copie el contenido del archivo que haya creado en el Paso 8 en el archivo /etc/inet/ipsecinit.conf.

  10. Proteja el archivo IPsecWebInitFile con permisos de sólo lectura.


    # chmod 400 IPsecWebInitFile
    
  11. Proteja el servidor web sin reiniciar.

    Elija una de las siguientes opciones:

    • Si está utilizando IKE para la administración de claves, detenga el daemon in.iked y reinícielo.


      # pkill in.iked
      # /usr/lib/inet/in.iked
      
    • Si está administrando las claves manualmente, utilice los comandos ipseckey e ipsecconf.

      Utilice IPsecWebInitFile como argumento para el comando ipsecconf. Si utiliza el archivo ipsecinit.conf como argumento, el comando ipsecconf genera errores cuando las directivas del archivo ya están implementadas en el sistema.


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

    Precaución – Precaución –

    Lea la advertencia cuando ejecute el comando ipsecconf. Un socket que ya está bloqueado, es decir, un socket que ya está en uso, constituye una puerta trasera no segura al sistema. Si desea más información al respecto, consulte Consideraciones de seguridad para ipsecinit.conf e ipsecconf. La misma advertencia aparece al reiniciar el daemon in.iked.


    También puede reiniciar. Al reiniciar se asegura de que la directiva IPsec esté aplicada en todas las conexiones TCP. Al reiniciar, las conexiones TCP utilizan la directiva del archivo de directiva IPsec.

  12. (Opcional) Active un sistema remoto para comunicarse con el servidor web para tráfico que no sea de red.

    Escriba la siguiente directiva en el archivo ipsecinit.conf de un sistema remoto:


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

    Un sistema remoto puede comunicarse de forma segura con el servidor web para tráfico que no sea de web sólo cuando las directivas IPsec del sistema coinciden.