Il s'agit de la commande qsfilter2 qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos nombreux postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
qsfilter2 - un utilitaire pour générer des règles de ligne de requête mod_qos à partir de règles existantes
données du journal d'accès/d'audit.
SYNOPSIS
qsfilter2 -i [-c ] [-d ] [-h] [-b ] [-p|-s|-m|-o] [-l ] [-n]
[-e] [-u 'uni'] [-k ] [-t] [-f ] [-v 0|1|2]
DESCRIPTION
Le module mod_qos implémente un filtre de requêtes qui valide chaque ligne. Il prend en charge
modèles de sécurité positifs et négatifs. Les directives QS_Deny* permettent de spécifier
modèles de lignes de demande qui ne sont pas autorisés à accéder au serveur (modèle de sécurité négatif)
/ liste noire). Ces règles servent à restreindre l'accès à certaines ressources qui devraient
être inaccessible aux utilisateurs ou protéger le serveur contre les schémas malveillants. Le QS_Permit*
Les règles implémentent un modèle de sécurité positive (liste blanche). Ces directives servent à définir
Les modèles de lignes de requête autorisés. Les requêtes qui ne correspondent à aucun de ces modèles ne sont pas acceptées.
autorisé à accéder au serveur.
qsfilter2 est un analyseur de journal d'audit utilisé pour générer des règles de filtrage (standard compatible Perl)
expressions) qui peuvent être utilisées par mod_qos pour refuser l'accès aux requêtes suspectes
(Règles QS_PermitUri). Il analyse les fichiers journaux d'audit existants afin de générer une requête.
modèles couvrant toutes les requêtes autorisées.
OPTIONS
-je
Fichier d'entrée contenant les URI des requêtes. Les URI de ce fichier doivent être extraites.
à partir des journaux d'accès des serveurs. Chaque ligne du fichier d'entrée contient l'URI de la requête.
constitué d'un chemin et d'une requête.
Exemple :
/aaa/index.do
/aaa/edit?image=1.jpg
/aaa/image/1.jpg
/aaa/view?page=1
/aaa/edit?document=1
Ces données de journal d'accès doivent inclure les URI de demande en cours, mais également les lignes de demande de
étapes précédentes de génération de règles. Elle doit également inclure des lignes de requête couvrant
règles générées manuellement.
-c
Fichier de configuration mod_qos définissant les directives QS_DenyRequestLine et QS_PermitUri.
qsfilter2 génère automatiquement des règles à partir des données du journal d'accès. Génération manuelle.
Les règles (QS_PermitUri) peuvent être fournies à partir de ce fichier. Remarque : chaque règle manuelle doit être
représenté par un URI de requête dans les données d'entrée (-i) afin de s'assurer de ne pas être
Supprimé par l'algorithme d'optimisation des règles. Les règles QS_Deny* de ce fichier sont utilisées.
pour filtrer les lignes de demande qui ne doivent pas être utilisées pour la génération de règles de liste blanche.
Exemple :
# règle de liste blanche définie manuellement :
QS_PermitUri +view deny "^[/a-zA-Z0-9]+/view\?(page=[0-9]+)?$"
# filtrer les modèles de lignes de requête indésirables :
QS_DenyRequestLine +refuser imprimable ".*[\x00-\x19].*"
-d
Profondeur (sous-emplacements) de la chaîne de chemin qui est définie comme une chaîne littérale.
La valeur par défaut est 1.
-h Utilisez toujours une chaîne représentant le nom du gestionnaire dans le chemin, même si l'URL ne le fait pas
J'ai une question. Voir aussi l'option -d.
-b
Remplace le modèle d'URL par l'expression régulière lors de la détection d'un encodage base64/hex
chaîne. La sensibilité de détection est définie par une valeur numérique. Vous devez utiliser des valeurs.
supérieur à 5 (par défaut) ou 0 pour désactiver cette fonction.
-p Représente la requête par pcre uniquement (pas de chaînes littérales).
-s Utilise un seul pcre pour toute la chaîne de requête.
-m Utilise un pcre pour les valeurs de requête multiples (mode recommandé).
-o Ne se soucie pas de l'ordre des paramètres de requête.
-l
Dépasse la longueur de la requête de la longueur définie ({0,size+len}), la valeur par défaut est 10.
-n Désactive l'élimination des règles redondantes.
-e Quitter en cas d'erreur.
-u 'uni'
Active des méthodes de décodage supplémentaires. Utilisez les mêmes paramètres que pour le
Directive QS_Decoding.
-p Représente uniquement une requête par pcre (pas de chaîne littérale). Détermine le pire des cas.
performances de la liste blanche générée en appliquant chaque règle pour chaque ligne de requête
(la sortie est la durée du filtre en temps réel par ligne de demande en millisecondes).
-k
Préfixe utilisé pour générer les identifiants de règles (QSF par défaut).
-t Calcule la latence maximale par requête (pire des cas) à l'aide des règles générées.
-f
Filtre l'entrée par le chemin fourni (préfixe) en traitant uniquement les lignes correspondantes.
-v
Mode détaillé (0 = silencieux, 1 = source de la règle, 2 = détaillé). La valeur par défaut est 1. Ne pas utiliser de règles.
Vous n'avez pas vérifié les données de requête utilisées pour la générer ! Le niveau 1 est très élevé.
recommandé (tant que vous n'avez pas créé les données du journal à l'aide de votre propre site Web)
robot d'exploration).
SORTIE
La sortie de qsfilter2 est écrite sur la sortie standard. Elle contient les données générées.
Directives QS_PermitUri mais également des informations sur la source qui a été utilisée pour
générer ces règles. Il est essentiel de vérifier la validité de chaque ligne de requête.
qui a été utilisé pour calculer les règles QS_PermitUri. Chaque ligne de requête qui a été
utilisé pour générer une nouvelle règle est affiché dans la sortie préfixé par « ADD line » :".
Ces lignes de requête doivent être stockées et réutilisées lors de toute génération de règle ultérieure (ajoutez-les à
le fichier d'entrée URI). La ligne suivante affiche la règle générée. À la fin des données
Le traitement d'une liste de toutes les règles QS_PermitUri générées est affiché. Ces directives peuvent être
utilisé dans le fichier de configuration utilisé par mod_qos.
EXEMPLE
./qsfilter2 -i loc.txt -c httpd.conf -m -e
...
# AJOUTER la ligne 1 : /aaa/index.do
# 003 ^(/[a-zA-Z0-9\-_]+)+[/]?\.?[a-zA-Z]{0,4}$
# AJOUTER la ligne 3 : /aaa/view?page=1
# --- ^[/a-zA-Z0-9]+/view\?(page=[0-9]+)?$
# AJOUTER la ligne 4 : /aaa/edit?document=1
# 004 ^[/a-zA-Z]+/edit\?((document)(=[0-9]*)*[&]?)*$
# AJOUTER la ligne 5 : /aaa/edit?image=1.jpg
# 005 ^[/a-zA-Z]+/edit\?((image)(=[0-9\.a-zA-Z]*)*[&]?)*$
...
QS_PermitUri +QSF001 refuser "^[/a-zA-Z]+/edit\?((document|image)(=[0-9\.a-zA-Z]*)*[&]?)*$"
QS_PermitUri +QSF002 refuser "^[/a-zA-Z0-9]+/view\?(page=[0-9]+)?$"
QS_PermitUri +QSF003 refuser "^(/[a-zA-Z0-9\-_]+)+[/]?\.?[a-zA-Z]{0,4}$"
Utilisez qsfilter2 en ligne à l'aide des services onworks.net
