Documentation

1. Installation

  1. Telecharge la ressource depuis ton espace client et place le dossier cobrasentry dans resources/.
  2. Dans ton server.cfg, mets CobraSentry avant toutes les autres ressources :
    ensure cobrasentry
    set cobrasentry_licence "CS-XXXX-XXXX-XXXX-XXXX"
    add_ace group.admin cobrasentry.bypass allow
    add_ace group.admin cobrasentry.admin allow
  3. Pour les captures d'écran, installe aussi screenshot-basic (ressource officielle Cfx.re).
  4. Demarre le serveur, puis tape dans la console txAdmin : cobrasentry install
  5. Redemarre le serveur depuis txAdmin. C'est fini.

2. Configuration

Tout se règle dans cobrasentry/config.lua (fichier serveur : les joueurs ne le recoivent jamais). Chaque protection a une action :

  • 'log' : enregistre + alerte les admins connectés, sans sanction (ideal les premiers jours) ;
  • 'kick' : expulse le joueur ;
  • 'ban' : bannit (identifiants + tokens du PC).

Le jeton anti-injection (Config.Evenements.jeton) commence en 'log'. Quand toutes tes ressources ont la ligne de protection (cobrasentry statut), passe-le en 'block' pour la protection maximale.

3. La ligne de protection

cobrasentry install ajoute cette ligne juste après fx_version dans le fxmanifest de chaque ressource (une copie .cobrasentry.bak est gardee) :

shared_script '@cobrasentry/module/protect.lua' -- CobraSentry

Ce module fait passer chaque event réseau par le pare-feu, ajoute le jeton de session aux triggers, détecté les mod menus injectés dans la ressource et signale les actions légitimes de tes scripts (téléportation, invisibilité, caméra) pour éviter les faux positifs. cobrasentry uninstall la retiré partout.

4. Commandes

Console : cobrasentry <commande> · en jeu (admins) : /sentry <commande>

install / uninstall / statutLigne de protection (console uniquement)
licenceÉtat de la licence
ban <id> <heures|0> <raison>Bannir un joueur connecté
unban <CS-XXXXXX>Retirer un ban
bansDerniers bans
check <id>Identifiants d'un joueur
capture <id>Capture d'écran envoyee au panel

5. Exports (pour tes scripts)

exports.cobrasentry:Bannir(source, 'raison', heures)   -- 0 = definitif
exports.cobrasentry:Debannir('CS-XXXXXX')
exports.cobrasentry:EstBanni(source)
exports.cobrasentry:AutoriserTeleport(source, secondes) -- avant un TP fait par un script

6. Guide anti-DDoS

À savoir : une attaque DDoS sature la connexion de la machine avant que le moindre paquet arrive a FiveM. Aucun script (CobraSentry, Fiveguard ou autre) ne peut l'arrêter à lui seul. La protection se fait en couches :

  1. Hébergeur avec anti-DDoS jeu (OVH Game, Epycore, etc.) : active le profil / firewall "FiveM" et ouvre seulement les ports utiles (30120 TCP/UDP, txAdmin limite à ton IP).
  2. Ne publie jamais l'IP directe : sv_endpointPrivacy true et passe par le proxy Cfx.re (connexion via le lien cfx.re/join).
  3. Couche jeu (CobraSentry) : anti-flood de connexions, limite de joueurs par IP, anti-spam d'events, d'entités et d'explosions : les attaques "applicatives" sont coupees net.
  4. Site web et API : derriere Cloudflare (proxy orange), jamais l'IP du VPS en clair.
  5. txAdmin : change le port par defaut et active la 2FA.

7. server.cfg durci (recommandé)

# --- CobraSentry : durcissement natif FiveM ---
sv_scriptHookAllowed 0          # interdit les menus ScriptHook
sv_pureLevel 1                  # bloqué les fichiers de jeu modifies
sv_endpointPrivacy true         # cache l'IP des joueurs
sv_authMaxVariance 1            # authentification Cfx.re stricte
sv_authMinTrust 5
sv_filterRequestControl 4       # interdit de prendre le contrôle des entités des autres
sv_entityLockdown relaxed       # 'strict' = seul le serveur créé les entités (le plus sur, à tester)
sv_enableNetworkedSounds false  # sons réseau (souvent abuses)
sv_enableNetworkedPhoneExplosions false
sv_requestParanoia 3            # filtre les requetes HTTP suspectes
set onesync on                  # requis pour les protections serveur

Teste toujours ces réglages sur un serveur de dev : certains scripts anciens creent des entités cote client et n'aiment pas sv_entityLockdown strict.