Las claves previamente compartidas constituyen el método de autenticación más sencillo para IKE. Si esta configurando dos sistemas para que utilicen IKE y es el administrador de ambos sistemas, se recomienda utilizar claves previamente compartidas. Sin embargo, a diferencia de los certificados de clave pública, las claves previamente compartidas están vinculadas a direcciones IP específicas. Las claves previamente compartidas no se pueden utilizar con sistemas portátiles o sistemas cuya numeración podría variar. Además, al utilizar claves previamente compartidas, no es posible descargar los cálculos de IKE en el hardware conectado.
La implementación de IKE ofrece algoritmos con claves cuya longitud varía. La longitud de claves que elija dependerá de la seguridad del sitio. En general, las claves largas son más seguras que las cortas.
Estos procedimientos utilizan los nombres de sistema enigma y partym. Sustituya los nombres de los sistemas con los nombres enigma y partym.
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.
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 un inicio de sesión remota seguro.
En cada sistema, copie el archivo /etc/inet/ike/config.sample al archivo /etc/inet/ike/config.
Especifique las reglas y los parámetros generales en el archivo ike/config de cada sistema.
Las reglas y los parámetros generales de este archivo deberían permitir la correcta aplicación de la directiva IPsec en el archivo ipsecinit.conf del sistema. Los siguientes ejemplos de ike/config funcionan con los ejemplos de ipsecinit.conf de Cómo proteger el tráfico entre dos sistemas con IPsec.
Por ejemplo, modifique el archivo /etc/inet/ike/config del sistema enigma:
### ike/config file on enigma, 192.168.116.16 ## Global parameters # ## Phase 1 transform defaults p1_lifetime_secs 14400 p1_nonce_len 40 # ## Defaults that individual rules can override. p1_xform { auth_method preshared oakley_group 5 auth_alg sha encr_alg des } p2_pfs 2 # ## The rule to communicate with partym # Label must be unique { label "enigma-partym" local_addr 192.168.116.16 remote_addr 192.168.13.213 p1_xform { auth_method preshared oakley_group 5 auth_alg sha1 encr_alg aes } p2_pfs 5 } |
Todos los argumentos del parámetro auth_method deben encontrarse en la misma línea.
Modifique el archivo /etc/inet/ike/config del sistema partym:
### ike/config file on partym, 192.168.13.213 ## Global Parameters # p1_lifetime_secs 14400 p1_nonce_len 40 # p1_xform { auth_method preshared oakley_group 5 auth_alg sha encr_alg des } p2_pfs 2 ## The rule to communicate with enigma # Label must be unique { label "partym-enigma" local_addr 192.168.13.213 remote_addr 192.168.116.16 p1_xform { auth_method preshared oakley_group 5 auth_alg sha1 encr_alg aes } p2_pfs 5 } |
En cada sistema, compruebe la sintaxis del archivo.
# /usr/lib/inet/in.iked -c -f /etc/inet/ike/config |
Genere números aleatorios para utilizar como material de claves.
Si su sitio cuenta con un generador de números aleatorios, utilícelo. En un sistema Solaris, puede utilizar el comando od. Por ejemplo, el siguiente comando imprime dos líneas de números hexadecimales:
% od -X -A n /dev/random | head -2 f47cb0f4 32e14480 951095f8 2b735ba8 0a9467d0 8f92c880 68b6a40e 0efe067d |
Para ver una explicación del comando od, consulte Cómo generar números aleatorios en un sistema Solaris y la página del comando man od(1).
Otros sistemas operativos pueden requerir material de claves ASCII. Para generar una clave idéntica en los formatos hexadecimal y ASCII, consulte el Ejemplo 23–1.
Cree una clave a partir del resultado obtenido en el Paso 5.
f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e |
El algoritmo de autenticación de este procedimiento es SHA–1, tal como se muestra en el Paso 3. El tamaño del hash, es decir, el tamaño del resultado del algoritmo de autenticación, determina el tamaño mínimo recomendado de una clave previamente compartida. El resultado del algoritmo SHA–1 es 160 bits o 40 caracteres. La clave de ejemplo tiene una longitud de 56 caracteres, que proporciona material de claves adicional para usar en IKE.
Cree el archivo /etc/inet/secret/ike.preshared en cada sistema.
Coloque la clave previamente compartida en cada archivo.
Por ejemplo, en el sistema enigma, el archivo ike.preshared tendría el siguiente aspecto:
# ike.preshared on enigma, 192.168.116.16 #… { localidtype IP localid 192.168.116.16 remoteidtype IP remoteid 192.168.13.213 # enigma and partym's shared key in hex (192 bits) key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e } |
En el sistema partym, el archivo ike.preshared tendría el siguiente aspecto:
# ike.preshared on partym, 192.168.13.213 #… { localidtype IP localid 192.168.13.213 remoteidtype IP remoteid 192.168.116.16 # partym and enigma's shared key in hex (192 bits) key f47cb0f432e14480951095f82b735ba80a9467d08f92c88068b6a40e } |
Las claves previamente compartidas de cada sistema deben ser idénticas.
Solaris IPsec interopera con otros sistemas operativos. Si su sistema se comunica con un sistema que requiere claves previamente compartidas ASCII, debe generar una clave en dos formatos, hexadecimal y ASCII.
En este ejemplo, el administrador del sistema Solaris desea material de claves de 56 caracteres. El administrador utiliza el comando siguiente para generar una clave hexadecimal a partir de una contraseña ASCII. La opción -tx1 imprime los bytes uno a uno en todos los sistemas Solaris.
# /bin/echo "papiermache with cashews and\c" | od -tx1 | cut -c 8-55 | \ tr -d '\n' | tr -d ' ' | awk '{print}' 7061706965726d616368652077697468206361736865777320616e64 |
Al eliminar los desfases y concatenar el resultado hexadecimal, la clave hexadecimal del sistema Solaris es 7061706965726d616368652077697468206361736865777320616e64. El administrador coloca este valor en el archivo ike.preshared del sistema Solaris.
# Shared key in hex (192 bits) key 7061706965726d616368652077697468206361736865777320616e64 |
En el sistema que requiere claves previamente compartidas ASCII, la contraseña es la clave previamente compartida. El administrador del sistema Solaris comunica por teléfono la contraseña (papiermache with cashews and) al otro administrador.
Este procedimiento presupone que desea reemplazar una clave previamente compartida a intervalos regulares.
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.
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 un inicio de sesión remota seguro.
Genere números aleatorios y cree una clave con la longitud adecuada.
Para obtener más información, consulte Cómo generar números aleatorios en un sistema Solaris. Si va a generar una clave previamente compartida para un sistema Solaris que se comunica con un sistema operativo que requiere ASCII, consulte el Ejemplo 23–1.
Sustituya la clave actual por una nueva.
Por ejemplo, en los hosts enigma y partym, debe reemplazar el valor de key en el archivo /etc/inet/secret/ike.preshared con un nuevo número que tenga la misma longitud.
Lea la nueva clave en el núcleo.
A partir de la versión Solaris 10 4/09, actualice el servicio ike.
# svcadm refresh ike |
Si está ejecutando una versión anterior a la Solaris 10 4/09, finalícela y reinicie el daemon in.iked.
Compruebe el nivel de privilegio del daemon in.iked.
# /usr/sbin/ikeadm get priv Current privilege level is 0x0, base privileges enabled |
Puede cambiar el material de claves si el comando devuelve un nivel de privilegio de 0x1 o 0x2. El nivel 0x0 no permite a las operaciones modificar ni ver el material de claves. De modo predeterminado, el daemon in.iked se ejecuta en el nivel de privilegio 0x0.
Si el nivel de privilegio es 0x0, finalice el daemon y reinícielo.
Al reiniciar el daemon, lee la nueva versión del archivo ike.preshared.
# pkill in.iked # /usr/lib/inet/in.iked |
Si el nivel de privilegio es 0x1 o 0x2, lea la nueva versión del archivo ike.preshared.
# ikeadm read preshared |
Por defecto, el comando ikeadm impide que vea las teclas reales en un volcado de una fase 1 SA. La visualización de las claves es útil durante la depuración.
Para ver las teclas reales, debe aumentar el nivel de privilegios del daemon. Para obtener una descripción de los niveles de privilegios, consulte Comando de administración de IKE.
Para llevar a cabo este procedimiento en una versión anterior a Solaris 10 4/09 consulte Ejemplo 23–2.
IKE se configura y el servicio ike se ejecuta.
Consulte las teclas previamente compartidas de IKE.
# ikeadm ikeadm> dump preshared |
Si aparece un mensaje de error, aumente el nivel de privilegios del daemon in.iked .
Aumente el nivel de privilegios del daemon in.iked en el repositorio SMF.
# svcprop -p config/admin_privilege ike base # svccfg -s ike setprop config/admin_privilege=keymat |
Aumente el nivel de privilegios del daemon in.iked en ejecución.
# svcadm refresh ike ; svcadm restart ike |
(Opcional) Confirme que el nivel de privilegios es keymat.
# svcprop -p config/admin_privilege ike keymat |
Ejecute de nuevo el Paso 1 para ver las teclas.
Devuelva al daemon IKE el nivel de privilegios base.
En el siguiente ejemplo, el administrador está consultando claves en un sistema Solaris que no ejecuta la versión actual de Solaris. El administrador desea comprobar que las claves de este sistema son idénticas a las del sistema de comunicación. Después de comprobar que las claves de los dos sistemas son idénticos, el administrador restablece el nivel de privilegios a 0.
En primer lugar, el administrador determina el nivel de privilegios del daemon in.iked.
adm1 # /usr/sbin/ikeadm get priv Current privilege level is 0x0, base privileges enabled |
Debido a que el nivel de privilegios no es 0x1 o 0x2, el administrador detiene el daemon in.iked y, a continuación, aumenta el nivel de privilegios a 2.
adm1 # pkill in.iked adm1 # /usr/lib/inet/in.iked -p 2 Setting privilege level to 2 |
El administrador muestra las claves.
adm1 # ikeadm dump preshared PSKEY: Preshared key (24 bytes): f47cb…/192 LOCIP: AF_INET: port 0, 192.168.116.16 (adm1). REMIP: AF_INET: port 0, 192.168.13.213 (com1). |
El administrador inicia sesión remota en el sistema de comunicación y determina que las claves sean idénticas.
A continuación, el administrador restablece el nivel básico de privilegios.
# ikeadm set priv base |
Si agrega entradas de la directiva IPsec, mientras se ejecutan IPsec e IKE, deberá leer la nueva directiva y las reglas IKE en el núcleo. A partir de la versión Solaris 10 4/09, reinicie el servicio de directivas y actualice el servicio ike después de agregar las nuevas claves.
Para llevar a cabo este procedimiento en una versión anterior a Solaris 10 4/09, consulte el Ejemplo 23–3.
Este procedimiento presupone lo siguiente:
El sistema enigma está configurado de acuerdo con lo descrito en Cómo configurar IKE con claves previamente compartidas.
El sistema enigma va a proteger su tráfico con un nuevo sistema, ada.
El daemon in.iked se ejecuta en ambos sistemas.
Las interfaces de los sistemas se incluyen como entradas en el archivo /etc/hosts de ambos sistemas. La entrada siguiente es un ejemplo.
192.168.15.7 ada 192.168.116.16 enigma |
Este procedimiento también funciona con una dirección IPv6 en el archivo /etc/inet/ipnodes. A partir de la versión Solaris 10 6/07 las entradas IPv6 se colocan en el archivo /etc/hosts.
Ha agregado una nueva entrada de directiva en el archivo /etc/inet/ipsecinit.conf en ambos sistemas. Las entradas tienen el siguiente aspecto:
# ipsecinit.conf file for enigma {laddr enigma raddr ada} ipsec {auth_algs any encr_algs any sa shared} |
# ipsecinit.conf file for ada {laddr ada raddr enigma} ipsec {auth_algs any encr_algs any sa shared} |
En la versión actual, ha comprobado la sintaxis del archivo /etc/inet/ipsecinit.conf en ambos sistemas mediante lo siguiente:
# ipsecconf -c -f /etc/inet/ipsecinit.conf |
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.
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 un inicio de sesión remota seguro.
En este sistema, genere números aleatorios y cree una clave de entre 64 y 448 bits.
Para obtener más información, consulte Cómo generar números aleatorios en un sistema Solaris. Si va a generar una clave previamente compartida para un sistema Solaris que se comunica con un sistema operativo que requiere ASCII, consulte el Ejemplo 23–1.
Envíe la clave al administrador del sistema remoto.
Ambos deben agregar la misma clave previamente compartida y de forma simultánea. La seguridad de su clave depende de la seguridad de su mecanismo de transmisión. Se recomienda un mecanismo fuera de banda, como un correo registrado o un fax protegido. También puede utilizar una sesión ssh para administrar ambos sistemas.
Cree una regla para que IKE administre las claves para enigma y ada.
En el sistema enigma, agregue la regla siguiente al archivo /etc/inet/ike/config:
### ike/config file on enigma, 192.168.116.16 ## The rule to communicate with ada {label "enigma-to-ada" local_addr 192.168.116.16 remote_addr 192.168.15.7 p1_xform {auth_method preshared oakley_group 5 auth_alg sha1 encr_alg blowfish} p2_pfs 5 } |
En el sistema ada, agregue la siguiente regla:
### ike/config file on ada, 192.168.15.7 ## The rule to communicate with enigma {label "ada-to-enigma" local_addr 192.168.15.7 remote_addr 192.168.116.16 p1_xform {auth_method preshared oakley_group 5 auth_alg sha1 encr_alg blowfish} p2_pfs 5 } |
Asegúrese de que haya claves IKE previamente compartidas al iniciar.
En el sistema enigma, agregue la siguiente información al archivo /etc/inet/secret/ike.preshared:
# ike.preshared on enigma for the ada interface # { localidtype IP localid 192.168.116.16 remoteidtype IP remoteid 192.168.15.7 # enigma and ada's shared key in hex (32 - 448 bits required) key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d } |
En el sistema ada, agregue la información siguiente al archivo ike.preshared:
# ike.preshared on ada for the enigma interface # { localidtype IP localid 192.168.15.7 remoteidtype IP remoteid 192.168.116.16 # ada and enigma's shared key in hex (32 - 448 bits required) key 8d1fb4ee500e2bea071deb2e781cb48374411af5a9671714672bb1749ad9364d } |
En cada sistema, reinicie el servicio de directivas de IPsec para asegurar la interfaz agregada.
# svcadm restart policy |
En cada sistema, actualice el servicio ike.
# svcadm refresh ike |
Compruebe que los sistemas se puedan comunicar.
Consulte Verificación de que las claves IKE previamente compartidas sean idénticas.
En el siguiente ejemplo, el administrador agrega una clave compartida previamente a un sistema Solaris que no ejecuta la versión actual de Solaris. El administrador sigue el procedimiento anterior para modificar los archivos ike/config e ike., así como generar las claves y establecer contacto con el sistema remoto. El administrador utiliza comandos diferentes para leer la nueva directiva IPsec y las reglas IKE en el núcleo.
Antes de generar la nueva tecla, el administrador define el nivel de privilegios del daemon in.iked en 2.
# pkill in.iked # /usr/lib/inet/in.iked -p 2 Setting privilege level to 2 |
Después de enviar la tecla para el otro sistema y agregar la nueva tecla al sistema, el administrador reduce el nivel de privilegios.
# ikeadm set priv base |
A continuación, el administrador lee la nueva directiva IPsec en el núcleo.
# ipsecconf -a /etc/inet/ipsecinit.conf |
Por último, el administrador lee las nuevas reglas IKE en el núcleo.
# ikeadm read rules |
Si las claves previamente compartidas de los sistemas que se comunican no son idénticas, los sistemas no se podrán autenticar.
IPsec se ha configurado y se ha habilitado entre los dos sistemas que se están probando. Se está ejecutando la versión Solaris 10 actual.
Para llevar a cabo este procedimiento en una versión anterior a Solaris 10 4/09 consulte Ejemplo 23–2.
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.
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 un inicio de sesión remota seguro.
En cada sistema, compruebe el nivel de privilegios del daemon in.iked.
# svcprop -p config/admin_privilege ike base |
Si el nivel de privilegios es keymat, continúe con el Paso 3.
Si el nivel de privilegios es base o modkeys, aumente su nivel.
A continuación, actualice el servicio ike y reinícielo.
# svccfg -s ike setprop config/admin_privilege=keymat # svcadm refresh ike ; svcadm restart ike # svcprop -p config/admin_privilege ike keymat |
En cada sistema, visualice la información de claves previamente compartidas.
# ikeadm dump preshared PSKEY: Preshared key (24 bytes): f47cb…/192 LOCIP: AF_INET: port 0, 192.168.116.16 (enigma). REMIP: AF_INET: port 0, 192.168.13.213 (partym). |
Compare los dos vaciados.
Si las claves previamente compartidas no son idénticas, sustituya una de ellas con la otra en el archivo /etc/inet/secret/ike.preshared.
Cuando se haya completado la verificación, devuelva al nivel de privilegios el valor predeterminado de cada sistema.
# svccfg -s ike setprop config/admin_privilege=base # svcadm restart ike |