Μονάδα Nginx Lua Η Taobao ανέπτυξε τη μονάδα τρίτου κατασκευαστή nginx, η οποία μπορεί να ενσωματώσει τη γλώσσα lua στη διαμόρφωση nginx, έτσι ώστε η χρήση του lua να ενισχύει σημαντικά την ικανότητα του nginx. Το Nginx είναι γνωστό για τον υψηλό συγχρονισμό του, τα σενάρια lua είναι ελαφριά και ο συνδυασμός των δύο είναι τέλειος.
Διεύθυνση GitHub: https://github.com/loveshell/ngx_lua_waf
###用途:
- Αποτρέψτε επιθέσεις ιστού όπως SQL injection, τοπική συμπερίληψη, μερική υπερχείλιση, fuzzing testing, xss, SSRF κ.λπ
- Αποτρέψτε τη διαρροή αρχείων, όπως SVN/backup
- Αποτρέψτε επιθέσεις από εργαλεία προσομοίωσης ακραίων καταστάσεων όπως το ApacheBench
- Αποκλεισμός κοινών εργαλείων εισβολής σάρωσης, σαρωτών
- Αποκλεισμός ασυνήθιστων αιτημάτων δικτύου
- Αποκλεισμός της άδειας εκτέλεσης PHP του καταλόγου συνημμένων εικόνας
- Αποτρέψτε τις μεταφορτώσεις webshell
Έκδοση συστήματος, εντολή lsb_release -a
Έκδοση LSB: :core-4.1-amd64:core-4.1-noarch Αναγνωριστικό διανομέα: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
Έκδοση LuaJIT
Το LuaJIT-2.0.5 είναι η πιο πρόσφατη σταθερή έκδοση
Έκδοση nginx (θα αποτύχει η εγκατάσταση, περισσότερα για αυτό αργότερα)
Έκδοση NGINX 1.4.4
Αρχικά, δημιουργήστε τον κατάλογο εγκατάστασης /alidata/server/lj2 με την ακόλουθη εντολή:
Εγκατάσταση του περιβάλλοντος Lua
--Ελέγξτε εάν η εγκατάσταση είναι επιτυχής
--Δημιουργήστε μαλακούς συνδέσμους
Αρχική παραγγελία:
Εφόσον έχουμε εγκαταστήσει το lua στο /alidata/server/lj2, εκτελέστε την ακόλουθη εντολή,Μην εκτελέσετε την παραπάνω εντολή, εκτελέστε την ακόλουθη εντολή:
Εάν δεν δημιουργήσετε συμβολικό σύνδεσμο, ενδέχεται να προκύψει η ακόλουθη εξαίρεση: σφάλμα κατά τη φόρτωση κοινόχρηστων βιβλιοθηκών: libluajit-5.1.so.2: δεν είναι δυνατό το άνοιγμα του αρχείου κοινόχρηστου αντικειμένου: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
Κατεβάστε ngx_devel_kit και αποσυμπιέστε το
Αρχική σελίδα έργου: https://github.com/simplresty/ngx_devel_kit
Κατεβάστε ngx_lua και αποσυμπιέστε το
Μεταγλώττιση και εγκατάσταση του nginx
Δημιουργήστε πρώτα αντίγραφα ασφαλείας του προηγούμενου αρχείου ngxin
Έχω εγκαταστήσει το nginx στο παρελθόν, εκτελώντας την εντολή nginx -V ως εξής:
Έκδοση nginx: nginx/1.4.4 κατασκευάστηκε από GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) Η υποστήριξη TLS SNI ενεργοποιήθηκε Διαμόρφωση ορισμάτων: --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_ Ενότητα Δύο κατάλογοι ενοτήτων
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Λήψη και εκτέλεση στον κατάλογο nginx
--Προσθέστε μεταβλητή περιβάλλοντος για να πείτε στο nginx πού να βρει το luajit
Εάν δεν το προσθέσετε, το nginx θα αναφέρει το ακόλουθο σφάλμα κατά τη μεταγλώττιση:
./configure: error: ngx_http_lua_module απαιτεί τη βιβλιοθήκη Lua. Εάν αναφερθεί σφάλμα, εκτελέστε τις δύο παραπάνω προτάσεις!
συλλέγω
Σφάλμα: #error απαιτείται τουλάχιστον nginx 1.6.0 αλλά βρέθηκε παλαιότερη έκδοση
Η έκδοση nginx είναι πολύ χαμηλή, η ελάχιστη απαίτηση είναι 1.6.0, επομένως αναβαθμίστε την έκδοση nginx,Κατά την αναβάθμιση της έκδοσης nginx, μπορείτε πραγματικά να εγκαταστήσετε τη μονάδα lua-nginx και τη μονάδα ngx_devel_kit στη νέα έκδοση, η οποία δεν θα αναλυθεί εδώ, απλώς εκτελέστε την ακόλουθη εντολή με τη νέα έκδοση,
Κατεβάστε ngx_lua_waf και αποσυμπιέστε το
Τροποποιήστε το αρχείο διαμόρφωσης nginx για να αλλάξετε τη διαδρομή σύμφωνα με την πραγματική κατάσταση
Προσθέστε το στην ενότητα http του nginx.conf
Μόλις προστεθεί,Επανεκκίνησα το nginx και έλαβα ένα σφάλμα 500Τέλος, διαπιστώθηκε ότι ο λόγος ήταν ότι το αρχείο config.lua επρόκειτο να τροποποιηθεί σε δύο σημεία:
RulePath και logdir για τροποποίηση ανάλογα με τη δική σας κατάσταση!
Δοκιμή
https://www.itsvse.com/forum.php?id=../etc/passwd
|