Harper
PLAN DE FORMACIÓN Departamento de Infraestructura
v10 · 2026
C1 · Fundamentos

Módulo 3 — Linux Ubuntu (administración básica)

Linux es el sistema operativo base de toda la infraestructura que se va a administrar. Proxmox corre sobre Debian, los servidores web corren sobre Ubuntu Server, y el troubleshooting de cualquier servicio requiere manejo fluido de la línea de comandos. Este módulo establece esa base.

Tipo: Teórico + Laboratorio Perfil objetivo: Todos Duración estimada: 12–16 horas
📚 Antes de empezar — Conceptos clave del módulo

Si algún término del módulo no te suena, aquí tienes el contexto rápido para arrancar sin perderte. Estos son los conceptos clave que vas a ver más adelante.

Linux
Sistema operativo libre y gratuito. Es la base de la mayoría de servidores del mundo (incluyendo los que vamos a operar).
Ubuntu Server
Distribución de Linux orientada a servidores. Es la que usamos en Harper para los servicios sobre Proxmox.
Shell / Bash
Programa donde escribes comandos para que el SO los ejecute. Bash es el shell más común en Linux.
Root / sudo
root es el usuario administrador absoluto. sudo permite a un usuario normal ejecutar acciones como root puntualmente.
Permisos (chmod)
Cada archivo tiene permisos de lectura, escritura y ejecución para tres tipos de usuarios (propietario, grupo, otros).
SSH
Protocolo para conectarte remotamente a un servidor por terminal, de forma cifrada. La forma estándar de operar servidores Linux.
systemctl
Comando para gestionar servicios en Linux moderno: arrancarlos, detenerlos, ver su estado, habilitarlos al arranque.
Netplan
Sistema moderno de Ubuntu para configurar la red mediante archivos YAML.

Para la lista completa de términos del plan, abre el glosario en la barra lateral.

📌 Para Javier

Como egresado del Tecnólogo en Redes, ya tiene base en Linux. Este módulo refuerza administración de servidores (no workstations) y prepara el terreno específicamente para la administración de Proxmox y servicios web.

3.1 Objetivos del módulo

  • Instalar Ubuntu Server LTS desde cero.
  • Navegar y gestionar el sistema de archivos desde la línea de comandos.
  • Administrar usuarios, grupos y permisos de archivos.
  • Gestionar servicios con systemctl y revisar logs con journalctl.
  • Configurar la red mediante Netplan (IP estática, rutas, DNS).
  • Instalar, actualizar y gestionar paquetes con apt.
  • Conectarse de forma segura por SSH y configurar acceso por llaves.
  • Entender y personalizar el entorno bash (.bashrc, alias, variables de entorno).

3.2 Instalación de Ubuntu Server LTS

  1. Descargar la ISO desde ubuntu.com/download/server (última versión LTS).
  2. Crear USB booteable con Ventoy o Rufus.
  3. Arrancar el servidor desde USB (configurar boot order en BIOS/UEFI).
  4. Seleccionar idioma: English (recomendado para compatibilidad con documentación).
  5. Configuración de red: asignar IP estática durante la instalación.
  6. Particionado: para servidores de lab, usar LVM guided (toda una partición).
  7. Crear usuario administrador: evitar root directamente; crear usuario con sudo.
  8. Instalar OpenSSH Server durante la instalación.
  9. Esperar instalación y reiniciar sin USB.

Configuración de red post-instalación (Netplan)

nano /etc/netplan/00-installer-config.yaml

Contenido de ejemplo para IP estática:

network:
  version: 2
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.50/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
      dhcp4: false
netplan apply   # Aplicar cambios

3.3 Comandos esenciales de administración

3.3.1 Navegación y gestión de archivos

ComandoFunción
ls -laListar archivos con permisos, propietario y tamaño.
cd /rutaCambiar de directorio.
pwdMostrar directorio actual.
cp origen destinoCopiar archivo o directorio (-r para directorios).
mv origen destinoMover o renombrar archivo.
rm archivoEliminar archivo (-rf para directorios — usar con cuidado).
mkdir -p /ruta/subCrear directorio con subdirectorios.
find /ruta -name '*.log'Buscar archivos por nombre.
grep -r 'texto' /rutaBuscar texto dentro de archivos.
tail -f /var/log/syslogVer logs en tiempo real.
cat archivoVer contenido de un archivo.
nano archivoEditar archivo con editor básico.

3.3.2 Gestión de usuarios y permisos

ComandoFunción
adduser usuarioCrear usuario con directorio home.
usermod -aG sudo usuarioAgregar usuario al grupo sudo.
passwd usuarioCambiar contraseña de usuario.
id usuarioVer grupos y UID del usuario.
chmod 755 archivoCambiar permisos (rwxr-xr-x).
chown usuario:grupo archivoCambiar propietario y grupo.
whoamiVer usuario actual.
su - usuarioCambiar de usuario.

Referencia de permisos octal

OctalPermisosDescripción
755rwxr-xr-xPropietario: todo. Grupo y otros: leer y ejecutar.
644rw-r--r--Propietario: leer y escribir. Grupo y otros: solo leer.
700rwx------Solo el propietario tiene acceso total.
600rw-------Propietario lee y escribe. Nadie más accede.
777rwxrwxrwxTodos tienen acceso total. Evitar en producción.

3.3.3 Gestión de servicios con systemctl

ComandoFunción
systemctl status servicioVer estado de un servicio.
systemctl start servicioIniciar un servicio.
systemctl stop servicioDetener un servicio.
systemctl restart servicioReiniciar un servicio.
systemctl enable servicioHabilitar inicio automático al arranque.
systemctl disable servicioDeshabilitar inicio automático.
systemctl list-units --type=serviceListar todos los servicios activos.
journalctl -u servicio -fVer logs de un servicio en tiempo real.
journalctl -xeVer logs del sistema con errores.

3.3.4 Gestión de paquetes con apt

apt update                # Actualizar índice de paquetes
apt upgrade               # Actualizar paquetes instalados
apt install <paquete>     # Instalar paquete
apt remove <paquete>      # Desinstalar paquete
apt autoremove            # Limpiar paquetes innecesarios
apt search <nombre>       # Buscar paquete por nombre
dpkg -l | grep <nombre>   # Verificar si un paquete está instalado

3.3.5 Acceso SSH y llaves de autenticación

ssh usuario@ip_servidor             # Conectarse por SSH
ssh-keygen -t ed25519               # Generar par de llaves (en el cliente)
ssh-copy-id usuario@ip_servidor     # Copiar llave pública al servidor

Configuración básica de SSH (/etc/ssh/sshd_config):

PermitRootLogin no              # Deshabilitar login como root
PasswordAuthentication no       # Solo llaves (después de copiarlas)
Port 22                         # Cambiar puerto en producción
systemctl restart ssh           # Aplicar cambios

3.4 Personalización del entorno bash

Personalizar el archivo .bashrc mejora la productividad y reduce errores operativos. Esta configuración está basada en buenas prácticas para administración de servidores:

nano ~/.bashrc

Secciones recomendadas:

  • Historial ampliado (HISTSIZE, HISTFILESIZE, histappend) para no perder comandos.
  • Timestamp en el historial: export HISTTIMEFORMAT="[%F %T] "
  • Colores en ls: alias ls='ls --color=auto', alias ll='ls -la'
  • Alias de seguridad: alias rm='rm -i', alias cp='cp -i' — pide confirmación antes de sobrescribir.
  • Alias útiles de administración: netstat, ip a, df -h, free -h.
💡 Buena práctica

Aplicar cambios sin cerrar sesión: source ~/.bashrc

3.5 Laboratorio práctico

Este laboratorio se realiza en una o varias VMs de Ubuntu Server 24.04 LTS desplegadas en el servidor de lab.

  1. Instalar Ubuntu Server 24.04 LTS en una VM del lab (mínimo 2 vCPU, 2GB RAM, 20GB disco).
  2. Configurar IP estática con Netplan y verificar conectividad (ping al gateway y a internet).
  3. Crear 2 usuarios adicionales: uno con permisos sudo y otro sin permisos elevados.
  4. Crear la siguiente estructura de directorios: /opt/apps, /opt/scripts, /opt/backups.
  5. Instalar htop, curl, wget, net-tools y verificar que cada uno funciona.
  6. Habilitar y verificar el servicio SSH. Conectarse desde otra máquina.
  7. Configurar autenticación por llave SSH (generar llave en PC local, copiar al servidor).
  8. Personalizar el .bashrc con al menos 5 alias útiles y el historial ampliado.
  9. Programar una tarea con cron que ejecute un script simple cada hora.
  10. Demostrar lectura de logs con journalctl y tail -f.

Plantilla de seguimiento del lab

ÍtemVM 1VM 2VM 3
Hostname
IP estática asignada
Gateway / DNS
Usuario admin creado
Usuario sin privilegios
SSH por llave habilitado
Alias del .bashrc configurados
Tarea cron activa
Notas / Observaciones

3.6 Checklist de evaluación

  • Instaló Ubuntu Server 24.04 LTS sin asistencia.
  • Configuró IP estática con Netplan correctamente.
  • Creó usuarios y asignó permisos de forma correcta.
  • Puede instalar y gestionar servicios con apt y systemctl.
  • Se conecta por SSH usando autenticación por llave.
  • Lee e interpreta logs del sistema con journalctl.
  • Configura el .bashrc con alias y personalizaciones.
  • Puede asignar permisos de archivo correctamente (chmod/chown).

3.7 Referencia rápida — Cheatsheet Linux

CategoríaComandoFunción
Redip aVer interfaces y IPs.
Redip route showVer tabla de rutas.
Redss -tulpnVer puertos en escucha.
Discodf -hTEspacio en disco por partición.
Discodu -sh /rutaTamaño de un directorio.
Procesops aux | grep procesoBuscar un proceso.
Procesokill -9 PIDForzar cierre de proceso.
SistemauptimeTiempo encendido y carga.
Sistemauname -aVersión del kernel.
SistematimedatectlVer y configurar zona horaria.
Logsjournalctl -bLogs desde el último arranque.
Logstail -f /var/log/syslogSyslog en tiempo real.