FiveM server beveiligen: anticheat, permissies en server-side validatie

Een onbeveiligde FiveM-server is een uitnodiging voor cheaters. Spelers die geld spawnen, onzichtbaar worden of andere spelers teleporteren, verpesten de ervaring voor iedereen. In dit artikel behandelen we de belangrijkste beveiligingsmaatregelen: van het permissiesysteem tot server-side validatie.

ACE-permissies: de basis

Het ACE-systeem (Access Control Entry) is het ingebouwde permissiesysteem van FiveM. Hiermee bepaalt u wie welke commando's mag uitvoeren en tot welke functies toegang heeft.

Hoe ACE werkt

ACE werkt met drie concepten:

  • Principals: identiteiten, zoals een speler-ID of een groep.
  • ACE-entries: permissies die aan een principal zijn gekoppeld.
  • Groups: verzamelingen van principals, zodat u rechten aan een groep kunt geven in plaats van aan individuele spelers.

Een voorbeeld in server.cfg:

add_ace group.admin command allow
add_ace group.moderator command.kick allow
add_principal identifier.steam:110000xxxxxxxxx group.admin

Dit geeft de groep admin toegang tot alle commando's, de groep moderator alleen tot het kick-commando, en koppelt een specifieke Steam-ID aan de admingroep.

Veelgemaakte ACE-fouten

  • Iedereen admin maken: geef nooit command allow aan alle spelers. Gebruik specifieke groepen.
  • Geen groepen gebruiken: als u rechten per speler toekent in plaats van per groep, wordt het beheer onwerkbaar bij meer dan een handvol admins.
  • txAdmin-rollen vergeten: txAdmin heeft een eigen rollensysteem. Zorg dat dit overeenkomt met uw ACE-configuratie.

Anticheat-resources

Een anticheat-resource monitort het gedrag van spelers en detecteert afwijkingen die wijzen op cheats of exploits.

Wat een goede anticheat doet

  • Entity monitoring: detecteert het spawnen van objecten, voertuigen of wapens zonder servertoestemming.
  • Teleport-detectie: signaleert wanneer een speler zich onmogelijk snel verplaatst.
  • Resource injection: blokkeert pogingen om niet-goedgekeurde client-scripts uit te voeren.
  • Explosion filtering: filtert ongeautoriseerde explosies die cheaters gebruiken om andere spelers te doden.
  • Weapon monitoring: detecteert wapens die een speler niet via het framework heeft verkregen.

Populaire anticheat-opties

Er zijn zowel gratis als betaalde anticheats beschikbaar:

  • FiveGuard: een uitgebreide betaalde anticheat met server-side detectie en een webdashboard.
  • Anticheat scripts op GitHub: er zijn diverse open-source anticheats beschikbaar. Let op de datum van de laatste update; een anticheat die niet wordt onderhouden, mist nieuwe cheatmethoden.

Geen enkele anticheat is waterdicht. Het is een laag bovenop andere beveiligingsmaatregelen, niet een vervanging ervan.

Server-side validatie

De belangrijkste beveiligingsregel bij FiveM: vertrouw de client nooit. Alles wat de client naar de server stuurt, kan gemanipuleerd zijn.

Voorbeelden van goede server-side validatie

  • Geldtransacties: controleer server-side of de speler genoeg geld heeft voordat u het afschrijft. Vertrouw niet op de client om het saldo te melden.
  • Inventaris: controleer server-side of een item bestaat in de inventaris van de speler voordat u het gebruikt of overdraagt.
  • Voertuig-spawns: laat alleen de server voertuigen spawnen. Een client-event dat de server vraagt een voertuig te spawnen, moet gecontroleerd worden tegen de rechten van de speler.
  • Positie-checks: als een speler een interactie uitvoert (winkel, garage, NPC), controleer dan of de speler zich daadwerkelijk op die locatie bevindt.

Hoe u bestaande scripts controleert

Veel gratis scripts valideren niet server-side. Controleer bij elke script die u installeert:

  1. Opent de server-side code (het server.lua of server.js bestand).
  2. Zoek naar event handlers (RegisterNetEvent).
  3. Controleer of er validatie plaatsvindt: wordt gecontroleerd of de speler rechten heeft, op de juiste locatie is en de juiste items bezit?
  4. Als de event handler direct data verwerkt zonder controle, is de script kwetsbaar.

Bansystemen

Een bansysteem is noodzakelijk om overtreders te verwijderen. txAdmin biedt een ingebouwd bansysteem, maar u kunt het uitbreiden:

  • txAdmin bans: direct vanuit het webpaneel spelers bannen op basis van hun identifiers (Steam, Discord, license, IP).
  • Gedeelde banlists: sommige communities delen banlists. Dit kan nuttig zijn, maar controleer de bron; onterechte bans overnemen schaadt uw reputatie.
  • Meervoudige identifier-controle: ban op zowel Steam-ID, Discord-ID als license key. Spelers die hun IP wijzigen, worden dan toch herkend.

Aanvullende maatregelen

  • Steam/Discord verplicht: vereis dat spelers verbinden met een Steam- en/of Discord-account. Dit maakt het moeilijker om na een ban met een nieuw account terug te keren.
  • Whitelist: een whitelist voorkomt dat onbekende spelers uw server betreden. Extra werk, maar zeer effectief tegen willekeurige cheaters. Meer over whitelists leest u in het bouwen van een RP-community.
  • Logboeken bijhouden: log belangrijke acties (geldtransacties, wapengebruik, admin-commando's) naar Discord via webhooks. Dit maakt het makkelijker om incidenten achteraf te onderzoeken.
  • Resource encryptie: gevoelige server-side code kunt u versleutelen met tools als Cfx.re's escrow-systeem. Dit voorkomt dat kwaadwillenden uw scripts analyseren op kwetsbaarheden.

Beveiligingschecklist

  1. ACE-permissies ingesteld en getest
  2. Anticheat-resource geinstalleerd en geconfigureerd
  3. Server-side validatie in alle kritieke scripts
  4. Bansysteem actief met meervoudige identifiers
  5. Steam en/of Discord vereist voor verbinden
  6. Logging naar Discord ingesteld
  7. Regelmatige updates van artifacts en scripts

Alle FiveM-pakketten van HostValues bieden DDoS-bescherming en volledige controle over uw serverinstellingen. Lees ook onze gids over txAdmin instellen voor het beheer van uw server.


Komt u er niet uit? Open een support ticket, ons team helpt u graag verder.

Terug naar de blog