Skip to main content

Tarea 1: Servidor SSH Linux y Clientes SSH

SSH (Secure Shell) es un intérprete de órdenes seguro que permite acceder remotamente a una máquina a través de una conexión cifrada.

Introducción

SSH permite:
  • Acceso remoto seguro a línea de comandos
  • Transferencia segura de archivos (SCP, SFTP)
  • Redirección del entorno gráfico (X11 forwarding)
  • Túneles cifrados
  • Ejecución de comandos remotos
Recuerda configurar correctamente la red (NAT, modo puente, etc.) para poder realizar las conexiones.

Instalación del Servidor SSH

En una máquina Ubuntu/Linux:
sudo apt update
sudo apt install openssh-server

Claves Generadas

Tras la instalación, se generan automáticamente las claves para los algoritmos soportados:
ls -la /etc/ssh/ssh_host_*
Cada algoritmo tiene dos archivos:
  • ssh_host_xxx_key - Clave privada (solo el servidor)
  • ssh_host_xxx_key.pub - Clave pública (compartida con clientes)
Algoritmos:
  • RSA (clásico, ampliamente soportado)
  • ECDSA (curvas elípticas, más eficiente)
  • ED25519 (moderno, recomendado)

Cliente SSH en Ubuntu

La mayoría de distribuciones Linux incluyen el cliente SSH por defecto.

Verificar Instalación

sudo apt search openssh-client

Instalar si es Necesario

sudo apt update
sudo apt install openssh-client

Conectar a Servidor Remoto

ssh <usuario>@maquina_remota

# Ejemplos:
ssh [email protected]
ssh [email protected]
ssh -p 2222 [email protected]  # Puerto personalizado
1

Primera conexión

La primera vez, debes aceptar la clave pública del servidor
2

Introducir contraseña

La contraseña es la del usuario en la máquina remota
3

Sesión establecida

Ya puedes ejecutar comandos en el servidor remoto
4

Cerrar conexión

Ejecuta exit para cerrar la sesión
Importante: El usuario y contraseña deben existir en la máquina remota. No confundir con credenciales locales.

Limitar Usuarios que Pueden Conectarse

Por defecto, SSH permite conexiones de cualquier usuario válido del sistema.

Configurar Restricciones

Edita el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Añade al final del archivo:
# Permitir solo usuarios específicos
AllowUsers usu1 usu2 adminiso

# O denegar usuarios específicos
DenyUsers guest invitado

# Permitir solo un grupo
AllowGroups ssh-users
Puedes usar AllowUsers, DenyUsers, AllowGroups o DenyGroups según tus necesidades.

Aplicar Cambios

sudo systemctl restart sshd

Probar Restricciones

Intenta conectar con un usuario no autorizado:
ssh [email protected]
# Resultado: Permission denied

Habilitar/Deshabilitar Redirección X11

La redirección X11 permite ejecutar aplicaciones gráficas en el servidor pero visualizarlas en el cliente.

Configuración en el Servidor

Edita /etc/ssh/sshd_config:
# Habilitar redirección X11
X11Forwarding yes

# O deshabilitar
X11Forwarding no
Reinicia el servicio:
sudo systemctl restart sshd

Usar Redirección X11 desde Cliente

# Conectar con redirección X11
ssh -X usuario@servidor

# O forzar redirección confiable
ssh -Y usuario@servidor

# Ejecutar aplicación gráfica
scite &
firefox &
gedit archivo.txt &
Requisito: El cliente debe tener servidor X instalado (en Linux viene por defecto, en Windows necesita Xming o VcXsrv).

Regenerar Claves SSH

Hay situaciones que requieren regenerar las claves:
  • Compromiso de seguridad
  • Clonación de máquinas virtuales
  • Reinstalación del servidor
1

Borrar claves antiguas

sudo rm /etc/ssh/ssh_host_*
2

Generar nuevas claves

sudo dpkg-reconfigure openssh-server
3

Limpiar caché en clientes

Los clientes deben eliminar la clave antigua:
ssh-keygen -R servidor.ejemplo.com
# O editar manualmente:
nano ~/.ssh/known_hosts
Advertencia de Seguridad: Cuando un cliente detecta que las claves cambiaron, muestra una advertencia de posible ataque man-in-the-middle. Solo ignora esta advertencia si sabes que las claves fueron regeneradas legítimamente.

Comando SCP (Secure Copy)

SCP permite copiar archivos de manera segura entre máquinas.

Descargar Archivos del Servidor

# Sintaxis general
scp usuario@servidor:/ruta/remota /ruta/local

# Ejemplos
scp [email protected]:/home/usu1/documento.txt .
scp admin@servidor:/var/log/syslog ./logs/
scp -r usu1@servidor:/home/usu1/carpeta/ ./backup/
La opción -r es necesaria para copiar directorios completos.

Subir Archivos al Servidor

# Sintaxis general
scp /ruta/local usuario@servidor:/ruta/remota

# Ejemplos
scp archivo.txt [email protected]:/home/usu1/
scp /etc/environment admin@servidor:~/backup/environment
scp -r ./proyecto/ usu1@servidor:/var/www/html/

Opciones Útiles de SCP

# Especificar puerto
scp -P 2222 archivo.txt usuario@servidor:/destino/

# Preservar permisos y timestamps
scp -p archivo.txt usuario@servidor:/destino/

# Modo verbose (ver progreso)
scp -v archivo.txt usuario@servidor:/destino/

# Limitar ancho de banda (en Kbit/s)
scp -l 1000 archivo_grande.iso usuario@servidor:/destino/

Clientes SSH en Windows

Windows no incluye cliente SSH por defecto en versiones antiguas.

PuTTY

Cliente SSH gratuito y portable para Windows. Descargar: https://www.chiark.greenend.org.uk/~sgtatham/putty/
1

Ejecutar PuTTY

No requiere instalación, ejecuta putty.exe
2

Configurar conexión

  • Host Name: IP o nombre del servidor
  • Port: 22 (por defecto)
  • Connection type: SSH
3

Abrir conexión

Clic en “Open”
4

Aceptar clave

Primera vez: aceptar clave pública del servidor
5

Autenticarse

Introducir usuario y contraseña

WinSCP

Cliente gráfico para transferencia de archivos. Descargar: https://winscp.net/ Configuración:
  • File protocol: SFTP
  • Host name: IP del servidor
  • Port number: 22
  • User name: Usuario del servidor
  • Password: Contraseña del usuario
Interfaz:
  • Panel izquierdo: Archivos locales (Windows)
  • Panel derecho: Archivos remotos (Linux)
  • Arrastra archivos entre paneles para copiar
WinSCP soporta edición de archivos remotos, sincronización de directorios y conexiones guardadas.

Ejercicios

Ejercicio 1: Configuración Completa

Trabajar por parejas con tarjetas de red en modo puente: Tareas a documentar con capturas:
  1. Instalación de openssh-server
  2. Configuración de bloqueo de usuarios
  3. Instalación y conexión con WinSCP
  4. Instalación y conexión con PuTTY
  5. Pruebas de acceso con usuarios permitidos y denegados

Ejercicio 2: Transferencia con SCP

Crea un fichero de texto en el home del usuario usu1 y cópialo al home remoto mediante scp. Documentar:
# En máquina local
echo "Este es un archivo de prueba" > archivo_prueba.txt

# Copiar a remoto
scp archivo_prueba.txt usu1@<IP_REMOTA>:~/

# Verificar en remoto
ssh usu1@<IP_REMOTA> ls -la ~/archivo_prueba.txt

Ejercicio 3: Puerto Personalizado

Configura el servidor SSH para funcionar en el puerto 2233.
1

Editar configuración

sudo nano /etc/ssh/sshd_config
# Cambiar línea:
Port 2233
2

Reiniciar servicio

sudo systemctl restart sshd
3

Verificar puerto

sudo netstat -tulpn | grep 2233
4

Conectar con nuevo puerto

ssh -p 2233 usuario@servidor
Copiar archivo con SCP en puerto personalizado:
scp -P 2233 /etc/hosts usu1@<IP_REMOTA>:~/fichero2233.txt
Documenta el proceso con capturas.

Ejercicio 4: WinSCP en Puerto Personalizado

Utiliza WinSCP para copiar el fichero desde Windows a la máquina Linux en el puerto 2233. Configuración:
  • Modifica el campo “Port number” a 2233
  • Resto igual que antes
Realiza una captura mostrando la transferencia exitosa.

Ejercicio 5: Redirección X11

Utiliza la redirección de las X para lanzar un navegador web en la máquina del compañero.
# Conectar con X11 forwarding
ssh -X usuario@<IP_COMPANERO>

# Lanzar navegador
firefox &
Descargar un archivo:
  1. En el Firefox redirigido, descarga un archivo cualquiera
  2. ¿Dónde se almacena el archivo descargado?
El archivo se almacena en la máquina remota (donde se ejecuta Firefox), no en la local. Solo la visualización se redirige, no el sistema de archivos.

Tarea 2: Escritorio Remoto (RDP)

El servicio de Escritorio Remoto de Windows permite que varios usuarios inicien una sesión gráfica simultáneamente en el servidor.

Introducción al Servicio de Escritorio Remoto

En Windows 2019 Server, este servicio se llama Servicio de Escritorio Remoto.

Componentes

Servidor

Escucha en el puerto 3389 por defecto

Cliente

Aplicación para conectar al servidor

Protocolo RDP

Remote Desktop Protocol - cifra y transmite el escritorio
Ventajas de RDP:
  • Acceso completo al escritorio gráfico
  • Múltiples sesiones simultáneas
  • Redireccción de recursos locales
  • Optimizado para WAN
  • Cifrado de comunicaciones

Instalación del Servidor

1

Agregar rol

Administrar → Agregar roles y características
2

Seleccionar servidor

Selecciona el servidor donde instalar
3

Servicios de Escritorio Remoto

Marca: Servicios de Escritorio Remoto
4

Host de sesión

Marca: Host de sesión de Escritorio remoto
5

Instalar

Completa el asistente y reinicia el servidor
Administración de Licencias se configura como un servicio separado en Windows Server 2019. No es necesario para pruebas (periodo de gracia de 120 días).

Verificar Configuración

Después de la instalación:
Inicio → Panel de Control → Sistema → Configuración de Acceso remoto
Debe estar seleccionado: “Permitir las conexiones remotas a este equipo”

Cliente Windows

El cliente viene instalado por defecto en Windows.

Conexión a Escritorio Remoto (mstsc)

1

Abrir cliente

Buscar “Conexión a Escritorio Remoto” o ejecutar mstsc.exe
2

Introducir servidor

Equipo: IP o nombre del servidor
3

Conectar

Clic en “Conectar”
4

Credenciales

Introducir usuario y contraseña del dominio/servidor
5

Aceptar certificado

Primera vez: aceptar certificado autofirmado
Importante: Si te conectas con el mismo usuario que tiene sesión abierta en el servidor, esa sesión se cerrará. RDP no permite el mismo usuario en múltiples sesiones simultáneas.

Permitir Usuarios Adicionales

Por defecto, solo administradores pueden conectarse. Añadir usuarios:
Panel de Control → Sistema → Configuración de Acceso remoto → Seleccionar usuarios...
1

Agregar usuario

Clic en “Agregar…”
2

Buscar usuario

Introduce el nombre del usuario o grupo
3

Verificar

Clic en “Comprobar nombres”
4

Aceptar

Confirma la selección

Cliente GNU/Linux

Linux dispone de varios clientes RDP.

Remmina (Recomendado)

Cliente RDP integrado en la mayoría de distribuciones. Instalación (si no está):
sudo apt install remmina remmina-plugin-rdp
Uso:
1

Abrir Remmina

Aplicaciones → Remmina o remmina en terminal
2

Nueva conexión

Clic en el icono ”+” para crear nueva conexión
3

Configurar conexión

  • Name: Nombre descriptivo
  • Protocol: RDP
  • Server: IP del servidor Windows
  • User name: Usuario del dominio/servidor
  • User password: Contraseña
  • Domain: Nombre del dominio (opcional)
  • Resolution: Resolución de pantalla
  • Color depth: Calidad de color (reduce ancho de banda)
4

Guardar y conectar

Guardar la configuración y hacer doble clic para conectar
Características de Remmina:
  • Barra de herramientas flotante
  • Pantalla completa
  • Escalado de ventana
  • Compartir portapapeles
  • Compartir impresoras
  • Redireccción de sonido

tsclient (Alternativa)

Otro cliente RDP con interfaz más parecida a Windows.
sudo apt install tsclient

Opciones Avanzadas de RDP

Redirección de Recursos

Desde mstsc (Windows):
Mostrar opciones → Recursos locales
Puedes redirigir:
  • Portapapeles
  • Impresoras
  • Unidades de disco
  • Puertos (COM, LPT)
  • Dispositivos USB
  • Audio
Desde Remmina (Linux): En la configuración avanzada:
  • Share folder: Compartir carpeta local
  • Share printer: Compartir impresora
  • Audio output: Reproducir audio localmente o remotamente

Ejercicio 1: Configuración Completa

Realiza los pasos descritos en la práctica y comprueba que puedes conectarte: Matriz de pruebas:
ClienteServidorEstado
Windows 10Windows Server 2019
UbuntuWindows Server 2019
Windows 10Ubuntu (xrdp)☐ (Ampliación)
Para cada combinación documenta:
  1. Configuración realizada
  2. Captura de la conexión establecida
  3. Pruebas de funcionalidad (copiar/pegar, transferir archivos)
  4. Problemas encontrados y soluciones
Avisa al profesor cuando concluyas cada paso.

Tarea 3: Túneles con Netcat (Ampliación)

netcat es una herramienta versátil de red que permite crear conexiones y túneles.
Esta tarea es avanzada. Requiere comprensión sólida de redes y puertos.

Ejercicio: Túnel Básico

Crear un túnel desde un puerto local a un servicio remoto. Escenario:
  • Máquina A: Cliente (no puede acceder directamente a servicio)
  • Máquina B: Intermediario (con netcat)
  • Máquina C: Servidor (ejecuta el servicio)
# En Máquina B (intermediario)
nc -l -p 8080 | nc maquina_c 80 | nc -l -p 8081

# En Máquina A (cliente)
curl http://maquina_b:8080

Tarea 4: TeamViewer (Opcional)

TeamViewer es una herramienta comercial de acceso remoto multiplataforma.

Características

  • Acceso remoto fácil sin configuración de red
  • Atraviesa NAT y firewalls automáticamente
  • Transferencia de archivos
  • Chat integrado
  • Grabación de sesiones
  • Multiplataforma (Windows, Linux, macOS, móvil)

Ejercicio: Conexión Remota

  1. Descargar e instalar TeamViewer en dos máquinas
  2. Obtener ID y contraseña de una máquina
  3. Conectar desde la otra máquina
  4. Probar control remoto y transferencia de archivos
  5. Documentar el proceso

Tarea 5: Protocolo de Asistencia

Con lo aprendido hasta ahora, crearás protocolos de actuación con elementos condicionales para diferentes escenarios.

Ejercicio 1: Máquina Sin Monitor

Escenario: Una máquina arranca pero no tiene monitor (ni posibilidad de conectar uno). Conocemos su IP y un usuario administrador. Necesitamos conocer la versión del SO instalado. Desarrolla un protocolo que incluya:
1

Verificar conectividad

SI ping exitoso:
  → Continuar
SI NO:
  → Verificar cableado
  → Verificar switch/router
  → FIN (problema de red)
2

Intentar SSH

Intentar: ssh admin@IP

SI conexión exitosa:
  → Linux detectado
  → Ejecutar: cat /etc/os-release
  → FIN exitoso
SI NO (Connection refused):
  → Continuar con otros métodos
3

Intentar RDP

Intentar: mstsc /v:IP

SI conexión exitosa:
  → Windows detectado
  → Abrir PowerShell: Get-ComputerInfo
  → FIN exitoso
SI NO:
  → Continuar
4

Escaneo de puertos

Ejecutar: nmap -O IP

Analizar puertos abiertos:
- Puerto 22: Probablemente Linux
- Puerto 3389: Probablemente Windows
- Puerto 5900: VNC instalado

Ejercicio 2: Problema de Impresión

Escenario: Un usuario no puede imprimir. Conocemos su IP. El usuario está delante del ordenador y tenemos comunicación telefónica. Desarrolla un protocolo:
1. VERIFICAR CONEXIÓN A LA RED
   Usuario ejecuta: ping 8.8.8.8
   SI exitoso: → Red OK, continuar
   SI NO: → Protocolo de diagnóstico de red

2. VERIFICAR IMPRESORA EN RED
   Usuario ejecuta: ping IP_IMPRESORA
   SI exitoso: → Impresora accesible, continuar
   SI NO: → Problema de impresora o red
          → Verificar impresora encendida
          → Verificar cable de red impresora

3. ACCESO REMOTO
   Técnico: ssh usuario@IP (Linux)
            o mstsc /v:IP (Windows)
   
4. VERIFICAR SERVICIO DE IMPRESIÓN
   Linux:
     systemctl status cups
     SI activo: → Servicio OK
     SI NO: → systemctl start cups
   
   Windows:
     services.msc → Spooler de impresión
     SI ejecutando: → Servicio OK
     SI NO: → Iniciar servicio

5. VERIFICAR COLA DE IMPRESIÓN
   Linux: lpstat -o
   Windows: Impresoras → Ver cola
   
   SI hay trabajos atascados:
     → Cancelar trabajos antiguos
     → Reintentar impresión

6. PRUEBA DE IMPRESIÓN
   Imprimir página de prueba
   SI exitoso: → FIN (problema resuelto)
   SI NO: → Escalado a soporte técnico presencial

Ejercicio 3: Documentos Perdidos

Escenario: Usuario ha perdido documentos. Usa GNU/Linux. Conocemos su IP. Password de root es “toor”. Desarrolla protocolo de recuperación.

Ejercicio 4: Problema de Red Intermitente

Escenario: Algo pasa con el tráfico de red de un ordenador del aula. Conocemos la IP. Aproximadamente la mitad de las peticiones de ping no regresan. Desarrolla protocolo de diagnóstico.
Considera:
  • Pérdida de paquetes (50%)
  • Cable defectuoso
  • Conector suelto
  • Problema de tarjeta de red
  • Interferencias
  • Duplex mismatch

Ejercicio 5: Escenario Personalizado (Por Parejas)

Por parejas:
  1. Invéntate un escenario posible
  2. Descríbeselo a tu compañer@
  3. Tu compañer@ desarrolla el protocolo
  4. Revisad juntos el protocolo
  5. Validar con el profesor

Tarea 6: Clonación con Clonezilla Live (Ampliación)

Ejercicio: Crear y Restaurar Imagen

1

Preparar sistema origen

Configura una máquina virtual con:
  • SO instalado y actualizado
  • Software necesario instalado
  • Configuración personalizada
2

Descargar Clonezilla Live

3

Crear USB booteable

Usa Rufus (Windows) o dd (Linux)
4

Arrancar desde Clonezilla

Configurar boot order en BIOS/UEFI
5

Crear imagen

  • device-image: Trabajar con imágenes
  • local_dev: Disco externo
  • Beginner mode
  • savedisk: Guardar disco completo
  • Seleccionar disco origen
  • Seleccionar destino para imagen
6

Restaurar imagen

En otra máquina (o la misma con disco nuevo):
  • device-image
  • restoredisk: Restaurar disco
  • Seleccionar imagen
  • Seleccionar disco destino
7

Post-clonación

Cambiar elementos únicos:
  • Hostname
  • IP (si es estática)
  • SID (Windows)
Documenta:
  • Capturas de cada paso
  • Tiempo empleado
  • Tamaño de la imagen
  • Problemas encontrados

Tarea 7: Preseed (Ampliación)

Ejercicio: Instalación Desatendida de Ubuntu

1

Preparar servidor HTTP

En una máquina accesible desde la red:
sudo apt install apache2
sudo systemctl start apache2
2

Crear fichero preseed

Usa el ejemplo de la teoría y modifícalo:
sudo nano /var/www/html/preseed.cfg
Personaliza:
  • Hostname
  • Usuario y contraseña
  • Paquetes a instalar
  • Zona horaria
3

Verificar acceso

Desde otra máquina:
curl http://IP_SERVIDOR/preseed.cfg
4

Arrancar instalador Ubuntu

Desde ISO o USB
5

Editar opciones de arranque

Pulsar TAB y añadir:
auto=true priority=critical url=http://IP_SERVIDOR/preseed.cfg
6

Iniciar instalación

Pulsar ENTER y dejar que instale automáticamente
7

Verificar resultado

Al finalizar, comprobar:
  • Usuario creado correctamente
  • Hostname correcto
  • Paquetes instalados
  • Configuración de red
Documenta:
  • Fichero preseed completo
  • Capturas del proceso
  • Tiempo de instalación
  • Diferencias con instalación manual

Tarea 8: GLPI - Gestión de Incidencias

En esta práctica entrarás en el servidor del aula donde está instalado GLPI y comprobarás las tareas asignadas.

¿Qué es GLPI?

GLPI (Gestion Libre de Parc Informatique) es un sistema de gestión de servicios IT que permite:
  • Gestión de inventario de hardware y software
  • Gestión de tickets (incidencias y solicitudes)
  • Base de conocimientos
  • Gestión de contratos y proveedores
  • Reserva de recursos
  • Generación de informes

Ejercicio 1: Resolver Incidencia

1

Acceder a GLPI

URL proporcionada por el profesor Credenciales asignadas
2

Ver tickets asignados

Menú: Asistencia → Tickets → Mis Tickets
3

Abrir ticket

Selecciona un ticket asignado a ti
4

Analizar incidencia

Lee la descripción completa:
  • ¿Qué problema reporta el usuario?
  • ¿Qué información adicional necesitas?
  • ¿Cuál es la prioridad?
5

Investigar y resolver

Aplica los conocimientos adquiridos en el módulo
6

Documentar la resolución

En el ticket, añade un seguimiento detallando:
  • Diagnóstico realizado
  • Pasos seguidos
  • Solución aplicada
  • Verificación de la resolución
7

Cambiar estado

Marca el ticket como “Resuelto” o “Cerrado”
Documenta el proceso:
  • Descripción de la incidencia original
  • Análisis realizado
  • Acciones tomadas
  • Capturas de pantalla
  • Resultado final
  • Tiempo empleado
  • Lecciones aprendidas

Recursos Adicionales

OpenSSH

Documentación oficial de OpenSSH

Microsoft RDP

Guía de Remote Desktop Services

Clonezilla

Documentación y tutoriales de Clonezilla

Preseed

Guía completa de Preseed para Debian

GLPI

Documentación oficial de GLPI

PuTTY

Cliente SSH para Windows

Build docs developers (and LLMs) love