Acceso Remoto - Apuntes Digitales

Anuncio
Acceso Remoto
Este documento capítulo trata sobre la instalación y configuración
del servicio de acceso remoto que permite a los usuarios abrir
sesiones en un PC desde otro en la red. Para entornos Windows
Server se verán los servicios de escritorio remoto. Para entornos
Linux se verá SSH (Secure Shell) .
Acceso Remoto by Rafael Lozano is licensed under a Creative Commons Reconocimiento-NoComercialCompartirIgual 3.0 España License.
Información técnica
Nivel de usuario: Avanzado
Escenario: La instalación y configuración de un servidor DNS se ha realizado y probado sobre
dos redes locales virtuales independientes creadas en VirtualBox v4.2. En la primera se ha
utilizado dos servidores Windows Server 2008 R2 y un cliente Windows 7 con la siguiente
configuración:
Hostname
Máquina
Virtual
SO
Conexiones de Red
Hardware
Red NAT
Dinámica en
172.16.0.0/16
Red Interna
red_windows
Servidores
Puerta de
de Nombres Enlace
Software
adicional
192.168.20.1/24
172.16.0.1
Ninguno
SeWiPr
WS 2008 R2 HD 30GB
RAM 1GB
SeWiSe
WS 2008 R2 HD 30GB
RAM 1GB
192.168.20.10/24 192.168.20.1 192.168.20.1 Ninguno
reservada DHCP
CW
W7
Dinámica en
192.168.20.0/24
HD 15GB
RAM 512 MB
172.16.0.1
192.168.20.1 192.168.20.1 Ninguno
En la siguiente red se ha empleado un servidor Lubuntu 13.04 y un cliente con el mismo sistema
operativo, según la siguiente configuración
Hostname
Máquina
Virtual
SO
Conexiones de Red
Hardware
Red NAT
Red Interna
red_linux
Servidores
Puerta de
de Nombres Enlace
Software
adicional
172.16.0.1
Ninguno
SeLiPr
Lubuntu
13.04
HD 5GB
Dinámica en
RAM 512MB 172.16.0.0/16
192.168.21.1/24
172.16.0.1
SeLiSe
Lubuntu
13.04
HD 5GB
RAM 256 MB
192.168.21.10/24 192.168.21.1 192.168.21.1 Ninguno
reservada DHCP
CL
Lubuntu
13.04
HD 5GB
RAM 256 MB
Dinámica en
192.168.21.0/24
192.168.21.1 192.168.21.1 Ninguno
Para poder acceder al servidor de acceso remoto es necesario que los servidores DHCP estén
configurados correctamente y funcionando para que los clientes puedan obtener una configuración
de red. También, es fundamental que los servidores DNS estén con sus zonas correctamente
configuradas, tal y como se vio en el capítulo dedicado a DNS. Así, los clientes podrán acceder
remotamente a un PC a través de un nombre.
Conocimientos previos: Es necesario tener conocimientos teóricos y prácticos de la
configuración TCP/IP de una interfaz de red, en plataformas Windows y Linux. Para la parte de
Linux se necesita saber el uso de un editor de texto plano, como nano o vi, además de los
comandos básicos de Unix en gestión de archivos y directorios.
Fecha del documento: Julio 2013
I
Esquema de red: La conexión de red es la siguiente
II
Tabla de contenido
Tabla de contenido
1. Introducción al acceso remoto......................................................................................................1
2. Windows Remote Desktop..............................................................................................................2
2.1 El protocolo RDP..........................................................................................................................................3
2.2 Escritorio remoto en modo administración..........................................................................................3
2.2.1 Habilitar Escritorio remoto...................................................................................................................... 4
2.2.2 Usuarios que acceden remotamente al equipo.................................................................................6
2.2.3 Configuración de la conexión a escritorio remoto............................................................................7
2.3 Instalación de los servicios de Terminal Services................................................................................8
2.4 Sesiones remotas en controladores de dominio..............................................................................10
2.5 Configuración de Terminal Services.....................................................................................................11
2.6 Administración de Terminal Services...................................................................................................15
2.6.1 Desconectar sesiones............................................................................................................................. 16
2.6.2 Restablecer sesiones.............................................................................................................................. 17
2.6.3 Cerrar sesiones........................................................................................................................................ 17
2.6.4 Información de los procesos................................................................................................................ 17
2.6.5 Información de las sesiones.................................................................................................................. 18
2.6.6 Envío de mensajes a las sesiones........................................................................................................ 19
2.6.7 Control de las sesiones.......................................................................................................................... 21
2.6.8 Conexión con una sesión....................................................................................................................... 23
2.7 Instalación de aplicaciones en entornos con Terminal Services..................................................23
2.7.1 Los modos install y execute.................................................................................................................. 24
2.7.2 Comando change..................................................................................................................................... 24
2.8 Clientes de escritorio remoto en Linux...............................................................................................25
3. SSH..................................................................................................................................................... 27
3.1 Instalación del servidor ssh....................................................................................................................27
3.2 Abrir una sesión remota..........................................................................................................................28
3.2.1 Autenticación con usuario y contraseña............................................................................................28
3.2.2 Autenticación con clave pública........................................................................................................... 29
3.3 Ejecución remota de aplicaciones gráficas.........................................................................................32
3.4 Copia remota de archivos.......................................................................................................................32
3.5 Servidor FTP seguro..................................................................................................................................33
4. Bibliografía........................................................................................................................................35
Índice I
Rafael Lozano
Acceso remoto
Acceso remoto
1. Introducción al acceso remoto
El acceso remoto consiste en abrir sesión y ejecutar aplicaciones en un PC desde otra ubicación
de la red. El acceso remoto aporta capacidad multiusuario. Cuando un usuario se conecta a un PC
mediante el acceso remoto, en realidad utiliza los recursos del propio ordenador, no los del PC
concreto en la que se halla sentado. Cada usuario que se conecta remotamente obtiene su propia
sesión y cada sesión está completamente aislada de las demás sesiones. Un programa que falle en
una sesión puede hacer que el usuario de esa sesión tenga un problema, pero no afecta a los demás
usuarios.
Un servidor de terminales es un servidor que ejecuta un software que permite a los usuarios
acceder al mismo remotamente desde otros PCs (que hacen de terminales) y manejarlo como si
estuvieran sentados frente al servidor.
Figura 1.- Servidor de terminales
Página 1
Rafael Lozano
Acceso remoto
En los sistemas Unix esto ha existido prácticamente desde siempre ya que los usuarios se
conectaban al servidor mediante telnet y lanzaban procesos de forma remota. El telnet es una
aplicación cliente de terminal que permite desde cualquier PC de la red conectarse a un servidor. Para
que la conexión remota sea posible, el servidor deberá tener instalado el software de servidor de
telnet que es el paquete telnetd. Al comenzar la conexión el usuario debía identificarse con login y
contraseña para poder utilizar el sistema, de la misma forma que lo haría si se sienta en la consola
principal del servidor. El telnet está prácticamente en desuso ya que la información que se envía
desde el cliente al servidor y viceversa está sin encriptar y cualquier usuario que pinche la red podrá
averiguar el nombre del usuario y su contraseña fácilmente.
El sustituto del telnet es el SSH que permite conectarse a un servidor remoto pero de forma
segura ya que las comunicaciones en todo momento van encriptadas con algoritmos muy seguros de
forma que es prácticamente imposible descifrar la información.
En todo momento estamos hablando de accesos remotos en modo texto, es decir, mediante un
símbolo del sistema introduciendo comandos como si se tratara de una ventana del símbolo del
sistema o un terminal en modo texto de Unix. En los años 80 o 90 era impensable que múltiples
usuarios pudieran conectarse a un sistema remoto con terminales gráficos ya que requieren de una
gran cantidad de memoria. En la actualidad, debido al abaratamiento de la memoria RAM, esto se ha
convertido en una realidad.
Existen diversas soluciones para el acceso remoto en el mercado. En sistemas Windows Server
se dispone de los servicios de Terminal Server. Para plataformas Linux veremos SSH
2. Windows Remote Desktop
Windows Remote Desktop (WRD) son un componente de los sistemas operativos Windows que
permite a un usuario acceder a las aplicaciones y datos almacenados en otro ordenador mediante un
acceso por red. WRD se puede utilizar como mecanismo para la gestión y el control de los servidores
desde cualquier parte de la red o aprovechar su capacidad como servidor de aplicaciones para
simplificar la implantación y el mantenimiento de aplicaciones para una población de usuarios.
El uso de los servicios de WRD requiere tres componentes:
1. Servidor de escritorio remoto.
2. Cliente de escritorio remoto.
3. El protocolo RDP.
Podemos distinguir dos tipos de instalación:
1. Modo servidor de aplicaciones.- Permite el acceso simultáneo por parte de varios clientes
remotos. En este caso es necesario instalar el rol de Servidor de escritorio remoto y adquirir
licencias CAL (Client Access License) para que los usuarios se puedan conectar.
2. Modo administración remota.- Proporciona acceso remoto a los servidores por parte de los
administradores. Soporta solamente una sesión abierta. Por defecto, este modo no está
activado, pero se puede activar sin necesidad de ninguna instalación.
Como todas las aplicaciones de una sesión WRD se ejecutan en el servidor, la gestión de las
Página 2
Rafael Lozano
Acceso remoto
sesiones y de las aplicaciones se simplifica enormemente. Sólo hay que llevar a cabo una vez los
cambios en las aplicaciones o en las configuraciones, y todas las sesiones de servicios de WRD los ven.
Además, los servicios de WRD permite a los administradores ver lo que sucede en las sesiones de los
usuarios, o, incluso, controlarlas directamente. El personal de los servicios de atención al usuario
puede ver realmente lo que ve el usuario sin necesidad de desplazarse, pudiendo compartir el control
de la sesión y guiar al usuario en la resolución de problemas.
Cuando se configura en el modo predeterminado Escritorio remoto para administradores, WRD
se puede utilizar también como herramienta de gestión. En este modo los administradores pueden
iniciar directamente una sesión en la máquina desde sus ordenadores de sobremesa para llevar a
cabo el mantenimiento normal del sistema sin tener que desplazarse hasta la consola del servidor.
Pueden incluso tomar la consola del servidor real, redirigiéndola a su propio escritorio.
Esto supone una funcionalidad añadida al repertorio de los administradores, la activación del
control directo de todos los servidores sin necesidad de abandonar el ordenador de sobremesa.
Puede que cada administrador de sistema active el modo de administración remota de todos sus
servidores. La sobrecarga del servidor es mínima en comparación con las ventajas.
2.1 El protocolo RDP
RDP (Remote Desktop Protocol) es un protocolo propietario desarrollado por Microsoft que
permite la comunicación en la ejecución de una aplicación entre un terminal (mostrando la
información procesada que recibe del servidor) y un servidor Windows (recibiendo la información
dada por el usuario en el terminal mediante el teclado o el ratón).
El modo de funcionamiento del protocolo es sencillo. La información gráfica que genera el
servidor es convertida a un formato propio RDP y enviada a través de la red al terminal, que
interpretará la información contenida en el paquete del protocolo para reconstruir la imagen a
mostrar en la pantalla del terminal. En cuanto a la introducción de órdenes en el terminal por parte
del usuario, las teclas que pulse el usuario en el teclado del terminal así como los movimientos y
pulsaciones del ratón son redirigidos al servidor, permitiendo el protocolo un cifrado de los mismos
por motivos de seguridad. El protocolo también permite que toda la información que intercambien
cliente y servidor sea comprimida para un mejor rendimiento en redes menos veloces, lo que puede
ser interesante en multitud de ambientes de trabajo en los que se utilizan servidores de Microsoft.
2.2 Escritorio remoto en modo administración
El Escritorio Remoto en modo administración proporciona funciones de administración de
servidor remoto para los sistemas operativos de la familia Windows Server, y con esta característica
puede ser administrado un servidor desde prácticamente cualquier equipo de la red. No se necesitan
licencias para disponer de conexión remota al servidor, y tan sólo precisamos autenticarnos
previamente como un usuario habilitado para el uso de esta aplicación.
Con Escritorio remoto en Windows Server solo es posible establecer una sesión por usuario,
local o remota, al mismo tiempo, o do sesiones para dos usuarios diferentes. Si abrimos una sesión
remota desde un ordenador con el servidor, se cerrará la sesión local que tuviera abierta. Si por el
contrario abrimos una sesión local y había una remota abierta, esta se cerrará. En ambos casos
suponemos que el mismo usuario abre las dos sesiones.
Página 3
Rafael Lozano
Acceso remoto
Los usuarios que inician una sesión de Escritorio Remoto en su estación de trabajo, sólo ven su
sesión, administrada de manera transparente por el sistema operativo del servidor e independiente
de cualquier otra sesión que se pudiera estar ejecutando. El software de cliente puede ejecutarse en
varios dispositivos hardware de cliente, incluidos equipos y terminales basados en sistemas
operativos Windows, e incluso en otros sistemas operativos Linux o Mac.
Desde el punto de vista de la estación de trabajo donde se ejecuta el cliente de Escritorio
Remoto, éste aparece como una ventana en el entorno de escritorio local que contiene sólo la
cantidad mínima de software necesaria para establecer una conexión con el servidor y presentar la
interfaz de usuario, el resto de funciones del sistema operativo, así como las aplicaciones, se ejecutan
en el equipo servidor al que se ha conectado.
2.2.1 Habilitar Escritorio remoto
Por defecto, la característica de Escritorio remoto no está habilitada. Procederemos entonces a
habilitar el Escritorio Remoto en Windows Server, de modo que permitamos el acceso remoto al
equipo desde otros equipos de la red. Para habilitar el Escritorio remoto en nuestro servidor
seguiremos los siguientes pasos:
1. Hacer clic en el menú Inicio y hacer clic con el botón derecho del ratón sobre Equipo.
Seleccionar la opción Propiedades.
2. Hacer clic sobre el enlace Configuración de acceso remoto.
3. Seleccionar la opción Permitir sólo las conexiones desde equipos que ejecuten Escritorio remoto
con Autenticación a nivel de red (más seguro).
4. Hacer clic en e lbotón Aceptar en el cuadro de diálogo que nos avisa de la inclusión de reglas
en el Firewall de Windows.
5. Hacer clic en el botón Aceptar.
Página 4
Rafael Lozano
Acceso remoto
Figura 2.- Habilitar el Acceso remoto
Podemos probar si desde el cliente podemos acceder remotamente al servidor mediante
Escritorio Remoto. Para ello seguir los siguientes pasos:
1. En el cliente de Windows hacer clic en el menú Inicio y ejecutar Conexión a Escritorio remoto en
Accesorios.
Figura 3.- Conexión a escritorio remoto
2. Aparece el cuadro de diálogo para conectar a un equipo remoto. En el cuadro de texto Equipo
Página 5
Rafael Lozano
Acceso remoto
escribir
el
nombre
del
servidor
o
la
dirección
IP.
En
este
sewipr.serviciosenred.local. Posteriormente hacer clic en el botón Conectar.
caso
3. Si la conexión tiene éxito aparece el cuadro de autenticación de usuario. Escribir el usuario y
contraseña para abrir sesión en el servidor. Posteriormente hacer clic en el botón Aceptar.
4. Aceptar el certificado del servidor.
Si todo ha ido bien habrá aparecido una ventana en la que se muestra el escritorio del servidor.
En la parte superior de la pantalla parece una pestaña con el nombre del equipo en el que estamos
conectados y un botón con el icono de una chincheta en la parte izquierda que permite ocultar la
pestaña y cuando el ratón se mueve a la parte superior de la pantalla aparece de nuevo. Volviendo a
pulsar sobre el mismo botón, dejará la pestaña fija.
El botón cerrar ventana de la parte derecha de la pestaña funciona algo diferente. Cierra la
ventana de Escritorio Remoto pero deja la sesión abierta, de modo que si se vuelve a conectar con el
mismo usuario, aparecerá su escritorio tal y como lo dejó. A esto se le conoce como desconectar y
restablecer la sesión.
Una vez que hayamos realizado las actuaciones oportunas, y deseemos cerrar la conexión a
Escritorio Remoto, es MUY IMPORTANTE indicar que NO debemos seleccionar la opción Apagar
dentro de la ventana del cliente de Escritorio Remoto, pues en dicho caso apagaremos el equipo, en
vez de cerrar la conexión; la opción que hemos de seleccionar debe ser Cerrar sesión Administrador,
para que el servidor siga encendido.
Figura 4.- Sesión remota en el servidor desde el cliente
2.2.2 Usuarios que acceden remotamente al equipo
Cualquier usuario no puede acceder al equipo mediante Escritorio remoto. Por defecto el
usuario Administrador es el único que puede hacerlo. Podemos hacer una prueba e intentar conectar
Página 6
Rafael Lozano
Acceso remoto
al servidor desde el cliente utilizando un usuario diferente al Administrador. Comprobaremos que
aparece un mensaje de error denegando el acceso al ser un usuario que no tiene habilitado el acceso
remoto.
Si deseamos permitir el acceso mediante la conexión a Escritorio remoto a otros usuarios que no
sean el propio usuario Administrador del equipo hay que seguir los siguientes pasos:
1. Hacer clic en el menú Inicio y hacer clic con el botón derecho del ratón sobre Equipo.
Seleccionar la opción Propiedades.
2. Hacer clic sobre el enlace Configuración de acceso remoto.
3. Hacemos clic sobre el botón Seleccionar usuarios...
4. Aparece la ventana Usuarios de escritorio remoto. Hacer clic sobre el botón Agregar.
5. Hacer una búsqueda del usuario o grupo al que queremos habilitar el acceso remoto.
6. Si queremos quitar el usuario o grupo que tiene derecho para acceder por escritorio remoto,
lo seleccionamos y hacemos clic en el botón Quitar.
7. Cuando hayamos terminado de indicar los usuarios que pueden acceder remotamente, hacer
clic en el botón Aceptar.
Figura 5.- Usuarios de escritorio remoto
Si ahora hacemos la misma prueba anterior veremos que si puede conectar.
2.2.3 Configuración de la conexión a escritorio remoto
Al ejecutar el cliente de escritorio remoto debemos introducir el nombre o la dirección IP de la
máquina a la que vamos a conectarnos remotamente. Si hacemos clic en el enlace Mostrar opciones
podemos indicar algunas preferencias de la conexión.
En la primera ficha, General, podemos indicar la máquina a la que vamos a conectar, el usuario y
Página 7
Rafael Lozano
Acceso remoto
la contraseña para abrir sesión. Así, además de conectar remotamente envía los datos de apertura de
sesión. También podemos guardar los parámetros de la conexión para futuras conexiones.
En la ficha Pantalla, estamos indicando el tamaño de la pantalla y la profundidad del color a
utilizar. Cuanto más bajo sean estos parámetros más rápida será la conexión. Dejaremos activada la
casilla Mostrar barra de conexión cuando use la pantalla completa para tener una pequeña barra en la
parte superior de la pantalla de la conexión remota que nos permitirá gestionarla.
En la ficha Recursos locales indicamos el uso que daremos a los recursos de la máquina a la que
nos conectamos desde el cliente, como el teclado, el sonido, impresoras, etc.
En la ficha Programas podemos configurar la ejecución de un programa nada más conectarnos.
En la ficha Rendimiento podemos configurar la velocidad de la conexión y algunas características
de la interfaz de usuario para hacer la conexión más rápida.
Por último, en la ficha Opciones avanzadas podemos configurar que hacer cuando hay
problemas de seguridad al conectar con el servidor.
Figura 6.- Opciones de conexión a escritorio remoto
2.3 Instalación de los servicios de Terminal Services
Ya vimos en la sección anterior que Escritorio Remoto solamente permite una conexión
simultánea para cada usuario o dos si son usuarios diferentes. Para tareas de administración remota
del servidor es suficiente, pero para otros escenarios es claramente insuficiente.
Página 8
Rafael Lozano
Acceso remoto
Imaginemos que queremos dar servicio de escritorio remoto a todos los usuarios del servidor o
dominio para que puedan conectarse y ejecutar alguna aplicación cuyas licencias de uso resultan muy
caras y solamente disponemos de una copia instalada en el servidor para todos los usuarios de la red.
En esta situación resulta conveniente que los usuarios se conecten por escritorio remoto y ejecuten
esta aplicación.
Por tanto, necesitaremos instalar los Servicios de Escritorio Remoto para que los usuarios
puedan abrir sesiones remotas con el servidor. Los Servicios de Escritorio Remoto es un servicio de
los sistemas operativos Windows Server que permite abrir sesiones remotas a los usuarios a través de
la red con el servidor. Al igual que Escritorio remoto, está basado en el protocolo RDP, pero necesita de
la compra de licencias para poder usarlo. Windows Server incorpora una versión de prueba de 120
días, al cabo de los cuales habrá que adquirir las licencias si se quiere continuar usando.
Para su instalación hay que seguir los siguientes pasos:
1. Abrir Administrador del servidor.
2. Hacer clic en Roles del panel izquierdo.
3. Hacer clic el enlace Agregar roles.
4. En Antes de comenzar hacemos clic en el botón Siguiente.
5. En Seleccionar funciones de servidor activaremos Servicios de Escritorio remoto. Posteriormente
hacemos clic en el botón Siguiente.
6. En la pantalla de información de Servicios de Escritorio remoto hacemos clic en el botón
Siguiente.
7. En Seleccionar servicios de rol seleccionar Host de sesión de Escritorio remoto y Acceso web a
escritorio remoto. Posteriormente hacemos clic en el botón Siguiente.
8. En Desinstalar y reinstalar aplicaciones por compatibilidad nos informa que las aplicaciones
actualmente instaladas pueden no funcionar bien en un entorno multiusuario, por lo que
habría que desistalarlas y volverlas a instalar. Hacer clic en el botón Siguiente.
9. En Método de autenticación seleccionaremos Requerir autenticación a nivel de red y
posteriormente hacemos clic en el botón Siguiente.
10. En Modo de licencia dejaremos activado Configurar más adelante para utilizar la versión de
prueba de 120 días. Posteriormente hacemos clic en el botón Siguiente.
11. En Seleccionar grupos de usuarios con acceso concedido a ester servidor de Terminal Server
añadiremos los grupos y usuarios que podrán abrir sesiones remotas. Por defecto aparecerán
los usuarios y grupos que ahora mismo son miembros del grupo Usuarios de escritorio remoto.
Después de añadirlos, hacer clic en el botón Siguiente.
12. En Confirmar selecciones de instalación hacer clic en el botón Instalar.
13. Cuando termine habrá que hacer un reinicio del servidor.
Una vez hemos instalado Servicios de Escritorio remoto podemos hacer una prueba y abrir una
sesión remota desde el cliente. Si ejecutamos Conexión con escritorio remoto en el cliente de Windows
Página 9
Rafael Lozano
Acceso remoto
y podemos abrir sesión remota con cualquier usuario habilitado para ello, entonces la instalación de
los Servicios de Escritorio remoto habrá finalizado.
2.4 Sesiones remotas en controladores de dominio
Durante la instalación vimos como había que establecer que usuarios y grupos podrían abrir
sesión remotamente. Por defecto, en los servidores que son independientes, los usuarios que
pertenecen a los grupos Administradores y Usuarios de escritorio remoto pueden abrir sesiones
remotas.
Sin embargo, si el servidor es un controlador de dominio solamente los usuarios del grupo
Administradores pueden abrir sesión. En este caso, si queremos que los usuarios no administradores
puedan abrir sesiones remotas, entonces es necesario incluir el grupo Usuarios de escritorio remoto en
la configuración de seguridad del dominio para que sus miembros puedan hacerlo. Así, solamente
tendremos que asignar este grupo a cualquier usuario que necesite abrir sesión remota.
Figura 7.- Configuración de la directiva de seguridad del dominio
Para ello seguir los siguientes pasos:
1. Abrir Configuración de seguridad del dominio en Herramientas Administrativas.
2. Desplegar el árbol de la consola en Configuración de Seguridad →
Asignación de Derechos de usuario.
Página 10
Directivas Locales →
Rafael Lozano
Acceso remoto
3. En el panel derecho hacer doble clic sobre la directiva Permitir inicio de sesión a través de
Servicios de Terminal Services.
4. Activar la casilla Definir esta configuración de directiva.
5. Hacer clic en el botón Agregar usuario o grupo.
6. En el cuadro de texto Nombre de usuario o grupo introducir Usuarios de escritorio remoto y
hacer clic en el botón Aceptar.
7. Hacer clic en el botón Aceptar.
A partir de ahora a todo usuario al que se le quiera conceder permiso para iniciar sesión remota
hay que incluirlo en el grupo de Usuarios de escritorio remoto.
2.5 Configuración de Terminal Server
Para configurar las opciones que afectan a las sesiones remotas de los usuarios, disponemos de
la consola de administración Configuración de host de sesión de Escritorio remoto.
Figura 8.- Configuración de Terminal Services
En el menú Herramientas Administrativas disponemos de la carpeta Servicios de Escritorio remoto y
dentro de está Configuración de host de sesión de Escritorio Remoto. Desde esta consola, podremos
configurar las opciones..
En el panel central disponemos de las directivas de configuración en la sección Editar
configuración. Si hacemos doble clic sobre alguna de ellas se editarán las propiedades generales. Estas
son:
✔
Eliminar las carpetas temporales al salir.- Cuando un usuario crea una sesión, Terminal Services
crea unas carpetas para almacenar información sobre la sesión. Con esta directiva activada
estas carpetas se borrarán.
✔
Usar carpetas temporales por sesión.- Terminal Services creará carpetas temporales por cada
sesión abierta por un usuario en lugar de utilizar las mismas carpetas para todos los usuarios.
Página 11
Rafael Lozano
Acceso remoto
✔
Restringir cada usuario a una sesión.- Sólo se permite una sesión por usuario.
✔
Modo de inicio de sesión de usuario.- Si queremos impedir que se creen sesiones de usuario
en el servidor de Terminal Services en el caso de tener previsto desconectar el servidor para
realizar tareas de mantenimiento o instalar aplicaciones nuevas. Aquí podemos establecer:
✗
Permitir todas las conexiones.- De esta manera, los usuarios pueden conectarse al servidor
de Terminal Services para establecer una sesión remota.
✗
Permitir reconexiones, pero impedir nuevos inicios de sesión.- Un usuario que ya tenga
establecida una sesión remota en el servidor de Terminal Services puede reconectarse a
esa sesión. Sin embargo, un usuario nuevo (un usuario que no tenga establecida una
sesión remota en el servidor de Terminal Services) no podrá conectarse al servidor. Si se
reinicia el servidor de Terminal Services, ningún usuario podrá conectarse a él.
✗
Permitir reconexiones, pero impedir nuevos inicios de sesión hasta que el servidor se reinicie.- Un
usuario que ya tenga establecida una sesión remota en el servidor de Terminal Services
puede reconectarse a esa sesión. Sin embargo, un usuario nuevo no podrá conectarse a
dicho servidor. Si se reinicia el servidor, el modo de inicio de sesión de usuario se
establecerá en Permitir todas las conexiones y los usuarios podrán conectarse al servidor.
También podemos establecer opciones de configuración desde la ventana de propiedades del
protocolo RDP. Si en la sección Conexiones hacemos clic con el botón derecho del ratón sobre RDP-Tcp
y seleccionamos la opción Propiedades veremos esta ventana.
Página 12
Rafael Lozano
Acceso remoto
Figura 9.- Ventana de propiedades protocolo RDP
En la pestaña Permisos indicaremos los grupos de seguridad y usuarios a los que queramos
permitir el acceso por Terminal Services. De forma predeterminada sólo se permite acceso al servidor a
los grupos Administradores y Usuarios de escritorio remoto.
Página 13
Rafael Lozano
Acceso remoto
Figura 10.- Permisos
También podríamos conceder permiso Control total para que un usuario pueda realizar ciertas
operaciones, como tomar el control de una sesión o cerrarla.
En la pestaña Configuración de Cliente podemos establecer la configuración de las conexiones de
cada usuario. Por defecto se deja que cada usuario configure su conexión. Para ahorrar ancho de
banda se puede limitar la profundidad de color.
En la pestaña Control remoto podremos establecer las opciones de control remoto, para
visualizar de forma remota cualquier sesión de cualquier usuario, tanto para visualizar la ventana del
usuario como para controlarla. En este caso también prevalecerá esta configuración por encima de la
individual de cada usuario. La configuración del control remoto para cada usuario se lleva a cabo en la
ventana de propiedades del usuario.
En la pestaña Sesiones podremos limitar el tiempo de sesión activa/inactiva, permitir volver a
conectar desde cualquier cliente, etc. En este caso también prevalecerá esta configuración por encima
de la configuración individual del usuario.
Página 14
Rafael Lozano
Acceso remoto
Figura 11.- Configuración de sesiones
2.6 Administración de Terminal Services
El Administrador de Terminal Services es un complemento de administración disponible en el
grupo de programas Terminal Services del menú Herramientas administrativas para supervisar y ver
información acerca de los usuarios, las sesiones y los procesos de los servidores de Terminal Services
operando en la red. Además, podemos realizar determinadas tareas administrativas, como
desconectar o cerrar la sesión de algún usuario.
Página 15
Rafael Lozano
Acceso remoto
Figura 12.- Administrador de Terminal Services
Si un usuario crea una sesión mediante la conexión a un servidor de Terminal Services desde un
equipo cliente, está disponible la siguiente información en el Administrador de Terminal Services:
✔
En la ficha Sesiones, aparece información acerca de la sesión que se ejecuta en el servidor de
Terminal Services como por ejemplo, si la sesión está activa.
✔
En la ficha Usuarios, aparece información acerca del usuario conectado al servidor de Terminal
Services, como por ejemplo el nombre de la cuenta de usuario que inició sesión).
✔
En la ficha Procesos, aparece información acerca de qué programas se ejecutan en la sesión
de usuario del servidor de Terminal Services.
2.6.1 Desconectar sesiones
Cuando se desconecta una sesión continúan ejecutándose todos los programas de esa sesión,
pero se dejan de transmitir a la terminal remota las entradas y salidas de datos de la sesión. La
desconexión de una sesión deja en su estado normal los programas y los datos del usuario, lo que los
protege de la pérdida de datos. La desconexión de una sesión no libera memoria ni otros recursos
del servidor, y la sesión sigue contabilizándose como sesión con licencia.
Cualquier usuario puede desconectar su propia sesión, y los administradores con el privilegio
de Control total pueden desconectar cualquier sesión. Para desconectar una sesión seguir los
siguientes pasos:
1. Abrir Administrador de Terminal Services.
2. Seleccionamos la sesión en la ficha Sesiones y hacemos clic sobre la opción Desconectar en el
panel Acciones.
3. Hacer clic en el botón Aceptar.
El equipo en el que estaba activa la sesión recibirá un mensaje como el que puede verse en la
figura. Cuando se pulsa en el botón Aceptar desaparece.
Página 16
Rafael Lozano
Acceso remoto
Figura 13.- Desconexión de las sesiones
2.6.2 Restablecer sesiones
Podemos restablecer una sesión si es la propia o se dispone del privilegio de control total para
las sesiones. Cuando se restablece una sesión se pierde todo el trabajo de esa sesión, los programas
dejan de ejecutarse y se libera la memoria. Sin embargo, si un usuario vuelve a abrir sesión cuando
tenía una desconectada, la recupera tal y como la dejó cuando desconectó. Para restablecer una
sesión hay que seguir los siguientes pasos:
1. Abrir el Administrador de Terminal Services.
2. Seleccionar en la pestaña Sesiones la sesión a restablecer y hacer clic en la opción Restablecer
en el panel Acciones. Se recibirá un mensaje de advertencia.
3. Hay que pulsar Aceptar y la sesión se restablecerá.
2.6.3 Cerrar sesiones
Se puede cerrar la sesión propia, o la de otro usuario si se dispone del privilegio de control total.
El cierre de una sesión puede dar lugar a pérdida de datos para el usuario de esa sesión. Siempre se
debe advertir a los usuarios enviándoles un mensaje antes de cerrar la sesión. Para cerrar la sesión
seguir los siguientes pasos:
1. Abrir el Administrador de Terminal Services.
2. Hacer clic con el botón derecho del ratón sobre la sesión y seleccionar Cerrar sesión en el
menú. Se recibirá un mensaje de advertencia.
3. Hacer clic en el botón Aceptar y la sesión se restablecerá.
2.6.4 Información de los procesos
Podemos ver los procesos en ejecución en las diferentes sesiones abiertas con el servidor en la
pestaña Procesos.
Página 17
Rafael Lozano
Acceso remoto
Figura 14.- Lista de procesos en ejecución
Si seleccionamos un proceso y hacemos clic en Detener proceso del panel Acciones el proceso
terminará.
2.6.5 Información de las sesiones
Se pueden examinar los procesos activos de una sesión y otra mucha información relativa a una
sesión, incluido el cliente del que procede la sesión, el nivel de seguridad, la resolución de la sesión,
etc. Para ver los procesos activos de una sesión hay que hacer lo siguiente:
1. Abrir el Administrador de Terminal Services.
2. Hacer clic sobre la sesión de la cual queremos ver la información.
3. Hacer clic sobre la opción Estado del panel Acciones.
4. Para cerrar la ventana de estado de la sesión hacer clic en el botón Cerrar.
Página 18
Rafael Lozano
Acceso remoto
Figura 15.- Estado de la sesión
2.6.6 Envío de mensajes a las sesiones
Se pueden enviar mensajes a sesiones determinadas. Para enviar un mensaje a todas las
sesiones de un servidor concreto, simplemente hay que activar todas las sesiones y enviar un mensaje
a todas ellas a la vez. Para enviar un mensaje a una sesión o usuario hay que seguir el procedimiento
siguiente:
1. Abrir el Administrador de Terminal Services .
2. Seleccionar la sesión o el usuario al que vamos a enviar un mensaje y hacer clic sobre la
opción Enviar mensaje...
3. Escribir el mensaje que se quiere enviar. Con la combinación de teclas Ctrl+Intro se inicia una
nueva línea. Hacer clic en el botón Aceptar.
Página 19
Rafael Lozano
Acceso remoto
Figura 16.- Envío de mensaje
Cuando se hace clic en el botón Aceptar el usuario recibirá el mensaje en un cuadro de alerta en
el equipo donde tiene abierta la sesión.
Figura 17.- Recepción del mensaje
También se puede utilizar el comando msg de la línea de comandos para enviar mensajes a una
sesión concreta o a todos los usuarios de un servidor. El comando msg tiene más opciones y
funcionalidad que la mensajería gráfica del Administrador de Terminal Services. La sintaxis del comando
es:
msg {nombreDeUsuario|nombreDeSesión|IdDeSesión|@nombreDeArchivo|*} [/server:nombreDeServidor] [/time:segundos] [/v] [/w] [mensaje]
Parámetros
nombreUsuario El nombre del usuario que debe recibir el mensaje.
nombreSesión El nombre de la sesión en la que se debe recibir el mensaje.
IdSesión El identificador numérico de la sesión cuyo usuario debe recibir el mensaje.
@nombreArchivo Identifica un archivo que contiene una lista de los nombres de usuario y nombres e
identificadores de sesión que deben recibir los mensajes.
* Envía el mensaje a todos los nombres de usuario del sistema.
Página 20
Rafael Lozano
Acceso remoto
/server:nombreServidor Especifica el servidor Terminal Server a cuya sesión o usuario desea enviar el mensaje. Si no
se especifica, /server utiliza el servidor en el que ha iniciado la sesión en ese momento.
/time:segundos Especifica el intervalo de tiempo durante el que se mostrará el mensaje enviado en la
pantalla del usuario. Cuando se alcanza el límite de tiempo, el mensaje desaparece. Si no se
establece el límite de tiempo, el mensaje permanece en la pantalla hasta que el usuario lo ve
y hace clic en Aceptar.
/v Muestra información acerca de las acciones que se realizan.
/w Espera a que el usuario confirme que ha recibido el mensaje. Use este parámetro con
/timesegundos para evitar un posible retraso excesivo si el usuario no responde
inmediatamente. Su uso con el parámetro /v también resulta útil.
mensaje El texto del mensaje que desea enviar. En caso de que no se escriba ningún mensaje, se le
pedirá que lo haga o se leerá la entrada estándar (es decir, stdin) para el mensaje. Para
enviar un mensaje incluido en un archivo, escriba el símbolo menor que (<) seguido del
nombre de archivo.
/? Muestra la Ayuda en el símbolo del sistema.
2.6.7 Control de las sesiones
Si disponemos del permidos control total, se puede conectar con la sesión de otro usuario y
controlarla de manera remota. El teclado, el ratón y la pantalla serán iguales para la sesión propia y la
del usuario. Esto ofrece la posibilidad de resolver fácilmente los problemas de la sesión de un usuario
o de formar al usuario acompañándolo en la realización de una tarea concreta. Los datos de entrada
de la sesión provienen tanto de la sesión propia como de la del usuario. Si los valores de
configuración del usuario o del protocolo están definidos sólo para ver la sesión, no para controlarla
directamente, solo se verá lo que haga el usuario en su pantalla, pero no se podrá interactuar con él
utilizando el ratón ni el teclado.
De manera predeterminada, cuando se conecta con la sesión de un usuario utilizando el control
remoto, se comunica al usuario que se establece la conexión y se le solicita que confirme su
autorización. Esta notificación puede configurarse en las propiedades del usuario. En la hoja de
propiedades del usuario está la pestaña Control Remoto.
Página 21
Rafael Lozano
Acceso remoto
Figura 18.- Pestaña Control remoto en las propiedades de usuario
Si activamos la casilla Requerir el permiso del usuario cada vez que se pretenda tomar el control
de la sesión, le aparecerá al usuario propietario de la misma un cuadro de diálogo para aceptar o
rechazar el control remoto. En la sección Nivel de control se puede elegir entre ver o interactuar.
También se puede configurar esta notificación protocolo a protocolo para un servidor dado utilizando
Configuración de Servicios de Terminal Server.
Para tomar el control de una sesión no es posible hacerlo desde la consola de Windows Server,
sino que hay que abrir sesión remota con Escritorio remoto. Las opciones de Conexión y Control
Remoto están deshabilitadas cuando se ejecuta el Administrador de Servicios de Terminal Server
desde la consola del servidor.
Para tomar el control de la sesión de un usuario hay que seguir el procedimiento siguiente:
1. Abrir una sesión con Escritorio Remoto con el usuario Administrador o con un usuario que tenga
el permiso Control total sobre el protocolo RDP.
2. Abrir el Administrador de Terminal Services en la sesión que hemos abierto remotamente.
3. Seleccionar la sesión en la ficha Sesiones y hacer clic sobre la opción Control remoto en el panel
acciones.
Página 22
Rafael Lozano
Acceso remoto
4. En el cuadro de diálogo que aparece escoger una combinación de teclas adecuada para
concluir la sesión remota. El valor predeterminado es Ctrl+*, donde * es el del teclado
numérico.
5. Si el usuario tiene habilitado requerir su autorización se le aparecerá un cuadro de diálogo
para comunicar que la sesión espera asumir el control. Si no se necesita este permiso, el
usuario no recibirá ningún mensaje. Hasta que el usuario confirme el permiso para conectar
con su sesión, la sesión propia aparentará estar congelada.
2.6.8 Conexión con una sesión
Se puede conectar con otra sesión del servidor en el que se está si se dispone de los permisos
adecuados y la otra sesión está en un estado activo o desconectado. Siempre se puede conectar con
una sesión abierta con la misma cuenta de usuario que el inicio de sesión actual, o con la sesión de
otro usuario si se dispone de acceso de control total o de acceso de usuario. Se solicitará la
contraseña de usuario.
Esta capacidad de conectar con otra sesión puede ser una herramienta útil tanto para los
administradores como para los usuarios. Si al volver a casa uno se da cuenta de que ha olvidado
concluir un informe importante se puede abrir una sesión de manera remota, conectar con la sesión
de trabajo de la oficina y continuar donde se había dejado. Para conectar con una sesión hay que
seguir el procedimiento siguiente:
1. Abrir una sesión con Escritorio Remoto en el servidor.
2. Abrir el Administrador de Terminal Services en la sesión que hemos abierto remotamente.
3. Seleccionar la sesión en la ficha Sesiones y hacer clic con el botón derecho del ratón sobre ella.
4. Seleccionar Conectar en el menú contextual para conectarse con la sesión. Si la sesión es de
un usuario diferente que el actual, se solicitará la contraseña de la sesión de usuario de
destino. Si la sesión es propia, se cambiará de sesión y la actual se desconectará.
Solamente podemos conectarnos a sesiones de usuario desde una sesión remota.
2.7 Instalación de aplicaciones en entornos con Terminal Services
La instalación de programas en los servidores de Windows Server con Servicios de Terminal
Services instalado en modo de administración remota no se diferencia de la instalación en servidores
sin Servicios de Terminal Services. No se necesitan procedimientos especiales, modificaciones en el
proceso de instalación ni secuencias de comando para compatibilidad especiales.
Por otra parte, la instalación de programas en servidores Windows Server con Servicios de
Terminal Services instalado en modo de servidor de aplicaciones es un asunto distinto. Cuando se
activa el modo servidor de aplicaciones, Windows Server sabe que debe prepararse para tratar con
varios usuarios que tendrán acceso a la misma aplicación que se ejecutará simultáneamente en
espacios de memoria diferentes sin interferencias ni cruces. Hay que seguir con precaución el
procedimiento necesario para asegurar que la aplicación se instale correctamente y que funcione
adecuadamente como aplicación multiusuario.
Si la instalación de un programa se hace a través de un paquete de instalación de Windows .msi
Página 23
Rafael Lozano
Acceso remoto
el programa se instalará en el modo de instalación de Terminal Server. Si este programa se instala
desde otro tipo de paquete de instalación habrá que poner el servidor en modo de instalación con
uno de los dos métodos siguientes:
1. Utilizar la opción Instalar Aplicación en Terminal Server del Panel de Control
2. Utilizar el comando change para pasar al modo install antes de la instalación y execute
despues de esta.
2.7.1 Los modos install y execute
Windows Server, cuando se configura como Servidor de aplicaciones de Servicios de Terminal
Server, tiene dos modos de operación distintos: el modo de instalación y el modo de ejecución. Para
instalar una aplicación a través de un paquete de instalación distinto a . msi hay que estar en modo
instalación, o la aplicación no se instalará correctamente.
Windows Server suele ser lo suficientemente inteligente como para reconocer si se está
ejecutando un programa de instalación y automáticamente establece el modo necesario. Sin embargo
si se está instalando una aplicación antigua que no está certificada para Windows Server,
especialmente sino utiliza Setup.exe o Install.exe como su programa de instalación, hay que cambiar
manualmente el servidor a modo de instalación antes de ejecutar la instalación.
Se puede pasar al modo de instalación de dos maneras: utilizando el comando change de la
línea de comandos, que veremos en el siguiente apartado o utilizar la opción Instalar Aplicación en
Terminal Server del Panel de Control. Esta da comienzo a un asistente el cual solicitará el ejecutable
que instala la aplicación. Después de terminar la instalación, el servidor volverá al modo de ejecución.
En general es mejor utilizar este método, pero cuando hay que secuenciar la instalación de
varios programas se debe utilizar la versión de la línea de comandos.
Generalmente, la instalación de aplicaciones nuevas desde la consola del servidor resulta más
conveniente, aunque no sea imprescindible en la mayor parte de los casos. Cuando se ejecuta la
instalación desde allí, sin embargo, hay que asegurarse de que todos los usuarios han cerrado sus
sesiones en el servidor de terminal antes de comenzar la instalación. Para instalar un programa
utilizando hay que seguir el procedimiento siguiente:
1. Abrir el Instalar Aplicación en Terminal Server en el Panel de Control.
2. Insertar el CD que instala la aplicación. Posteriormente hacer clic en el boton Siguiente. Si no se
dispone de un CD de instalación, al hacer clic en el botón Siguiente pedirá el archivo ejecutable
que instala la aplicación. Podemos hacer clic en el botón Examinar para buscarlo.
3. Comienza la instalación de la aplicación. Seguir las instrucciones del asistente de instalación.
4. Una vez completada la instalación, con éxito o sin él, hay que concluir la instalación y volver al
cuadro de diálogo Finalizar instalación de administrador. Hay que pulsar en el botón Siguiente
para pasar al último cuadro de diálogo y hacer clic en el botón Finalizar o Cancelar. Si la
aplicación necesita un reinicio se puede realizar ahora.
2.7.2 Comando change
El comando change sólo está disponible en Windows Server si se ha instalado Servicios de
Página 24
Rafael Lozano
Acceso remoto
Terminal Services. Permite pasar del modo de instalación al de ejecución, cambiar las asignaciones de
los puertos para las sesiones de Servicios de Terminal Server y activar o desactivar los inicios de
sesión en Servicios de Terminal Server. Los tres comandos básicos y sus opciones son los siguientes
change user {/execute | /install | /query}
Parámetros
/execute El servidor pasa al modo de ejecución. Ésta es la configuración predeterminada.
/install El servidor pasa al modo de instalación.
/query Muestra la configuración actual.
/? Muestra la Ayuda en el símbolo del sistema.
Con change user /install pasamos al modo de instalación. Siempre hay que hacerlo
antes de instalar una aplicación. Después de la instalación, utilizamos change user /execute
para pasar al modo de ejecución.
2.8 Clientes de escritorio remoto en Linux
También podemos acceder al servidor Windows mediante un cliente de escritorio remoto en
Linux. Existen multitud de clientes de escritorio remoto en Linux para realizar esta tarea. Uno de los
más habituales es tsclient, el cual viene instalado por defecto en muchas distribuciones. Otro que
está utilizándose en las distribuciones Ubuntu es Remmina. Para su instalación abriremos una ventana
de terminal y como usuario root ejecutaremos el siguiente comando de instalación
apt­get install remmina
Una vez instalado podemos ejecutarlo desde el menú Internet. Al hacerlo veremos una ventana
en la que aparece una lista con las conexiones disponibles. Para crear una nueva seguiremos los
siguientes pasos:
1. Seleccionar la opción de menú Conexiones → Nueva. Aparece el formulario para crear una
nueva conexión.
2. Escribir un nombre para identificar la conexión en la lista de conexiones.
3. Dejar el protocolo RDP.
4. Rellenar los campos Servidor, usuario y contraseña.
5. Establecer la resolución de pantalla y la profundidad del color.
6. Hacer clic en el botón Guardar.
Página 25
Rafael Lozano
Acceso remoto
Figura 19.- Crear una conexión
Una vez guardada, tendremos esta conexión en la lista de conexiones. Ahora solo tenemos que
seleccionarla y hacer clic en el botón de conexión. Contactará con el servidor y abrirá la sesión
remota.
Página 26
Rafael Lozano
Acceso remoto
Figura 20.- Remmina
3. SSH
SSH (Secure Shell) es una herramienta que permite establecer conexiones seguras entre
equipos conectados mediante una red insegura. Ha sido desarrollado para establecer conexiones
remotas y transmitir de manera segura cualquier tipo de datos como archivos y contraseñas, así como
la ejecución de órdenes de administración en un sistema remoto.
Sin embargo, su característica más importante es la seguridad que da a cualquier protocolo que
funcione sobre TCP y que se basa en la utilización de mecanismos de criptografía, de forma que toda
transmisión de información esté cifrada y el mecanismo de autenticación del usuario sea
transparente. Funciona en la mayoría de los sistemas Linux, aunque también hay versiones para
Windows y MacOS.
Las características de este servicio son las siguientes:
1. Utiliza el puerto 22 (TCP y UDP), el protocolo SSH y sigue el modelo cliente-servidor.
2. Permite la autenticación de usuarios mediante contraseña o un sistema de claves.
3. Permite su integración con otros sistemas de autenticación como Kerberos, PGP o PAM.
4. Hay una implementación para la mayoría de los sistemas operativos y plataformas.
3.1 Instalación del servidor ssh
En este apartado veremos el uso de SSH en plataformas Linux. SSH tiene una aplicación cliente
para abrir sesiones remotas y una aplicación servidor para aceptar sesiones remotas. Generalmente,
todas las distribuciones Linux incluyen la instalación del cliente por defecto cuando se instala el
sistema operativo.
Página 27
Rafael Lozano
Acceso remoto
Para instalar el servidor SSH hay que ejecutar el siguiente comando en una ventana de terminal
como usuario root.
apt­get install ssh
Los archivos de configuración de SSH están en el directorio /etc/ssh y los más importantes
son:
✔
sshd_config.- Describe la configuración del servidor SSH. Permite establecer el puerto de
escucha, la versión del protocolo, el lugar donde se encuentra la clave privada de la máquina y
el algoritmo que se empleo para generarla.
✔
ssh_config.- Describe la configuración del cliente SSH. Aquí se pueden describir varias
configuraciones diferentes en función del servidor al que se conecte el cliente.
✔
ssh_host_rsa_key.- Clave RSA privada de la máquina.
✔
ssh_host_rsa_key.pub.- Clave RSA pública de la máquina.
✔
known_hosts.- Claves públicas de otras máquinas.
✔
ssh_host_dsa_key.- Clave DSA privada de la máquina.
✔
ssh_host_dsa_key.pub.- Clave DSA privada de la máquina.
Cada vez que hagamos cambios en la configuración del servidor tendremos que reiniciarlo
ejecutando el siguiente comando en una ventana de terminal como usuario root.
service ssh restart
3.2 Abrir una sesión remota
Una vez hemos instalado el servidor podemos configurar los usuarios desde los equipos cliente
para que abran sesión remota. Para que un usuario abra una sesión remota con el servidor SSH
necesita autentificarse. Hay dos métodos de autenticación: por usuario y contraseña o por clave
pública.
3.2.1 Autenticación con usuario y contraseña
El servidor SSH autentica al usuario que abre sesión utilizando su contraseña. Cada vez que el
usuario establece una conexión se le pide la contraseña que envía al servidor. Este comprueba que el
usuario existe y que la clave es correcta.
La sintaxis para abrir una sesión remota con el servidor es la siguiente
ssh [usuario@]servidor
Parámetros
usuario
Nombre del usuario que hace la conexión. Si se omite se emplea el usuario que abrió sesión.
servidor
Dirección IP o nombre del servidor SSH con el que se abre sesión
Página 28
Rafael Lozano
Acceso remoto
En el siguiente ejemplo el usuario usuario abre sesión en el servidor selipr.
ssh selipr
El resultado es el siguiente
Figura 21.- Conexión por ssh
Como se puede apreciar en la imagen anterior, el cliente ssh informa de que no puede
establecer la autenticidad del servidor al que estamos conectando. Posteriormente nos pregunta si
queremos añadir este servidor a la lista de hosts conocidos. Contestaremos con yes y a partir de
ahora, cuando abramos nuevas sesiones remotas con este servidor no volverá a hacernos esta
pregunta. Lo que hará será introducir el identificador de este servidor en el archivo
~/.ssh/known_hosts.
Posteriormente nos pedirá la contraseña del usuario y si la hemos introducido correctamente,
nos habremos conectado. Vemos que el prompt del sistema es ahora usuario@selipr.
Al no indicar el usuario que hace la conexón emplea el mismo con el que tenemos abierta
sesión en el cliente. Si hubieramos querido abrir una sesión con un usuario diferente tendríamos que
indicarlo y posteriormente añadiremos @nombre_de_servidor.
Para cerrar la sesión se ejecuta el comando exit.
3.2.2 Autenticación con clave pública
Una forma de conectarse más segura que la anterior es por clave pública. El uso de claves
públicas para acceder a servicios como SSH, SCP o SFTP, resulta una técnica más segura para
autenticar dichos servicios que el esquema clásico de usuario y contraseña, al que estamos tan
acostumbrados.
Para que el servidor SSH acepte la autentificación por medio de clave pública, deberá tener
activada esta opción. Por defecto esta opción ya esta activada. Si editamos el archivo de configuración
Página 29
Rafael Lozano
Acceso remoto
/etc/ssh/sshd_config en el servidor veremos que aparecen las siguientes líneas.
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Además, para cada usuario que vaya a conectarse al servidor remotamente, debe de existir el
directorio /home/nombre_usuario/.ssh/ y en él el archivo authorized_keys. En caso de no
existir, deberemos crearlo de forma manual, asignarle los permisos correspondientes para evitar que
otros usuarios puedan acceder a ella.
cd ~
mkdir .ssh
chmod 600 .ssh/
Ahora hay que generar la clave del cliente. SSH permite generar claves con dos algoritmos de
cifrado: RSA y DSA. Se recomienda emplear el primero ya que es más rápido para verificar las claves.
Cuando se emplea una infraestructura de clave pública para autenticar usuarios, en realidad se
emplean dos claves: una clave privada para cifrar la información y una clave pública para descifrarla.
Para este par de claves que permitará autentificar al usuario, debemos ejecutar el comando
ssh­keygen. Dicho comando creará dentro de la carpeta ~/.ssh, dos archivos: uno llamado
id_rsa que será la clave privada de nuestra clave y otro llamado id_rsa.pub que será la clave
pública. Éste último archivo será el que hay que copiar en el servidor remoto.
En una ventana de terminal del ordenador cliente ejecutaremos el siguiente comando.
ssh­keygen –t rsa
La salida del comando sería la siguiente
Figura 22.- Generación del par de claves privada y pública
Página 30
Rafael Lozano
Acceso remoto
Al ejecutar el comando pedirá el nombre del fichero donde se guardará la clave pública.
Aceptamos el que propone por defecto pulsando Intro. Posteriormente nos pide una frase de paso.
Podemos introducir una, la cual nos la pedirá posteriormente cuando abramos sesión en el servidor.
Podemos dejarla en blanco y pulsar Intro. Una vez generadas el par de claves podemos comprobar al
existencia de ambos archivos en el directorio ~/.ssh.
Una vez generado el par de claves, el siguiente paso es copiar la clave pública en el servidor (o
los servidores) donde tengamos pensado autentificarnos a través de clave pública y guardar en un
lugar seguro la clave privada. La misma clave pública nos puede servir para acceder a cualquier
servidor, no es necesario generar una nueva clave cada vez que queremos configurar el acceso
remoto a un servidor diferente. La clave privada se quedará almacenada en ~/.ssh y con la máscara
de permisos 600.
Para poder identificarse en el servidor desde el cliente, debemos copiar el archivo
id_rsa.pub que hemos creado en el cliente, en la carpeta ~/.ssh del usuario, en el servidor en la
misma carpeta y en un archivo llamado authorized_keys. Para ello podemos utilizar el comando
ssh­copy­id. En el cliente teclearemos el siguiente comando en una ventana de terminal
ssh­copy­id usuario@selipr
En la siguiente figura vemos la salida del comando.
Figura 23.- Copia de la clave pública en el servidor
Primero nos pide la contraseña del usuario en el servidor y posteriormente copia
~/.ssh/id_rsa en el servidor como ~/.ssh/authorized_keys. Si vamos al servidor
comprobaremos éste último archivo.
Salvo algunos toques finales hemos terminado. Podemos comprobar como ahora accedemos al
servidor mediante la clave pública y sin necesidad de introducir la contraseña.
Figura 24.- Conexión ssh con clave pública
Por último es aconsejable poner la máscara de permisos 600 al par de claves generado en el
cliente.
chmod 600 ~/.ssh/{id_rsa,id_rsa.pub}
Página 31
Rafael Lozano
Acceso remoto
También podemos configurar el servidor para que el usuario root no pueda abrir sesiones
remotas y que solamente se pueda acceder al servidor mediante clave pública, aunque en
determinados escenarios no resulte muy aconsejable. Habría que editar en el servidor el fichero de
configuración /etc/ssh/sshd_config y establecer las siguientes dos directivas.
PermitRootLogin no
PasswordAuthentication no
3.3 Ejecución remota de aplicaciones gráficas
Hasta ahora hemos abierto sesión empleando terminales de texto, que en sistemas Linux es
más que suficiente para realizar configuraciones en el servidor. Sin embargo, mediante SSH existe la
posibilidad de ejecutar aplicaciones gráficas en el servidor y manejarlas y visualizarlas en el cliente. El
reenvío de X11 es un mecanismo que permite la utilización del canal seguro SSH para ejecutar
aplicaciones gráficas.
El servidor SSH deberá tener activada la redirección del protocolo X, es decir, deberá tener el
siguiente parámetro en el archivo de configuración /etc/ssh/sshd_config.
X11Forwarding yes
El cliente también tiene que tener activado el reenvío con la siguiente directiva en el archivo de
configuración /etc/ssh/ssh_config.
ForwardX11 yes
Ahora podemos abrir una sesión remota con el cliente SSH y posteriormente invocar la
ejecución de una aplicación gráfica como el editor de texto plano leafpad. Para abrir la sesión hay
que emplear la opción –X como en el siguiente ejemplo.
ssh –X usuario@selipre
Ahora desde el terminal que ha abierto sesión remota invocamos la ejecución de leafpad.
leafpad &
Debe de aparecer una ventana con la aplicación gráfica en ejecución. Esta aplicación se ejecuta
en el servidor y en el cliente solamente se ven los resultados.
3.4 Copia remota de archivos
También se dispone del comando scp que permite copiar archivos desde y hacia el servidor
remoto desde el cliente. La sintaxis del comando es la siguiente
scp [opciones][[usuario@]host1:]fichero1... [[usuario@]host2:]fichero2
Si indicamos un nombre de archivo con usuario@host: delante, estamos indicando que el
archivo se encuentra en el host remoto al que accederemos con el usuario indicado. Por tanto
podemos hacer copia desde la máquina remota a la máquina local y viceversa.
Por ejemplo, si deseamos copiar el archivo /etc/hosts del servidor selipr, e
identificándonos como usuario, en la carpeta actual del cliente, ejecutaremos el siguiente comando en
el cliente:
scp usuario@selipr:/etc/hosts .
En el siguiente ejemplo copiamos el archivo local miarchivo.txt en la carpeta
/home/usuario/pruebas del servidor selipr.
Página 32
Rafael Lozano
Acceso remoto
scp miarchivo.txt usuario@selipr:~/pruebas/
Podemos hacer copias recursivas de directorios completos con la opción –r como en el
siguiente ejemplo
scp ­r datos/* usuario@selipr:~/pruebas/datos/
Copiamos el contenido del directorio datos al directorio /pruebas/datos del servidor
selipr, abriendo sesión con el usuario usuario.
3.5 Servidor FTP seguro
El paquete SSH también incorpora un servidor FTP seguro y un cliente FTP seguro. Para activar
el servidor ftp seguro tan solo hay que tener arrancado el servidor SSH. El cliente FTP seguro es el
comando sftp que funciona igual que el comando ftp. También podemos utilizarlo desde un
explorador de archivos escribiendo sftp://nombre­del­usuario@nombre­del­servidor.
También desde la línea de comando podemos abrir una sesión FTP segura con la siguiente
sintaxis
sftp [[usuario@]host[:fichero_remoto [fichero_local]]]
sftp [[usuario@]host[:directorio[/]]]
sftp ­b batchfile [usuario@]host
Parámetros
usuario
Usuario que realiza la conexión remota. Por defecto se utiliza el usuario que ha abierto la
sesión en la máquina cliente.
host
Servidor SSH al que se hace la conexión
fichero_remoto
Fichero en el servidor que se copia en el cliente
fichero_local
Nombre de fichero que se asignará al fichero copiado del servidor que se ha copiado
directorio
Directorio al que se conecta al inicio de la conexión. Si se indica / se cambiará al directorio
raíz del sistema de archivos. Si no se indica un directorio el servidor se sitúa en el directorio
home del usuario.
­b bachfile
Fichero que contiene un conjunto de comandos FTP para ejecutar por lotes.
Si se emplea la primera o segunda forma del comando y no indicamos fichero a copiar o
directorio en el que situarse entonces aparece el prompt sftp> para trabajar en modo interactivo
con el servidor. Aquí se emplearán los mismos comandos utilizados en FTP 1.
1
Este comando puede verse en detalle en el capítulo dedicado al servidor FTP
Página 33
Rafael Lozano
Acceso remoto
4. Bibliografía
FOROUZAN, B. A., Transmisión de Datos y redes de comunicaciones – 4ª Edición. 2007 McGraw-Hill, ISBN
TECHNET, Windows Server 2012: Remote Desktop – Quick Start (parte 1), Notas sobre Windows Server
Octubre
2012
[acceso
11
julio
2013].
Disponible
en
<http://windowserver.wordpress.com/2012/10/05/windows-server-2012-remote-desktop-quick-startparte-1/>
BALDOMA, J. De, Autenticación mediante clave pública en SSH. [acceso 3 de agosto 2013]. Disponible en
<http://www.jdbaldoma.net/2012/05/autenticacion-mediante-clave-publica-en.html>
Página 35
Descargar