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
rootes el usuario administrador absoluto.sudopermite 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.
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
systemctly revisar logs conjournalctl. - 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
- Descargar la ISO desde ubuntu.com/download/server (última versión LTS).
- Crear USB booteable con Ventoy o Rufus.
- Arrancar el servidor desde USB (configurar boot order en BIOS/UEFI).
- Seleccionar idioma: English (recomendado para compatibilidad con documentación).
- Configuración de red: asignar IP estática durante la instalación.
- Particionado: para servidores de lab, usar LVM guided (toda una partición).
- Crear usuario administrador: evitar
rootdirectamente; crear usuario con sudo. - Instalar OpenSSH Server durante la instalación.
- 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
| Comando | Función |
|---|---|
ls -la | Listar archivos con permisos, propietario y tamaño. |
cd /ruta | Cambiar de directorio. |
pwd | Mostrar directorio actual. |
cp origen destino | Copiar archivo o directorio (-r para directorios). |
mv origen destino | Mover o renombrar archivo. |
rm archivo | Eliminar archivo (-rf para directorios — usar con cuidado). |
mkdir -p /ruta/sub | Crear directorio con subdirectorios. |
find /ruta -name '*.log' | Buscar archivos por nombre. |
grep -r 'texto' /ruta | Buscar texto dentro de archivos. |
tail -f /var/log/syslog | Ver logs en tiempo real. |
cat archivo | Ver contenido de un archivo. |
nano archivo | Editar archivo con editor básico. |
3.3.2 Gestión de usuarios y permisos
| Comando | Función |
|---|---|
adduser usuario | Crear usuario con directorio home. |
usermod -aG sudo usuario | Agregar usuario al grupo sudo. |
passwd usuario | Cambiar contraseña de usuario. |
id usuario | Ver grupos y UID del usuario. |
chmod 755 archivo | Cambiar permisos (rwxr-xr-x). |
chown usuario:grupo archivo | Cambiar propietario y grupo. |
whoami | Ver usuario actual. |
su - usuario | Cambiar de usuario. |
Referencia de permisos octal
| Octal | Permisos | Descripción |
|---|---|---|
755 | rwxr-xr-x | Propietario: todo. Grupo y otros: leer y ejecutar. |
644 | rw-r--r-- | Propietario: leer y escribir. Grupo y otros: solo leer. |
700 | rwx------ | Solo el propietario tiene acceso total. |
600 | rw------- | Propietario lee y escribe. Nadie más accede. |
777 | rwxrwxrwx | Todos tienen acceso total. Evitar en producción. |
3.3.3 Gestión de servicios con systemctl
| Comando | Función |
|---|---|
systemctl status servicio | Ver estado de un servicio. |
systemctl start servicio | Iniciar un servicio. |
systemctl stop servicio | Detener un servicio. |
systemctl restart servicio | Reiniciar un servicio. |
systemctl enable servicio | Habilitar inicio automático al arranque. |
systemctl disable servicio | Deshabilitar inicio automático. |
systemctl list-units --type=service | Listar todos los servicios activos. |
journalctl -u servicio -f | Ver logs de un servicio en tiempo real. |
journalctl -xe | Ver 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.
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.
- Instalar Ubuntu Server 24.04 LTS en una VM del lab (mínimo 2 vCPU, 2GB RAM, 20GB disco).
- Configurar IP estática con Netplan y verificar conectividad (ping al gateway y a internet).
- Crear 2 usuarios adicionales: uno con permisos sudo y otro sin permisos elevados.
- Crear la siguiente estructura de directorios:
/opt/apps,/opt/scripts,/opt/backups. - Instalar
htop,curl,wget,net-toolsy verificar que cada uno funciona. - Habilitar y verificar el servicio SSH. Conectarse desde otra máquina.
- Configurar autenticación por llave SSH (generar llave en PC local, copiar al servidor).
- Personalizar el
.bashrccon al menos 5 alias útiles y el historial ampliado. - Programar una tarea con
cronque ejecute un script simple cada hora. - Demostrar lectura de logs con
journalctlytail -f.
Plantilla de seguimiento del lab
| Ítem | VM 1 | VM 2 | VM 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
aptysystemctl. - Se conecta por SSH usando autenticación por llave.
- Lee e interpreta logs del sistema con
journalctl. - Configura el
.bashrccon alias y personalizaciones. - Puede asignar permisos de archivo correctamente (
chmod/chown).
3.7 Referencia rápida — Cheatsheet Linux
| Categoría | Comando | Función |
|---|---|---|
| Red | ip a | Ver interfaces y IPs. |
| Red | ip route show | Ver tabla de rutas. |
| Red | ss -tulpn | Ver puertos en escucha. |
| Disco | df -hT | Espacio en disco por partición. |
| Disco | du -sh /ruta | Tamaño de un directorio. |
| Proceso | ps aux | grep proceso | Buscar un proceso. |
| Proceso | kill -9 PID | Forzar cierre de proceso. |
| Sistema | uptime | Tiempo encendido y carga. |
| Sistema | uname -a | Versión del kernel. |
| Sistema | timedatectl | Ver y configurar zona horaria. |
| Logs | journalctl -b | Logs desde el último arranque. |
| Logs | tail -f /var/log/syslog | Syslog en tiempo real. |