← Teoría

Practica 25: Comparticion de Recursos en Red

Modulo: MF0219_2 — Instalacion y Configuracion de Sistemas Operativos
Unidad Formativa: UF0853 — Explotacion de las funcionalidades del sistema microinformatico
Bloque: Comunicacion por red y comparticion de recursos
Duracion estimada: 5 horas (1 sesion)
Modalidad: Trabajo en parejas
Herramientas: Oracle VirtualBox + VMs de Windows y Ubuntu (en red interna)
Requisito previo: Ambas maquinas virtuales (Windows y Ubuntu) deben estar en la misma red interna de VirtualBox con conectividad verificada desde la Practica 22. Comprueba que puedes hacer ping entre ambas VMs antes de empezar.
Escenario: Eres tecnico en un pequeno taller de reparacion informatica. El taller tiene equipos con Windows y Linux que necesitan compartir archivos y una impresora de forma transparente. Tu mision es configurar toda la comparticion de recursos para que el equipo de tecnicos pueda trabajar sin fricciones entre ambos sistemas operativos.

Objetivos de aprendizaje

  • Compartir carpetas en Windows mediante el protocolo SMB
  • Configurar Samba en Linux para compartir recursos con equipos Windows
  • Acceder a carpetas compartidas de Windows desde Linux usando cifs-utils
  • Mapear unidades de red de forma persistente
  • Compartir impresoras en red entre Windows y Linux
  • Descubrir y enumerar recursos compartidos en la red

Requisitos previos

Requisito Estado
Ambas VMs en Red Interna de VirtualBox
Conectividad entre VMs verificada (ping)
Acceso con privilegios de administrador (Windows)
Acceso con sudo (Ubuntu)
IP de la VM Windows
IP de la VM Ubuntu

Parte 1: Compartir carpeta en Windows (50 min)

En esta primera parte vamos a crear una carpeta compartida en Windows y configurar los permisos de acceso por red.

1.1 Crear la carpeta y archivos de prueba

  1. Abre el Explorador de archivos y navega a C:\
  2. Crea una nueva carpeta llamada Compartida
  3. Dentro de la carpeta, crea los siguientes archivos de prueba:
    • informe_prueba.txt — escribe cualquier texto dentro
    • datos_taller.txt — escribe datos ficticios de un taller
    • Crea una subcarpeta llamada Backups

1.2 Configurar la comparticion

  1. Haz clic derecho sobre C:\Compartida y selecciona Propiedades
  2. Ve a la pestana Compartir
  3. Pulsa en Uso compartido avanzado...
  4. Marca la casilla "Compartir esta carpeta"
  5. El nombre del recurso compartido debe ser Compartida
  6. Pulsa en Permisos y configura:
    • Todos (Everyone): Permiso de Lectura
    • Administradores: Control total
  7. Acepta todos los dialogos

1.3 Acceder desde la otra VM

  1. Desde la otra maquina virtual (o desde la propia), abre el Explorador de archivos
  2. En la barra de direcciones escribe: \\IP_DE_WINDOWS\Compartida
  3. Comprueba que ves los archivos creados
  4. Tambien puedes acceder desde la linea de comandos (CMD):
REM Mapear la carpeta compartida como unidad Z: (CMD)
net use Z: \\192.168.1.10\Compartida

REM Verificar que la unidad esta mapeada
dir Z:\

REM Listar los recursos compartidos de la maquina remota (PowerShell)
REM (sustituye al antiguo "net view \\IP", que requiere SMBv1 desactivado por defecto)
powershell -Command "Get-SmbShare -CimSession 192.168.1.10"
Nota sobre net view: El comando clasico net view \\IP dependia del protocolo SMBv1/NetBIOS, que esta desactivado por defecto en Windows 10/11 por motivos de seguridad. Por eso suele devolver el error "System error 6118" o una lista vacia. La alternativa moderna es Get-SmbShare -CimSession <IP> en PowerShell, que utiliza WS-Management sobre SMBv2/3.

1.4 Probar permisos de lectura y escritura

  1. Intenta leer un archivo de la carpeta compartida
  2. Intenta crear un nuevo archivo desde el equipo remoto
  3. Intenta eliminar un archivo existente
  4. Anota los resultados en la tabla siguiente
Accion Resultado Observaciones
Leer archivo remoto
Crear archivo nuevo
Eliminar archivo existente
Comando net use Z:
📷

Captura de la carpeta compartida accedida desde otro equipo
Haz clic, arrastra o pega (Ctrl+V)

Captura parte 1

Parte 2: Samba - Compartir desde Linux (60 min)

Ahora vamos a configurar el servidor Samba en Ubuntu para que los equipos Windows puedan acceder a carpetas compartidas en Linux.

2.1 Instalar Samba

  1. Abre una terminal en Ubuntu
  2. Actualiza los repositorios e instala Samba:
sudo apt update
sudo apt install samba -y

# Verificar que Samba se ha instalado correctamente
smbd --version

# Comprobar que el servicio esta activo
sudo systemctl status smbd

2.2 Crear la carpeta a compartir

  1. Crea el directorio que vamos a compartir:
# Crear la carpeta compartida
sudo mkdir -p /srv/compartida

# Establecer permisos amplios para pruebas
sudo chmod 777 /srv/compartida

# Crear archivos de prueba
echo "Archivo de prueba desde Linux" | sudo tee /srv/compartida/prueba_linux.txt
echo "Datos del taller - equipo Ubuntu" | sudo tee /srv/compartida/datos_ubuntu.txt

2.3 Configurar /etc/samba/smb.conf

  1. Haz una copia de seguridad del archivo de configuracion original:
  2. Edita el archivo de configuracion de Samba:
  3. Anade el siguiente bloque al final del archivo:
# Copia de seguridad
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

# Editar configuracion
sudo nano /etc/samba/smb.conf

Bloque a anadir al final de smb.conf:

[Compartida]
   comment = Carpeta compartida del taller
   path = /srv/compartida
   browseable = yes
   read only = no
   guest ok = yes
   create mask = 0664
   directory mask = 0775
   force user = nobody

2.4 Reiniciar el servicio Samba

# Verificar que la configuracion no tiene errores
testparm

# Reiniciar los servicios de Samba
sudo systemctl restart smbd
sudo systemctl restart nmbd

# Verificar que estan activos
sudo systemctl status smbd

2.X Creacion de usuario Samba (obligatorio)

# Crear usuario en Linux si no existe
sudo adduser usuario

# Crear usuario Samba
sudo smbpasswd -a usuario
sudo smbpasswd -e usuario

2.X Diagnostico interno con smbclient

# Listar recursos
smbclient -L localhost -U usuario

# Acceso real
smbclient //localhost/Compartida -U usuario
ls
Errores tipicos:
  • Access denied → usuario Samba no creado
  • No conecta → smbd no iniciado
  • No aparece recurso → error en smb.conf
  • Funciona a veces → uso incorrecto de guest

2.5 Acceder desde Windows

  1. En la VM de Windows, abre el Explorador de archivos
  2. Escribe en la barra de direcciones: \\IP_DE_UBUNTU\Compartida
  3. Deberias ver los archivos prueba_linux.txt y datos_ubuntu.txt
  4. Prueba a crear un archivo desde Windows dentro de la carpeta
  5. Vuelve a Ubuntu y comprueba que el archivo aparece en /srv/compartida
Accion Resultado Observaciones
Instalar Samba
testparm sin errores
Acceder desde Windows a \\IP\Compartida
Crear archivo desde Windows en Samba
Verificar archivo en Ubuntu
📷

Captura de Windows accediendo a la carpeta Samba de Linux
Haz clic, arrastra o pega (Ctrl+V)

Captura parte 2

Parte 3: Acceder a Windows desde Linux (40 min)

Ahora haremos el camino inverso: desde Ubuntu, montaremos una carpeta compartida de Windows usando el protocolo CIFS.

3.1 Instalar cifs-utils

sudo apt install cifs-utils -y

3.2 Montar la carpeta compartida de Windows

  1. Crea el punto de montaje en Ubuntu:
  2. Monta la carpeta compartida de Windows:
  3. Verifica que puedes ver los archivos:
# Crear punto de montaje
sudo mkdir -p /mnt/windows

# Montar la carpeta compartida de Windows (acceso como invitado)
sudo mount -t cifs //192.168.1.10/Compartida /mnt/windows -o guest,vers=3.0

# Verificar que los archivos son visibles
ls -la /mnt/windows

# Leer un archivo
cat /mnt/windows/informe_prueba.txt
Nota: Si el acceso como invitado no funciona, usa la opcion con usuario: sudo mount -t cifs //IP/Compartida /mnt/windows -o username=USUARIO,password=CONTRASENA,vers=3.0

3.3 Configurar montaje permanente en /etc/fstab

  1. Para que la carpeta se monte automaticamente al iniciar el sistema, edita /etc/fstab:
  2. Anade la siguiente linea al final del archivo:
# Editar fstab
sudo nano /etc/fstab

# Linea a anadir (sustituye la IP por la de tu VM Windows):
//192.168.1.10/Compartida  /mnt/windows  cifs  guest,vers=3.0,_netdev  0  0

# Probar que funciona sin reiniciar
sudo mount -a

# Verificar
df -h | grep windows
Atencion: Si introduces una linea incorrecta en /etc/fstab, el sistema podria no arrancar correctamente. Revisa siempre la sintaxis antes de guardar.
Comando Resultado Observaciones
sudo mount -t cifs ...
ls -la /mnt/windows
Linea anadida en /etc/fstab
sudo mount -a
📷

Captura de Linux accediendo a la carpeta compartida de Windows
Haz clic, arrastra o pega (Ctrl+V)

Captura parte 3

Parte 4: Mapeo persistente de unidades en Windows (20 min)

En Windows, podemos mapear una carpeta compartida como una letra de unidad de forma persistente para que sobreviva a los reinicios.

4.1 Mapear unidad de forma persistente

  1. Abre una ventana de CMD como administrador
  2. Ejecuta el siguiente comando para mapear la carpeta Samba de Linux como unidad Z:
  3. Verifica que aparece en el Explorador de archivos
REM Mapear unidad de red persistente
net use Z: \\192.168.1.20\Compartida /persistent:yes

REM Verificar las unidades mapeadas
net use

REM Comprobar el contenido
dir Z:\

4.2 Verificar persistencia tras reinicio

  1. Reinicia la maquina virtual de Windows
  2. Una vez reiniciada, abre el Explorador de archivos
  3. Comprueba que la unidad Z: sigue mapeada
  4. Ejecuta net use en CMD para confirmar

4.3 Desconectar la unidad mapeada

REM Desconectar la unidad Z:
net use Z: /delete

REM Verificar que se ha eliminado
net use
Accion Resultado Observaciones
net use Z: ... /persistent:yes
Unidad visible en Explorador
Persistencia tras reinicio
net use Z: /delete
📷

Captura de la unidad mapeada en el Explorador de archivos
Haz clic, arrastra o pega (Ctrl+V)

Captura parte 4

Parte 5: Simulacion de impresion en red (30 min)

En esta parte simularemos una impresora de red mediante una carpeta compartida. Este enfoque reproduce el flujo real de trabajo en muchas empresas donde los documentos se envian a un servidor central para su gestion o impresion.

Importante: No utilizaremos impresoras virtuales como "Microsoft Print to PDF" ya que no permiten una comparticion real en red. En su lugar, simularemos el comportamiento de una impresora mediante una carpeta compartida.

5.1 Crear carpeta "Impresora" en Windows

  1. En la maquina Windows, crea la carpeta: C:\Impresora
  2. Dentro de la carpeta, crea un archivo de prueba: cola.txt

5.2 Compartir la carpeta

  1. Haz clic derecho sobre C:\Impresora
  2. Selecciona Propiedades
  3. Ve a la pestana Compartir
  4. Pulsa en Uso compartido avanzado
  5. Marca "Compartir esta carpeta"
  6. Nombre del recurso: Impresora
  7. Permisos:
    • Todos (Everyone): Lectura y escritura

5.3 Acceso desde otro equipo

  1. Desde otra maquina (Windows o Linux), accede a:
\\IP_DE_WINDOWS\Impresora

5.4 Simulacion de impresion

  1. Desde el equipo remoto, crea un archivo de texto (por ejemplo: documento.txt)
  2. Copia ese archivo dentro de la carpeta compartida
  3. Ese archivo simula un documento enviado a la impresora

5.5 Verificacion desde el equipo "servidor"

  1. En la maquina Windows, abre C:\Impresora
  2. Comprueba que el archivo enviado desde el otro equipo aparece
  3. Abre el archivo para verificar su contenido
Accion Resultado Observaciones
Carpeta compartida creada
Acceso desde otro equipo
Envio de documento
Recepcion en servidor
Interpretacion: Este sistema simula una cola de impresion real. En entornos profesionales, los servidores de impresion reciben trabajos de multiples equipos y los gestionan de forma centralizada.
Problemas comunes:
  • No se puede acceder → Problema de red o permisos
  • No se puede copiar archivo → Permisos de escritura incorrectos
  • La carpeta no aparece → Error en la comparticion
📷

Captura del documento enviado a la "impresora"
Haz clic, arrastra o pega (Ctrl+V)

Captura parte 5

Parte 6: Descubrir recursos en la red (20 min)

Es fundamental saber como descubrir que recursos estan compartidos en una red. Veremos herramientas tanto de Windows como de Linux.

6.1 Desde Windows

REM Ver recursos compartidos de un equipo remoto (PowerShell, metodo moderno)
powershell -Command "Get-SmbShare -CimSession 192.168.1.10"

REM Ver TODOS los recursos compartidos incluidos los ocultos ($)
powershell -Command "Get-SmbShare -CimSession 192.168.1.10 | Format-Table Name, Path, Description"

REM Ver recursos compartidos del equipo local
net share

REM Tambien funciona el clasico (siempre que el equipo remoto tenga SMBv1 habilitado)
REM net view \\192.168.1.10
REM Aviso: net view falla con "System error 6118" si SMBv1 esta desactivado
REM (que es el comportamiento por defecto en Windows 10/11).

6.2 Desde Linux

# Listar recursos compartidos de un equipo Windows/Samba
smbclient -L //192.168.1.10 -N

# Listar con mas detalle
smbclient -L //192.168.1.10 -N --option="client min protocol=SMB2"

# Instalar nmap si no esta instalado
sudo apt install nmap -y

# Escanear recursos SMB con nmap
nmap --script smb-enum-shares -p 445 192.168.1.10

# Escanear todos los equipos de la red
nmap --script smb-enum-shares -p 445 192.168.1.0/24

6.3 Inventario de recursos descubiertos

Completa la tabla con todos los recursos compartidos que encuentres en la red del aula:

IP del equipo Nombre del recurso Tipo Acceso
📷

Captura del resultado de la exploracion de recursos en red
Haz clic, arrastra o pega (Ctrl+V)

Captura parte 6

Parte 7: Proyecto final integrador - Taller de reparacion (60 min)

Mini-proyecto evaluable: En parejas, debeis montar el entorno completo de un pequeno taller de reparacion informatica. Cada equipo tiene un rol y unos servicios que debe ofrecer. Al final, debeis demostrar que todo funciona y documentarlo con capturas de pantalla.

7.1 Equipo Windows (Tecnico)

El PC del tecnico debe tener configurado:

  1. Carpeta compartida C:\Informes: con permisos de lectura y escritura para el equipo del cliente
  2. Impresora compartida: accesible desde la red
  3. Herramienta de acceso remoto instalada (escritorio remoto de Windows habilitado o software como AnyDesk)
Servicio del Tecnico (Windows) Estado Detalles
Carpeta C:\Informes compartida (R/W)
Impresora compartida en red
Acceso remoto habilitado

7.2 Equipo Linux (Cliente)

El PC del cliente debe tener configurado:

  1. Samba share /srv/backups: carpeta compartida para copias de seguridad
  2. Servicio SSH activo: para acceso remoto seguro desde el tecnico
  3. Montaje automatico de la carpeta C:\Informes del tecnico en /mnt/informes (via fstab)
Servicio del Cliente (Linux) Estado Detalles
Samba share /srv/backups
SSH activo y accesible
Auto-montaje de /mnt/informes (fstab)

7.3 Demostracion del entorno

Debeis demostrar las siguientes funcionalidades:

  1. Acceso remoto: El tecnico accede al equipo del cliente via SSH o escritorio remoto
  2. Comparticion bidireccional: Crear un archivo en Windows y verlo en Linux, y viceversa
  3. Backup automatizado: Copiar un archivo desde el equipo del tecnico a la carpeta de backups del cliente usando un script simple
# Ejemplo de script de backup (ejecutar en Linux)
#!/bin/bash
# backup_informes.sh - Copia informes del tecnico a backups
FECHA=$(date +%Y%m%d_%H%M%S)
cp -r /mnt/informes/* /srv/backups/backup_$FECHA/
echo "Backup completado: backup_$FECHA"
Demostracion Resultado Observaciones
Acceso remoto funcional
Archivo creado en Windows visible en Linux
Archivo creado en Linux visible en Windows
Script de backup ejecutado
Entrega obligatoria: Documenta todo el proceso con capturas de pantalla y subelas al canal #entrega-practicas de Discord. Este proyecto integrador se evalua como mini-proyecto.
📷

Captura del entorno completo del tecnico (Windows)
Haz clic, arrastra o pega (Ctrl+V)

Captura proyecto tecnico
📷

Captura del entorno completo del cliente (Linux)
Haz clic, arrastra o pega (Ctrl+V)

Captura proyecto cliente
📷

Captura de la demostracion de comparticion bidireccional
Haz clic, arrastra o pega (Ctrl+V)

Captura demostracion

Parte 8: Preguntas de reflexion

8.1 ¿Que es el protocolo SMB/CIFS? ¿Para que se utiliza y en que sistemas operativos esta disponible?

8.2 Cuando compartimos una carpeta en Windows, existen los permisos de comparticion y los permisos NTFS. ¿Cual prevalece cuando entran en conflicto? Pon un ejemplo.

8.3 ¿Por que es necesario Samba en Linux? ¿Que problema resuelve?

8.4 ¿Cual es la diferencia entre un grupo de trabajo (workgroup) y un dominio? ¿En que entornos se usa cada uno?

8.5 ¿Es posible compartir archivos entre Windows y Linux sin usar Samba? Menciona al menos dos alternativas.

Parte 9: Reto tecnico — troubleshooting Samba y automatizacion (45 min)

Hasta aqui has configurado servicios siguiendo pasos. En esta parte tienes que romper, diagnosticar y automatizar. Se valora que leas los logs y justifiques cada decision, no que hagas funcionar la configuracion por casualidad.

Reto 1 — Rompe y repara Samba leyendo logs (15 min)

Sobre el recurso Samba que configuraste en la Parte 2, introduce intencionadamente los siguientes fallos uno a uno, observa desde el cliente Windows que pasa, y usa los logs del servidor para diagnosticar antes de arreglar:

  1. En /etc/samba/smb.conf cambia read only = no a read only = yes y recarga con sudo systemctl reload smbd.
  2. Cambia el propietario del directorio compartido a root:root con chmod 700.
  3. Elimina al usuario del fichero de usuarios Samba con sudo smbpasswd -x nombreusuario (anota el nombre antes para poder restaurarlo).

Para cada fallo, rellena una fila de la tabla. No uses Google: consulta /var/log/samba/log.smbd, /var/log/samba/log.<hostname> y sudo journalctl -u smbd -n 50.

Fallo Mensaje de error visto en Windows Linea del log del servidor que explica la causa Correccion aplicada y verificacion
1 (read only)
2 (permisos)
3 (usuario)

Reto 2 — Script propio de backup con rollback (20 min)

Escribe un script bash llamado backup_a_samba.sh sin copiar plantillas de internet. El script debera:

  1. Comprobar si /mnt/samba_backup ya esta montado. Si no lo esta, montar el recurso Samba usando mount -t cifs con credenciales desde un fichero externo de credenciales (no en claro dentro del script).
  2. Ejecutar un rsync -av --stats /home/$USER/documentos/ /mnt/samba_backup/$(hostname)-$(date +%F)/.
  3. Si el codigo de salida de rsync es distinto de 0, borrar la carpeta parcial creada en destino (rollback) y registrar ERROR con detalle.
  4. Si rsync acaba bien, registrar OK, numero de ficheros transferidos y tamaño total, y desmontar el share.
  5. Guardar el log en ~/backup_samba.log con fecha y hora en cada linea.

Pega aqui el contenido completo del script:

Explica por que guardas las credenciales en un fichero externo y que permisos debe tener ese fichero. ¿Que pasaria si lo dejases en 644?

Reto 3 — SMB vs NFS, decision razonada (10 min)

Caso: Una oficina con 15 puestos Linux necesita un servidor central de ficheros al que todos los equipos monten un directorio comun. No hay ningun Windows en esa oficina. Tu responsable te pregunta si vale la pena mantener Samba o si convendria cambiar a NFS.

a) ¿Que recomiendas, Samba o NFS, y por que? Menciona al menos dos ventajas concretas (rendimiento, gestion de permisos, simplicidad) y una desventaja del que descartas en este contexto.

b) Si manaña la oficina incorporase 3 Mac y 2 Windows, ¿cambiaria tu decision? Explica como gestionarias la heterogeneidad sin mantener dos servicios en paralelo.

Captura del reto tecnico

Adjunta una unica captura que muestre: (a) una linea del log de Samba con el error del Reto 1 resaltado, y (b) la ejecucion exitosa de tu backup_a_samba.sh con el final del log (OK, numero de ficheros, tamaño).

📷

Haz clic, arrastra o pega una imagen (Ctrl+V)

Captura reto tecnico

Evaluacion

Criterios de evaluacion

Criterio Peso Puntuacion
Parte 1: Compartir carpeta en Windows (SMB) 12%
Parte 2: Configuracion de Samba en Linux 15%
Parte 3: Acceso desde Linux a Windows (CIFS) 12%
Parte 4: Mapeo persistente de unidades 8%
Parte 5: Compartir impresora en red 8%
Parte 6: Descubrimiento de recursos en red 5%
Parte 7: Proyecto integrador del taller 15%
Parte 8: Preguntas de reflexion 5%
Parte 9: Reto tecnico (troubleshooting Samba + script propio + SMB/NFS) 20%

Firma y entrega

Lista de verificacion

Dato Tu respuesta
Nombre del alumno
Firma
Fecha de entrega

Entrega esta practica en el canal #entrega-practicas del Discord del curso.

Formato: Nombre: [tu nombre] | Practica: Comparticion de Recursos en Red

Este proyecto integrador pone en practica todo lo aprendido en el modulo.