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 allowaan 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:
- Opent de server-side code (het
server.luaofserver.jsbestand). - Zoek naar event handlers (
RegisterNetEvent). - Controleer of er validatie plaatsvindt: wordt gecontroleerd of de speler rechten heeft, op de juiste locatie is en de juiste items bezit?
- 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
- ACE-permissies ingesteld en getest
- Anticheat-resource geinstalleerd en geconfigureerd
- Server-side validatie in alle kritieke scripts
- Bansysteem actief met meervoudige identifiers
- Steam en/of Discord vereist voor verbinden
- Logging naar Discord ingesteld
- 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.