🖥️ Cheatsheet IF5000

Guía rápida de comandos para la demostración del servidor

Ubuntu Server
🚀
Demo rápida y comandos críticos
Secuencia mínima para comprobar que todo está listo
Secuencia de demostración
Verificar nombre, usuario, red, internet y Docker
hostname && whoami && ip -br a && ping -c 3 google.com && docker ps
Ver contenedores con nombre, estado y puertos en formato limpio
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Verificar si existe algún servicio systemd fallido
sudo systemctl --failed
Probar rápidamente si los servicios web responden desde el servidor
curl -I http://localhost:8001 && curl -I http://localhost:8080 && curl -I http://localhost:8096 && curl -I http://localhost:8053/admin && curl -I http://localhost:3000
Levantar todo
Levantar Nextcloud, Jellyfin, Pi-hole, Dashboard, Monitoreo y Portainer
cd ~/nextcloud && docker compose up -d; cd ~/jellyfin && docker compose up -d; cd ~/pihole && docker compose up -d; cd ~/dashboard-if5000 && docker compose up -d --build; cd ~/monitoring && docker compose up -d; docker start portainer
Reiniciar todos los contenedores principales si algo no carga
docker restart nextcloud jellyfin pihole dashboard-if5000 grafana prometheus cadvisor portainer
URLs por puerto
Dashboard IF5000
http://IP_DEL_SERVIDOR:8001
Nextcloud
http://IP_DEL_SERVIDOR:8080
Jellyfin
http://IP_DEL_SERVIDOR:8096
Portainer
http://IP_DEL_SERVIDOR:9000
Pi-hole
http://IP_DEL_SERVIDOR:8053/admin
Grafana
http://IP_DEL_SERVIDOR:3000
Prometheus
http://IP_DEL_SERVIDOR:9090
cAdvisor
http://IP_DEL_SERVIDOR:8082
IP local: usar la que salga en ip -br a.
IP Tailscale: usar tailscale ip.
🌐
Netplan rápido
Configuración de emergencia si cambia la red
DHCP
Usar DHCP cuando la VM se conecta a una red nueva y la IP fija no funciona.
Abrir archivo Netplan
sudo nano /etc/netplan/50-cloud-init.yaml
Contenido DHCP para pegar en Netplan
network: version: 2 ethernets: enp0s3: dhcp4: true
Aplicar configuración DHCP
sudo chmod 600 /etc/netplan/50-cloud-init.yaml && sudo netplan apply && ip -br a
IP fija de laboratorio
Usar IP fija cuando estén en la red esperada del proyecto.
Abrir archivo Netplan
sudo nano /etc/netplan/50-cloud-init.yaml
Contenido IP fija para pegar en Netplan
network: version: 2 ethernets: enp0s3: addresses: - 192.168.50.100/24 gateway4: 192.168.50.1 nameservers: addresses: [8.8.8.8]
Aplicar configuración estática
sudo chmod 600 /etc/netplan/50-cloud-init.yaml && sudo netplan apply && ip -br a
🧰
Comandos extra críticos
SOC, journalctl, repositorio y documentación
Journal systemd
Logs del monitor SSH en tiempo real
sudo journalctl -u ssh-monitor -f
Logs del watcher de Suricata en tiempo real
sudo journalctl -u suricata-watcher -f
Logs del watcher de Fail2Ban en tiempo real
sudo journalctl -u fail2ban-watcher -f
Logs del daemon Docker en tiempo real
sudo journalctl -u docker -f
SOC scripts
Enviar alerta de prueba a Discord
bash /home/mariangel/soc-alerting/scripts/test-discord.sh
Mostrar dashboard CLI del SOC
bash /home/mariangel/soc-alerting/scripts/soc-dashboard.sh
Ver scripts SOC instalados
sudo ls -l /home/mariangel/soc-alerting/scripts
Git y repo
Ver estado del repositorio
git status
Traer cambios remotos sin modificar archivos locales
git fetch origin
Integrar cambios remotos manteniendo historial limpio
git pull --rebase origin main
Subir cambios al repositorio remoto
git push origin main
Listar documentos principales
ls docs && sed -n '1,120p' README.md
💻
Verificación del sistema
Estado general al iniciar la sesión
Identidad y tiempo
Muestra el nombre del servidor
hostname
Muestra el usuario actual
whoami
Lista quién está conectado al servidor ahora mismo
who
Muestra la fecha y hora actual del sistema
date
Cuánto tiempo lleva encendido el servidor y carga de CPU
uptime
Recursos
Memoria RAM disponible y usada (en MB/GB legibles)
free -h
Espacio en disco de todas las particiones
df -h
Muestra todas las interfaces de red e IPs asignadas
ip a
Conectividad
Prueba conexión a internet (DNS de Google)
ping -c 3 8.8.8.8
Prueba que la resolución de nombres funcione
ping -c 3 google.com
🌐
Red y Netplan
Configuración de interfaces de red
Lista los archivos de configuración de red
ls /etc/netplan
Muestra la configuración actual de red (IP estática, gateway, DNS)
cat /etc/netplan/50-cloud-init.yaml
Edita la configuración de red en el editor nano
sudo nano /etc/netplan/50-cloud-init.yaml
Protege el archivo de configuración (solo root puede leerlo)
sudo chmod 600 /etc/netplan/50-cloud-init.yaml
Aplica los cambios de red sin reiniciar el servidor
sudo netplan apply
Verifica la IP asignada después de cambios
ip a
Muestra la puerta de enlace (gateway) predeterminada
ip route
🔐
SSH
Acceso remoto y transferencia de archivos
Servicio SSH
Verifica si el servicio SSH está activo (verde = bien)
systemctl status ssh
Reinicia el servicio SSH si hay problemas de conexión
sudo systemctl restart ssh
Hace que SSH arranque automáticamente al encender el servidor
sudo systemctl enable ssh
Confirma que SSH está escuchando en el puerto 22
ss -tlnp | grep :22
Conexión y archivos
Conectarse al servidor por SSH desde otra máquina
ssh usuario@IP
Copiar un archivo al servidor (directorio home del usuario)
scp archivo usuario@IP:~
Copiar una carpeta entera al servidor (recursivo)
scp -r carpeta usuario@IP:~
Usuarios conectados
Quién está conectado ahora mismo
who
Usuarios conectados con detalle de actividad y tiempo
w
Historial de conexiones anteriores al servidor
last
Grupos a los que pertenece el usuario actual
groups
ID y grupos de un usuario específico
id usuario
🐳
Docker
Gestión de contenedores, imágenes y redes
Versiones
Versión del motor Docker instalado
docker --version
Versión de Docker Compose
docker compose version
Estado del sistema
Contenedores en ejecución ahora mismo
docker ps
Todos los contenedores, incluyendo los detenidos
docker ps -a
Imágenes descargadas en el servidor
docker images
Volúmenes de datos persistentes creados
docker volume ls
Redes virtuales entre contenedores
docker network ls
Uso en tiempo real de CPU y RAM por contenedor
docker stats
Logs
Ver registros de un contenedor (últimas líneas)
docker logs CONTENEDOR
Ver logs en tiempo real (streaming continuo)
docker logs -f CONTENEDOR
Acceso al contenedor
Abrir una terminal dentro del contenedor (como SSH pero interno)
docker exec -it CONTENEDOR bash
Reinicio y control
Reiniciar un contenedor sin perder datos
docker restart CONTENEDOR
Detener un contenedor (queda guardado)
docker stop CONTENEDOR
Arrancar un contenedor que estaba detenido
docker start CONTENEDOR
Daemon Docker
Estado del servicio principal de Docker en el sistema
sudo systemctl status docker
Reiniciar el motor Docker (reinicia todos los contenedores)
sudo systemctl restart docker
💡 Tip: CONTENEDOR puede ser el nombre o el ID (las primeras 3 letras del ID también funcionan).
☁️
Nextcloud
Nube privada de archivos
Ir al directorio de configuración de Nextcloud
cd ~/nextcloud
Levantar todos los servicios de Nextcloud en segundo plano
docker compose up -d
Detener y eliminar todos los contenedores de Nextcloud
docker compose down
Ver el estado actual de los contenedores del servicio
docker compose ps
Ver registros del contenedor principal de Nextcloud
docker logs nextcloud
Configuración avanzada
Listar los dominios/IPs desde donde se puede acceder (trusted domains)
docker exec -it nextcloud php occ config:system:get trusted_domains
🎬
Jellyfin
Servidor de medios (películas, música, series)
Ir al directorio de configuración de Jellyfin
cd ~/jellyfin
Levantar el servidor de medios en segundo plano
docker compose up -d
Ver registros del servidor (útil si no carga o falla)
docker logs jellyfin
🛡️
Pi-hole
Bloqueo de anuncios y DNS local
Ir al directorio de configuración de Pi-hole
cd ~/pihole
Levantar Pi-hole en segundo plano
docker compose up -d
Ver registros del contenedor de Pi-hole
docker logs pihole
Verificar si Pi-hole está activo y bloqueando DNS
docker exec -it pihole pihole status
Cambiar la contraseña del panel web de Pi-hole
docker exec -it pihole pihole setpassword NUEVA_CLAVE
🖥️
Portainer
Panel visual para administrar Docker
Ver los registros del panel Portainer
docker logs portainer
Reiniciar el panel si no carga o hay errores de sesión
docker restart portainer
🌐 Acceso: Panel web disponible en http://IP:9000 desde la red local.
📊
Dashboard
Panel principal del proyecto IF5000
Ir al directorio del dashboard personalizado
cd ~/dashboard-if5000
Reconstruir y levantar el dashboard (usar si hay cambios en el código)
docker compose up -d --build
Ver logs del dashboard para detectar errores de inicio
docker logs dashboard-if5000
📈
Monitoreo
Prometheus, Grafana, cAdvisor, Node Exporter
Ir al directorio del stack de monitoreo
cd ~/monitoring
Levantar todos los servicios de monitoreo juntos
docker compose up -d
Ver logs de cada servicio
Logs de Prometheus (recolector de métricas)
docker logs prometheus
Logs de Grafana (panel de visualización de gráficas)
docker logs grafana
Logs de cAdvisor (métricas de contenedores Docker)
docker logs cadvisor
Logs de Node Exporter (métricas del hardware del servidor)
docker logs node-exporter
🔥
Suricata y Fail2Ban
Detección de intrusos y bloqueo de ataques
Estado de servicios
Estado del sistema de detección de intrusos Suricata
sudo systemctl status suricata
Estado del servicio de bloqueo de IPs Fail2Ban
sudo systemctl status fail2ban
Estado del monitor de SSH personalizado del proyecto
sudo systemctl status ssh-monitor
Estado del watcher que procesa alertas de Suricata
sudo systemctl status suricata-watcher
Estado del watcher que procesa eventos de Fail2Ban
sudo systemctl status fail2ban-watcher
Reinicio de servicios
Reiniciar Suricata (recarga reglas de detección)
sudo systemctl restart suricata
Reiniciar Fail2Ban (recarga listas de IPs bloqueadas)
sudo systemctl restart fail2ban
Fail2Ban — IPs bloqueadas
Lista todas las "jails" (reglas) activas y cuántas IPs bloqueó cada una
sudo fail2ban-client status
Ver específicamente qué IPs intentaron atacar SSH y fueron bloqueadas
sudo fail2ban-client status sshd
🔍 Suricata analiza el tráfico de red en tiempo real. Fail2Ban bloquea IPs con demasiados intentos fallidos de login.
🔗
Tailscale
VPN mesh para acceso remoto seguro
Muestra la IP asignada dentro de la red VPN de Tailscale
tailscale ip
Lista todos los dispositivos conectados a la red Tailscale
tailscale status
Consulta información de un dispositivo por su IP de Tailscale
tailscale whois IP
Versión del cliente Tailscale instalado
tailscale version
Conectar (o reconectar) el servidor a la red Tailscale
sudo tailscale up
📋
Logs del sistema
Seguimiento de eventos en tiempo real
Monitorear intentos de login SSH en tiempo real (Ctrl+C para salir)
tail -f /var/log/auth.log
Ver en tiempo real qué IPs bloquea Fail2Ban
tail -f /var/log/fail2ban.log
Alertas de Suricata en formato JSON (tráfico sospechoso detectado)
tail -f /var/log/suricata/eve.json
Alertas de Suricata en formato legible (resumen rápido de amenazas)
tail -f /var/log/suricata/fast.log
Ver errores recientes del sistema (servicios que fallaron, etc.)
journalctl -xe
Últimos mensajes del kernel (hardware, arranque, errores de disco)
dmesg | tail
🔧
Diagnóstico
Puertos, procesos, espacio y contenedores
Puertos abiertos
Lista todos los puertos TCP que están escuchando y qué proceso los usa
ss -tlnp
Procesos
Lista todos los procesos en ejecución con usuario y uso de recursos
ps aux
Monitor interactivo de procesos y CPU/RAM en tiempo real
top
Espacio en disco
Muestra el tamaño de cada carpeta en el directorio actual
du -sh *
Contenedores
Información detallada de configuración de un contenedor específico
docker inspect CONTENEDOR
Estado de todos los contenedores del archivo docker-compose actual
docker compose ps
Apagado y reinicio
Control de energía y procedimiento de reinicio seguro
Sistema operativo
Reinicia el servidor completamente (mantiene configuración)
sudo reboot
Apaga el servidor de forma segura inmediatamente
sudo shutdown now
Apaga completamente el hardware (sin reinicio)
sudo poweroff
Contenedores
Detiene y elimina los contenedores del directorio actual
docker compose down
Vuelve a levantar los contenedores en segundo plano
docker compose up -d
Secuencia de verificación post-reinicio
① Reiniciar el motor Docker para asegurar que todo arranque
sudo systemctl restart docker
② Confirmar que los contenedores están corriendo
docker ps
③ Verificar que SSH sigue activo
systemctl status ssh
④ Ver las IPs asignadas al servidor
ip a
⑤ Confirmar que hay acceso a internet
ping -c 3 google.com