Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 17464|Répondre: 2

[Web] ngx_lua_waf est un pare-feu d’applications web basé sur lua-nginx-module (openresty).

[Copié le lien]
Publié sur 21/12/2016 16:51:51 | | | |

ngx_lua_waf

ngx_lua_waf’est un pare-feu d’applications web basé sur ngx_lua, développé lorsque j’ai rejoint Fun Travel.

Le code est simple, et l’intention initiale du développement est d’utiliser la simplicité, les hautes performances et la légèreté.

Il est désormais open source et conforme à la licence MIT. Il contient nos règles de filtrage. Si vous avez des suggestions ou souhaitez faire de l’a, n’hésitez pas à l’améliorer avec moi.

Utilisations :
            
      
Prévenir les attaques web telles que l’injection SQL, l’inclusion locale, le dépassement partiel, les tests de fuzzing, xss, SSRF, etc
        Prévenir la fuite de fichiers comme SVN/sauvegarde
        Prévenir les attaques provenant d’outils de test de résistance comme ApacheBench
        Bloquez les outils de piratage de balayage courants, scanners
        Bloquer les requêtes réseau inhabituelles
        Bloquez l’autorisation d’exécution PHP du répertoire d’attache d’images
        Empêcher les téléchargements de webshell


Installation recommandée :

Il est recommandé d’utiliser lujit2.1 pour le support du lua

ngx_lua s’il s’agit d’une version 0.9.2 ou ultérieure, il est recommandé de changer la fonction de filtre classique vers ngx.re.find, et l’efficacité de correspondance sera multipliée par environ trois fois.


Instructions d’utilisation :

Le chemin d’installation nginx est supposé être : /usr/local/nginx/conf/

Téléchargez le ngx_lua_waf dans le répertoire de conf, dézippez-le et nomme-le waf

Ajoutez-le dans la section http de nginx.conf

            

Configurez le répertoire de règles WAF dans config.lua (généralement dans le répertoire waf/conf/)

        RulePath = « /usr/local/nginx/conf/waf/wafconf/ »

Si le chemin absolu change, il doit être modifié en conséquence

Puis redémarrer nginx


Détails du profil :

           
RulePath = « /usr/local/nginx/conf/waf/wafconf/ »
        --répertoire de stockage de règles
        Journal d’attaque = « Off »
        --Pour activer la journalisation des informations d’attaque, vous devez configurer logdir
        logdir = « /usr/local/nginx/logs/hack/ »
        --répertoire de stockage de journaux, qui doit être créé par l’utilisateur lui-même, et nécessite l’autorisation d’écriture de l’utilisateur nginx
        UrlDeny="on »
        --s’il faut bloquer l’accès à l’URL
        Redirect="on »
        --devrait-il rediriger après interception
        CookieMatch = « on »
        --Bloquer les attaques de cookies
        postMatch = « on »
        --s’il faut bloquer une attaque post-attaque
        whiteModule = « on »
        --activer la liste blanche des URL
        black_fileExt={"php »,"jsp"}
        --Remplissez le type de suffixe de fichier qui n’est pas autorisé à être téléchargé
        ipWhitelist={"127.0.0.1"}
        --liste blanche IP, plusieurs IP sont séparées par virgules
        ipBlocklist={"1.0.0.1"}
        --liste noire d’IP, plusieurs IP sont séparées par des virgules
        CCDeny="on »
        --S’il faut activer l’interception des attaques CC (nécessite d’augmenter le segment HTTP de nginx.conf lua_shared_dict limite de 10 m ; )
        CCrate = « 100/60 »
        --Réglez la fréquence d’attaque des CC en quelques secondes.
        --Par défaut, la même adresse IP ne peut demander la même adresse que 100 fois par minute
        html=[[S’il te plaît, pars~~]]
        --Contenu d’avertissement, personnalisable entre parenthèses
        Note : N’utilisez pas de guillemets doubles pour être sensible à la casse

        
Vérifiez si les règles sont en vigueur

Après le déploiement, vous pouvez essayer la commande suivante :        
  
      

Note : Par défaut, la machine ne filtre pas dans la liste blanche, et vous pouvez ajuster la configuration config.lua vous-même


Les rendus sont les suivants


Mises à jour des règles :

Compte tenu du problème de cache des réguliers, les règles dynamiques affectent la performance, donc je n’utilise pas des dictionnaires de mémoire partagée ou des redis pour la gestion dynamique.

Les mises à jour des règles peuvent être placées sur d’autres serveurs, et les règles peuvent être mises à jour en les téléchargeant régulièrement via la tâche crontab, et le rechargement nginx prendra effet. Garantir les hautes performances du NGX LUA WAF.

Enregistrez seulement le journal de filtrage, n’activez pas le filtrage, ajoutez juste un commentaire avant de vérifier dans le code, si vous devez filtrer, inversement

Quelques notes :

        Les règles de filtrage peuvent être ajustées selon vos besoins sous wafconf, et chaque règle doit être encapsulée ou séparée avec |
        
                Les règles ARG obtiennent le paramètre au filtre
                Les URL sont des règles qui ne demandent que les URL filtrées dans GET               
                Post est une règle de filtrage uniquement dans les demandes de publication               
                La liste blanche est une liste blanche, et les URL qui y sont correspondent donc elle n’est pas filtrée               
                user-agent est une règle de filtrage pour user-agent
        

        Le filtrage Get et le filtrage des publications sont activés par défaut, si vous devez activer le filtrage des cookies, modifiez la partie waf.lua annuler - commenter
        
        Le format du nom du fichier journal est le suivant : Nom de l’hôte Web _sec.log






Précédent:Powershell ne charge pas les fichiers lors du scripting direct car le script est interdit
Prochain:CMD /C et CMD /k sont expliqués en détail
Publié sur 08/11/2017 15:23:22 |
Oui, j’ai appris
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com