Saltar al contenido principal
Volver a guías
Servidores 7 de junio de 2026 · 11 min de lectura Destacado

Seguridad y protección para servidores Minecraft

Guía completa para proteger tu servidor Minecraft contra ataques, griefing, exploits y accesos no autorizados. Firewall, anti-cheat, backups y más.

Tabla de contenidos

Introducción

La seguridad de un servidor Minecraft no es opcional. Desde jugadores malintencionados hasta bots de ataque DDoS, hay múltiples amenazas que pueden arruinar tu servidor. En esta guía cubriremos todas las capas de protección necesarias: desde el firewall del sistema hasta plugins anti-exploit y estrategias de backup.

1. Seguridad del sistema (VPS/Linux)

Firewall con UFW

El firewall es tu primera línea de defensa. Solo debe permitir tráfico en los puertos necesarios:

# Configuración básica
ufw default deny incoming
ufw default allow outgoing

# Puertos esenciales
ufw allow 2222/tcp        # SSH (puerto personalizado, no 22)
ufw allow 25565/tcp       # Minecraft
ufw allow 25575/tcp       # RCON (solo desde IPs específicas si es posible)

# Rate limiting para SSH (evita fuerza bruta)
ufw limit 2222/tcp

# Habilitar firewall
ufw --force enable
ufw status numbered

SSH seguro

# /etc/ssh/sshd_config
Port 2222                          # Puerto no estándar
PermitRootLogin prohibit-password  # No permitir root con contraseña
PasswordAuthentication no          # Solo claves SSH
PubkeyAuthentication yes
AllowUsers minecraft               # Solo un usuario específico
MaxAuthTries 3                     # Máximo 3 intentos
ClientAliveInterval 60             # Timeout de inactividad
ClientAliveCountMax 3
# Aplicar cambios
sudo systemctl restart sshd

Fail2Ban para Minecraft

Fail2Ban analiza los logs del servidor y bloquea IPs que muestren comportamiento malicioso:

sudo apt install fail2ban

Crea un filtro para el servidor Minecraft:

sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

[minecraft]
enabled = true
logpath = /home/minecraft/server/logs/latest.log
maxretry = 5
bantime = 86400
findtime = 600

Monitoreo de recursos

# Instalar htop y netdata para monitoreo visual
sudo apt install htop netdata

# Ver procesos por uso de CPU/RAM
htop

# Monitorear conexiones de red activas
netstat -tunapl

# Ver intentos de conexión fallidos
sudo journalctl -u ssh | grep "Failed password"

2. Protección anti-exploit (Server Side)

Configuración de Paper

Paper incluye docenas de parches de seguridad. Estos son los ajustes más importantes:

# paper.yml
anticheat:
  anti-xray:
    enabled: true
    engine-mode: 2           # Modo 2 es más seguro
    hidden-blocks:
      - chest
      - diamond_ore
      - ancient_debris
      - deepslate_diamond_ore
      - emerald_ore
      - gold_ore
      - iron_ore
      - lapis_ore
      - redstone_ore
      - coal_ore
      - copper_ore
      - nether_gold_ore
      - nether_quartz_ore

settings:
  packet-limiter:
    all:
      action: KICK_MESSAGE
      interval: 7.0
      max-packet-rate: 1000.0
    overrides:
      ServerboundPlaceRecipePacket:
        action: DROP
        interval: 4.0
        max-packet-rate: 5.0
  book-size:
    page-max: 2560
    total-multiplier: 0.98
  spam-limiter:
    tab-spam-increment: 1
    tab-spam-limit: 15

Plugins anti-exploit esenciales

PluginProtege contra
ExploitFixerDupe glitches, crash exploits, inventory hacks
PacketLimiterLag machines, packet spam, BookBan
AntiCrashCrash exploits, invalid items, NBT exploits
IllegalStackItems apilados ilegalmente, enchanted items inválidos
GrimAnti-cheat (movimiento, combate, reach)

Configuración de ExploitFixer

# config.yml
exploits:
  command-spam:
    enabled: true
    max-commands: 10
    time: 5                  # 10 comandos en 5 segundos = kick
  book-exploit:
    enabled: true
    max-pages: 50
    max-characters: 5000
  sign-exploit:
    enabled: true
    max-characters: 100
  invalid-names:
    enabled: true
    pattern: "^[a-zA-Z0-9_]{3,16}$"
  crash-exploits:
    enabled: true
  dupe-exploits:
    enabled: true

3. Anti-cheat: Grim

Grim es un anti-cheat open-source enfocado en precisión y rendimiento. Detecta flight, speed, killaura, reach, scaffold y muchos más.

Instalación

cd ~/server/plugins
wget https://github.com/GrimAnticheat/Grim/releases/latest/download/Grim.jar
sudo systemctl restart minecraft

Configuración básica

# config.yml
alerts:
  enabled: true
  notify-permissions: "grim.alerts"
  verbose: false

punishments:
  kick-on-flag: false        # No expulsar inmediatamente
  ban-on-flag: false          # Configurar después de pruebas

checks:
  reach:
    enabled: true
    max-reach: 3.0
    threshold: 5
  killaura:
    enabled: true
    threshold: 10
  fly:
    enabled: true
    threshold: 7
  speed:
    enabled: true
    threshold: 8
  scaffold:
    enabled: true
    threshold: 5
  nuker:
    enabled: true
    threshold: 3

Comandos útiles

/grim alerts            — Activa/desactiva alertas
/grim profile <jug>     — Ver perfil de un jugador
/grim debug <check>     — Activa debug de un check específico
/grim logs <jug>        — Historial de infracciones
/grim reload            — Recarga configuración

Buenas prácticas con anti-cheat

  1. Empieza en modo alerta — No castigues automáticamente al principio
  2. Analiza los falsos positivos — Algunos jugadores con buena conexión pueden saltar checks
  3. Ajusta thresholds — Cada servidor tiene una latencia base diferente
  4. Combínalo con supervisión manual — Los anti-cheat no son perfectos

4. Autenticación de jugadores

AuthMe Reloaded (para servidores offline)

Si tu servidor tiene online-mode=false (servidores crackeados), necesitas un sistema de autenticación:

# config.yml
registration:
  enabled: true
  force: true
  max-players: 100

security:
  min-password-length: 8
  password-hash: "bcrypt"
  auto-kick: true

sessions:
  enabled: true
  timeout: 300               # 5 minutos de sesión

limbo:
  enabled: true
  max-players: 50

Comandos de AuthMe

/login <contraseña>          — Iniciar sesión
/register <pass> <pass>      — Registrarse
/changepassword <old> <new>  — Cambiar contraseña
/unregister <pass>           — Desregistrarse
/authme purge <días>         — Limpiar usuarios inactivos

Nota: Siempre que sea posible, usa online-mode=true. Los servidores offline son inherentemente menos seguros.

5. Backups automáticos

Las copias de seguridad son tu seguro contra desastres. Un buen sistema de backups debe ser automático, frecuente y almacenarse en una ubicación diferente.

Script de backup con cron y rsync

#!/bin/bash
# /home/minecraft/scripts/backup.sh

BACKUP_DIR="/backups/minecraft"
WORLD_DIR="/home/minecraft/server"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7

mkdir -p $BACKUP_DIR

# Backup del mundo (con compresión)
tar -czf "$BACKUP_DIR/world_$DATE.tar.gz" \
  -C $WORLD_DIR world world_nether world_the_end

# Backup de configuración
tar -czf "$BACKUP_DIR/config_$DATE.tar.gz" \
  -C $WORLD_DIR server.properties paper.yml spigot.yml bukkit.yml \
  commands.yml permissions.yml plugins/*/config.yml

# Backup de la base de datos (si usas SQLite)
if [ -f "$WORLD_DIR/plugins/Essentials/userdata.db" ]; then
  cp "$WORLD_DIR/plugins/Essentials/userdata.db" "$BACKUP_DIR/essentials_$DATE.db"
fi

# Eliminar backups antiguos
find $BACKUP_DIR -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete

# Log
echo "[$(date)] Backup completado: world_$DATE.tar.gz ($(du -sh $BACKUP_DIR/world_$DATE.tar.gz | cut -f1))" >> $BACKUP_DIR/backup.log

Configurar cron para ejecución automática

# Editar crontab
crontab -e

# Backup cada 6 horas
0 */6 * * * /home/minecraft/scripts/backup.sh

# Backup diario a las 4 AM (más completo)
0 4 * * * /home/minecraft/scripts/backup.sh full

# Limpiar logs viejos cada semana
0 3 * * 0 find /home/minecraft/server/logs -name "*.log.gz" -mtime +14 -delete

Backup remoto (s3/rclone)

Para protección extra, almacena copias en un servicio externo:

# Usando rclone (configurar con Google Drive, S3, etc.)
rclone copy /backups/minecraft remote:minecraft-backups

# O via rsync a otro servidor
rsync -avz /backups/minecraft user@backup-server:/backups/

6. Protección DDoS básica

Cloudflare TCP (Recomendado)

Cloudflare ofrece protección DDoS gratuita para el tráfico TCP:

  1. Configura tu dominio con Cloudflare (DNS)
  2. Activa Cloudflare Spectrum (requiere plan Pro+)
  3. Redirige el tráfico de Minecraft a través de Cloudflare

Alternativa gratuita: TCPShield (tcp.shield).

TCPShield (Gratis)

TCPShield es un proxy DDoS específico para Minecraft:

  1. Regístrate en tcp.shield
  2. Configura tu servidor como backend
  3. Cambia la IP de tu servidor a la proporcionada por TCPShield
  4. Opcional: activa el modo BungeeCord para ver IPs reales

Configuración en el VPS

# Límites de conexión con iptables
# Límite de conexiones por IP
iptables -A INPUT -p tcp --syn --dport 25565 -m connlimit \
  --connlimit-above 10 -j REJECT --reject-with tcp-reset

# Límite de paquetes por segundo (previene flood)
iptables -A INPUT -p tcp --dport 25565 -m limit \
  --limit 1000/s -j ACCEPT
iptables -A INPUT -p tcp --dport 25565 -j DROP

7. Protección de recursos del sistema

Limitar recursos por proceso (systemd)

Añade estos límites al servicio de Minecraft:

# /etc/systemd/system/minecraft.service
[Service]
# Límites de recursos
CPUQuota=300%               # Máximo 3 núcleos
MemoryMax=8G                # Máximo 8GB de RAM
MemoryHigh=6G               # Warning a los 6GB
TasksMax=200                # Máximo de procesos hijo

# Protección del sistema
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
NoNewPrivileges=true
CapabilityBoundingSet=CAP_NET_BIND_SERVICE

Monitoreo con alertas

#!/bin/bash
# /home/minecraft/scripts/healthcheck.sh

THRESHOLD_TPS=18.0
THRESHOLD_MEM=80
WEBHOOK="https://discord.com/api/webhooks/tu_webhook"

# Verificar TPS
TPS=$(/home/minecraft/server/minecraft command "tps" | grep -oP '\d+\.\d+' | head -1)
if (( $(echo "$TPS < $THRESHOLD_TPS" | bc -l) )); then
  curl -H "Content-Type: application/json" \
    -d "{\"content\": \"⚠️ **ALERTA**: TPS bajo: $TPS\"}" \
    $WEBHOOK
fi

# Verificar memoria
MEM=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
if (( $(echo "$MEM > $THRESHOLD_MEM" | bc -l) )); then
  curl -H "Content-Type: application/json" \
    -d "{\"content\": \"⚠️ **ALERTA**: Memoria al $MEM%\"}" \
    $WEBHOOK
fi

Rotación de logs

Los logs de Minecraft pueden crecer rápidamente. Configura rotación automática:

sudo nano /etc/logrotate.d/minecraft
/home/minecraft/server/logs/*.log {
  daily
  rotate 14
  compress
  delaycompress
  missingok
  notifempty
  copytruncate
}

8. Permisos y control de acceso

LuckPerms: configuración de seguridad

# Configuración de permisos estrictos
# Grupos de staff con permisos mínimos necesarios

# Solo admins pueden usar comandos peligrosos
/lp group default permission set minecraft.command.stop false
/lp group default permission set minecraft.command.save-all false
/lp group default permission set minecraft.command.op false
/lp group default permission set minecraft.command.deop false
/lp group default permission set minecraft.command.ban false
/lp group default permission set minecraft.command.pardon false
/lp group default permission set minecraft.command.whitelist false

# Staff commands
/lp group helper permission set minecraft.command.kick true
/lp group helper permission set coreprotect.lookup true
/lp group mod permission set minecraft.command.ban true
/lp group mod permission set minecraft.command.pardon true
/lp group admin permission set "*"

Restricciones de comandos

# EssentialsX/config.yml
# Desactivar comandos peligrosos para no-admins
disabled-commands:
  - /stop
  - /reload
  - /pl
  - /plugins
  - /bukkit:?
  - /minecraft:?
  - /me
  - /tell
  - /seed
  - /debug
  - /timings

Comandos blockeados recomendados

ComandoPor qué bloquearlo
/pl o /pluginsRevela tu stack de plugins a atacantes
/seedRevela la semilla del mundo
/versionRevela la versión del servidor
/mePuede usarse para spam o exploits sociales
/tellAlternativa a /msg, difícil de moderar
/calcPosible vector de ataque (evalúa expresiones)

9. Verificación de integridad

Plugins de monitoreo de archivos

PluginFunción
CoreProtectRegistra todos los cambios de bloques
LogBlockSimilar a CoreProtect, con más detalle
PrismRegistro y restauración de cambios
HawkEyeRegistro avanzado con búsqueda web
OreAnnouncerNotifica cuando alguien encuentra menas valiosas

Auditoría de plugins

Revisa regularmente:

  1. Plugins desconocidos — Verifica que cada .jar en plugins/ sea legítimo
  2. Configuraciones modificadas — Comprueba si archivos de configuración cambiaron
  3. Usuarios no autorizados — Revisa el archivo ops.json y whitelist.json
  4. Logs sospechosos — Busca patrones de ataque
# Comandos de auditoría
find plugins/ -name "*.jar" -mtime -7   # Plugins modificados en los últimos 7 días
cat ops.json                             # Lista de operadores
cat banned-players.json                  # Jugadores baneados
journalctl -u minecraft | grep -i "exploit\|crash\|dupe" # Logs sospechosos

10. Plan de respuesta a incidentes

Si sospechas que tu servidor ha sido comprometido, sigue estos pasos:

Inmediato

  1. Guarda los logs — No los borres, serán evidencia
  2. Detén el servidorsudo systemctl stop minecraft
  3. Cambia contraseñas — SSH, Discord, web hosting
  4. Revoca tokens — API keys, webhooks de Discord

Investigación

  1. Revisa los logs del servidor en busca de actividad sospechosa
  2. Usa CoreProtect para ver qué cambió y quién lo hizo
  3. Analiza plugins recién instalados (podrían tener backdoors)
  4. Verifica archivos de configuración modificados

Recuperación

  1. Rastrea el backup más reciente anterior al incidente
  2. Restaura el mundo y la configuración desde el backup
  3. NO reinstales plugins sospechosos
  4. Notifica a los jugadores del incidente (transparencia)

Conclusión

La seguridad de un servidor Minecraft es multicapa. No confíes en una sola medida: combina firewall de sistema, configuración de Paper, plugins anti-exploit, anti-cheat, backups y monitoreo constante.

Checklist de seguridad semanal:

  • Revisar logs del servidor en busca de actividad sospechosa
  • Verificar que los backups se están ejecutando correctamente
  • Comprobar actualizaciones de Paper y plugins
  • Analizar el uso de recursos (CPU, RAM, disco)
  • Revisar la lista de operadores y admins
  • Probar la restauración de un backup (al menos una vez al mes)
  • Actualizar el sistema operativo (apt update && apt upgrade)
  • Rotar logs viejos

Recuerda: Un servidor seguro es un servidor que da tranquilidad. Invertir tiempo en seguridad hoy te ahorrará dolores de cabeza mañana.

RS

Revers Studio

7 de junio de 2026