Wikipedia MTA

ACL y permisos en MTA:SA: guía de seguridad para administradores de servidor

El sistema de ACL (Access Control List) de MTA:SA es el mecanismo que decide qué puede y qué no puede hacer cada usuario dentro de tu servidor: quién puede usar comandos de administrador, quién puede editar recursos, quién puede moderar el chat, etc. Entenderlo bien es una de las bases de la seguridad de cualquier servidor.

¿Dónde vive la configuración?

El archivo acl.xml, ubicado en la carpeta mods/deathmatch/, define tres cosas:

  1. Grupos (<group>): conjuntos de cuentas o recursos, por ejemplo "Admin", "Moderador", "Jugador".
  2. Listas de control (ACL) (<acl>): conjuntos de permisos con reglas de "allow" o "deny" sobre acciones y recursos concretos.
  3. Asignación de ACLs a grupos: qué lista de permisos aplica a cada grupo.

Por qué no debes editar acl.xml a mano sin cuidado

Un error de sintaxis en este archivo puede dejar el servidor sin arrancar, o peor, dejar una cuenta con permisos que no debería tener (por ejemplo, acceso total de administrador a un usuario común). Por eso la mayoría de administradores prefieren usar comandos de consola de admin (aclrequest, addaccount, etc.) o paneles de administración en lugar de editar el XML directamente, salvo que sepan exactamente qué están cambiando.

Buenas prácticas de seguridad con ACL

  • Principio de mínimo privilegio: cada cuenta debe tener solo los permisos que realmente necesita para su rol, ni uno más. Un moderador de chat no necesita permisos para reiniciar recursos.
  • Cuentas nominales, no compartidas: cada administrador debe tener su propia cuenta y contraseña. Compartir una cuenta de "Admin general" hace imposible auditar quién hizo qué cambio.
  • Revisar accesos periódicamente: es común que con el tiempo se acumulen cuentas de gente que ya no colabora con el servidor y que siguen teniendo permisos elevados. Una revisión mensual del acl.xml (o del panel equivalente) evita sorpresas.
  • Separar el acceso a recursos sensibles: recursos que tocan la base de datos, la economía del servidor o la configuración general deberían estar restringidos incluso para parte del staff.
  • Contraseñas fuertes y únicas para las cuentas con más privilegios, y cambiarlas si algún miembro del staff deja de colaborar.

Errores comunes al configurar permisos

  • Dar el grupo "Admin" completo a moderadores nuevos "para que no molesten pidiendo permisos", en vez de crear un grupo intermedio con permisos limitados.
  • Dejar habilitadas por defecto funciones de depuración o comandos de consola pensados solo para desarrollo.
  • No revisar qué permisos trae un recurso descargado de terceros antes de instalarlo: algunos recursos mal hechos (o directamente maliciosos) piden permisos más amplios de los que su función justifica.

Relación entre ACL y protección de tu código

Los permisos de ACL controlan quién puede hacer qué dentro del servidor en ejecución, pero no evitan que alguien copie los archivos de un recurso y lo reutilice en otro servidor sin permiso. Para ese problema —muy común cuando se venden o comparten resources— existen mecanismos adicionales como la protección por IP y la encriptación de scripts, que se explican en los siguientes artículos de esta wiki.
Aporte por:
Nicolas ECM
Udemy

Curso Programación en LUA para MTA

Aprende a programar desde 0 hasta avanzado con ejercicios prácticos

🔥 Ver Curso en Udemy