UT00 · Virtualización y fundamentos Linux

Creación del laboratorio virtual SER-LAB y adquisición de una base sólida de Linux desde terminal para administrar servicios de red.

☰ Contenido de la unidad

Introducción

Objetivo de la unidad: construir desde cero el laboratorio que utilizaremos durante el curso y adquirir un manejo sólido de la consola Linux.
No buscamos memorizar una lista interminable de órdenes. Buscamos que puedas responder cuatro preguntas: qué quiero comprobar, qué comando me ayuda, qué significa su salida y qué hago después.

En Servicios en Red instalaremos DHCP, DNS, transferencia de archivos, correo, servidores web, acceso remoto, redes inalámbricas y mecanismos de conexión entre redes. Todos esos servicios se ejecutan sobre sistemas operativos y redes reales o virtuales.

Por eso empezaremos por la base:

VIRTUALIZACIÓN
      ↓
LABORATORIO AISLADO
      ↓
DEBIAN
      ↓
TERMINAL
      ↓
ARCHIVOS · USUARIOS · PERMISOS
      ↓
PROCESOS · SERVICIOS · LOGS
      ↓
IP · RUTAS · PUERTOS
      ↓
DIAGNÓSTICO
      ↓
UT01 · DHCP

En esta unidad no trabajaremos scripting ni archivos .sh. Primero necesitamos que la consola deje de ser algo que se copia y pase a ser una herramienta que entendemos.


1. Qué deberías ser capaz de hacer al terminar

Al finalizar UT00 deberías poder:

  • explicar qué son host, guest, máquina virtual, hipervisor e ISO;
  • distinguir hardware virtual de modo de conexión de una tarjeta virtual;
  • crear una VM razonable y justificar CPU, RAM y disco;
  • instalar Debian en una VM;
  • crear y restaurar una instantánea;
  • distinguir NAT, Red NAT, Red interna, Solo-anfitrión y Puente;
  • construir el laboratorio SER-LAB sin afectar a la red física del centro;
  • iniciar sesión en Debian y saber quién eres, en qué máquina estás y dónde estás;
  • moverte con seguridad por el árbol de directorios;
  • crear, copiar, mover, buscar, leer y eliminar archivos;
  • utilizar ayuda integrada (man, --help) antes de depender de una receta;
  • crear usuarios y grupos de laboratorio;
  • interpretar y modificar permisos Linux;
  • utilizar sudo de forma consciente;
  • consultar paquetes, procesos, servicios, puertos y registros;
  • identificar interfaces, direcciones IP y rutas;
  • diagnosticar una incidencia sencilla siguiendo una secuencia lógica.

2. Relación con los RA y CE de Servicios en Red

La UT00 tiene un carácter principalmente introductorio y transversal. Proporciona la base técnica que necesitaremos durante todo el módulo: virtualización, administración básica de Debian, terminal, sistema de archivos, usuarios, grupos, permisos, procesos, servicios, registros e interfaces de red.

No obstante, una parte concreta de esta unidad se relaciona directamente con un criterio oficial del módulo.

RA8. Establece el acceso desde redes locales a redes públicas identificando posibles escenarios y aplicando software específico.

En UT00 comenzamos a trabajar este RA al construir una máquina con:

  • una interfaz orientada a nuestra red privada de laboratorio;
  • otra interfaz con salida hacia una red externa mediante NAT del hipervisor.

CE trabajado directamente

RA8 · CE a) Se ha instalado y configurado el hardware de un sistema con acceso a una red privada local y a una red pública.

En nuestro laboratorio utilizaremos hardware virtualizado, pero las decisiones técnicas que debemos comprender son las mismas: qué interfaz existe, a qué red se conecta, qué dirección utiliza y por dónde debe circular cada tráfico.

Importante: UT00 no completa el RA8.
Aquí obtenemos una primera evidencia del CE a). El resto del RA8 se desarrollará en UT08, cuando trabajemos pasarelas, encaminamiento, filtrado, NAT/DNAT, publicación y resolución de incidencias entre redes.

Aprendizajes transversales

Aprendizaje de UT00 Para qué lo reutilizaremos
Virtualización laboratorios seguros y reproducibles
Terminal Linux administración de todos los servidores
Archivos y rutas configuración de servicios
Usuarios y grupos transferencia, correo, web y acceso remoto
Permisos control de acceso
Procesos y servicios DHCP, DNS, Apache, SSH, correo…
Logs diagnóstico
Interfaces y rutas DHCP, acceso remoto y conexión entre redes
Puertos y sockets comprobación real del servicio

Estos aprendizajes no son nuevos CE inventados. Son herramientas que permitirán demostrar los CE oficiales de las unidades posteriores.

Referencia curricular de Extremadura:
Decreto 272/2009, de 28 de diciembre · módulo 0227 · RA8 y CE


3. Por qué esto se parece al trabajo real

Un técnico no debería trabajar diciendo:

«He reiniciado tres cosas y ahora parece que funciona».

Trabaja reduciendo el problema.

Imagina:

«Desde el cliente no abre la web interna; en el servidor dicen que sí funciona».

Antes de tocar nada podemos preguntar:

  1. ¿la VM está arrancada?;
  2. ¿la tarjeta virtual está conectada?;
  3. ¿la interfaz aparece UP?;
  4. ¿tiene la IP esperada?;
  5. ¿existe una ruta hacia el destino?;
  6. ¿el puerto está escuchando?;
  7. ¿el servicio está activo?;
  8. ¿qué registran los logs?;
  9. ¿responde la aplicación?;
  10. ¿el cambio realizado ha solucionado el problema sin romper otra cosa?

Ese modo de pensar será más importante durante el curso que memorizar un comando concreto.


PARTE I · VIRTUALIZACIÓN DESDE CERO

4. Qué estamos virtualizando

Un PC físico aporta:

CPU · RAM · almacenamiento · tarjetas de red · USB · pantalla…

El hipervisor utiliza parte de esos recursos para presentar a cada máquina virtual un ordenador independiente.

Capas de virtualización

Figura 1. El host aporta los recursos; VirtualBox presenta hardware virtual a cada sistema invitado.

Vocabulario imprescindible

Concepto Qué significa Ejemplo del curso
Host / anfitrión equipo físico que ejecuta el hipervisor PC del aula
Hipervisor software que crea y administra VM VirtualBox
VM ordenador virtual ser-ser01
Guest / invitado SO instalado en la VM Debian 13
ISO medio de instalación en forma de imagen ISO de Debian

Ejercicio resuelto 1

Tenemos Windows 11 en el PC físico y Debian dentro de VirtualBox.

Windows 11 del PC → host
VirtualBox         → hipervisor
Debian 13          → guest
ser-ser01          → máquina virtual

5. Para qué virtualizamos en SER

Durante el curso vamos a:

  • modificar direcciones IP;
  • instalar servicios;
  • crear usuarios;
  • cambiar permisos;
  • abrir o cerrar puertos;
  • configurar DHCP y DNS;
  • provocar fallos;
  • restaurar estados anteriores.

Una MV nos permite trabajar con una filosofía muy útil:

crear → comprobar → modificar → romper → diagnosticar → recuperar

sin utilizar la red física como campo de pruebas.


6. VirtualBox, VMware e Hyper-V

VirtualBox

Será nuestro hipervisor principal porque permite trabajar con VM, discos, snapshots y redes virtuales de forma cómoda en el aula.

VMware Workstation

Utiliza los mismos conceptos fundamentales. Cambiarán los nombres de algunos menús, pero seguiremos hablando de CPU virtual, memoria, disco, NIC, snapshot y redes.

Hyper-V

Es la solución de virtualización de Microsoft disponible en ediciones compatibles de Windows y Windows Server.

Lo que realmente queremos aprender

crear VM
   ↓
asignar recursos
   ↓
conectar ISO
   ↓
instalar SO
   ↓
crear tarjetas virtuales
   ↓
elegir a qué redes se conectan
   ↓
crear un punto de recuperación

Si entiendes ese recorrido, cambiar de hipervisor resulta mucho más sencillo.


7. Descargas oficiales

Usa siempre fuentes oficiales.

En los PC Intel/AMD habituales utilizaremos normalmente Debian amd64.


8. Crear la primera VM: ser-ser01

8.1. Nombre

ser-ser01

El nombre tiene significado:

ser    → Servicios en Red
ser01  → servidor principal

Evita nombres ambiguos como debian nuevo, prueba2 o maquina definitiva final.

8.2. Recursos iniciales

Para una Debian de servidor sin escritorio, un punto de partida razonable en un PC de aula puede ser:

2 vCPU
2 GB RAM
25 GB de disco dinámico

No es una norma, es una decisión inicial que podemos revisar.

Ejercicio resuelto 2 · RAM

Host:

16 GB RAM

Propuesta:

VM1 → 8 GB
VM2 → 8 GB

Problema: hemos consumido prácticamente toda la RAM disponible y olvidado al host.

Una propuesta inicial más prudente:

VM1 → 2 GB
VM2 → 2 GB

y dejamos margen al sistema anfitrión.

8.3. Disco dinámico

Si creamos un disco virtual con máximo de 25 GB y crecimiento dinámico, el invitado puede ver un disco de 25 GB sin que el archivo del host ocupe necesariamente 25 GB desde el primer minuto.


9. La ISO y el proceso de instalación

Conceptualmente:

ISO Debian
    ↓
lector virtual
    ↓
arranque de la VM
    ↓
instalador Debian
    ↓
disco virtual

Durante la instalación utilizaremos valores de laboratorio.

Ejemplo:

Nombre completo: Fran Cano
Usuario:         francano
Hostname:        ser-ser01

Para contraseñas usa una contraseña exclusiva de laboratorio.

Ejemplo didáctico:

SerLab-2026-Prueba

No reutilices una contraseña personal.

Servidor sin escritorio

El servidor se trabajará preferentemente sin entorno gráfico.

Eso no significa que «le falte algo». Significa que aprenderemos a administrarlo con herramientas reutilizables en servidores reales y remotos.

Apagar correctamente

sudo poweroff

No conviertas cerrar bruscamente la ventana de VirtualBox en tu forma habitual de apagar tu MV.


10. Snapshots e instantáneas

Después de instalar, actualizar y comprobar Debian:

00_BASE_LIMPIA

Más adelante:

00_BASE_LIMPIA
      ↓
01_RED_OK
      ↓
02_DHCP_OK

Ejercicio resuelto 3

Mañana vamos a comenzar DHCP y hoy todo funciona.

¿Cuándo es buen momento para crear snapshot?

Ahora, antes de realizar cambios.

Un snapshot facilita volver atrás en el laboratorio, pero no sustituye una copia de seguridad independiente.


11. Clonar una máquina

Podemos preparar una Debian base y clonarla:

Debian base
├── ser-ser01
└── ser-cli01

Después del clon revisa:

  • hostname;
  • función de la máquina;
  • adaptadores;
  • direcciones MAC cuando proceda;
  • IP.

Clonar no significa que dos máquinas deban conservar la misma identidad.


PARTE II · TARJETAS Y REDES VIRTUALES

12. Tarjeta virtual y modo de red no son lo mismo

Esta diferencia evita muchos errores.

vNIC frente a modo de conexión

Figura 2. Debian ve una tarjeta virtual; VirtualBox decide a qué tipo de red está conectada.

Una vNIC es el adaptador que ve el sistema invitado. VirtualBox permite utilizar una o varias.

Después elegimos dónde se conecta cada una:

NAT
Red NAT
Red interna
Solo-anfitrión
Puente

Dentro de nuestra MV pueden aparecer nombres como:

enp0s3
enp0s8

No memorices que «enp0s3 siempre es NAT». Compruébalo en tu MV.

Ejercicio resuelto 4

Dos VM tienen:

192.168.50.10/24
192.168.50.20/24

pero una está conectada a SER-LAB y otra a SER_LAB.

¿Arreglarías el problema cambiando otra vez las IP?

No. El problema está en el hipervisor: las vNIC están conectadas a redes virtuales distintas.


13. NAT

Red NAT individual

Figura 3. NAT permite que una MV salga a Internet sin aparecer directamente como otro equipo de la LAN física.

Uso típico:

apt update
instalar paquetes
consultar repositorios

En VirtualBox, NAT da salida de forma sencilla. La MV no queda publicada automáticamente hacia la red exterior; si necesitáramos entrada hacia un servicio concreto habría que configurar una redirección.

Ejercicio resuelto 5

Necesitamos descargar actualizaciones, pero no queremos que el servidor sea visible directamente en la red física.

Elección: NAT.


14. Red interna

Red interna

Figura 4. En una Red interna se comunican las MV que utilizan el mismo nombre de red, sin depender del host ni de la LAN física.

Es nuestra opción principal para servicios de laboratorio.

Ejemplo:

SER-LAB

Es especialmente útil para DHCP: evita que las ofertas de nuestro servidor de prácticas lleguen a equipos reales del centro.

Ejercicio resuelto 6

Vamos a arrancar un DHCP creado por un alumno.

¿Puente o Red interna?

Red interna. En puente el tráfico podría alcanzar la red real.


15. Solo-anfitrión

Red solo-anfitrión

Figura 5. Solo-anfitrión crea una red privada en la que participan el host y las MV.

Resulta útil cuando queremos acceder a una MV desde herramientas instaladas en el host.

Atención para futuras prácticas DHCP: una red host-only puede tener un servidor DHCP de VirtualBox. Si vamos a estudiar nuestro propio DHCP, debemos saber exactamente qué otros servidores pueden responder.


16. Red NAT

Red NAT compartida

Figura 6. Una Red NAT ofrece un segmento compartido entre varias MV y salida al exterior.

La utilizaremos solo cuando el escenario lo justifique.

Es cómoda, pero puede introducir elementos automáticos —por ejemplo DHCP— que debemos conocer antes de estudiar nuestros propios servicios.


17. Adaptador puente

Adaptador puente

Figura 7. En modo puente la MV se comporta de forma mucho más parecida a otro equipo conectado a la LAN física.

Profesionalmente es útil.

En el aula también puede ser peligroso:

  • un DHCP de prácticas puede interferir con clientes reales;
  • un servidor puede quedar accesible desde otros equipos;
  • una mala configuración puede afectar a terceros.

18. Comparativa de modos de VirtualBox

Modo VM → Internet/LAN VM ↔ VM Host → VM Uso en SER
NAT Sí No directamente por defecto mediante redirección si se necesita actualizar una VM
Red NAT Sí Sí mediante reglas cuando proceda varias VM con salida compartida
Red interna No Sí, mismo nombre No laboratorio de servicios
Solo-anfitrión No por defecto Sí Sí administración desde el host
Puente Sí, según LAN Sí Sí solo con autorización

Oracle VirtualBox 7.2 · Virtual Networking


19. Topología base de SER-LAB

Nuestro patrón será:

NIC 1 → NAT
NIC 2 → Red interna SER-LAB

Topología SER-LAB

Figura 8. Cada MV separa el acceso exterior de la red de servicios.

Direcciones iniciales:

ser-ser01 → 192.168.50.10/24
ser-cli01 → 192.168.50.20/24
ser-win01 → 192.168.50.30/24   (cuando lo necesitemos)

Idea crítica

NAT      → mantenimiento / Internet
SER-LAB  → tráfico de las prácticas

La interfaz de SER-LAB no necesita gateway en este escenario. La ruta por defecto debe continuar asociada a la salida NAT.


20. Configurar los dos adaptadores

Con la MV apagada:

Adaptador 1

Habilitado
Conectado a: NAT
Cable conectado: sí

Adaptador 2

Habilitado
Conectado a: Red interna
Nombre: SER-LAB
Cable conectado: sí

Repite en ser-ser01 y ser-cli01.

Ejercicio resuelto 7

Servidor:

Red interna: SER-LAB

Cliente:

Red interna: SER-LAB2

Las IP parecen correctas pero no se comunican.

Primera corrección: no toques las IP todavía. Conecta ambas vNIC al mismo segmento virtual.


PARTE III · ENTRAR EN DEBIAN Y ENTENDER LA TERMINAL

21. El primer login

Podemos encontrar:

Debian GNU/Linux 13 ser-ser01 tty1

ser-ser01 login:

Iniciamos sesión:

login: francano
password: ********

La contraseña no aparece en pantalla mientras la escribes. Es normal.

Después:

francano@ser-ser01:~$

Lo podemos leer así:

francano  → usuario
ser-ser01 → máquina
~         → home
$         → usuario normal

22. Cuatro preguntas antes de trabajar

¿Quién soy?

whoami

¿En qué máquina estoy?

hostname

¿Dónde estoy?

pwd

¿Qué hay aquí?

ls

Ejercicio resuelto 8

$ whoami
francano
$ hostname
ser-ser01
$ pwd
/home/francano

Interpretación:

Estoy conectado como francano al servidor ser-ser01 y estoy situado en mi directorio personal.


23. Pedir ayuda

No memorices todas las opciones.

man ls
ls --help
man chmod
chmod --help

En man:

/ texto   buscar
n         siguiente resultado
q         salir

Ejercicio guiado

Abre:

man ls

Busca:

human-readable

y localiza la opción que muestra tamaños en formato más legible.

Resultado esperado: descubrir -h utilizando la ayuda del propio sistema.


PARTE IV · SISTEMA DE ARCHIVOS Y MOVIMIENTO

24. Un único árbol que empieza en /

Árbol Linux

Figura 9. Linux organiza archivos y directorios bajo una única raíz /.

Rutas importantes:

Ruta Idea inicial
/home directorios personales
/etc configuración
/var datos variables y registros
/srv datos asociados a servicios
/tmp temporales
/root home de root
/usr programas y recursos del sistema

Hay que aprender a moverse y reconocer para qué sirven las zonas que vamos utilizando.


25. cd: cambiar de directorio

Ir a una ruta absoluta:

cd /etc

Volver al home:

cd ~

Subir al padre:

cd ..

Volver al directorio anterior:

cd -

Ejercicio resuelto 9

Estamos en:

/home/francano/practicas

Queremos ir a:

/home/francano

Solución:

cd ..

Ejercicio resuelto 10

Estamos en cualquier lugar y queremos llegar directamente a /var/log.

cd /var/log

26. Rutas absolutas y relativas

Absoluta:

/etc/hosts

Relativa:

practicas/uno.txt

Si estamos en /home/francano:

cd practicas

y:

cd /home/francano/practicas

pueden llevar al mismo lugar.

Símbolos fundamentales

Símbolo Significado
/ raíz
. directorio actual
.. padre
~ home
- directorio anterior con cd -

Mini ejercicio resuelto

Si estás en:

/srv/serlab/evidencias

cd .. te lleva a:

/srv/serlab

cd ../.. te lleva a:

/srv

27. ls: mirar antes de tocar

ls
ls -l
ls -a
ls -h
ls -lah

Una salida de ls -l puede contener:

-rw-r----- 1 francano serops 1240 sep 11 09:20 notas.txt

Todavía no hace falta entenderla entera.

Por ahora identifica:

tipo
permisos
propietario
grupo
tamaño
fecha
nombre

Ejercicio resuelto 11

Existe:

.config

pero ls no lo muestra.

Solución:

ls -a

En Linux, un nombre que comienza por . se trata como oculto en el listado normal.


28. Crear directorios y archivos

Crear un directorio:

mkdir practicas

Crear una estructura:

mkdir -p ~/ser/ut00/evidencias

Crear un archivo vacío:

touch notas.txt

Ejercicio guiado

Construye:

~/ser/
└── ut00/
    ├── apuntes/
    ├── practicas/
    └── evidencias/

Solución sencilla:

mkdir -p ~/ser/ut00/apuntes
mkdir -p ~/ser/ut00/practicas
mkdir -p ~/ser/ut00/evidencias

Una forma compacta, cuando ya entiendas lo anterior:

mkdir -p ~/ser/ut00/{apuntes,practicas,evidencias}

Lo importante es entender el resultado, no escribir menos caracteres.


29. Copiar, mover y renombrar

Copiar:

cp notas.txt copia.txt

Mover:

mv copia.txt evidencias/

Renombrar:

mv notas.txt apuntes.txt

Ejercicio resuelto 12

Queremos conservar una copia antes de editar:

cp configuracion.conf configuracion.conf.bak

Después comprobamos:

ls -l configuracion.conf*

Ejercicio resuelto 13

Existe:

practia.txt

y queremos corregir el nombre:

mv practia.txt practica.txt

30. Eliminar con cabeza

Archivo:

rm fichero.txt

Con confirmación:

rm -i fichero.txt

Directorio vacío:

rmdir directorio

Directorio con contenido:

rm -r directorio

Antes de un borrado importante:

pwd
ls -la

No utilizaremos rm -rf como gesto automático.
Primero debemos saber exactamente qué ruta estamos afectando.

Ejercicio resuelto 14

Quieres eliminar prueba.txt pero deseas confirmación.

rm -i prueba.txt

PARTE V · LEER, BUSCAR Y COMBINAR

31. Leer archivos

Archivo corto:

cat /etc/hostname

Archivo largo:

less /etc/services

Primeras líneas:

head -n 5 /etc/passwd

Últimas:

tail -n 5 /etc/passwd

Ejercicio resuelto 15

Un log tiene 5.000 líneas y quieres las 20 últimas.

tail -n 20 archivo.log

cat archivo.log también mostraría información, pero no sería la herramienta mejor elegida para esa pregunta.


32. Buscar texto con grep

grep "root" /etc/passwd

Ignorar mayúsculas/minúsculas:

grep -i "error" archivo.log

Mostrar número de línea:

grep -n "error" archivo.log

Ejercicio resuelto 16

Queremos localizar francano:

grep "francano" /etc/passwd

33. Buscar archivos con find

find /etc -type f -name "*.conf" 2>/dev/null

En el directorio actual:

find . -type f -name "*.log"

Ejercicio resuelto 17

Necesitas encontrar archivos de configuración bajo /etc.

Una solución:

find /etc -type f -name "*.conf" 2>/dev/null

2>/dev/null oculta en este ejemplo los mensajes de error de permisos. Más adelante veremos con detalle la redirección de errores.


34. Tuberías |

La tubería envía la salida de un comando al siguiente.

ps aux | grep ssh

Piensa:

ps aux
  ↓ produce muchas líneas
grep ssh
  ↓ conserva las relacionadas con ssh

Otro ejemplo:

ip address | less

Ejercicio resuelto 18

Queremos ver procesos relacionados con Apache:

ps aux | grep apache

Más adelante conoceremos alternativas más específicas como pgrep.


35. Redirecciones básicas

Crear o sustituir:

hostname > equipo.txt

Añadir:

date >> equipo.txt

Comprobar:

cat equipo.txt

Ejercicio resuelto 19

Queremos guardar hostname y fecha en el mismo fichero:

hostname > datos.txt
date >> datos.txt

Clave:

>   sustituye
>>  añade

PARTE VI · USUARIOS, GRUPOS Y PERMISOS

36. Saber quién eres de verdad

whoami
id
groups

Ejemplo de id:

uid=1000(francano) gid=1000(francano) groups=1000(francano),27(sudo)

Esto nos permite distinguir:

  • usuario;
  • UID;
  • grupo principal;
  • grupos suplementarios.

37. Crear usuarios y grupos

Crear usuario:

sudo adduser tecnico01

Comprobar:

id tecnico01

Crear grupo:

sudo addgroup serops

Comprobar:

getent group serops

Añadir usuario:

sudo usermod -aG serops tecnico01
  • a (append): Indica que se va a añadir o adjuntar el usuario al nuevo grupo. Es fundamental incluir esta opción; si la olvidas y usas solo -G, el usuario será eliminado de todos los demás grupos a los que pertenecía.
  • G (groups) : Especifica la lista de grupos secundarios (suplementarios) a los que deseas asociar al usuario. Verificar:
id tecnico01

Ejercicio resuelto 20

Queremos añadir francano a serops sin perder otros grupos.

sudo usermod -aG serops francano

Después:

id francano

Tras cambiar grupos, una sesión que ya estaba abierta puede necesitar cerrarse y volver a abrirse para reflejar la nueva pertenencia.


38. sudo y mínimo privilegio

sudo no significa:

«si da error, pon sudo».

Significa:

«ejecuta esta operación concreta con privilegios administrativos».

Ejemplo:

sudo adduser tecnico02

No necesitas sudo para:

pwd
ls
cat ~/notas.txt

Ejercicio resuelto 21

Quieres comprobar tu directorio actual.

¿Usarías?

sudo pwd

No es necesario.

pwd

responde a la pregunta sin elevar privilegios.


39. Leer permisos

Permisos Linux

Figura 10. Los permisos se dividen entre propietario, grupo y otros.

Ejemplo:

-rw-r-----

Separación:

rw- | r-- | ---
 u      g      o

En archivos

r → leer
w → modificar
x → ejecutar

En directorios

r → listar nombres
w → crear/eliminar entradas
x → atravesar la ruta

La x en directorios será muy importante cuando trabajemos con servidores.


40. Permisos numéricos

r = 4
w = 2
x = 1

Por tanto:

7 = rwx
6 = rw-
5 = r-x
4 = r--
0 = ---

Ejemplos:

600 → rw- --- ---
640 → rw- r-- ---
750 → rwx r-x ---
755 → rwx r-x r-x

Aplicar:

chmod 640 notas.txt

Ejercicio resuelto 22

¿Qué significa 750 en un directorio?

propietario → rwx
grupo       → r-x
otros       → ---

El grupo puede listar y atravesar, pero no crear entradas.


41. Cambiar permisos, propietario y grupo

Añadir ejecución al dueño:

chmod u+x fichero

Quitar escritura al grupo:

chmod g-w fichero

Cambiar propietario y grupo:

sudo chown francano:serops documento.txt

Comprobar:

ls -l documento.txt

Ejercicio resuelto 23

Queremos que un archivo solo pueda ser leído y modificado por su propietario:

chmod 600 archivo.txt

Ampliación: umask `umask` participa en los permisos iniciales de nuevos archivos y directorios. ```bash umask umask -S ``` Por ejemplo, con una máscara habitual `0022`, un archivo solicitado como `666` termina normalmente en `644`. No es necesario dominarlo para superar la parte básica de UT00.

PARTE VII · PAQUETES, PROCESOS, SERVICIOS Y LOGS

42. Paquetes en Debian

Actualizar información de repositorios:

sudo apt update

Buscar:

apt search nginx

Consultar:

apt policy nginx

Instalar:

sudo apt install nginx

Idea importante

paquete instalado
≠
servicio activo
≠
puerto escuchando
≠
cliente funcionando

43. Procesos

ps
ps aux

Filtrar:

ps aux | grep ssh

Consulta más directa:

pgrep -a ssh

Ejercicio resuelto 24

La pregunta es:

«¿Existe algún proceso relacionado con SSH?»

Una primera comprobación puede ser:

pgrep -a ssh

44. Servicios con systemctl

Nos permite controlar y administrar el gestor de sistemas y servicios.

Estado:

systemctl status ssh

¿Está activo?

systemctl is-active ssh

Arrancar:

sudo systemctl start ssh

Detener:

sudo systemctl stop ssh

Reiniciar:

sudo systemctl restart ssh

Ejercicio resuelto 25

Alguien afirma:

«SSH está instalado, por tanto funciona».

No podemos concluirlo.

Podemos comprobar:

systemctl status ssh

y después, si buscamos una escucha:

sudo ss -lntp

45. Logs con journalctl

Permite gestionar y administrar de forma centralizada los registros del sistema gestionados por el sistema.

Arranque actual:

journalctl -b

Un servicio:

journalctl -u ssh

Últimas 30 líneas:

journalctl -u ssh -b -n 30 --no-pager

Ejercicio resuelto 26

SSH no inicia.

Antes de reiniciarlo cinco veces:

systemctl status ssh
journalctl -u ssh -b -n 30 --no-pager

El estado nos dice qué ocurre ahora; el log puede explicar qué ocurrió.


46. Puertos y sockets

TCP en escucha:

ss -lnt

TCP y UDP:

ss -lntu

Con procesos:

sudo ss -lntup

Opciones:

-l → listening
-n → valores numéricos
-t → TCP
-u → UDP
-p → proceso

Ejercicio resuelto 27

Queremos comprobar si existe una escucha TCP en el puerto 22:

sudo ss -lntp | grep ':22'

PARTE VIII · RED Y DIAGNÓSTICO

47. Interfaces y direcciones

ip -br address

Ejemplo:

lo       UNKNOWN  127.0.0.1/8
enp0s3   UP       10.0.2.15/24
enp0s8   UP       192.168.50.10/24

Si SER-LAB es 192.168.50.0/24, la segunda interfaz parece corresponder a la red interna.

No lo deduzcas solo por el nombre: confirma con rutas y configuración del hipervisor.


48. Rutas

ip route

Ejemplo conceptual:

default via 10.0.2.2 dev enp0s3
192.168.50.0/24 dev enp0s8

Interpretación:

destinos externos → NAT
SER-LAB           → enp0s8 directamente

Preguntar una ruta concreta:

ip route get 192.168.50.20
ip route get 1.1.1.1

Ejercicio resuelto 28

Para 192.168.50.20 esperamos usar la interfaz de SER-LAB.

Para 1.1.1.1 esperamos la interfaz NAT.

Si ambos destinos salen por la misma interfaz, tenemos algo que investigar.


49. ping, ss, nc y curl no demuestran lo mismo

Conectividad ICMP:

ping -c 4 192.168.50.20

Intento TCP:

nc -vz 192.168.50.10 22

Petición HTTP:

curl -v http://192.168.50.10/
Herramienta Pregunta principal
ip -br a ¿qué interfaces e IP tengo?
ip route ¿qué rutas conoce mi equipo?
ping ¿hay intercambio ICMP si está permitido?
ss ¿qué sockets existen en este equipo?
nc ¿puedo establecer transporte hacia un puerto?
curl ¿responde una aplicación HTTP?
journalctl ¿qué ha registrado sistema/servicio?

Ejercicio resuelto 29

ping servidor → correcto
curl web      → connection refused

No es contradictorio.

El host responde a ICMP, pero probablemente no hay un proceso aceptando conexiones en el puerto HTTP esperado.


50. Escalera de diagnóstico

Escalera de diagnóstico

Figura 11. Diagnosticar significa comprobar una capa antes de saltar a la siguiente.

Regla:

No reinicies un servicio para arreglar una IP incorrecta.

Una secuencia útil:

VM
↓
adaptador
↓
interfaz/IP
↓
red local
↓
ruta
↓
nombre
↓
puerto
↓
servicio
↓
aplicación
↓
permisos/logs

PARTE IX · LABORATORIO GUIADO

51. Construir SER-LAB desde cero

Servidor

VM:          ser-ser01
SO:          Debian 13
RAM:         2 GB
CPU:         2 vCPU
Disco:       25 GB dinámico
NIC 1:       NAT
NIC 2:       Red interna SER-LAB
IP SER-LAB:  192.168.50.10/24
Usuario:     francano

Cliente

VM:          ser-cli01
SO:          Debian 13
NIC 1:       NAT
NIC 2:       Red interna SER-LAB
IP SER-LAB:  192.168.50.20/24

Fase A · virtualización

  1. crea las VM;
  2. instala Debian;
  3. comprueba que ambas arrancan;
  4. configura dos adaptadores;
  5. crea 00_BASE_LIMPIA.

Fase B · reconocimiento

En ambas VM:

whoami
hostname
pwd
ip -br address
ip route

Para cada comando escribe:

qué busco → salida relevante → qué significa

Fase C · terminal

Crea:

~/ser/ut00/
├── apuntes/
├── practicas/
├── evidencias/
└── copias/

Después practica:

touch
cp
mv
rm -i
cat
less
grep

Fase D · usuarios y permisos

Crea:

grupo:   serops
usuario: tecnico01

Comprueba pertenencias y aplica distintos permisos a archivos de prueba.

Fase E · red

Comprueba que:

ser-ser01 ↔ ser-cli01 por SER-LAB

y que la salida exterior utiliza NAT.



PARTE XII · CHULETA OPERATIVA

58. Identidad y navegación

whoami
id
groups
hostname
pwd
ls -lah
cd /ruta
cd ..
cd ~
cd -

59. Archivos

mkdir -p ruta
touch fichero
cp origen destino
mv origen destino
rm -i fichero
cat fichero
less fichero
head -n 20 fichero
tail -n 20 fichero
grep -n "texto" fichero
find . -type f -name "*.conf"

60. Usuarios y permisos

sudo adduser usuario
sudo addgroup grupo
sudo usermod -aG grupo usuario
id usuario
ls -l
chmod 600 fichero
chmod 640 fichero
chmod 750 directorio
sudo chown usuario:grupo fichero

61. Sistema y red

cat /etc/os-release
ps aux
systemctl status SERVICIO
journalctl -u SERVICIO -b -n 30 --no-pager
sudo ss -lntup
ip -br address
ip route
ip route get DESTINO
ping -c 4 DESTINO


PARTE XIV · REFERENCIAS OFICIALES

62. Currículo

63. Virtualización

64. Sistemas operativos y Linux


65. Qué viene después

Cuando esta base sea cómoda, comenzaremos:

UT01 · DHCP

A partir de ese momento los comandos dejarán de aparecer como ejercicios aislados.

Los utilizaremos para:

instalar
↓
configurar
↓
arrancar
↓
comprobar
↓
probar desde cliente
↓
diagnosticar
↓
explicar
↑