Module Lua nginx Taobao a développé un module tiers nginx, qui peut intégrer le langage lua dans la configuration nginx, de sorte que l’utilisation de lua améliore grandement les capacités de nginx. nginx est connu pour sa forte concurrence, ses écritures lua sont légères, et la combinaison des deux est parfaite.
Adresse GitHub : https://github.com/loveshell/ngx_lua_waf
###用途:
- 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
Version système, commande lsb_release -a
Version LSB : :core-4.1-amd64 :core-4.1-noarch ID distributeur : CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
Version LuaJIT
LuaJIT-2.0.5 est la dernière version stable
Version nginx (échouera à s’installer, j’en reparlerai plus tard)
Version NGINX 1.4.4
Commencez par créer le répertoire d’installation /alidata/server/lj2 avec la commande suivante :
Installer l’environnement Lua
--Vérifiez si l’installation est réussie
--Créer des liens logiciels
Ordre original :
Puisque nous avons lua installé sous /alidata/server/lj2, exécutons la commande suivante,N’exécutez pas la commande ci-dessus, exécutez la commande suivante:
Si vous ne créez pas de lien symétique, l’exception suivante peut survenir : erreur lors du chargement des bibliothèques partagées : libluajit-5.1.so.2 : impossible d’ouvrir un fichier objet partagé : Aucun fichier ou répertoire de ce type
Téléchargez ngx_devel_kit et décompressez-le
Page d’accueil du projet : https://github.com/simplresty/ngx_devel_kit
Téléchargez ngx_lua et décompressez-le
Recompiler et installer nginx
Sauvegardez d’abord le fichier ngxin précédent
J’ai déjà installé nginx, exécutant la commande nginx -V comme suit :
Version de nginx : nginx/1.4.4 Construit par GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) Prise en charge du TLS SNI activée configurer les arguments : --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_ Module Deux catalogues de modules
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Téléchargez et exécutez dans le répertoire nginx
--ajouter une variable d’environnement pour indiquer à nginx où trouver Luajit
Si vous ne l’ajoutez pas, nginx rapportera l’erreur suivante lors de la compilation :
./configure : error : ngx_http_lua_module nécessite la bibliothèque Lua. Si une erreur est signalée, veuillez exécuter les deux phrases ci-dessus !
compiler
Erreur : #error au moins nginx 1.6.0 est nécessaire mais j’ai trouvé une version plus ancienne
La version nginx est trop basse, la condition minimale est la 1.6.0, donc mets à jour la version nginx,Lors de la mise à niveau de la version nginx, vous pouvez en fait installer le module lua-nginx et ngx_devel_kit module dans la nouvelle version, ce qui ne sera pas détaillé ici, il suffit d’exécuter la commande suivante avec la nouvelle version,
Télécharge ngx_lua_waf et dézippe-le
Modifiez le fichier de configuration nginx pour modifier le chemin selon la situation réelle
Ajoutez-le dans la section http de nginx.conf
Une fois ajouté,J’ai redémarré nginx et j’ai eu une erreur 500Finalement, il a été constaté que la raison était que le fichier config.lua devait être modifié en deux endroits :
RulePath et logdir pour modifier selon ta situation !
Test
https://www.itsvse.com/forum.php?id=../etc/passwd
|