Se acabó la teoría. En esta lección montas el laboratorio que usarás durante los ocho módulos del curso: una máquina llamada srv-tramontana con Ubuntu Server 24.04 LTS, un usuario operador y un servidor SSH funcionando.
No es un trámite. La forma en que instalas un servidor condiciona todo lo que viene después: si no verificas la ISO, no sabes qué has instalado; si particionas mal, un log desbocado puede tumbar la máquina entera; y si no haces snapshots, cada experimento arriesgado del curso será una ruleta rusa. Vas a ver las opciones disponibles y cuándo usar cada una, cómo verificar la integridad y la autenticidad de la imagen, el instalador de Ubuntu Server paso a paso —con el particionado explicado desde cero— y cómo dejar la máquina lista y con red de seguridad.
Dedícale el tiempo que haga falta. Un laboratorio bien montado se paga solo.
Contenido
- Opciones para montar el laboratorio y cuándo usar cada una
- La recomendación para este curso
- Descargar la ISO y verificarla
- Crear el medio de arranque y arrancar desde UEFI
- El instalador de Ubuntu Server paso a paso
- Particionado: qué es y cómo decidirlo
- Snapshots de la VM: tu red de seguridad
- Primer arranque y primera actualización
- Instantánea mental de lo que has creado
- Opciones para montar el laboratorio y cuándo usar cada una
| Opción | Qué es | Ventajas | Inconvenientes | Cuándo usarla |
|---|---|---|---|---|
| Máquina virtual | Un ordenador simulado dentro de tu sistema actual | Aislada, con snapshots, puedes romperla sin miedo, conservas tu SO | Consume RAM y CPU del anfitrión, algo más lenta | Aprender y probar. La opción de este curso |
| WSL2 (Windows) | Subsistema Linux integrado en Windows 10/11 | Instalación en minutos, integración con Windows, ligero | Kernel modificado, systemd limitado, no es un servidor real | Desarrollo diario en Windows |
| Arranque dual | Linux y Windows en el mismo disco, eliges al arrancar | Rendimiento nativo completo | Riesgo de perder datos al particionar, hay que reiniciar para cambiar | Uso principal de Linux en tu equipo |
| Hardware dedicado | Un ordenador solo para Linux | Rendimiento total, experiencia real de servidor | Necesitas una máquina libre | Homelab, servidor doméstico |
| Servidor en la nube | Instancia en AWS, Azure, Hetzner, DigitalOcean | Accesible desde cualquier sitio, IP pública real | Cuesta dinero, expuesto a internet desde el minuto uno | Producción real, prácticas de red |
| Contenedor Docker | Proceso aislado que comparte el kernel del anfitrión | Muy ligero e instantáneo | No es un sistema completo: sin init, sin kernel propio, sin arranque | Módulo 7, no para aprender administración |
Tres precisiones que evitan malentendidos frecuentes:
-
WSL2 no sustituye a una VM para este curso. Es excelente para escribir scripts y usar herramientas, pero no arranca como un servidor real, systemd funciona con limitaciones, no hay proceso de arranque que estudiar (Módulo 7) y la red está mediada por Windows. Si trabajas en Windows, úsalo como complemento cómodo, no como laboratorio principal.
-
Un contenedor no es una máquina. Comparte el kernel del anfitrión y arranca un solo proceso. No puedes practicar systemd, ni arranque, ni gestión de discos, ni configuración de red real. Los contenedores son un tema del curso, no la infraestructura del curso.
-
Un servidor en la nube expuesto es un objetivo real. Si abres SSH con contraseña en una IP pública, empezarás a recibir intentos de acceso automatizados en cuestión de minutos. No es una exageración: es lo que ocurre. Es un ejercicio excelente para el Módulo 6, pero no para el primer día.
Anfitriones de virtualización disponibles
| Producto | Sistema anfitrión | Coste | Notas |
|---|---|---|---|
| VirtualBox | Windows, macOS (Intel), Linux | Libre (GPL) | El más sencillo y multiplataforma. Recomendado |
| VMware Workstation Pro | Windows, Linux | Gratuito para uso personal | Muy sólido, mejor rendimiento gráfico |
| UTM / Parallels | macOS con Apple Silicon | Libre / de pago | En Mac M1-M4 necesitas la ISO de ARM64 |
| Hyper-V | Windows Pro/Enterprise | Incluido | Bueno, pero convive mal con VirtualBox |
| KVM + virt-manager | Linux | Libre | La opción nativa y más eficiente en Linux |
Si tu portátil es un Mac con chip Apple Silicon, retén este dato ahora para no perder una hora después: necesitas la ISO de Ubuntu Server para ARM64, no la de AMD64.
- La recomendación para este curso
Una máquina virtual con Ubuntu Server 24.04 LTS, llamada srv-tramontana.
Recursos mínimos y recomendados:
| Recurso | Mínimo | Recomendado | Por qué |
|---|---|---|---|
| vCPU | 2 | 2-4 | Compilar y contenedores agradecen más |
| RAM | 2 GB | 4 GB | Ubuntu Server sin escritorio arranca con ~200 MB; los módulos avanzados piden más |
| Disco | 25 GB | 40 GB | Dinámico: solo ocupa lo que usa |
| Red | NAT | NAT + red solo-anfitrión | NAT da internet; la segunda permite conectar por SSH desde el portátil |
Una regla que se olvida y da problemas: no asignes a la VM más de la mitad de la RAM ni de los núcleos de tu equipo. Si tu portátil tiene 8 GB, dale 4 como mucho. Un anfitrión ahogado hace que todo vaya mal, incluida la VM.
Opcionalmente, una segunda VM con Ubuntu Desktop 24.04 LTS (usuario alumno, 4 GB de RAM, 30 GB de disco) para practicar con entorno gráfico. No es imprescindible: todo el curso se puede seguir solo con el servidor, y de hecho así trabajarás en la vida real. Si ya usas Linux o macOS en tu equipo, tu propio sistema hace ese papel.
Sobre la red de la VM
Merece un par de líneas porque determina si podrás conectarte por SSH:
- NAT: la VM sale a internet a través de tu equipo. Es el modo por defecto y basta para instalar paquetes. Desde el anfitrión no puedes conectarte a la VM directamente, salvo que configures reenvío de puertos.
- Adaptador puente (bridged): la VM aparece en tu red local como una máquina más, con su propia IP. Es lo más parecido a un servidor real.
- Red solo-anfitrión (host-only): red privada entre tu equipo y la VM. Combinada con NAT es la configuración más cómoda para un laboratorio: internet por un lado, acceso SSH estable por el otro.
Configuración recomendada: adaptador 1 en NAT + adaptador 2 en red solo-anfitrión. Lo profundizaremos en el Módulo 6.
- Descargar la ISO y verificarla
Una ISO es la imagen de un disco de instalación: un único archivo que contiene el sistema de archivos completo del instalador.
Descárgala siempre desde el sitio oficial: https://ubuntu.com/download/server. Para Ubuntu Server 24.04 LTS el archivo se llama ubuntu-24.04.x-live-server-amd64.iso y ocupa unos 2,5 GB.
Por qué nunca se instala una ISO sin verificar
Estás a punto de conceder a ese archivo control total sobre una máquina. Si está alterado, todo lo que hagas después es papel mojado: no hay contraseña, cortafuegos ni antivirus que te proteja de un sistema comprometido desde su instalación.
Los riesgos son reales y documentados: descargas interrumpidas que dejan la ISO corrupta, réplicas (mirrors) comprometidas, sitios de descarga falsos posicionados en buscadores, ataques de intermediario en redes públicas. Verificar cuesta dos minutos.
Hay que hacer dos comprobaciones distintas, y confundirlas es un error conceptual común:
| Comprobación | Qué demuestra | Qué NO demuestra |
|---|---|---|
| SHA256 | Que el archivo no se ha corrompido ni alterado respecto al hash publicado | Nada, si el atacante también controla la página donde leíste el hash |
| Firma GPG | Que el archivo de hashes fue firmado por Canonical y nadie más | — |
Es decir: el SHA256 comprueba integridad; la firma GPG comprueba autenticidad. Solo haciendo las dos cierras el círculo.
Verificación paso a paso
Los comandos siguientes se ejecutan en Linux o macOS. En Windows puedes usar WSL2, Git Bash o los equivalentes de PowerShell.
Paso 1. Descargar los archivos auxiliares. Están en el mismo directorio que la ISO, en https://releases.ubuntu.com/24.04/:
wget https://releases.ubuntu.com/24.04/SHA256SUMS
wget https://releases.ubuntu.com/24.04/SHA256SUMS.gpgSHA256SUMS: archivo de texto con el hash de cada imagen publicada.SHA256SUMS.gpg: la firma criptográfica de ese archivo, hecha por Canonical.
Paso 2. Comprobar la suma SHA256.
Salida esperada:
Qué hace cada parte:
sha256sumcalcula la huella criptográfica del archivo: un número de 64 dígitos hexadecimales que cambia por completo si se modifica un solo bit.-c SHA256SUMSle dice que lea el archivo de sumas y compruebe cada entrada que encuentre.2>/dev/nulldescarta los mensajes de error de las imágenes que no has descargado (verás la redirección en el Módulo 3).- El resultado clave es
La suma coincide(OKsi tu sistema está en inglés). Si dijeraFALLÓ, borra la ISO y vuelve a descargarla: no la uses bajo ningún concepto.
Paso 3. Importar la clave pública de Canonical.
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com \
--recv-keys 0x46181433FBB75451 0xD94AA3F0EFE21092Salida:
gpg: clave 46181433FBB75451: clave pública "Ubuntu CD Image Automatic Signing Key <[email protected]>" importada gpg: clave D94AA3F0EFE21092: clave pública "Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>" importada gpg: Cantidad total procesada: 2
Estas dos claves son las que Canonical usa para firmar sus imágenes. Sus identificadores están publicados en la documentación oficial de Ubuntu; contrástalos allí en lugar de fiarte de este texto o de cualquier blog.
Paso 4. Verificar la firma.
Salida esperada:
gpg: Firma creada el jue 29 ago 2024 18:22:13 CEST gpg: usando RSA clave D94AA3F0EFE21092 gpg: Firma correcta de "Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>" gpg: ATENCIÓN: ¡Esta clave no está certificada con una firma de confianza! gpg: No hay indicios de que la firma pertenezca al propietario. Huella de clave primaria: 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092
Cómo leer esta salida, que es donde la gente se pone nerviosa sin motivo:
Firma correcta de "Ubuntu CD Image Automatic Signing Key"es la línea que importa. Significa que el archivoSHA256SUMSfue firmado con la clave privada de Canonical y no se ha modificado desde entonces.- El
ATENCIÓN: ¡Esta clave no está certificada con una firma de confianza!es normal y no indica un problema. GPG solo te recuerda que tú no has declarado explícitamente que confías en esa clave dentro de tu red de confianza personal. La firma es válida. - La huella (
8439 38DF ... EFE2 1092) es lo que debes contrastar con la publicada en la web oficial de Ubuntu. Si coincide, has cerrado el círculo.
Lo que sí sería alarmante es un BAD signature. En ese caso, no continúes.
Resumen del razonamiento completo: la firma GPG demuestra que SHA256SUMS viene de Canonical; el sha256sum -c demuestra que la ISO coincide con lo que ese archivo dice. Encadenando ambas, sabes que tu ISO es exactamente la que Canonical publicó.
- Crear el medio de arranque y arrancar desde UEFI
Si usas una máquina virtual, sáltate este apartado: en VirtualBox o VMware basta con conectar la ISO a la unidad óptica virtual de la VM. Esta sección es para instalar en hardware real.
| Herramienta | Sistema | Notas |
|---|---|---|
| Rufus | Windows | El estándar. Elige esquema GPT y sistema destino UEFI |
| balenaEtcher | Windows, macOS, Linux | El más simple: elegir imagen, elegir disco, grabar |
| Ventoy | Todos | Copia varias ISO a un USB y eliges al arrancar. Muy práctico |
dd |
Linux, macOS | Nativo y potente, pero implacable |
Con dd en Linux:
Salida:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 476,9G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi └─sda2 8:2 0 476,4G 0 part / sdb 8:16 1 14,6G 0 disk └─sdb1 8:17 1 14,6G 0 part /media/alumno/USB
Interpretación: sda es tu disco interno (476 GB) y sdb es el USB (14,6 GB, columna RM a 1 = extraíble). Identificar bien el dispositivo es toda la seguridad que tienes.
sudo umount /dev/sdb1
sudo dd if=ubuntu-24.04.1-live-server-amd64.iso of=/dev/sdb bs=4M status=progress conv=fsyncCada parte:
umountdesmonta el USB:dddebe escribir sobre el dispositivo, no sobre una partición montada.if=(input file): el origen, la ISO.of=(output file): el destino, el dispositivo completo/dev/sdb, no/dev/sdb1.bs=4M: escribe en bloques de 4 MB, mucho más rápido que el valor por defecto.status=progress: muestra el avance, que si noddtrabaja en absoluto silencio.conv=fsync: no da por terminada la operación hasta que todo esté físicamente escrito.
Advertencia que hay que tomarse en serio: dd no pregunta ni avisa. Si escribes of=/dev/sda por error, destruyes tu disco principal en segundos, sin confirmación y sin posibilidad de deshacer. Su apodo en la comunidad es disk destroyer. Comprueba el destino dos veces antes de pulsar Intro.
Arrancar desde UEFI
UEFI es el firmware que sustituyó a la BIOS clásica. Para arrancar desde el USB:
- Enciende y pulsa la tecla de menú de arranque durante los primeros segundos: F12, F2, Esc o Supr según el fabricante.
- Elige la entrada del USB. Si aparece dos veces, escoge la que empieza por UEFI:.
- Si el USB no aparece, entra en la configuración de firmware y revisa:
- Secure Boot: Ubuntu está firmado y funciona con Secure Boot activado. Solo desactívalo si el arranque falla.
- Fast Boot: desactívalo, se salta la detección de USB.
- Modo de almacenamiento: debe estar en AHCI, no en RAID/Intel RST.
- El instalador de Ubuntu Server paso a paso
El instalador de Ubuntu Server se llama Subiquity y funciona en modo texto, con navegación por teclado: flechas para moverte, Tab para saltar entre zonas, Espacio para marcar, Intro para confirmar. No hay ratón, y no lo necesitas.
1. Idioma del instalador. Elige el que prefieras. Consejo profesional: selecciona English. Prácticamente toda la documentación, los mensajes de error y las respuestas de foros están en inglés, y buscar un mensaje de error traducido al español da muchos menos resultados. La distribución del teclado se configura aparte en el paso siguiente.
2. Actualización del instalador. Si detecta una versión más nueva, ofrece actualizarse. Acepta: corrige fallos conocidos.
3. Distribución del teclado. Aquí sí elige Spanish. Puedes usar la detección automática, que te pide pulsar teclas concretas. Comprueba que la ñ y los símbolos @, | y / salen donde esperas: escribirás muchos de ellos.
4. Tipo de instalación. Elige Ubuntu Server (la instalación estándar), no minimized. La versión minimizada elimina herramientas útiles y está pensada para imágenes de nube automatizadas.
5. Configuración de red. El instalador detecta la interfaz (habitualmente enp0s3 en VirtualBox) y solicita una dirección IP por DHCP. Verás algo como:
Con NAT en VirtualBox, la IP 10.0.2.15 es normal y correcta. Déjalo en DHCP; en el Módulo 6 configurarás una IP fija.
6. Proxy. Déjalo vacío salvo que tu red corporativa lo requiera.
7. Réplica de paquetes. El instalador propone http://es.archive.ubuntu.com/ubuntu. Acéptalo; comprueba automáticamente que responde.
8. Configuración del disco. El paso importante. Lo desarrollamos en la sección siguiente.
9. Perfil del usuario. Rellénalo así, y con exactamente estos valores, porque los usaremos durante todo el curso:
| Campo | Valor |
|---|---|
| Your name | Operador Tramontana |
| Your server's name | srv-tramontana |
| Pick a username | operador |
| Choose a password | Una contraseña robusta que recuerdes |
Sobre esto conviene entender dos cosas:
- El nombre del servidor (
srv-tramontana) es el hostname: lo verás en el prompt cada vez que entres, y sirve para identificar la máquina en la red. - El usuario
operadorque creas aquí no es root, pero se añade automáticamente al gruposudo, lo que le permite ejecutar comandos con privilegios de administrador. Ubuntu deja la cuentarootsin contraseña y deshabilitada para inicio de sesión directo, por diseño. Lo verás en la lección 01-05 y a fondo en la 05-02. - Al escribir la contraseña no se muestra nada, ni asteriscos ni puntos. No está bloqueado: es el comportamiento normal de Unix, que no revela ni siquiera la longitud.
10. Ubuntu Pro. Puedes omitirlo (Skip for now). Es gratuito hasta 5 máquinas y da 10 años de soporte; en un laboratorio no aporta nada.
11. Servidor OpenSSH. Marca la casilla Install OpenSSH server. Es el paso más importante de esta pantalla: sin él no podrás conectarte al servidor desde tu portátil y tendrás que trabajar siempre en la consola de la VM, que es incómoda (sin copiar y pegar, sin desplazamiento cómodo, sin varias ventanas). Deja sin marcar la importación de claves de GitHub o Launchpad; las claves SSH son tema del Módulo 6.
12. Snaps destacados. No selecciones ninguno. Instalaremos lo que necesitemos cuando lo necesitemos, entendiendo qué hace cada cosa.
13. Instalación. El proceso tarda entre 5 y 20 minutos. Puedes seguir el registro en pantalla con View full log, que es una forma excelente de ir familiarizándote con lo que hace un instalador. Al terminar aparece Reboot Now.
14. Retirar el medio. Si instalaste desde USB, extráelo. En una VM, VirtualBox suele desconectar la ISO automáticamente; si vuelve a arrancar el instalador, desconéctala manualmente desde la configuración de la VM.
- Particionado: qué es y cómo decidirlo
Aquí es donde más gente se atasca, así que empecemos por el principio.
Qué es una partición
Un disco físico es una superficie continua de almacenamiento. Una partición es una división lógica de ese disco: una porción con un principio, un final y un propósito. El disco lleva una tabla de particiones que describe esas divisiones.
Hay dos formatos de tabla:
| Formato | Antigüedad | Límites | Uso hoy |
|---|---|---|---|
| MBR | 1983 | Máximo 4 particiones primarias, discos de hasta 2 TB | Sistemas antiguos con BIOS |
| GPT | 2010 | 128 particiones, discos enormes, con sumas de verificación | El estándar actual, requerido por UEFI |
Usa siempre GPT. Salvo que trabajes con hardware muy antiguo, no hay motivo para MBR.
Sobre cada partición se crea un sistema de archivos (el formato que organiza archivos y directorios dentro de ella): en Linux, habitualmente ext4, robusto y probadísimo. Y esa partición se monta en un punto del árbol de directorios: es la idea central de la lección 01-06.
Las particiones que importan
| Punto de montaje | Qué contiene | ¿Partición propia? |
|---|---|---|
/ (raíz) |
Todo el sistema | Siempre. Es obligatoria |
/boot/efi |
Cargador de arranque UEFI, formato FAT32 | Sí en sistemas UEFI, ~500 MB-1 GB |
/boot |
Kernels e initramfs | Opcional; necesaria si cifras el disco |
| swap | Espacio en disco usado como extensión de la memoria | Recomendable (partición o archivo) |
/home |
Datos personales de los usuarios | Opcional; útil para reinstalar sin perder datos |
/var |
Logs, bases de datos, caché de paquetes: datos que crecen | Muy recomendable en servidores |
Swap: qué es y cuánto
Swap es espacio en disco que el kernel usa cuando la RAM se agota: mueve allí las páginas de memoria menos usadas para liberar RAM. También es necesario para la hibernación.
Es mucho más lento que la RAM, así que no es un sustituto: es una red de seguridad que evita que el sistema mate procesos cuando hay un pico de memoria.
| RAM del sistema | Swap recomendada (servidor) |
|---|---|
| 2 GB | 2 GB |
| 4 GB | 2-4 GB |
| 8 GB | 2-4 GB |
| 16 GB o más | 2-4 GB (o ninguna, si se monitoriza bien) |
La vieja regla de «el doble de la RAM» viene de una época de memorias diminutas y hoy no tiene sentido. Ubuntu, por defecto, crea un archivo de swap (/swap.img) en lugar de una partición: es igual de válido y mucho más fácil de redimensionar después.
Esquema por defecto frente a manual
El instalador ofrece dos caminos:
Use an entire disk: crea/boot/efiy una sola partición grande para/, todo dentro de LVM si dejas marcada la opción. Es correcto, simple y perfectamente válido para aprender.Custom storage layout: decides tú cada partición.
Una recomendación honesta: si es tu primera instalación, usa el esquema por defecto. Aprender particionado y aprender Linux a la vez es innecesario. Podrás repetir la instalación con particionado manual cuando llegues a la lección 05-04 y entiendas LVM.
Dicho esto, este es el esquema que un administrador montaría para un servidor como el nuestro, y merece la pena que entiendas la lógica:
Esquema recomendado para srv-tramontana (disco de 40 GB)
| Partición | Tamaño | Sistema de archivos | Punto de montaje | Justificación |
|---|---|---|---|---|
| 1 | 1 GB | FAT32 | /boot/efi |
Requisito de UEFI. Debe ser FAT32 |
| 2 | 2 GB | ext4 | /boot |
Kernels e initramfs. Aislada para que no se llene |
| 3 | 4 GB | swap | — | Red de seguridad ante picos de memoria |
| 4 | 10 GB | ext4 | /var |
Logs y datos variables aislados |
| 5 | 5 GB | ext4 | /home |
Datos de usuario; sobreviven a una reinstalación |
| 6 | resto (~18 GB) | ext4 | / |
El resto del sistema |
La partición clave es /var, y el motivo es puro sentido común operativo: los logs crecen. Si /var/log/tramontana/acceso.log se desboca por un bucle de errores y /var comparte partición con /, el disco raíz se llena. Y cuando / se llena, el sistema deja de funcionar: no se pueden escribir archivos temporales, los servicios fallan, a veces ni siquiera puedes iniciar sesión para arreglarlo. Con /var en su propia partición, el problema queda contenido: se llena /var, se paran los logs, pero el sistema sigue en pie y puedes entrar a solucionarlo.
Ese es el principio general del particionado en servidores: aislar lo que crece de forma impredecible.
Y su contrapartida, que también hay que conocer: las particiones fijas son rígidas. Si dimensionas mal, te sobra espacio en una y falta en otra. Esa es exactamente la razón de ser de LVM, que permite redimensionar volúmenes en caliente y que estudiarás en la lección 05-04. Por eso Ubuntu lo activa por defecto.
- Snapshots de la VM: tu red de seguridad
Un snapshot (instantánea) congela el estado completo de la VM —disco, memoria, configuración— en un punto del tiempo. Puedes volver a él en segundos, deshaciendo cualquier cosa que hayas hecho después.
Es la mayor ventaja pedagógica de trabajar con máquinas virtuales: te permite romper el sistema a propósito. Y romperlo a propósito, en un entorno donde volver atrás cuesta 10 segundos, es la forma más rápida de aprender administración de sistemas.
En VirtualBox: menú Máquina → Tomar instantánea. En VMware: VM → Snapshot → Take Snapshot.
Toma un snapshot ahora mismo, recién terminada la instalación, y llámalo 01-instalacion-limpia. Es tu punto cero: siempre podrás volver a un sistema recién instalado sin repetir el proceso.
Plan de snapshots recomendado para el curso:
| Nombre sugerido | Cuándo tomarlo |
|---|---|
01-instalacion-limpia |
Ahora, tras instalar y actualizar |
02-antes-de-permisos |
Antes del Módulo 2, lección de permisos |
03-antes-de-discos |
Antes de la lección 05-04 (particionar en caliente) |
04-antes-de-firewall |
Antes del Módulo 6 (te puedes dejar fuera del servidor) |
05-antes-de-kernel |
Antes del Módulo 7 (arranque y kernel) |
Dos advertencias prácticas:
- Los snapshots ocupan espacio y ralentizan la VM si acumulas muchos. Borra los antiguos que ya no necesites. No mantengas más de cuatro o cinco activos.
- Un snapshot no es una copia de seguridad. Vive en el mismo disco físico que la VM: si ese disco falla, se pierde todo junto. Las copias de seguridad de verdad son la lección 05-08.
- Primer arranque y primera actualización
Tras reiniciar, verás pasar mensajes de arranque y llegarás a la pantalla de inicio de sesión:
Escribe operador, pulsa Intro, escribe la contraseña (recuerda: no se ve nada) y pulsa Intro. Aparecerá el mensaje del día y, al final, el prompt:
Ese prompt es tu punto de partida. En la lección siguiente lo desmenuzaremos carácter a carácter.
Actualizar el sistema
La imagen que instalaste se generó hace semanas o meses. Desde entonces se han publicado correcciones de seguridad. Lo primero que se hace en cualquier sistema recién instalado es actualizarlo:
Qué hace exactamente:
sudoejecuta el comando con privilegios de administrador. La primera vez te pedirá tu propia contraseña (la deoperador, no una de root), y la recordará unos 15 minutos.apt updateno actualiza nada: descarga la lista de paquetes disponibles desde los repositorios y comprueba cuáles tienen versión nueva. Es el paso de "informarse".&&encadena: ejecuta lo segundo solo si lo primero terminó correctamente.apt upgradedescarga e instala las nuevas versiones. Pedirá confirmación mostrando qué va a cambiar.
Salida típica de la primera parte:
Hit:1 http://es.archive.ubuntu.com/ubuntu noble InRelease Get:2 http://es.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] Get:3 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB] Fetched 252 kB in 2s (126 kB/s) Reading package lists... Done Building dependency tree... Done 23 packages can be upgraded. Run 'apt list --upgradable' to see them.
Lectura de esta salida:
Hitsignifica que ese repositorio no ha cambiado desde la última consulta;Getque se ha descargado información nueva.noblees el nombre en clave de Ubuntu 24.04 (cada versión tiene el suyo: jammy fue 22.04, noble es 24.04).- Hay tres orígenes: el repositorio base,
noble-updates(correcciones generales) ynoble-security(correcciones de seguridad, el más importante). 23 packages can be upgraded: eso es lo queapt upgradeva a instalar.
Si tras actualizar aparece un mensaje indicando que hace falta reiniciar (típico cuando se actualiza el kernel), hazlo:
Todo esto se profundiza en la lección 05-03. Aquí solo necesitas que el sistema esté al día.
- Instantánea mental de lo que has creado
Antes de seguir, ten claro qué existe ahora:
- Una máquina virtual con Ubuntu Server 24.04 LTS, kernel 6.8, sin entorno gráfico.
- Un hostname:
srv-tramontana. - Un usuario
operador, miembro del gruposudo, con su directorio personal en/home/operador. - Una cuenta root existente pero sin contraseña y sin inicio de sesión directo.
- Un servidor SSH escuchando en el puerto 22, listo para conexiones desde tu portátil.
- Un disco particionado con al menos
/boot/efiy/, y swap. - Una interfaz de red con IP por DHCP y salida a internet.
- Un sistema actualizado con los últimos parches de seguridad.
- Un snapshot llamado
01-instalacion-limpiaal que puedes volver siempre.
Lo que todavía no existe y crearás a lo largo del curso: el grupo tramontana, los directorios /opt/tramontana/app, /etc/tramontana/, /var/log/tramontana/, /srv/tramontana/backups y /home/operador/scripts, y por supuesto la aplicación Tramontana Reservas. En la lección 01-06 verás por qué cada pieza va exactamente donde va.
Errores Comunes y Consejos
- Instalar sin verificar la ISO. Es el error más grave de esta lección, porque invalida silenciosamente todo lo que hagas después. Dos minutos de comprobación.
- Confundir integridad con autenticidad. El SHA256 solo demuestra que el archivo coincide con el hash publicado. Si un atacante controla la página, controla ambos. La firma GPG es la que ata el hash a Canonical.
- Asustarse con el aviso «esta clave no está certificada». Es normal en GPG y no indica problema. Lo alarmante sería
BAD signature. - Equivocarse de dispositivo con
dd. Ejecutalsblkantes y después de conectar el USB, y compara. La diferencia es tu USB. - Olvidar marcar «Install OpenSSH server». Es el olvido más frecuente y el que más incomodidad genera. Si te ha pasado, se soluciona con
sudo apt install openssh-server. - Pensar que la contraseña no se está escribiendo. No aparecen asteriscos por diseño. Escribe con confianza y pulsa Intro.
- Instalar Ubuntu Desktop creyendo que es lo mismo. Un servidor no lleva escritorio: consume memoria, aumenta la superficie de ataque y no aporta nada operativo.
- Dar a la VM toda la RAM del anfitrión. Ahoga el sistema anfitrión y todo va peor, incluida la VM.
- No tomar snapshots. Los snapshots convierten los errores en experimentos. Sin ellos, cada práctica arriesgada da pereza, y la pereza es enemiga del aprendizaje.
- Consejo. Anota en un documento la configuración de tu laboratorio: nombre de la VM, recursos, IP, usuario y contraseña, esquema de particiones y snapshots tomados. En tres semanas no lo recordarás, y documentar la infraestructura es exactamente lo que hace un buen administrador.
- Consejo. Cuando la instalación funcione, repítela una segunda vez con particionado manual. La primera te da un sistema; la segunda te da comprensión.
Ejercicios
Ejercicio 1
Has descargado ubuntu-24.04.1-live-server-amd64.iso desde un enlace que te ha pasado un compañero por mensajería. Describe el procedimiento completo de verificación en cuatro pasos, indicando para cada uno qué comando ejecutas, qué salida esperas y qué demuestra exactamente. Explica después por qué el paso del SHA256, por sí solo, no bastaría en este escenario concreto.
Ejercicio 2
Marta te pide que dimensiones el disco de un futuro srv-tramontana-2 de 100 GB que alojará la base de datos de reservas y guardará copias locales. Propón un esquema de particiones completo con tamaños y justificación de cada una, señala cuál es la más crítica y por qué, y explica qué inconveniente tiene tu propuesta frente a usar LVM.
Ejercicio 3
Tras instalar, arrancas la VM y ocurren estos tres problemas. Diagnostica cada uno y propón la solución:
- Vuelve a aparecer el instalador de Ubuntu en lugar del sistema instalado.
- Al escribir la contraseña en el login, no aparece ningún carácter en pantalla.
- Desde tu portátil,
ssh [email protected]respondeConnection refused.
Soluciones
Solución al Ejercicio 1
Paso 1 — Descargar los archivos de verificación desde la fuente oficial.
wget https://releases.ubuntu.com/24.04/SHA256SUMS
wget https://releases.ubuntu.com/24.04/SHA256SUMS.gpgEs imprescindible que sea desde releases.ubuntu.com, no desde donde vino la ISO. Ese es el punto entero del ejercicio.
Paso 2 — Comprobar la suma SHA256.
Salida esperada: ubuntu-24.04.1-live-server-amd64.iso: La suma coincide.
Demuestra: integridad, que el archivo que tienes es bit a bit idéntico al descrito en SHA256SUMS.
Paso 3 — Importar la clave pública de Canonical.
gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com \
--recv-keys 0x46181433FBB75451 0xD94AA3F0EFE21092Salida esperada: clave pública "Ubuntu CD Image Automatic Signing Key" importada.
Demuestra: nada por sí solo; prepara la comprobación siguiente.
Paso 4 — Verificar la firma del archivo de sumas.
Salida esperada: Firma correcta de "Ubuntu CD Image Automatic Signing Key". El aviso sobre confianza es normal.
Demuestra: autenticidad, que SHA256SUMS fue firmado por Canonical y no se ha alterado.
Y como remate, contrastar la huella mostrada con la publicada en la documentación oficial de Ubuntu.
Por qué el SHA256 solo no bastaría aquí.
El escenario dice que la ISO llegó por un canal no oficial. Si esa persona (o quien le pasó el archivo a ella) hubiera modificado la ISO, le bastaría con calcular el SHA256 del archivo modificado y enviártelo junto al enlace. Comprobarías la suma, coincidiría perfectamente, y estarías verificando el archivo alterado contra el hash del archivo alterado. La comprobación sería técnicamente correcta y completamente inútil.
Un hash solo garantiza integridad respecto a una referencia en la que confías. Si la referencia procede de la misma fuente que el archivo, no hay garantía de nada. La firma GPG rompe ese círculo porque nadie sin la clave privada de Canonical puede producir una firma válida.
En la práctica, ese es el sentido de toda la criptografía de firma: sustituir la confianza en el canal por la confianza en una clave verificable.
Solución al Ejercicio 2
Esquema propuesto para srv-tramontana-2 (100 GB, servidor de base de datos con copias locales):
| # | Tamaño | FS | Punto de montaje | Justificación |
|---|---|---|---|---|
| 1 | 1 GB | FAT32 | /boot/efi |
Requisito UEFI, formato obligatorio |
| 2 | 2 GB | ext4 | /boot |
Kernels e initramfs; aislada para que las actualizaciones no la llenen |
| 3 | 4 GB | swap | — | Red de seguridad ante picos; no más, porque una BD que hace swap ya va mal |
| 4 | 20 GB | ext4 | / |
Sistema base y binarios; 20 GB es holgado y suficiente |
| 5 | 5 GB | ext4 | /home |
Datos de operador y sus scripts; se conserva al reinstalar |
| 6 | 25 GB | ext4 | /var |
Datos de PostgreSQL (/var/lib/postgresql) y logs |
| 7 | 43 GB | ext4 | /srv |
Copias locales en /srv/tramontana/backups |
La más crítica: /var.
Contiene simultáneamente los datos de la base de datos y los registros del sistema, y ambos crecen de forma continua. Si /var compartiera espacio con /, un log desbocado o un crecimiento inesperado de la base llenaría el sistema raíz, y un / lleno significa un servidor inservible: no se pueden crear archivos temporales, los servicios fallan al escribir sus ficheros de estado y en ocasiones ni siquiera se puede iniciar sesión para arreglarlo.
Aislándola, el peor caso es que PostgreSQL deje de aceptar escrituras —grave, pero recuperable— con el sistema todavía en pie y accesible.
Segunda en criticidad es /srv: se ha dimensionado como la partición más grande porque las copias acumuladas crecen con cada ejecución, y se ha separado precisamente para que su crecimiento no afecte a nada más.
Inconveniente frente a LVM.
Este esquema es rígido. Los tamaños se fijan en la instalación y cambiarlos después es incómodo y arriesgado: requiere parar el servicio, arrancar desde un medio externo, redimensionar el sistema de archivos y mover los límites de las particiones. Si dentro de un año la base de datos supera los 25 GB de /var mientras sobran 30 GB sin usar en /srv, ese espacio libre no es aprovechable sin una intervención delicada.
Con LVM (Logical Volume Manager), las particiones físicas se agrupan en un conjunto del que se recortan volúmenes lógicos redimensionables. Ampliar /var en 20 GB sería:
Dos comandos, con el sistema en marcha y el servicio funcionando. Además LVM permite snapshots a nivel de volumen, muy útiles antes de una migración de esquema de base de datos.
Por eso, en un servidor real de producción, la recomendación profesional es: /boot y /boot/efi como particiones normales (LVM no puede alojarlas cómodamente) y todo lo demás sobre LVM. Es exactamente lo que hace el instalador de Ubuntu por defecto, y se estudia en la lección 05-04.
Solución al Ejercicio 3
Problema 1 — Vuelve a arrancar el instalador.
Diagnóstico: el medio de instalación sigue conectado y el firmware lo prioriza en el orden de arranque. La instalación probablemente terminó bien; simplemente arranca del sitio equivocado.
Solución:
- En una VM: apágala, ve a Configuración → Almacenamiento, selecciona la unidad óptica y quita la ISO (Eliminar disco de la unidad virtual). Vuelve a arrancar.
- En hardware físico: extrae el USB y, si el problema persiste, entra en la configuración UEFI y coloca el disco duro como primer dispositivo de arranque.
Cómo distinguirlo de un fallo real de instalación: si el disco no fuera arrancable, al retirar el medio verías un mensaje del tipo «No bootable device found», no el instalador.
Problema 2 — No aparecen caracteres al escribir la contraseña.
Diagnóstico: no es un problema. Es el comportamiento estándar de Unix desde hace más de cincuenta años. El terminal desactiva el eco de caracteres durante la introducción de credenciales.
Por qué se hace así: no mostrar ni siquiera asteriscos evita revelar la longitud de la contraseña a alguien que mire la pantalla, un dato que reduce el espacio de búsqueda de un ataque. Es una decisión deliberada, no una carencia.
Qué hacer: escribir con normalidad y pulsar Intro. Si la contraseña es incorrecta, el sistema lo dirá con Login incorrect tras una pausa de unos segundos —esa pausa también es intencionada, para frenar los intentos automatizados.
Consejo: si sospechas que el problema es la distribución del teclado (símbolos que no salen donde esperas), escribe la contraseña en el campo de usuario, donde sí se ve, para comprobar qué caracteres produce realmente tu teclado. Luego bórrala y entra normalmente.
Problema 3 — ssh [email protected] da Connection refused.
Hay que separar dos causas muy distintas, y el propio mensaje ayuda:
Causa A, la más probable en VirtualBox: la topología de red. Con el adaptador en NAT, la IP 10.0.2.15 pertenece a una red privada interna de VirtualBox. Desde el anfitrión no es alcanzable. El error se produce antes de llegar al servidor.
Solución, dos alternativas:
- Añadir un segundo adaptador en red solo-anfitrión (Configuración → Red → Adaptador 2 → Red solo-anfitrión). La VM obtendrá una segunda IP, del tipo
192.168.56.x, accesible desde el portátil. Es la opción recomendada porque conserva la salida a internet por NAT. - Configurar reenvío de puertos en el adaptador NAT: puerto 2222 del anfitrión al 22 de la VM. Después se conecta con
ssh -p 2222 operador@localhost.
Para averiguar la IP real de la VM, ejecuta en su consola:
Causa B: OpenSSH no está instalado. Si olvidaste marcar la casilla en el instalador, no hay nada escuchando en el puerto 22. Compruébalo en la consola de la VM:
Si responde Unit ssh.service could not be found, instálalo:
Ubuntu lo activa y arranca automáticamente al instalarlo.
Cómo distinguir A de B por el mensaje de error: Connection refused significa que algo respondió activamente rechazando la conexión (no hay servicio en ese puerto). Connection timed out o No route to host indican que ni siquiera se llegó a la máquina, lo que apunta a problema de red o de cortafuegos. Aprender a leer estos mensajes ahorra muchísimo tiempo, y volveremos sobre ello en el Módulo 6.
Conclusión
Ya tienes laboratorio. En esta lección has visto:
- Las opciones para montar un entorno Linux —VM, WSL2, arranque dual, hardware, nube, contenedor— y por qué la máquina virtual es la adecuada para aprender.
- Cómo verificar una ISO con
sha256sum(integridad) y GPG (autenticidad), y por qué ninguna de las dos comprobaciones basta por separado. - Cómo crear un medio de arranque con
ddu otras herramientas, y las precauciones que exige. - El instalador de Ubuntu Server paso a paso, con el hostname
srv-tramontana, el usuariooperadory OpenSSH instalado. - Qué es una partición, qué papel juega cada punto de montaje y por qué aislar
/varprotege al sistema entero de un log desbocado. - Los snapshots como red de seguridad que convierte los errores en experimentos.
- El primer arranque y el imprescindible
sudo apt update && sudo apt upgrade.
Tienes delante un cursor parpadeando después de operador@srv-tramontana:~$ y probablemente la sensación de no saber muy bien qué hacer con él. Es exactamente donde toca estar.
En la siguiente lección, Primer Contacto con el Sistema, desmenuzaremos ese prompt carácter a carácter, verás qué son realmente una consola, un terminal y una TTY, aprenderás la anatomía de un comando y los atajos de teclado que te ahorrarán horas, y harás el reconocimiento inicial de srv-tramontana: qué versión corre, cuánta memoria tiene y cuánto disco queda libre. Empezarás, por fin, a mirar el sistema por dentro.
Curso de Linux: De Principiante a Administrador de Sistemas
Módulo 1: Introducción a Linux
- ¿Qué es Linux?
- Historia de Linux
- Distribuciones de Linux
- Instalando Linux
- Primer Contacto con el Sistema
- Estructura del Sistema de Archivos de Linux
Módulo 2: Comandos Básicos de Linux
- Introducción a la Línea de Comandos
- Obtener Ayuda y Documentación del Sistema
- Navegando el Sistema de Archivos
- Operaciones con Archivos y Directorios
- Visualización y Edición de Archivos
- Enlaces Duros y Simbólicos
- Permisos y Propiedad de Archivos
Módulo 3: Habilidades Avanzadas en la Línea de Comandos
- El Entorno del Shell: Variables, Alias e Historial
- Uso de Comodines y Expresiones Regulares
- Búsqueda de Archivos y Contenido: find, locate y grep
- Tuberías y Redirección
- Procesamiento de Texto: cut, sort, uniq, sed y awk
- Gestión de Procesos
- Programación de Tareas con Cron
- Comandos de Redes
Módulo 4: Scripting en Shell
- Introducción al Scripting en Shell
- Variables y Tipos de Datos
- Entrada, Salida y Argumentos de un Script
- Estructuras de Control
- Funciones y Librerías
- Depuración y Manejo de Errores
- Scripts de Producción: Buenas Prácticas
Módulo 5: Administración del Sistema
- Gestión de Usuarios y Grupos
- sudo y Permisos Especiales
- Gestión de Paquetes
- Gestión de Discos
- systemd y la Gestión de Servicios
- Registros del Sistema: journald y syslog
- Monitoreo del Sistema y Optimización del Rendimiento
- Respaldo y Restauración
Módulo 6: Redes y Seguridad
- Configuración de Redes
- SSH y Acceso Remoto
- Firewall y Seguridad Perimetral
- Sistemas de Detección de Intrusos
- Gestión de Secretos y Certificados TLS
- Asegurando Sistemas Linux
Módulo 7: Temas Avanzados
- El Proceso de Arranque y la Recuperación del Sistema
- Diagnóstico Avanzado: strace, perf y eBPF
- Optimización del Kernel de Linux
- Virtualización con Linux
- Contenedores de Linux y Docker
- Automatización con Ansible
- Alta Disponibilidad y Balanceo de Carga
