JavaScript is required to for searching.
Omitir V�nculos de navegaci�n
Salir de la Vista de impresi�n
Administración de Oracle Solaris: servicios de seguridad     Oracle Solaris 11 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

Parte I Descripción general de la seguridad

1.  Servicios de seguridad (descripción general)

Parte II Seguridad de sistemas, archivos y dispositivos

2.  Gestión de seguridad de equipos (descripción general)

3.  Control de acceso a sistemas (tareas)

4.  Servicio de análisis de virus (tareas)

5.  Control de acceso a dispositivos (tareas)

6.  Uso de la herramienta básica de creación de informes de auditoría (tareas)

7.  Control de acceso a archivos (tareas)

Parte III Roles, perfiles de derechos y privilegios

8.  Uso de roles y privilegios (descripción general)

9.  Uso del control de acceso basado en roles (tareas)

10.  Atributos de seguridad en Oracle Solaris (referencia)

Parte IV Servicios criptográficos

11.  Estructura criptográfica (descripción general)

12.  Estructura criptográfica (tareas)

13.  Estructura de gestión de claves

Parte V Servicios de autenticación y comunicación segura

14.  Autenticación de servicios de red (tareas)

15.  Uso de PAM

16.  Uso de SASL

17.  Uso de Secure Shell (tareas)

Secure Shell (descripción general)

Autenticación de Secure Shell

Secure Shell en la empresa

Secure Shell y el proyecto OpenSSH

Soporte de Secure Shell y FIPS-140

Secure Shell (mapa de tareas)

Configuración de Secure Shell (tareas)

Configuración de Secure Shell (mapa de tareas)

Cómo configurar la autenticación basada en host para Secure Shell

Cómo configurar el reenvío del puerto en Secure Shell

Cómo crear excepciones de host y usuario para valores predeterminados del sistema SSH

Uso de Secure Shell (tareas)

Uso de Secure Shell (mapa de tareas)

Cómo generar un par de clave pública y clave privada para utilizar con Secure Shell

Cómo cambiar la frase de contraseña de una clave privada de Secure Shell

Cómo iniciar sesión en un host remoto con Secure Shell

Cómo reducir indicadores de contraseñas en Secure Shell

Cómo utilizar el reenvío del puerto en Secure Shell

Cómo copiar archivos con Secure Shell

Cómo configurar conexiones predeterminadas a hosts fuera de un cortafuegos

18.  Secure Shell (referencia)

Parte VI Servicio Kerberos

19.  Introducción al servicio Kerberos

20.  Planificación del servicio Kerberos

21.  Configuración del servicio Kerberos (tareas)

22.  Mensajes de error y resolución de problemas de Kerberos

23.  Administración de las políticas y los principales de Kerberos (tareas)

24.  Uso de aplicaciones Kerberos (tareas)

25.  El servicio Kerberos (referencia)

Parte VII Auditoría en Oracle Solaris

26.  Auditoría (descripción general)

27.  Planificación de la auditoría

28.  Gestión de auditoría (tareas)

29.  Auditoría (referencia)

Glosario

Índice

Uso de Secure Shell (tareas)

Secure Shell proporciona acceso seguro entre un shell local y un shell remoto. Para obtener más información, consulte las páginas del comando man ssh_config(4) y ssh(1).

Uso de Secure Shell (mapa de tareas)

En el siguiente mapa de tareas, se indican procedimientos de usuario para usar Secure Shell.

Tarea
Descripción
Para obtener instrucciones
Crear un par de clave pública y clave privada.
Permite el acceso a Secure Shell para sitios que requieren la autenticación de clave pública.
Cambiar la frase de contraseña.
Cambia la frase que autentica la clave privada.
Iniciar sesión con Secure Shell.
Proporciona comunicación de Secure Shell cifrada cuando se inicia sesión de manera remota. El proceso es similar al uso del comando rsh.
Iniciar sesión en Secure Shell sin que se le solicite una contraseña.
Permite iniciar sesión mediante un agente que proporciona la contraseña a Secure Shell.
Utilizar el reenvío del puerto en Secure Shell.
Especifica un puerto local o un puerto remoto que se utilizará en una conexión de Secure Shell por TCP.
Copiar archivos con Secure Shell.
Copia archivos entre hosts de manera segura.
Conectarse de forma segura de un host dentro de un cortafuegos a un host fuera del cortafuegos.
Utiliza comandos de Secure Shell que son compatibles con HTTP o SOCKS5 para conectar hosts que están separados por un cortafuegos.

Cómo generar un par de clave pública y clave privada para utilizar con Secure Shell

Los usuarios deben generar un par de clave pública y clave privada cuando su sitio implementa la autenticación basada en host o la autenticación de clave pública de usuario. Para obtener opciones adicionales, consulte la página del comando man ssh-keygen(1).

Antes de empezar

Consulte al administrador del sistema si se ha configurado la autenticación basada en host.

  1. Inicie el programa de generación de claves.
    myLocalHost% ssh-keygen -t rsa
    Generating public/private rsa key pair.
    …

    donde -t es el tipo de algoritmo, uno de rsa, dsa o rsa1.

  2. Especifique la ruta al archivo que contendrá la clave.

    De manera predeterminada, el nombre de archivo id_rsa, que representa una clave v2 RSA, aparece entre paréntesis. Puede seleccionar este archivo presionando la tecla de retorno. O puede escribir un nombre de archivo alternativo.

    Enter file in which to save the key (/home/jdoe/.ssh/id_rsa):<Press Return>

    El nombre de archivo de la clave pública se crea automáticamente adjuntando la cadena .pub al nombre del archivo de clave privada.

  3. Escriba una frase de contraseña para usar la clave.

    Esta frase de contraseña se utiliza para cifrar la clave privada. Se desaconseja el uso de una entrada nula. Tenga en cuenta que la frase de contraseña no se muestra cuando la escribe.

    Enter passphrase (empty for no passphrase): <Type passphrase>
  4. Vuelva a escribir la frase de contraseña para confirmarla.
    Enter same passphrase again: <Type passphrase>
    Your identification has been saved in /home/jdoe/.ssh/id_rsa.
    Your public key has been saved in /home/jdoe/.ssh/id_rsa.pub.
    The key fingerprint is:
    0e:fb:3d:57:71:73:bf:58:b8:eb:f3:a3:aa:df:e0:d1 jdoe@myLocalHost
  5. Compruebe los resultados.

    Compruebe que la ruta al archivo de claves sea correcta.

    % ls ~/.ssh
    id_rsa
    id_rsa.pub

    En este punto, ha creado un par de clave pública y clave privada.

  6. Elija la opción adecuada:
    • Si el administrador ha configurado la autenticación basada en host, es posible que necesite copiar la clave pública del host local en el host remoto.

      Ahora puede iniciar sesión en el host remoto. Para obtener detalles, consulte Cómo iniciar sesión en un host remoto con Secure Shell.

      1. Escriba el comando en una línea sin barra diagonal inversa.
        % cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \
        'cat >> ~./ssh/known_hosts && echo "Host key copied"'
      2. Cuando se le pida, proporcione la contraseña de inicio de sesión.
        Enter password: <Type password>
        Host key copied
        %
    • Si su sitio utiliza la autenticación de usuario con claves públicas, rellene el archivo authorized_keys en el host remoto.
      1. Copie la clave pública en el host remoto.

        Escriba el comando en una línea sin barra diagonal inversa.

        myLocalHost% cat $HOME/.ssh/id_rsa.pub | ssh myRemoteHost \
        'cat >> .ssh/authorized_keys && echo "Key copied"'
      2. Cuando se le pida, proporcione la contraseña de inicio de sesión.

        Cuando el archivo se copia, se muestra el mensaje “Key copied” (clave copiada).

        Enter password: Type login password
        Key copied
        myLocalHost%
  7. (Opcional) Reduzca la solicitud de frases de contraseña.

    Para obtener un procedimiento, consulte Cómo reducir indicadores de contraseñas en Secure Shell. Para obtener más información, consulte las páginas del comando man ssh-agent(1) y ssh-add(1).

Cómo cambiar la frase de contraseña de una clave privada de Secure Shell

El siguiente procedimiento no cambia la clave privada. El procedimiento cambia el mecanismo de autenticación para la clave privada, la frase de contraseña. Para obtener más información, consulte la página del comando man ssh-keygen(1).

Cómo iniciar sesión en un host remoto con Secure Shell

  1. Inicie una sesión de Secure Shell.

    Escriba el comando ssh y especifique el nombre del host remoto y de inicio de sesión.

    myLocalHost% ssh myRemoteHost -l username

    Una solicitud cuestiona la autenticidad del host remoto:

    The authenticity of host 'myRemoteHost' can't be established.
    RSA key fingerprint in md5 is: 04:9f:bd:fc:3d:3e:d2:e7:49:fd:6e:18:4f:9c:26
    Are you sure you want to continue connecting(yes/no)? 

    Esta solicitud es normal para conexiones iniciales a hosts remotos.

  2. Si se le solicita, verifique la autenticidad de la clave del host remoto.
    • Si no puede confirmar la autenticidad del host remoto, escriba no y póngase en contacto con el administrador del sistema.
      Are you sure you want to continue connecting(yes/no)? no

      El administrador es responsable de actualizar el archivo /etc/ssh/ssh_known_hosts global. Un archivo ssh_known_hosts actualizado impide que esta solicitud aparezca.

    • Si confirma la autenticidad del host remoto, responda la solicitud y continúe con el siguiente paso.
      Are you sure you want to continue connecting(yes/no)? yes
  3. Autentíquese en Secure Shell.
    1. Cuando se le solicite, escriba la frase de contraseña.
      Enter passphrase for key '/home/jdoe/.ssh/id_rsa': <Type passphrase>
    2. Cuando se le solicite, escriba la contraseña de su cuenta.
      jdoe@myRemoteHost's password: <Type password>
      Last login: Wed Sep  7 09:07:49 2011 from myLocalHost
      Oracle Corporation      SunOS 5.11       September 2011
      myRemoteHost%
  4. Realice transacciones en el host remoto.

    Los comandos que envía están cifrados. Ninguna respuesta que recibe está cifrada.

  5. Cierre la conexión de Secure Shell.

    Cuando haya terminado, escriba salir (exit) o utilice el método habitual para salir de su shell.

    myRemoteHost% exit
    myRemoteHost% logout
    Connection to myRemoteHost closed
    myLocalHost%

Cómo reducir indicadores de contraseñas en Secure Shell

Si no desea escribir la frase de contraseña ni la contraseña para utilizar Secure Shell, puede utilizar el daemon del agente. Inicie el daemon al comienzo de la sesión. A continuación, almacene las claves privadas con el daemon del agente mediante el comando ssh-add. Si tiene cuentas diferentes en hosts diferentes, agregue las claves que necesita para la sesión.

Puede iniciar el daemon del agente manualmente cuando sea necesario, como se describe en el siguiente procedimiento.

  1. Inicie el daemon del agente.
    myLocalHost% eval `ssh-agent`
    Agent pid 9892
  2. Verifique que el daemon del agente se haya iniciado.
    myLocalHost% pgrep ssh-agent
    9892
  3. Agregue la clave privada al daemon del agente.

    Escriba el comando ssh-add.

    myLocalHost% ssh-add
    Enter passphrase for /home/jdoe/.ssh/id_rsa: <Type passphrase>
    Identity added: /home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa)
    myLocalHost%
  4. Inicie una sesión de Secure Shell.
    myLocalHost% ssh myRemoteHost -l jdoe

    No se le solicita una frase de contraseña.

Ejemplo 17-2 Uso de opciones de ssh-add

En este ejemplo, jdoe agrega dos claves al daemon del agente. La opción -l se utiliza para enumerar todas las claves que se almacenan en el daemon. Al final de la sesión, la opción -D se usa para eliminar todas las claves del daemon del agente.

myLocalHost% ssh-agent
myLocalHost% ssh-add
Enter passphrase for /home/jdoe/.ssh/id_rsa: <Type passphrase>
Identity added: /home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa)
myLocalHost% ssh-add /home/jdoe/.ssh/id_dsa
Enter passphrase for /home/jdoe/.ssh/id_dsa: <Type passphrase>
Identity added:
/home/jdoe/.ssh/id_dsa(/home/jdoe/.ssh/id_dsa)

myLocalHost% ssh-add -l
md5 1024 0e:fb:3d:53:71:77:bf:57:b8:eb:f7:a7:aa:df:e0:d1
/home/jdoe/.ssh/id_rsa(RSA)
md5 1024 c1:d3:21:5e:40:60:c5:73:d8:87:09:3a:fa:5f:32:53
/home/jdoe/.ssh/id_dsa(DSA)

User conducts Oracle Solaris Secure Shell transactions
myLocalHost% ssh-add -D
Identity removed:
/home/jdoe/.ssh/id_rsa(/home/jdoe/.ssh/id_rsa.pub)
/home/jdoe/.ssh/id_dsa(DSA)

Cómo utilizar el reenvío del puerto en Secure Shell

Puede especificar que un puerto local se reenvíe a un host remoto. Efectivamente, un socket se asigna para escuchar el puerto en el lado local. La conexión desde este puerto se realiza mediante un canal seguro al host remoto. Por ejemplo, puede especificar el puerto 143 para obtener correo electrónico remotamente con IMAP4. De forma similar, un puerto se puede especificar en el lado remoto.

Antes de empezar

Para utilizar el reenvío del puerto, el administrador debe tener habilitado el reenvío del puerto en el servidor remoto de Secure Shell. Para obtener detalles, consulte Cómo configurar el reenvío del puerto en Secure Shell.

Ejemplo 17-3 Uso del reenvío del puerto local para recibir correo

El ejemplo siguiente muestra cómo puede utilizar el reenvío del puerto local para recibir correo de manera segura desde un servidor remoto.

myLocalHost% ssh -L 9143:myRemoteHost:143 myRemoteHost 

Este comando reenvía conexiones del puerto 9143 en myLocalHost al puerto 143. El puerto 143 es el puerto del servidor v2 IMAP en myRemoteHost. Cuando el usuario inicia una aplicación de correo, el usuario especifica el número de puerto local para el servidor IMAP, como en localhost:9143.

No confunda localhost con myLocalHost. myLocalHost es un nombre de host hipotético. localhost es una palabra clave que identifica el sistema local.

Ejemplo 17-4 Uso del reenvío del puerto remoto para comunicarse fuera de un cortafuegos

En el siguiente ejemplo, se muestra cómo un usuario en un entorno empresarial puede reenviar conexiones desde un host en una red externa hasta un host dentro de un cortafuegos corporativo.

myLocalHost% ssh -R 9022:myLocalHost:22 myOutsideHost

Este comando reenvía conexiones desde el puerto 9022 en myOutsideHost hasta el puerto 22, el servidor sshd, en el host local.

myOutsideHost% ssh -p 9022 localhost
myLocalHost%

Cómo copiar archivos con Secure Shell

El siguiente procedimiento muestra cómo usar el comando scp para copiar archivos cifrados entre hosts. Puede copiar archivos cifrados ya sea entre un host local y un host remoto, o entre dos hosts remotos. El comando scp solicita autenticación. Para obtener más información, consulte la página del comando man scp(1).

También puede utilizar el programa de transferencia de archivos segura sftp. Para obtener más información, consulte la página del comando man sftp(1). Si desea ver un ejemplo, consulte el Ejemplo 17-5.


Nota - El servicio de auditoría puede auditar transacciones sftp a través de la clase de auditoría ft. Para scp, el servicio de auditoría puede auditar acceso y salida para la sesión ssh.


  1. Inicie el programa de copia segura.

    Especifique el archivo de origen, el nombre de usuario en el destino remoto y el directorio de destino.

    myLocalHost% scp myfile.1 jdoe@myRemoteHost:~
  2. Indique la frase de contraseña cuando se le solicite.
    Enter passphrase for key '/home/jdoe/.ssh/id_rsa': <Type passphrase>
    myfile.1       25% |*******                      |    640 KB  0:20 ETA 
    myfile.1 

    Después de escribir la frase de contraseña, se muestra un indicador de progreso. Consulte la segunda línea en el resultado anterior. El indicador de progreso muestra:

    • El nombre del archivo

    • El porcentaje del archivo que se ha transferido

    • Una serie de asteriscos que indican el porcentaje del archivo que se ha transferido

    • La cantidad de datos transferidos

    • El tiempo calculado de llegada, o ETA, del archivo completo (es decir, la cantidad restante de tiempo)

Ejemplo 17-5 Especificación de un puerto cuando se utiliza el comando sftp

En este ejemplo, el usuario desea que el comando sftp utilice un puerto concreto. El usuario utiliza la opción -o para especificar el puerto.

% sftp -o port=2222 guest@RemoteFileServer

Cómo configurar conexiones predeterminadas a hosts fuera de un cortafuegos

Puede utilizar Secure Shell para establecer una conexión desde un host dentro de un cortafuegos hasta un host fuera del cortafuegos. Esta tarea se realiza especificando un comando de proxy para ssh en un archivo de configuración o como una opción en la línea de comandos. Para la opción de línea de comandos, consulte el Ejemplo 17-6.

En general, puede personalizar las interacciones de ssh mediante un archivo de configuración.

Los archivos se pueden personalizar con dos tipos de comandos de proxy. Un comando de proxy es para conexiones HTTP. El otro comando de proxy es para conexiones SOCKS5. Para obtener más información, consulte la página del comando man ssh_config(4).

  1. Especifique los comandos de proxy y los hosts en un archivo de configuración.

    Utilice la sintaxis siguiente para agregar tantas líneas como sea necesario:

    [Host outside-host]
    ProxyCommand proxy-command [-h proxy-server] \
    [-p proxy-port] outside-host|%h outside-port|%p
    Host host_exterior

    Limita la especificación del comando de proxy a instancias cuando un nombre de host remoto se especifica en la línea de comandos. Si utiliza un carácter comodín para host_exterior, aplica la especificación del comando de proxy a un conjunto de hosts.

    comando_proxy

    Especifica el comando de proxy.

    El comando puede ser cualquiera de los siguientes:

    • /usr/lib/ssh/ssh-http-proxy-connect para conexiones HTTP

    • /usr/lib/ssh/ssh-socks5-proxy-connect para conexiones SOCKS5

    -h servidor_proxy y -p puerto_proxy

    Estas opciones especifican un servidor proxy y un puerto proxy, respectivamente. Si están presentes, los proxies sustituyen cualquier variable de entorno que especifica servidores proxy y puertos proxy, como HTTPPROXY, HTTPPROXYPORT, SOCKS5_PORT, SOCKS5_SERVER y http_proxy. La variable http_proxy especifica una URL. Si las opciones no se usan, las variables de entorno relevantes se deben definir. Para obtener más información, consulte las páginas del comando man ssh-socks5-proxy-connect(1) y ssh-http-proxy-connect(1).

    host_exterior

    Designa un host específico para conectarse. Utilice el argumento de sustitución %h para especificar el host en la línea de comandos.

    puerto_exterior

    Designa un puerto específico para conectarse. Utilice el argumento de sustitución %p para especificar el puerto en la línea de comandos. Al especificar %h y %p sin utilizar la opción Host host_exterior, el comando de proxy se aplica al argumento de host cada vez que se invoca el comando ssh.

  2. Ejecute Secure Shell especificando el host externo.

    Escriba, por ejemplo:

    myLocalHost% ssh myOutsideHost

    Este comando busca una especificación de comando de proxy para myOutsideHost en su archivo de configuración personal. Si la especificación no se ha encontrado, el comando busca en el archivo de configuración de todo el sistema, /etc/ssh/ssh_config. El comando de proxy se sustituye por el comando ssh.

Ejemplo 17-6 Conexión a hosts fuera de un cortafuegos desde la línea de comandos

Cómo configurar conexiones predeterminadas a hosts fuera de un cortafuegos explica cómo especificar un comando de proxy en un archivo de configuración. En este ejemplo, un comando de proxy se especifica en la línea de comandos ssh.

% ssh -o'Proxycommand=/usr/lib/ssh/ssh-http-proxy-connect \
-h myProxyServer -p 8080 myOutsideHost 22' myOutsideHost

La opción -o para el comando ssh proporciona un método de línea de comandos para especificar un comando de proxy. En este ejemplo, el comando realiza lo siguiente: