Retour au site

Documentation

Guide d'installation et d'utilisation de l'agent DenyGrid et de ses plugins.

Installation de l'agent

Prérequis

Installation automatique

Avec clé d'inscription (recommandé)

Récupérez votre clé d'inscription depuis Mon profil → Clé d'inscription machines dans le dashboard, puis :

# Installe l'agent avec enrôlement automatique (pas besoin de validation admin)
curl -sSL https://bigbro.gergosnet.com/client/install.sh | sudo bash -s -- --key VOTRE_CLE

# Installer tous les plugins
curl -sSL https://bigbro.gergosnet.com/client/update_plugins.sh | sudo bash
Avec la clé d'inscription, la machine est automatiquement approuvée et rattachée à votre compte. La clé API est générée et configurée sans intervention.

Sans clé d'inscription (validation admin)

# Installe l'agent + service systemd
curl -sSL https://bigbro.gergosnet.com/client/install.sh | sudo bash

# Installer tous les plugins
curl -sSL https://bigbro.gergosnet.com/client/update_plugins.sh | sudo bash
Sans clé d'inscription, la machine apparaît en « attente de validation » dans le dashboard. Un administrateur doit l'approuver manuellement.

L'agent s'installe dans /opt/security-monitor/ et crée un service systemd security-monitor.

Installation manuelle

mkdir -p /opt/security-monitor
cd /opt/security-monitor
curl -sSL https://bigbro.gergosnet.com/client/agent.py -o agent.py
curl -sSL https://bigbro.gergosnet.com/client/config.json.example -o config.json
chmod 600 config.json
# Éditer config.json avec votre clé API
nano config.json

Configuration

Le fichier /opt/security-monitor/config.json contient toute la configuration :

{
  "api_url": "https://bigbro.gergosnet.com/api",
  "api_key": "",
  "enrollment_key": "",
  "machine_alias": "Production Server",
  "scan_interval": 60,
  "auto_register": true,
  "auto_update": true,
  "verify_ssl": true,
  "plugins": {
    "http":     { "enabled": true },
    "firewall": { "enabled": true },
    "ftp":      { "enabled": false },
    "smtp":     { "enabled": false },
    "mysql":    { "enabled": false },
    "pam":      { "enabled": false }
  }
}
OptionDescriptionDéfaut
api_urlURL de l'API du serveur DenyGrid
api_keyClé API (générée automatiquement après enrôlement)vide
enrollment_keyClé d'inscription pour auto-approbation (depuis Mon profil)vide
machine_aliasNom affiché dans le dashboardhostname
scan_intervalFréquence de collecte en secondes60
auto_registerInscription automatique de la machinetrue
auto_updateMise à jour automatique de l'agenttrue
verify_sslVérifier le certificat SSL du serveurtrue
La clé d'inscription est disponible dans le dashboard : Mon profil → Clé d'inscription machines. Si vous utilisez l'option --key à l'installation, la clé API est générée et configurée automatiquement. Sans clé d'inscription, la machine requiert une approbation manuelle par un administrateur. Vous pouvez régénérer votre clé à tout moment depuis votre profil (l'ancienne sera invalidée).

Mise à jour

QuoiCommande
Agent seul curl -sSL https://bigbro.gergosnet.com/client/update_agent.sh | sudo bash
Tous les plugins curl -sSL https://bigbro.gergosnet.com/client/update_plugins.sh | sudo bash
Plugin spécifique curl -sSL .../client/install_plugin_http.sh | sudo bash

Le script de mise à jour crée un backup automatique et conserve la configuration.

Plugin SSH intégré

La collecte SSH est intégrée à l'agent — aucun plugin à activer.

Event typeDescription
ssh_failedTentative de connexion échouée
ssh_invalid_userUtilisateur inexistant
ssh_successConnexion réussie
ssh_closedConnexion fermée

Sources de logs : /var/log/auth.log, /var/log/secure, journalctl -u sshd

Plugin HTTP / WordPress actif par défaut

Analyse les logs Apache et Nginx pour détecter les attaques web, scans, CVE et tentatives WordPress.

Configuration

"http": {
  "enabled": true,
  "auto_discover": true,    // scan auto des répertoires de logs
  "log_paths": [],           // chemins manuels (optionnel)
  "max_log_files": 100,
  "scan_threshold": 10,      // seuil 404 pour détection de scan
  "scan_window": 60          // fenêtre en secondes
}

Types d'événements

EventDescription
http_sql_injectionTentative d'injection SQL
http_xss_attemptTentative XSS
http_suspicious_pathChemin suspect (traversal, config...)
http_scan_detectedScan de répertoires (burst 404)
http_ddos_detectedDDoS (100+ req/5min par IP)
http_slowloris_detectedAttaque Slowloris
http_backdoor_detectedTentative d'accès backdoor
http_cve_*Exploitation CVE (Log4j, Spring4Shell...)
wp_login_failedÉchec connexion WordPress
wp_xmlrpc_attackAttaque XML-RPC
wp_brute_forceBrute force wp-login
wp_plugin_scanScan de plugins WordPress
wp_shell_uploadTentative d'upload de shell

Répertoires scannés : /var/log/apache2, /var/log/nginx, /var/log/httpd

Listes CrowdSec : 1080+ patterns inclus (587 user-agents, 209 backdoors, 93 données sensibles, CVE).

Plugin FTP opt-in

Surveille vsftpd, proftpd et pure-ftpd.

Activation

# Via le script d'installation (recommandé)
curl -sSL https://bigbro.gergosnet.com/client/install_plugin_ftp.sh | sudo bash

# Ou manuellement dans config.json
"ftp": { "enabled": true }
EventDescription
ftp_failedConnexion échouée
ftp_invalid_userUtilisateur inexistant
ftp_successConnexion réussie
ftp_connectConnexion entrante

Plugin SMTP opt-in

Surveille Postfix, Exim4, Sendmail et Dovecot. 18 patterns de détection couvrant l'authentification, le relay, le spam et les scans.

Activation

"smtp": { "enabled": true }

Types d'événements

EventDescription
smtp_auth_failedÉchec authentification SASL
smtp_auth_abortAuthentification interrompue
smtp_brute_forceBrute force détecté (5+ échecs/IP)
smtp_relay_deniedTentative de relay refusé
smtp_relay_scanScan de relay ouvert (3+ tentatives)
smtp_scan_detectedScan SMTP
smtp_spam_attemptTentative de spam (10+ envois)
smtp_rate_abuseDépassement de débit
smtp_tls_errorErreur TLS
smtp_helo_rejectedHELO/EHLO rejeté

Sources : /var/log/mail.log, /var/log/maillog, journalctl -u postfix -u exim4

Plugin MySQL opt-in

Surveille MySQL et MariaDB : échecs d'authentification, injections SQL, abus de privilèges.

Activation

"mysql": {
  "enabled": true,
  "monitor_queries": false   // true = surveille aussi les requêtes dangereuses
}

Types d'événements

EventDescription
mysql_auth_failedAccess denied
mysql_brute_forceBrute force détecté
mysql_root_attemptConnexion root depuis le réseau
mysql_sql_injectionRequête dangereuse (DROP, LOAD DATA...)
mysql_privilege_abuseEscalade de privilèges
mysql_connect_scanScan de port MySQL

Sources : /var/log/mysql/error.log, /var/log/mariadb/mariadb.log, journalctl -u mysql -u mariadb

Plugin PAM / Système opt-in

Surveille les authentifications système : sudo, su, cron, sessions PAM.

Activation

"pam": {
  "enabled": true,
  "monitor_cron_exec": false  // true = surveille les exécutions cron
}

Types d'événements

EventDescription
pam_auth_failedÉchec d'authentification PAM
pam_brute_forceBrute force PAM détecté
pam_sudo_failedCommande sudo refusée
pam_su_failedChangement d'utilisateur refusé
pam_account_lockedCompte verrouillé
pam_account_expiredCompte expiré
system_login_failedÉchec de connexion système

Sources : /var/log/auth.log, /var/log/secure, journalctl -t sudo -t su -t login

Plugin Firewall actif par défaut

Applique automatiquement les bans du dashboard via iptables. Récupère la blacklist toutes les 5 minutes.

Configuration

"firewall": {
  "enabled": true,
  "check_interval": 300,    // secondes entre chaque sync
  "backend": "iptables",
  "auto_unban": true,        // deban auto quand retiré du dashboard
  "chain_name": "SECURITY_MONITOR"
}

Vérification

# Voir les règles actives
iptables -L SECURITY_MONITOR -n -v

# Compter les IPs bannies
iptables -L SECURITY_MONITOR -n | grep DROP | wc -l
Le plugin Firewall nécessite les privilèges root et iptables installé.

Auto-ban

Le système détecte automatiquement les IPs malveillantes et les bannit selon des règles configurables depuis le dashboard (Menu → Auto-ban).

Règles par défaut

RègleSeuilFenêtreDurée du ban
Brute Force SSH3 events15 min5 jours
CVE HTTP3 events15 min30 jours
Attaques HTTP5 events15 min7 jours
Brute Force FTP5 events30 min1 jour
Brute Force SMTP5 events15 min1 jour
SMTP Scan3 events15 min7 jours
SMTP Relay Abuse5 events30 min2 jours
SMTP Spam / Rate10 events1h7 jours

Options avancées

Dépannage

L'agent ne démarre pas

# Vérifier le statut
systemctl status security-monitor

# Voir les logs
journalctl -u security-monitor -f

# Tester manuellement
python3 /opt/security-monitor/agent.py

Les plugins ne se chargent pas

# Vérifier les logs
journalctl -u security-monitor | grep -i plugin

# Vérifier les permissions
ls -la /opt/security-monitor/plugins/

# Mettre à jour le système de plugins
curl -sSL https://bigbro.gergosnet.com/client/update_agent.sh | sudo bash

Les IPs ne sont pas bannies automatiquement

Le dashboard est lent

Buffer bloqué

# Vérifier la taille du buffer
ls -lh /opt/security-monitor/log_buffer.json

# Si trop volumineux, réinitialiser
sudo systemctl stop security-monitor
sudo rm /opt/security-monitor/log_buffer.json
sudo systemctl start security-monitor
DenyGrid Security Monitor — Retour au siteDashboard