Aller au contenu principal
Imprimer

Comment bloquer automatiquement les attaquants dans Imunify360 sur le serveur LiteSpeed dans WHM/cPanel (Script avancé)

Meta Description : Maximisez votre pare-feu Imunify360 en intégrant un analyseur de logs personnalisé en temps réel. Apprenez comment déposer automatiquement et instantanément les IP et sous-réseaux malveillants sur les serveurs LiteSpeed tout en évitant les faux positifs.


Imunify360 est sans doute la meilleure suite de sécurité pour les serveurs cPanel, offrant un WAF avancé et une défense proactive. Cependant, lors d'un “Log Flood” massif - où les bots génèrent des milliers d'erreurs 404 ou 403 par seconde - attendre que les règles standard se déclenchent peut parfois être trop lent pour les serveurs LiteSpeed soumis à une forte charge.

Dans ce tutoriel, nous allons combler le fossé en créant un fichier Script d'intégration de Pro-Grade (v19). Ce script analyse les logs LiteSpeed en temps réel, extrait les données détaillées de l'attaque, et commande à Imunify360 de DROP l'attaquant instantanément.

Utilisation du CSF ? Si votre serveur utilise CSF au lieu d'Imunify360, veuillez vous référer à notre Guide d'auto-blocage des CCA.

L'avantage “v19

Contrairement aux scripts de base, cette édition présente les caractéristiques suivantes

  1. Filtre de sécurité : Il ignore automatiquement les IP privées (comme 10.0.6.2) pour éviter que le script ne bannisse accidentellement votre propre passerelle ou équilibreur de charge.

  2. Optimisation du processeur : Il vérifie la liste blanche d'Imunify seulement après qu'une adresse IP a été confirmée comme étant malveillante, ce qui permet d'économiser d'importantes ressources système.

  3. Enregistrement précis : Le commentaire de bloc dans Imunify vous indiquera exactement quel domaine a été ciblé et le type d'attaque.


Conditions préalables

  • Un serveur avec Serveur Web LiteSpeed.

  • Imunify360 installé et en cours d'exécution.

  • Accès SSH racine.


Étape 1 : Créer le script d'intégration

  1. Accédez à votre serveur via SSH.

  2. Créer le fichier de script :

    nano /root/imunify_blocker.sh
    
  3. Coller le Professionnel v19 (Edition Imunify) ci-dessous :

    #!/bin/bash
    # =================================================================
    # LiteSpeed/Apache Advanced Defense Blocker - v19 (IMUNIFY SAFE)
    Fonctionnalité de # : Ignore automatiquement les IP privées/locales (10.x, 192.x, 127.x)
    # =================================================================
    
    ACCESS_LOG="/usr/local/apache/logs/access_log"
    ERROR_LOG="/usr/local/apache/logs/error_log"
    STRIKE_FILE="/tmp/imunify_strikes.tmp"
    IMUNIFY="/usr/bin/imunify360-agent"
    
    # S'assurer que le fichier de grève existe et le nettoyer au démarrage
    toucher "$STRIKE_FILE"
    écho "" > "$STRIKE_FILE"
    
    queue -Fn0 "$ACCESS_LOG" "$ERROR_LOG" | alors que lire -r ligne ; faire
        [[ "$line" == "==>"* ]] && continuer
    
        si [[ "$line" == *"] ["* ]]; puis log_type="Erreur"; autre log_type="Accès"; fi
    
        # 1. Extraction IP
        ip=$(écho "$line" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | tête -1)
    
        # --- FILTRE DE SÉCURITÉ (Ignorer les IP privées) ---
        si [[ -z "$ip" || "$ip" == "127.0.0.1" || "$ip" == "::1" ]]; puis continuer; fi
        si [[ "$ip" == 10.* || "$ip" == 192.168.* || "$ip" == 172.1[6-9].* || "$ip" == 172.2[0-9].* || "$ip" == 172.3[0-1].* ]]; puis continuer; fi
        # ------------------------------------------
    
        subnet=$(écho "$ip" | cut -d. -f1-3).0
    
        # 2. Extraction du chemin
        si [[ "$log_type" == "Accès" ]]; puis
            path=$(écho "$line" | grep -oP '"(GET|POST|HEAD|PUT) \K[^ ]+' | head -1 | cut -c1-35)
        autre
            path=$(écho "$line" | grep -oP '(?<=contexte \N[)[^\N]]+|(?<=trouvé \N[)[^\N]]+')' | tête -1)
            [[ -z "$path" ]] && path=$(écho "$line" | grep -oP '(GET|POST|HEAD) [^ ]+' | tête -1)
        fi
        [[ -z "$path" ]] && path="/"
    
        domain=$(écho "$line" | grep -oP '(?<=APVH_)[a-zA-Z0-9.-]+' | tête -1)
        [[ -z "$domaine" ]] && domain="Inconnu"
    
        # --- CAS A : ATTAQUES CRITIQUES ---
        si écho "$line" | grep -qE "RECAPTCHA|ACL|Accès au contexte|ModSecurity"; puis
            trigger=$(écho "$line" | grep -oE "RECAPTCHA|ACL|ModSecurity" | tête -1)
            écho "SEC_IP :$ip" >> "$STRIKE_FILE"
            écho "SEC_SUB :$subnet" >> "$STRIKE_FILE"
    
            si [ $(grep -c "SEC_IP :$ip" "$STRIKE_FILE") -ge 3 ] ; puis
                si ! $IMUNIFY liste d'ip local list --purpose white | grep -wq "$ip"; puis
                    $IMUNIFY liste d'ip local add --purpose drop "$ip" --commentaire "LS_Block : Critique (3) | 1TP6Déclencheur | $domaine | $path" > /dev/null 2>&1
                    sed -i "/SEC_IP :$ip/d" "$STRIKE_FILE"
                fi
            fi
            si [ $(grep -c "SEC_SUB :$subnet" "$STRIKE_FILE") -ge 10 ] ; puis
                si ! $IMUNIFY liste d'ip local list --purpose white | grep -wq "$ip"; puis
                    $IMUNIFY liste d'ip local add --purpose drop "$subnet/24" --commentaire "LS_Block : Sous-réseau critique (10) | 1TP6Déclencheur" > /dev/null 2>&1
                    sed -i "/SEC_SUB :$subnet/d" "$STRIKE_FILE"
                fi
            fi
    
        # --- CAS B : SCANNERS ---
        elif écho "$line" | grep -qE "400 | 401 | 403 | 404 | 405 | 500 |Fichier non trouvé"; puis
            code=$(écho "$line" | grep -oE "\s(40[0-9]|4[1-4][0-9]|50[0-9])\s" | tr -d ' ' | tête -1)
            écho "SCAN_IP :$ip" >> "$STRIKE_FILE"
            écho "SCAN_SUB :$subnet" >> "$STRIKE_FILE"
    
            si [ $(grep -c "SCAN_IP :$ip" "$STRIKE_FILE") -ge 7 ] ; puis
                si ! $IMUNIFY liste d'ip local list --purpose white | grep -wq "$ip"; puis
                    $IMUNIFY liste d'ip local add --purpose drop "$ip" --commentaire "LS_Block : Scan (7) | Code $code | $domaine | $path" > /dev/null 2>&1
                    sed -i "/SCAN_IP :$ip/d" "$STRIKE_FILE"
                fi
            fi
            si [ $(grep -c "SCAN_SUB :$subnet" "$STRIKE_FILE") -ge 20 ] ; puis
                si ! $IMUNIFY liste d'ip local list --purpose white | grep -wq "$ip"; puis
                    $IMUNIFY liste d'ip local add --purpose drop "$subnet/24" --commentaire "LS_Block : Scanner le sous-réseau (20)" > /dev/null 2>&1
                    sed -i "/SCAN_SUB :$subnet/d" "$STRIKE_FILE"
                fi
            fi
        fi
    fait
    
  4. Sauvegarder et quitter (Ctrl+X -> Y -> Entrer).


Étape 2 : Définir les autorisations

Rendre le script exécutable :

chmod +x /root/imunify_blocker.sh

Étape 3 : Automatiser avec Systemd

Nous allons créer un service pour que ce script fonctionne en arrière-plan.

  1. Créer le fichier de service :

    nano /etc/systemd/system/imunify-blocker.service
    
  2. Collez les éléments suivants :

    [Unité]
    Description=LiteSpeed Advanced Imunify Bridge
    Après=réseau.cible lsws.service
    
    [Service]
    ExecStart=/bin/bash /root/imunify_blocker.sh
    Redémarrage=toujours
    Utilisateur=root
    
    [Installer]
    WantedBy=multi-user.target
    
  3. Sauvegarder et quitter.


Étape 4 : Activer le service

Exécutez les commandes suivantes pour lancer immédiatement la protection :

systemctl daemon-reload
systemctl permettre imunify-blocker
systemctl start imunify-blocker

Vérifier l'état pour confirmer qu'il fonctionne :

systemctl status imunify-blocker

Étape 5 : Maintenance horaire

Pour éviter que le fichier de mémoire temporaire ne s'agrandisse à l'infini, nous devons le vider toutes les heures.

  1. Modifiez le fichier cron de la racine :

    nano /var/spool/cron/root
    
  2. Ajoutez cette ligne en bas de page :

    0 * * * * écho "" > /tmp/imunify_strikes.tmp
    
  3. Sauvegarder et quitter.

  4. Important : Rechargez le service cron pour que la modification prenne effet instantanément.

    service crond reload
    

Conclusion

Votre serveur LiteSpeed envoie maintenant des adresses IP malveillantes directement dans la liste “Drop” d'Imunify360 en temps réel. En implémentant ce pont avancé, vous vous assurez que les attaques à haut volume sont stoppées au niveau du réseau, gardant votre trafic légitime en sécurité et l'utilisation de l'unité centrale de votre serveur faible.

Protégez vos actifs avec Hébergement VPS géré en Inde ou s'étendre à l'échelle mondiale grâce à nos Hébergement en nuage à l'adresse myglobalHOST.

Table des matières
Fermer
Obtenez 75% + 10% de réduction supplémentaire sur les plans d'hébergement web par myglobalHOST

Réduction supplémentaire de 10%

Code des coupons

EXTRA10

Applicable le

Rs 100 de réduction

Code des coupons

FLAT100

Applicable le

Comment en bénéficier : Choisissez simplement le plan d'hébergement qui vous convient le mieux et bénéficiez d'une remise supplémentaire sur toutes vos commandes.