Βήμα 1: Εγκατάσταση του httpd-devel
Βήμα 2: Λήψη και εγκατάσταση του mod_evasive
Βήμα 3: Προσθήκη της μονάδας στον Apache
Βήμα 4: Διαμόρφωση και αλλαγή ρυθμίσεων
Βήμα 5: Επανεκκίνηση του διακομιστή Web
Το Mod_evasive είναι μια λειτουργική μονάδα για Apache που αναλαμβάνει αυτόματα δράση όταν εντοπίζεται επίθεση HTTP DoS ή επίθεση ωμής βίας. Το Mod_evasive είναι σε θέση να καταγράφει και να αναφέρει κατάχρηση και να ειδοποιεί προβλήματα μέσω email. Πριν ακολουθήσετε αυτόν τον οδηγό, θα πρέπει να διαθέτετε ήδη έναν διακομιστή LAMP που να λειτουργεί σωστά.
Αυτός ο οδηγός γράφτηκε για το CentOS και τις παραλλαγές του (όπως το RHEL) και το Debian και τις παραλλαγές του (όπως το Ubuntu).
Η ενότητα δημιουργεί έναν πίνακα με διευθύνσεις IP και διευθύνσεις URL. Εάν πληρούνται οι προϋποθέσεις που ορίζονται στη διαμόρφωση (όπως περιγράφεται παρακάτω σε αυτό το έγγραφο), οι χρήστες που κάνουν κατάχρηση θα λάβουν ένα σφάλμα 403 (απαγορευμένο). Επίσης, καταγράφεται η διεύθυνση IP και, εάν έχει οριστεί η επιλογή, θα σταλεί ένα email στην καθορισμένη διεύθυνση email.
Βήμα 1: Εγκατάσταση httpd-devel
Το πακέτο httpd-devel περιέχει απαιτούμενα αρχεία που χρειάζεστε για τη δημιουργία Dynamic Shared Objects για Apache. Χρειαζόμαστε αυτό το πακέτο για να εγκαταστήσουμε το module, καθώς θα το μεταγλωττίσουμε μόνοι μας στα παρακάτω βήματα.
Στο CentOS/RHEL, εκτελέστε:
yum install httpd-devel
Στο Debian/Ubuntu, εκτελέστε:
apt-get install apache2-utils
Αφού εγκατασταθεί επιτυχώς αυτό το πακέτο, προχωρήστε στο επόμενο βήμα. Εάν η εγκατάσταση δεν έχει ολοκληρωθεί σωστά, το επόμενο βήμα (πιθανότατα) θα αποτύχει.
Βήμα 2: Λήψη και εγκατάσταση mod_evasive
Μέθοδος 1: Σύνταξη
Κατεβάστε την ενότητα:
cd /usr/src
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
Εξαγωγή της ενότητας:
tar xzf mod_evasive*.tar.gz
Πλοηγηθείτε στον κατάλογο:
cd mod_evasive
Στη συνέχεια, θα χρησιμοποιήσουμε apxs2ένα εργαλείο που δημιουργήθηκε για την κατασκευή και εγκατάσταση μονάδων που επεκτείνουν τη λειτουργικότητα του Apache. Apxs2δημιουργεί ένα δυναμικό κοινόχρηστο αντικείμενο, γι' αυτό το εγκαταστήσαμε httpd-develστο βήμα #1.
Εκτέλεση:
apxs2 -cia mod_evasive20.c
Μέθοδος 2: Εγκατάσταση με χρήση yum(Συνιστάται)
Όταν έχετε εγκαταστήσει το epel-releaseαποθετήριο, mod_evasiveείναι διαθέσιμο μέσω yum.
Προσθέστε το αποθετήριο:
yum install epel-release
Εγκαταστήστε τη μονάδα χρησιμοποιώντας yum:
yum install mod_evasive
Βήμα 3: Προσθήκη της μονάδας στον Apache
Γενικά, ο Apache φορτώνει όλες τις λειτουργικές μονάδες από το mods-enabled, επομένως κάθε φορά που προστίθεται μια λειτουργική μονάδα σε αυτόν τον φάκελο, δεν χρειάζεται να προστεθεί στη διαμόρφωση του Apache με μη αυτόματο τρόπο. Ανοίξτε το αρχείο διαμόρφωσης για να ελέγξετε αν ισχύει αυτό.
Στο CentOS, το σχετικό αρχείο είναι: /etc/httpd/conf/httpd.conf
Στο Ubuntu, το σχετικό αρχείο είναι: /etc/apache2/apache2.conf
Αναζήτηση για Include. Μια γραμμή όπως Include mods-enabled/*.confλέει στον Apache να φορτώσει όλες τις μονάδες. Εάν δεν υπάρχει, προσθέστε αυτή τη γραμμή στην κορυφή του αρχείου και επανεκκινήστε τον Apache.
Για το Ubuntu, προσθέστε τα ακόλουθα περιεχόμενα στο κάτω μέρος του αρχείου:
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so
Βήμα 4: Διαμόρφωση και αλλαγή ρυθμίσεων
Προσθέστε το ακόλουθο μπλοκ στο αρχείο διαμόρφωσης. Οι διαδρομές είναι ίδιες με αυτές στο βήμα #3.
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify <william@williamdavidedwards.com>
</IfModule>
Μια γρήγορη επισκόπηση αυτών των παραμέτρων μπορεί να βρεθεί στο README. Μπορείτε να διαβάσετε το αρχείο README ως εξής:
cat /usr/src/cd mod_evasive/README
Πιθανότατα θα χρειαστεί να τροποποιείτε αυτές τις ρυθμίσεις από καιρό σε καιρό, για να βεβαιωθείτε ότι είναι κατάλληλες για τον διακομιστή και τους ιστότοπούς σας. Εξάλλου, ορισμένοι διακομιστές έχουν περισσότερη δραστηριότητα και κίνηση από άλλους.
Βήμα 5: Επανεκκίνηση του διακομιστή Web
Επανεκκινήστε τον διακομιστή ιστού Apache για να ισχύσουν οι αλλαγές και να φορτωθεί η λειτουργική μονάδα:
service httpd restart
Βεβαιωθείτε ότι η ενότητα είναι φορτωμένη στον Apache:
httpd -M | grep evasive
Αυτό πρέπει να επιστρέψει evasive20_module (shared). Εάν όχι, η μονάδα δεν φορτώθηκε σωστά και σας συνιστούμε να ελέγξετε ξανά τα αρχεία διαμόρφωσης και εάν αποθηκεύτηκαν σωστά.
Σημειώστε ότι αυτή η μονάδα δεν αντικαθιστά την προστασία DDoS καθώς δεν μπορεί να λειτουργήσει όταν εξαντληθεί η χωρητικότητα του διακομιστή. Στην πραγματικότητα, το Vultr προσφέρει Προστασία DDoS που είναι πολύ χρήσιμο για την καλύτερη προστασία του διακομιστή (καθώς και τη χρήση αυτής της ενότητας). Για απλούστερες απειλές, ειδικά επιθέσεις που βασίζονται σε σενάρια, η ενότητα κάνει τη δουλειά της και είναι σίγουρα χρήσιμη.
Τώρα έχετε εγκαταστήσει τη mod_evasiveλειτουργική μονάδα στο Apache και έτσι κάνατε την εφαρμογή Ιστού σας ασφαλέστερη.