Configurar RCON SA-MP remoto: acceso seguro al servidor

Configura el RCON de SA-MP para administrar tu servidor de forma remota desde el cliente o herramientas externas: contraseña fuerte, puerto, firewall, comandos y auditoría.

RCON (Remote Console) es el canal administrativo nativo del servidor SA-MP: autoriza comandos como kick, ban, mapname, reload y exit mediante contraseña. A diferencia de los sistemas de admin in-game escritos en el gamemode, RCON funciona a nivel del núcleo del servidor: responde incluso sin gamemode cargado, autentica por contraseña en server.cfg y acepta conexiones externas vía UDP en el mismo puerto del juego.

Esta guía está dirigida al owner de SA-MP que quiere administrar el servidor de forma remota, ya sea desde el propio cliente SA-MP con /rcon login o mediante herramientas externas como samp-rcon en Python para automatización. Cubre la configuración en server.cfg, la generación de una contraseña segura, la apertura en el firewall, la restricción por IP y el uso práctico de comandos.

Tiempo estimado: 15 a 25 minutos, incluyendo generación de contraseña fuerte, ajustes en el firewall y pruebas de conectividad.

Requisitos previos

Lo que necesitas antes de empezar

Servidor SA-MP ya instalado y en ejecución (Windows Server o Linux), acceso al archivo server.cfg (normalmente en /samp/server.cfg en Linux o C:\samp\server.cfg en Windows), permiso para reiniciar el proceso del servidor y acceso administrativo al firewall del sistema operativo. Si vas a usar una herramienta externa, Python 3.8+ instalado en tu máquina local.

Puerto por defecto 7777 (UDP)
Archivo de configuración server.cfg
Protocolo UDP sin cifrado
Límite de intentos rcon_login_attempts (por defecto 3)

Confirma antes que el servidor responde en el IP esperado. En VPS o dedicado, asegúrate de que el puerto UDP 7777 (o el que hayas definido en port) esté liberado en el borde. Si el servidor está detrás de NAT, el forwarding debe cubrir UDP: RCON no usa TCP en ningún momento.

Habilita RCON en server.cfg

RCON se controla mediante dos directivas en server.cfg: rcon (activa/desactiva) y rcon_password (define la contraseña). Sin rcon 1, cualquier intento de login se rechaza silenciosamente: el cliente recibe “Bad RCON password” aunque envíe la cadena correcta.

01

Abre server.cfg en el editor de texto y localiza o añade las líneas de RCON:

rcon 1
rcon_password TU_CONTRASEÑA_AQUI
rcon_login_attempts 3

rcon 1 habilita el canal administrativo. rcon_password define la cadena usada para autenticar. rcon_login_attempts limita los fallos in-game antes de banear el IP del jugador (no afecta a RCON externo, pero es buena práctica).

02

Genera una contraseña fuerte aleatoria: no reutilices contraseñas del panel ni de la base de datos. En Linux:

openssl rand -base64 32 | tr -d '/+=' | head -c 32

En Windows PowerShell:

-join ((48..57) + (65..90) + (97..122) | Get-Random -Count 32 | % {[char]$_})

Pega el resultado en rcon_password. Evita los caracteres $, ", ' y los espacios: el parser del cliente SA-MP se rompe con ellos.

No uses contraseñas cortas ni predecibles

La contraseña de RCON viaja por UDP sin cifrado. Las contraseñas cortas (8-12 caracteres) se pueden romper en horas mediante brute force en red. Usa como mínimo 24 caracteres aleatorios. Si sospechas que hubo comprometimiento, cambia la contraseña y reinicia el servidor de inmediato.

03

Guarda el archivo y reinicia el servidor SA-MP para cargar los cambios. RCON no se recarga por comando: requiere un restart completo del proceso.

En Linux con screen/tmux:

killall samp03svr && cd /samp && ./samp03svr &

En Windows, detén el proceso samp-server.exe desde el Administrador de tareas e inícialo de nuevo desde el ejecutable o el servicio.

Restringe RCON en el firewall

Por defecto, cualquier IP que alcance el puerto del juego puede intentar un login RCON. Restringir el canal administrativo a las IPs del equipo de admin reduce drásticamente la superficie de ataque: el brute force solo funciona si el paquete llega al servidor.

04

En Linux con iptables, libera el puerto del juego para todos pero crea una regla de log/drop específica para los intentos sospechosos:

sudo iptables -A INPUT -p udp --dport 7777 -m recent --name RCONFLOOD --update --seconds 60 --hitcount 20 -j DROP
sudo iptables -A INPUT -p udp --dport 7777 -m recent --name RCONFLOOD --set
sudo iptables -A INPUT -p udp --dport 7777 -j ACCEPT

Esto bloquea las IPs que envían más de 20 paquetes UDP en 60 segundos al puerto del servidor: una mitigación genérica que detiene el brute force de RCON sin afectar a jugadores legítimos (que envían entre 10 y 15 paquetes por segundo en condiciones normales).

05

Si quieres restringir RCON estrictamente a IPs administrativas conocidas, crea una regla más agresiva y libera el tráfico de juego por separado. Esto exige separar paquetes RCON de paquetes de juego en el payload: no es trivial sin deep packet inspection.

La solución práctica: dejar el servidor en red privada y exponer el puerto 7777 mediante un reverse proxy UDP que filtre por IP de origen en una capa superior. En VPS Hostini, la protección de borde ya filtra patrones anómalos de UDP antes de que lleguen al servidor.

Cuidado al restringir por IP de origen

Si bloqueas todas las IPs salvo la tuya y tu IP residencial es dinámico, perderás acceso administrativo en el próximo reinicio del router. Usa un IP estático en la red admin o una VPN dedicada con IP fija. Mantén siempre una ruta alternativa de acceso (consola KVM o SSH al host) para restaurar reglas en caso de emergencia.

Haz login RCON desde el cliente SA-MP

La forma más directa de probarlo es conectarse al servidor desde el propio cliente SA-MP y autenticarse mediante comando.

06

Entra al servidor con normalidad (Servers → Add → IP:puerto) y, con el personaje spawneado, abre el chat y escribe:

/rcon login TU_CONTRASEÑA_AQUI

El servidor responde con SERVER: You are logged in as admin. en el chat. A partir de ese momento, cualquier comando RCON funciona con el prefijo /rcon.

07

Prueba comandos básicos para validar:

/rcon cmdlist
/rcon players
/rcon hostname Nuevo Nombre del Servidor
/rcon weather 15
/rcon gravity 0.005

cmdlist lista todos los comandos RCON disponibles. players muestra los jugadores conectados con su ID. hostname, weather y gravity modifican propiedades del servidor en runtime: útil para eventos.

Usa una herramienta externa para automatización

Para programar reinicios, recargas de filterscript o broadcasts mediante cron, el camino es una herramienta externa que envíe paquetes RCON sin necesidad de un cliente SA-MP conectado.

08

Instala el paquete samp-rcon de Python en la máquina que vaya a automatizar:

pip install samp-rcon

Y ejecuta comandos directos:

samp-rcon 192.0.2.10 7777 TU_CONTRASEÑA "gmx"
samp-rcon 192.0.2.10 7777 TU_CONTRASEÑA "reloadfs anticheat"
samp-rcon 192.0.2.10 7777 TU_CONTRASEÑA "say Reinicio programado en 5 minutos"

gmx hace un reload completo del gamemode. reloadfs recarga un filterscript específico. say envía un mensaje broadcast al chat in-game.

Audita la ejecución automatizada

Cuando RCON se usa en scripts automáticos, registra cada comando ejecutado en un log propio (timestamp + comando + resultado). Esto facilita el troubleshooting cuando algo se dispara fuera de hora y deja una traza de auditoría para revisión de seguridad. La salida estándar de samp-rcon trae la respuesta del servidor: basta con redirigirla a un archivo.

Verificación

Confirma que RCON está funcional y protegido:

# Prueba login válido
samp-rcon TU_IP 7777 TU_CONTRASEÑA "players"

# Prueba con contraseña errónea (debe devolver Bad RCON)
samp-rcon TU_IP 7777 errada "players"

Salida esperada para un login válido: lista de jugadores. Para una contraseña errónea: mensaje de fallo. Revisa el log del servidor SA-MP: cada intento RCON genera una línea del tipo RCON: Connection from 1.2.3.4:54321 - Login attempt.

Resolución de problemas

El login devuelve “Bad RCON password” aunque la contraseña sea correcta

Confirma rcon 1 (no rcon 0) en server.cfg y que el archivo se haya guardado antes del restart. Si la contraseña incluye caracteres especiales, prueba con una contraseña solo alfanumérica para aislar el problema: el parser del cliente SA-MP tiene bugs conocidos con $, comillas y el símbolo de dólar.

RCON funciona en local pero no desde internet

Revisa el firewall del sistema operativo y el firewall del borde (proveedor/datacenter). Los paquetes UDP necesitan enrutamiento bidireccional. Usa nc -u -v TU_IP 7777 desde la máquina externa para confirmar la conectividad UDP: si se queda colgado sin respuesta, es el firewall.

Aparecen intentos de brute force en el log

Cambia la contraseña de inmediato, activa la regla iptables recent (Step 04) y considera mover el servidor a una red con protección DDoS en el borde. Los logs en server_log.txt muestran el IP de origen de cada intento: bloquea individualmente los IPs reincidentes con iptables -A INPUT -s IP -j DROP.

Próximos pasos

Con RCON configurado, considera los siguientes avances:

  • Implementar un sistema de admin in-game escalonado (niveles 1-5) para reducir el uso de RCON puro
  • Configurar log centralizado de los comandos RCON para auditoría
  • Evaluar plugins anticheat (sampac, NEX-AC) que se ejecutan separados de RCON
  • Documentar un runbook de incidente para que el equipo de admin sepa cuándo cambiar la contraseña y reiniciar

Si vas a poner el servidor SA-MP en producción para una comunidad grande, una VPS Hostini ya viene con protección DDoS en el borde y firewall configurable por IP: aislar el canal administrativo resulta mucho más simple cuando la infraestructura subyacente filtra patrones anómalos antes del servidor. Conoce las opciones en /jogos.

Preguntas frecuentes

¿Cuál es la diferencia entre RCON y admin in-game en SA-MP?

RCON es el protocolo nativo del servidor SA-MP: autentica mediante la contraseña definida en `rcon_password` dentro de server.cfg y permite acceso a comandos del núcleo (kick, ban, mapname, reload, exit). El admin in-game es cualquier sistema de niveles implementado en gamemode/filterscript (por ejemplo: /makeadmin en pawn). RCON funciona incluso sin gamemode cargado y responde por UDP en el puerto del servidor; el admin in-game depende de que el script esté corriendo y de que el jugador esté conectado.

¿Por qué mi /rcon login siempre falla aunque la contraseña sea correcta?

Tres causas habituales: (1) `rcon` está en `0` dentro de server.cfg: hace falta `rcon 1` para habilitarlo; (2) caracteres especiales en la contraseña entran en conflicto con el parser del cliente (evita espacios, comillas y el símbolo de dólar); (3) el jugador no está conectado o el servidor tiene `rcon_login_attempts` configurado y superaste el límite. Confírmalo en los logs del servidor: cada intento imprime `RCON (In-Game): Player ... <NOMBRE> failed login attempt`.

¿Es seguro dejar el RCON expuesto en internet?

No, sin precauciones. El RCON de SA-MP transmite la contraseña por UDP sin cifrado: cualquier sniffer en el camino la captura. Mitigaciones prácticas: (1) contraseña de 32+ caracteres aleatorios, nunca la misma del panel; (2) firewall que libere RCON solo desde IPs administrativas; (3) registro de intentos fallidos vía plugin (Streamer/sscanf no cubren esto, usa un logger propio); (4) cambia la contraseña ante cualquier sospecha. No existe RCON sobre TLS en SA-MP: es limitación del protocolo.

¿Cómo cambiar el puerto del RCON para que sea distinto al del juego?

No se puede. El RCON de SA-MP comparte el mismo puerto UDP que el servidor de juego (por defecto 7777). No hay configuración separada: `port 7777` en server.cfg vale para ambos canales. Si quieres aislar el tráfico administrativo, la única salida es el firewall: libera el puerto del juego a `0.0.0.0/0` (jugadores) y restringe los paquetes RCON con reglas en una capa superior. En la práctica, el control por IP de origen es la mitigación real.

¿Qué herramienta externa funciona para enviar comandos RCON en masa?

SAMP RCON Tool (GUI clásica de Windows), samp-rcon (Python, mantenido en GitHub, multiplataforma) y consultas con `socat`/`netcat` y payload manual. El más usado para automatización es el paquete de Python: `pip install samp-rcon` y luego `samp-rcon <ip> <puerto> <contraseña> 'cmdlist'`. Útil para programar `gmx`, recargas de filterscripts o broadcasts vía cron sin entrar in-game.

¿RCON tiene rate limit o protección contra brute force?

El servidor SA-MP no incluye rate limit nativo en RCON: cada intento válido se procesa sin importar la frecuencia. La única protección incorporada es `rcon_login_attempts` (por defecto 3), que banea el IP del jugador autenticado in-game tras N fallos. Para RCON externo (sin objeto player) no hay throttle. Solución real: rate limit en el firewall (módulo `recent` de iptables) o en el borde de red limitando paquetes UDP por IP.

Temas:
Próximos pasos VPS, dedicado o panel gestionado para FiveM, SAMP, MTA, Tibia y más.Aloja tu servidor de juegos con Hostini →
¿Te resultó útil este tutorial?
Hablar por WhatsApp