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

Protección del tráfico con IPsec

En esta sección se describen los procedimientos que permiten proteger un servidor web y el tráfico entre dos sistemas. Para proteger una VPN, consulte Protección de una VPN con IPsec (mapa de tareas) . Existen procedimientos adicionales que proporcionan los materiales de claves y las asociaciones de seguridad, y además verifican que IPsec esté funcionando de acuerdo con la configuración establecida.

La información siguiente se aplica a todas las tareas de configuración de IPsec:

ProcedureCómo proteger el tráfico entre dos sistemas con IPsec

Este procedimiento presupone la siguiente configuración:

Antes de empezar

Debe estar en la zona global para configurar la directiva IPsec para el sistema o para una zona de IP compartida. Para una zona de IP exclusiva, configure la directiva IPsec en la zona no global.

  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 registro 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. Esto se ilustra en el Ejemplo 20–1.


  2. En cada sistema, agregue entradas de host.

    En la versión actual, agregue las entradas de host al archivo /etc/inet/hosts.

    En un sistema que se ejecute en una versión anterior a Solaris 10 7/07, agregue entradas IPv4 e IPv6 en el archivo /etc/inet/ipnodes. Las entradas de un sistema deben ser contiguas en el archivo. Para obtener información sobre los archivos de configuración del sistema, consulte Archivos de configuración TCP/IP y el Capítulo 11IPv6 en profundidad (referencia).

    Si está conectando sistemas sólo con direcciones IPv4, debe modificar el archivo /etc/inet/hosts. En este ejemplo, los sistemas que se conectan ejecutan una versión anterior de Solaris y utilizan direcciones IPv6.

    1. En un sistema denominado enigma, escriba lo siguiente en el archivo hosts o ipnodes:


      # Secure communication with partym
      192.168.13.213 partym
      2001::eeee:3333:3333 partym
    2. En un sistema denominado partym, escriba lo siguiente en el archivo hosts o ipnodes:


      # Secure communication with enigma
      192.168.116.16 enigma
      2001::aaaa:6666:6666 enigma

    El uso de los servicios de asignación de nombres simbólicos no es seguro.

  3. En cada sistema, cree el archivo de directiva IPsec.

    El nombre de archivo es /etc/inet/ipsecinit.conf. Para ver un ejemplo, consulte el archivo /etc/inet/ipsecinit.sample.

  4. Agregue una entrada de directiva IPsec al archivo ipsecinit.conf.

    1. En el sistema enigma, agregue la directiva siguiente:


      {laddr enigma raddr partym} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}
    2. En el sistema partym, agregue una directiva idéntica:


      {laddr partym raddr enigma} ipsec {encr_algs aes encr_auth_algs sha1 sa shared}

      Para ver la sintaxis de las entradas de la directiva IPsec, consulte la página del comando man ipsecconf(1M).

  5. En cada sistema, agregue un par de SA IPsec entre los dos sistemas.

    Puede configurar el intercambio de claves de Internet (IKE) para crear las SA automáticamente. También puede agregar las SA de forma manual.


    Nota –

    Debe utilizar IKE a menos que tenga una razón de peso para generar y mantener las claves manualmente. La administración de claves IKE es más segura que la administración manual.


  6. Habilite la directiva IPsec.

  7. Compruebe la sintaxis del archivo de directiva IPsec.


    # ipsecconf -c -f /etc/inet/ipsecinit.conf
    

    Subsane los posibles errores, compruebe la sintaxis del archivo y continúe.

  8. Actualice la directiva IPsec.


    # svcadm refresh svc:/network/ipsec/policy:default
    

    La directiva IPsec está habilitada de forma predeterminada, por lo que puede actualizarla. Si ha inhabilitado la directiva IPsec, habilítela.


    # svcadm enable svc:/network/ipsec/policy:default
    
  9. Active las claves para IPsec.

    • Si ha configurado IKE en el Paso 5, realice una de las acciones siguientes:

      • Si el servicio ike no está habilitado, habilítelo.


        # svcadm enable svc:/network/ipsec/ike:default
        
      • Si el servicio ike está habilitado, reinícielo.


        # svcadm restart svc:/network/ipsec/ike:default
        
    • Si ha configurado manualmente las claves en el Paso 5, realice una de las acciones siguientes:

      • Si el servicio manual-key no está habilitado, habilítelo.


        # svcadm enable svc:/network/ipsec/manual-key:default
        
      • Si el servicio manual-key está habilitado, actualícelo.


        # svcadm refresh svc:/network/ipsec/manual-key:default
        
  10. Compruebe que los paquetes se estén protegiendo.

    Para ver el procedimiento, consulte Cómo verificar que los paquetes estén protegidos con IPsec.


Ejemplo 20–1 Adición de directivas IPsec al utilizar una conexión ssh

En este ejemplo, el administrador configura como superusuario las claves y la directiva IPsec en dos sistemas mediante el comando ssh para llegar al segundo sistema. Para obtener más información, consulte la página de comando man ssh(1).

La próxima ocasión que los dos sistemas se comunican, incluida la conexión ssh, la comunicación queda protegida por IPsec.



Ejemplo 20–2 Cómo proteger el tráfico con IPsec sin reiniciar

El siguiente ejemplo es útil cuando se está ejecutando una versión anterior a Solaris 10 4/09. Es decir, en su versión, IPsec no se gestiona como un servicio. El ejemplo describe cómo implementar IPsec en un entorno de prueba. En un entorno de producción, es más seguro reiniciar que ejecutar el comando ipsecconf. Consulte las consideraciones de seguridad al final de este ejemplo.

En lugar de reiniciar en el Paso 6, elija una de estas opciones:

Consideraciones de seguridad: Lea la advertencia que aparece al ejecutar 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.


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.

ProcedureCómo visualizar las directivas de IPsec

Puede ver las directivas configuradas en el sistema ejecutando el comando ipsecconf sin argumentos.

Antes de empezar

Debe ejecutar el comando ipsecconf en la zona global. Para una zona de IP exclusiva, ejecute el comando ipsecconf en la zona no global.

  1. Asuma un rol que incluya el perfil de administración IPsec de la red o conviértase en superusuario.

    Si está ejecutando una versión anterior a Solaris 10 4/09, el perfil de Network IPsec Management no está disponible. Utilice el perfil de la seguridad de la red.

    Para crear un rol que incluya un perfil de seguridad de red y asignarlo a un usuario, consulte Cómo configurar una función para la seguridad de la red.

  2. Visualizar las directivas de IPsec.

    1. Visualice las entradas de la directiva IPsec global en el orden en que se agregaron las entradas.


      $ ipsecconf
      

      El comando muestra cada entrada con un índice, seguida de un número.

    2. Visualice las entradas de la directiva IPsec en el orden en que se produzca una coincidencia.


      $ ipsecconf -l
      
    3. Visualice las entradas de la directiva IPsec, incluidas las entradas por túnel, en el orden en que se produzca una coincidencia.


      $ ipsecconf -L
      

ProcedureCómo generar números aleatorios en un sistema Solaris

Si está especificando claves manualmente, el material de claves debe ser aleatorio. El formato del material de claves de un sistema Solaris es hexadecimal. Otros sistemas operativos pueden requerir material de claves ASCII. Para generar material de claves para un sistema Solaris que se comunica con otro sistema operativo que requiera ASCII, consulte el Ejemplo 23–1.

Si su sitio cuenta con un generador de números aleatorios, utilícelo. De lo contrario, puede utilizar el comando od con el dispositivo Solaris /dev/random como entrada. Para más información, consulte la página del comando man od(1).

En la versión Solaris 10 4/09, también puede utilizar el comando pktool. La sintaxis de este comando es más sencilla que la del comando od. Para obtener más detalles, consulte How to Generate a Symmetric Key by Using the pktool Command de System Administration Guide: Security Services.

  1. Genere números aleatorios en formato hexadecimal.


    % od -x|-X -A n file | head -n
    
    -x

    Muestra el vaciado octal en formato hexadecimal. El formato hexadecimal resulta útil para el material de claves. Dicho formato se imprime en bloques de 4 caracteres.

    -X

    Muestra el vaciado octal en formato hexadecimal. Dicho formato se imprime en bloques de 8 caracteres.

    -A n

    Elimina la base de desfase de entrada de la pantalla.

    archivo

    Actúa como origen para los números aleatorios.

    head -n

    Limita el resultado de la pantalla a las primeras n líneas.

  2. Combine el resultado para crear una clave con la longitud adecuada.

    Elimine los espacios entre los números de una línea para crear una clave de 32 caracteres. Una clave de 32 caracteres tiene 128 bits. En el caso de un índice de parámetros de seguridad (SPI), debe utilizar una clave de 8 caracteres. La clave debe utilizar el prefijo 0x.


Ejemplo 20–3 Generación de material de claves para IPsec

El ejemplo siguiente muestra dos líneas de claves en grupos de ocho caracteres hexadecimales cada uno.


% od -X -A n /dev/random | head -2
         d54d1536 4a3e0352 0faf93bd 24fd6cad
         8ecc2670 f3447465 20db0b0c c83f5a4b

Al combinar los cuatro números de la primera línea, puede crear una clave de 32 caracteres. Un número de 8 caracteres precedido de 0x proporciona un valor de SPI adecuado, por ejemplo, 0xf3447465.

El ejemplo siguiente muestra dos líneas de claves en grupos de cuatro caracteres hexadecimales cada uno.


% od -x -A n /dev/random | head -2
         34ce 56b2 8b1b 3677 9231 42e9 80b0 c673
         2f74 2817 8026 df68 12f4 905a db3d ef27

Al combinar los ocho números en la primera línea, puede crear una clave de 32 caracteres.


ProcedureCómo crear manualmente asociaciones de seguridad IPsec

El procedimiento siguiente proporciona el material de claves para el procedimiento, Cómo proteger el tráfico entre dos sistemas con IPsec. Está generando teclas para dos sistemas, partym y enigma. Se generan las claves en un sistema, y después se utilizan las teclas del primer sistema en ambos sistemas.

Antes de empezar

Debe estar en la zona global para administrar material de claves para una zona IP compartida.

  1. Genere el material de claves para la SA.

    Necesita tres números aleatorios hexadecimales para el tráfico saliente y tres para el tráfico entrante.

    Por tanto, un sistema necesita generar los siguientes números:

    • Dos números aleatorios hexadecimales como valor para la palabra clave spi. Un número es para el tráfico saliente. Otro es para el tráfico entrante. Cada número puede tener hasta ocho caracteres de longitud.

    • Dos números aleatorios hexadecimales para el algoritmo SHA-1 para la autenticación. Para una clave de 160 bits, cada numero debe tener 40 caracteres de longitud. Un número es para dst enigma. Un número es para dst partym.

    • Dos números aleatorios hexadecimales para el algoritmo DES para el cifrado de ESP. Para una clave de 256 bits, cada numero debe tener 64 caracteres de longitud. Un número es para dst enigma. Un número es para dst partym.

    Si dispone de un generador de números aleatorios en su sitio, utilícelo. También puede utilizar el comando od. Consulte Cómo generar números aleatorios en un sistema Solaris para ver el procedimiento.

  2. En la consola del sistema de uno de los sistemas, 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.


  3. Cree las SA.

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

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

  4. Active el modo de comando ipseckey.


    # ipseckey
    
    >

    El símbolo del sistema > indica que se encuentra en modo de comando ipseckey.

  5. Si está sustituyendo las SA existentes, vacíelas.


    > flush
    > 

    Para evitar que un intruso interrumpa las SA, debe sustituir el material de claves.


    Nota –

    Es necesario coordinar la sustitución de claves en los sistemas que se comunican. Al sustituir las SA en un sistema, también deben sustituirse las del sistema remoto.


  6. Para crear SA, escriba el comando siguiente.


    > add protocol spi random-hex-string \
    src addr dst addr2 \
    protocol-prefix_alg protocol-algorithm  \
    protocol-prefixkey random-hex-string-of-algorithm-specified-length
    

    Esta sintaxis también se utiliza para sustituir las SA que acaba de vaciar.

    protocolo

    Especifica esp o ah.

    cadena_hex_aleatoria

    Especifica un número aleatorio de hasta ocho caracteres en formato hexadecimal. Preceda los caracteres con 0x. Si especifica más números de los que acepta el índice de parámetros de seguridad (SPI), el sistema omitirá los números adicionales. Si especifica menos números de los que acepta el SPI, el sistema rellena la entrada.

    dir

    Especifica la dirección IP de un sistema.

    dir2

    Especifica la dirección IP del sistema equivalente a dir.

    prefijo_protocolo

    Especifica un prefijo encr o auth. El prefijo encr se utiliza con el protocolo esp. El prefijo auth se utiliza con el protocolo ah, y para autenticar el protocolo esp.

    algoritmo_protocolo

    Especifica un algoritmo para ESP o AH. Cada algoritmo requiere una clave de una longitud específica.

    Los algoritmos de autenticación incluyen MD5 y SHA-1. A partir de la versión Solaris 10 4/09, SHA256 y SHA512 son compatibles. Los algoritmos de cifrado incluyen DES, 3DES, AES y Blowfish.

    cadena_hex_aleatoria_de_longitud_algoritmo_especificada

    Especifica un número hexadecimal aleatorio de la longitud que requiere el algoritmo. Por ejemplo, el algoritmo MD5 requiere una cadena de 32 caracteres para su clave de 128 bits. El algoritmo 3DES requiere una cadena de 48 caracteres para su clave de 192 bits.

    1. Por ejemplo, en el sistema enigma, proteja los paquetes salientes.

      Utilice los números aleatorios que haya generado en el paso Paso 1.

      Para Solaris 10 1/06:


      > add esp spi 0x8bcd1407 \
      src 192.168.116.16 dst 192.168.13.213 \
      encr_alg aes \
      auth_alg sha1 \
      encrkey c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
      authkey 6fab07fec4f2895445500ed992ab48835b9286ff
      >

      Nota –

      El sistema equivalente debe utilizar el mismo material de claves y el mismo SPI.


    2. Continúe en modo de comando ipseckey en el sistema enigma y proteja los paquetes entrantes.

      Escriba los siguientes comandos para proteger los paquetes:


      > add esp spi 0x122a43e4 \
      src 192.168.13.213 dst 192.168.116.16 \
      encr_alg aes \
      auth_alg sha1 \
      encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
      authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
      >

      Nota –

      Las claves y el SPI pueden ser diferentes para cada SA. Debe asignar claves y SPI distintos para cada SA.


  7. Para salir del modo de comando ipseckey, pulse Control-D o escriba quit.

  8. Agregue, el material de claves al archivo /etc/inet/secret/.

    En las versiones anteriores a Solaris 10 4/09 este paso garantiza que el material de claves está disponible para IPsec al reiniciar.

    Las líneas del archivo /etc/inet/secret/ipseckeys son idénticas al lenguaje de la línea de comandos ipseckey.

    1. Por ejemplo, el archivo /etc/inet/secret/ipseckeys del sistema enigma tendría un aspecto similar al siguiente:


      # ipseckeys - This file takes the file format documented in 
      #   ipseckey(1m).
      #   Note that naming services might not be available when this file
      #   loads, just like ipsecinit.conf.
      #
      # for outbound packets on enigma
      add esp spi 0x8bcd1407 \
         src 192.168.116.16 dst 192.168.13.213  \
         encr_alg aes \
         auth_alg sha1  \
         encrkey  c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
         authkey  6fab07fec4f2895445500ed992ab48835b9286ff
      #
      # for inbound packets
      add esp spi 0x122a43e4 \
         src 192.168.13.213 dst 192.168.116.16 \
         encr_alg aes \
         auth_alg sha1  \
         encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
         authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
    2. Proteja el archivo con permisos de sólo lectura.


      # chmod 400 /etc/inet/secret/ipseckeys
      
  9. Repita el procedimiento en el sistema partym.

    Utilice el mismo material de claves que utilizó en enigma.

    El material de claves de los dos sistemas debe ser idéntico. Tal como se muestra en el ejemplo siguiente, sólo los comentarios de ipseckeys son distintos. Los comentarios difieren porque dst enigma entra en el sistema enigma y sale del sistema partym.


    # partym ipseckeys file
    #
    # for inbound packets
    add esp spi 0x8bcd1407 \
       src 192.168.116.16 dst 192.168.13.213  \
       encr_alg aes \
       auth_alg sha1  \
       encrkey  c0c65b888c2ee301c84245c3da63127e92b2676105d5330e85327c1442f37d49 \
       authkey  6fab07fec4f2895445500ed992ab48835b9286ff
    #
    # for outbound packets
    add esp spi 0x122a43e4 \
       src 192.168.13.213 dst 192.168.116.16 \
       encr_alg aes \
       auth_alg sha1  \
       encrkey a2ea934cd62ca7fa14907cb2ad189b68e4d18c976c14f22b30829e4b1ea4d2ae \
       authkey c80984bc4733cc0b7c228b9b74b988d2b7467745
  10. Habilite el servicio manual-key.


    # svcadm enable svc:/network/ipsec/manual-key
    

    Para sustituir las claves de la versión actual, consulte el Ejemplo 20–4.


Ejemplo 20–4 Sustitución de SA de IPsec

En este ejemplo, el administrador está configurando un sistema que ejecuta la versión Solaris 10 actual. El administrador genera nuevas claves, cambia la información sobre claves en el archivo ipseckeys y reinicia el servicio.


ProcedureCómo verificar que los paquetes estén protegidos con IPsec

Para verificar que los paquetes estén protegidos, pruebe la conexión con el comando snoop. Los prefijos siguientes pueden aparecer en el resultado de snoop:

Antes de empezar

Debe ser superusuario o asumir un rol equivalente para crear el resultado snoop. Para poder probar la conexión, es preciso tener acceso a ambos sistemas.

  1. Conviértase en superusuario en un sistema, por ejemplo partym.


    % su -
    Password: Type root password
    # 
  2. En el sistema partym, prepárese para buscar paquetes desde un sistema remoto.

    En una ventana de terminal en partym, busque los paquetes desde el sistema enigma.


    # snoop -v enigma
    Using device /dev/hme (promiscuous mode)
  3. Envíe un paquete desde el sistema remoto.

    En otra ventana de terminal, inicie sesión remotamente en el sistema enigma. Facilite su contraseña. A continuación, conviértase en superusuario y envíe un paquete del sistema enigma al sistema partym. El paquete debe capturarse mediante el comando snoop -v enigma.


    % ssh enigma
    Password: Type your password
    % su -
    Password: Type root password
    # ping partym
    
  4. Examine el resultado de snoop.

    En el sistema partym, debería ver el resultado que incluye la información de AH y ESP tras la información de encabezado IP inicial. Aparecerá información de AH y ESP que muestra que se están protegiendo los paquetes:


    IP:   Time to live = 64 seconds/hops
    IP:   Protocol = 51 (AH)
    IP:   Header checksum = 4e0e
    IP:   Source address = 192.168.116.16, enigma
    IP:   Destination address = 192.168.13.213, partym
    IP:   No options
    IP:
    AH:  ----- Authentication Header -----
    AH:
    AH:  Next header = 50 (ESP)
    AH:  AH length = 4 (24 bytes)
    AH:  <Reserved field = 0x0>
    AH:  SPI = 0xb3a8d714
    AH:  Replay = 52
    AH:  ICV = c653901433ef5a7d77c76eaa
    AH:
    ESP:  ----- Encapsulating Security Payload -----
    ESP:
    ESP:  SPI = 0xd4f40a61
    ESP:  Replay = 52
    ESP:     ....ENCRYPTED DATA....
    
    ETHER:  ----- Ether Header -----
    ...

ProcedureCómo configurar una función para la seguridad de la red

Si está utilizando RBAC (Role-Based Access Control) para administrar los sistemas, siga este procedimiento para proporcionar una función de administración de red o de seguridad de red.

  1. Busque los perfiles de derechos de red en la base de datos prof_attr local.

    En la versión actual, aparece una salida similar a la siguiente:


    % cd /etc/security
    % grep Network prof_attr
    Network IPsec Management:::Manage IPsec and IKE...
    Network Link Security:::Manage network link security...
    Network Management:::Manage the host and network configuration...
    Network Security:::Manage network and host security...
    Network Wifi Management:::Manage wifi network configuration...
    Network Wifi Security:::Manage wifi network security...

    Si está ejecutando una versión anterior a Solaris 10 4/09, la salida presenta un aspecto parecido al siguiente:


    % cd /etc/security
    % grep Network prof_attr
    Network Management:::Manage the host and network configuration  
    Network Security:::Manage network and host security  
    System Administrator::: Network Management 

    El perfil de administración de red es un perfil complementario del perfil de administrador de sistemas. Si ha incluido el perfil de derechos de administrador de sistemas en un rol, dicho rol podrá ejecutar los comandos del perfil de administración de red.

  2. Determine qué comandos hay disponibles en el perfil de derechos de administración de red.


    % grep "Network Management" /etc/security/exec_attr
    Network Management:solaris:cmd:::/usr/sbin/ifconfig:privs=sys_net_config
    …
    Network Management:suser:cmd:::/usr/sbin/snoop:uid=0

    Los comandos de directiva solaris se ejecutan con privilegio ( privs=sys_net_config). Los comandos de directiva suser se ejecutan como superusuario (uid=0).

  3. Decida el ámbito de las funciones de seguridad de la red en su sitio.

    Utilice las definiciones de los perfiles de derechos en el Paso 1 para guiar la decisión.

    • Para crear una función que administre toda la seguridad de la red, utilice el perfil de derechos de la seguridad de la red.

    • En la versión actual, para crear una función que administre sólo IPsec e IKE, utilice el perfil de derechos de gestión de red IPsec.

  4. Cree un rol de seguridad de red que incluya el perfil de derechos de gestión de la red.

    Una función con el perfil de derechos de gestión de red IPsec o de seguridad de la red, además del perfil de gestión de la red, puede ejecutar los comandos ifconfig, snoop, ipsecconf e ipseckey, entre otros, con privilegios adecuados.

    Para crear el rol, asignarlo a un usuario y registrar los cambios con el servicio de nombres, consulte Configuring RBAC (Task Map) de System Administration Guide: Security Services.


Ejemplo 20–5 División de responsabilidades de seguridad de la red entre las funciones

En este ejemplo, el administrador divide las responsabilidades de seguridad de la red entre dos funciones. Una función administra wifi y seguridad de los vínculos; otra administra IPsec e IKE. Cada función está asignada a tres personas, una por turno.

El administrador crea las funciones como se indica a continuación:


ProcedureCómo administrar servicios de IPsec e IKE

Los siguientes pasos ofrecen los usos más probables de los servicios SMF para IPsec, IKE y la gestión manual de claves. Por defecto, los servicios policy e ipsecalgs están habilitados. También por defecto, los servicios ike y manual-key están inhabilitados.

  1. Para administrar la directiva IPsec, lleve a cabo una de las siguientes acciones:

    • Después de agregar nuevas directivas al archivo ipsecinit.conf, actualice el servicio policy.


      # svcadm refresh svc:/network/ipsec/policy
      
    • Tras cambiar el valor de una propiedad de servicio, consulte el valor de la propiedad y, a continuación, actualice y reinicie el servicio policy.


      # svccfg -s policy setprop config/config_file=/etc/inet/MyIpsecinit.conf
      # svcprop -p config/config_file policy
      /etc/inet/MyIpsecinit.conf
      # svcadm refresh svc:/network/ipsec/policy
      # svcadm restart svc:/network/ipsec/policy
      
  2. Para administrar claves automáticamente, realice una de las siguientes acciones:

    • Después de agregar entradas al archivo /etc/inet/ike/config, habilite el servicio ike.


      # svcadm enable svc:/network/ipsec/ike
      
    • Después de cambiar las entradas en el archivo /etc/inet/ike/config, actualice el servicio ike.


      # svcadm refresh svc:/network/ipsec/ike
      
    • Tras cambiar el valor de una propiedad de servicio, consulte el valor de la propiedad y, a continuación, actualice el servicio y reinícielo.


      # svccfg -s ike setprop config/admin_privilege=modkeys
      # svcprop -p config/admin_privilege ike
      modkeys
      # svcadm refresh svc:/network/ipsec/ike
      # svcadm restart svc:/network/ipsec/ike
      
    • Para detener el servicio ike, inhabilítelo.


      # svcadm disable svc:/network/ipsec/ike
      
  3. Para administrar claves manualmente, lleve a cabo una de las siguientes acciones:

    • Después de agregar entradas al archivo /etc/inet/secret/ipseckeys, habilite el servicio manual-key.


      # svcadm enable svc:/network/ipsec/manual-key
      
    • Después de cambiar el archivo ipseckeys, actualice el servicio.


      # svcadm refresh manual-key
      
    • Tras cambiar el valor de una propiedad de servicio, consulte el valor de la propiedad; a continuación, actualice y reinicie el servicio.


      # svccfg -s manual-key setprop config/config_file=/etc/inet/secret/MyIpseckeyfile
      # svcprop -p config/config_file manual-key
      /etc/inet/secret/MyIpseckeyfile
      # svcadm refresh svc:/network/ipsec/manual-key
      # svcadm restart svc:/network/ipsec/manual-key
      
    • Para impedir la gestión manual de claves, inhabilite el servicio manual-key.


      # svcadm disable svc:/network/ipsec/manual-key
      
  4. Si modifica la tabla de algoritmos y los protocolos IPsec, actualice el servicio ipsecalgs.


    # svcadm refresh svc:/network/ipsec/ipsecalgs
    
Errores más frecuentes

Utilice el comando svcs servicio para buscar el estado de un servicio. Si el servicio está en el modo maintenance, siga las sugerencias de depuración en la salida del comando svcs -x servicio.