Ρύθμιση του Fail2ban για την προστασία του Apache από επίθεση DDOS
Αυτό το άρθρο είναι μέρος της σειράς Apache Server Guide:
- Ασφάλεια Apache στο Ubuntu - Μέρος 1
- Ασφάλεια του Apache στο Ubuntu - Μέρος 2
- Βελτιστοποίηση της απόδοσης του Apache - Μέρος 1
- Βελτιστοποίηση της απόδοσης του Apache - Μέρος 2
- Ρύθμιση του βασισμένου σε όνομα Apache του
- Εγκατάσταση IP και Port-Based Virtualhost στο Apache
- Πώς να ρυθμίσετε τον Κατάλογο Ιστού Προστατέψτε τον Κωδικό στο Apache
- Εγκατάσταση του Apache Server με υποστήριξη SSL στο Ubuntu
- Ρύθμιση του Fail2ban για την προστασία του Apache από επίθεση DDOS
- Πώς να ρυθμίσετε το Webdav με Apache στο Ubuntu
- Παρακολούθηση του διακομιστή Web Apache χρησιμοποιώντας το Mod_status
- Πώς να προστατεύσετε το DDoS με Mod_evasive στο Apache Server
Το Apache είναι ένας από τους πιο διαδεδομένους και δημοφιλείς εξυπηρετητές ιστού στον κόσμο, επομένως είναι σημαντικό να προστατεύσετε τον ιστότοπό σας και τους χρήστες από βίαιες επιθέσεις. Το Fail2ban είναι λογισμικό πρόληψης εισβολής ανοιχτού κώδικα γραμμένο στη Python. Το Fail2Ban αναλύει συνεχώς τα αρχεία καταγραφής των διαφόρων υπηρεσιών (όπως Apache, ssh, postfix ...) και εάν ανιχνεύει κακόβουλες επιθέσεις, τότε δημιουργεί κανόνες για το τείχος προστασίας για να εμποδίσουν τις διευθύνσεις IP χάκερ για ένα συγκεκριμένο χρονικό διάστημα. Το Fail2Ban ενημερώνει επίσης έναν διαχειριστή συστήματος με ένα μήνυμα ηλεκτρονικού ταχυδρομείου σχετικά με τη δραστηριότητά του.
Σε αυτό το άρθρο θα σας εξηγήσω πώς να εγκαταστήσετε το fail2ban και να το ρυθμίσετε ώστε να παρακολουθεί τα αρχεία καταγραφής Apache για αποτυχημένες προσπάθειες αποτυχίας ελέγχου ταυτότητας.
Απαιτήσεις
- Ο διακομιστής Ubuntu 14.04 με εγκατεστημένο το Apache
- Το Apache έχει ρυθμιστεί με έλεγχο ταυτότητας με κωδικό πρόσβασης
Εγκατάσταση του Fail2Ban
Πρώτα, βεβαιωθείτε ότι ο διακομιστής Apache εκτελείται και ότι ο έλεγχος ταυτότητας με κωδικό πρόσβασης είναι ενεργοποιημένος.
Στη συνέχεια, μπορείτε να εγκαταστήσετε το Fail2ban εκτελώντας:
sudo apt-get ενημέρωση sudo apt-get εγκαταστήσετε το fail2ban
Ρυθμίστε το fail2ban για το Apache
Το fail2ban διατηρεί το αρχείο διαμόρφωσής του "jail.conf" στον κατάλογο "/ etc / fail2ban /". Περιέχει ένα σύνολο προκαθορισμένων φίλτρων για διάφορες υπηρεσίες και συνιστάται να μην επεξεργαστείτε αυτό το αρχείο. Πρέπει να ενεργοποιήσετε τις προκαθορισμένες φυλακές του Apache δημιουργώντας ένα αρχείο "/etc/fail2ban/jail.local":
Για να δημιουργήσετε νέο αρχείο "jail.local", εκτελέστε:
sudo nano /etc/fail2ban/jail.local
Προσθέστε το ακόλουθο περιεχόμενο:
[apache] enabled = true port = http, https filter = apache-auth logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-noscript] enabled = true port = http, https φίλτρο = apache-noscript logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [υπερβάσεις apache] enabled = true port = http, https filter = υπερχείλιση apache logpath = /var/log/apache2/*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227 [apache-badbots] ενεργοποιημένη = true port = https filter = apache-badbots logpath = / var / log / apache2 /*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227
Αποθηκεύστε και κλείστε το αρχείο και επανεκκινήστε το fail2ban για να εφαρμοστούν οι αλλαγές.
sudo /etc/init.d/fail2ban επανεκκίνηση
Μπορείτε να επαληθεύσετε τους κανόνες που προστέθηκαν από το Fail2Ban στο iptables χρησιμοποιώντας την ακόλουθη εντολή:
sudo iptables -L
Η έξοδος θα φαίνεται κάπως έτσι:
Σημείωση : Μπορείτε να βρείτε τις λεπτομέρειες κάθε φυλακής που περιγράφονται παρακάτω:
[apache]
: αυτή η φυλακή χρησιμοποιείται για την αποτροπή αποτυχημένων προσπαθειών σύνδεσης.[apache-noscript]
: αυτή η φυλακή χρησιμοποιείται για τον αποκλεισμό απομακρυσμένων πελατών που αναζητούν δέσμες ενεργειών στον ιστότοπο για εκτέλεση.[apache-overflows]
: αυτή η φυλακή χρησιμοποιείται για να αποκλείσει τους πελάτες που επιχειρούν να ζητήσουν ύποπτες διευθύνσεις URL.[apache-noscript]
: αυτή η φυλακή χρησιμοποιείται για τον αποκλεισμό απομακρυσμένων πελατών που αναζητούν δέσμες ενεργειών στον ιστότοπο για εκτέλεση.[apache-badbots]
: αυτή η φυλακή χρησιμοποιείται για να αποκλείει τα κακόβουλα αιτήματα bot.
Σημείωση : Μπορείτε να βρείτε τις λεπτομέρειες για κάθε κανόνα που περιγράφεται παρακάτω.
enabled
: αυτή η επιλογή σημαίνει ότι η προστασία Apache είναι ενεργοποιημένη.port
: Αυτή η επιλογή καθορίζει τις υπηρεσίες που παρακολουθούν το fail2ban.filter
: αυτή η επιλογή αναφέρεται στο αρχείο ρυθμίσεων που βρίσκεται στον κατάλογο/etc/fail2ban/filter.d/
.logpath
: Αυτή η επιλογή καθορίζει τη θέση του αρχείου καταγραφής.bantime
: Αυτή η επιλογή καθορίζει τον αριθμό των δευτερολέπτων που ένας απομακρυσμένος κεντρικός υπολογιστής θα αποκλειστεί από το διακομιστή.maxretry
: Αυτή η επιλογή καθορίζει τον αριθμό των αποτυχημένων προσπαθειών σύνδεσης πρινmaxretry
ένας απομακρυσμένος κεντρικός υπολογιστής για τη διάρκεια του χρόνου απαγόρευσης.ignoreip
: Αυτή η επιλογή σάς επιτρέπει να μπλοκάρετε ορισμένες διευθύνσεις IP από το κλείδωμα.
Ελέγξτε την κατάσταση αποτροπής Fail2ban
Μόλις ενεργοποιηθούν οι φυλακές, μπορείτε να ελέγξετε το fail2ban χρησιμοποιώντας την εντολή fail2ban-client
:
κατάσταση sudo fail2ban-client
Μπορείτε να δείτε μια λίστα με όλες τις φυλακές που ενεργοποιήσατε.
Για να δείτε την κατάσταση μιας συγκεκριμένης φυλακής, όπως apache, apache-badbots εκτελώντας τις ακόλουθες εντολές:
sudo αποτυχία2ban-πελάτη κατάσταση apache
Η έξοδος μοιάζει ως εξής:
Μπορείτε επίσης να ορίσετε μη αυτόματα τις απαγορεύσεις ή τις διευθύνσεις IP χωρίς σύνδεση.
Για παράδειγμα, για να απαγορεύσετε μια διεύθυνση IP (192.168.1.20) με μια φυλακή apache:
Το sudo fail2ban-client θέτει apache banip 192.168.1.20
Για να αποκλείσετε μια διεύθυνση IP (192.168.1.21) με μια φυλακή apache:
Το sudo fail2ban-client θέτει apache unbanip 192.168.1.21
Δοκιμή Fail2Ban
Είναι σημαντικό να δοκιμάσετε το fail2ban εάν λειτουργεί όπως αναμένεται ή όχι. Τώρα σε ένα απομακρυσμένο μηχάνημα, ανοίξτε το πρόγραμμα περιήγησης ιστού και πληκτρολογήστε τη διεύθυνση URL του τομέα σας (ή τη διεύθυνση IP του διακομιστή σας). Όταν το Apache ζητά τον έλεγχο ταυτότητας, δώστε επανειλημμένα ένα λανθασμένο όνομα χρήστη και κωδικό πρόσβασης. Αφού φτάσετε στο όριο, θα πρέπει να αποκλείσετε και να μην έχετε πρόσβαση στον ιστότοπο.
Ελέγξτε την κατάσταση με την εντολή fail2ban-client
:
sudo αποτυχία2ban-πελάτη κατάσταση apache
Θα δείτε ότι η διεύθυνση IP σας είναι αποκλεισμένη από τον ιστότοπο.
συμπέρασμα
Τώρα, έχετε αρκετές γνώσεις για να ρυθμίσετε το fail2ban. Η χρήση του fail2ban είναι ένας καλός και εύκολος τρόπος να σταματήσετε τις πλημμύρες (βίαιες επιθέσεις). Είναι επίσης ένας καλός τρόπος για να περιορίσετε τον αριθμό των κακών αιτημάτων που λαμβάνετε στο διακομιστή ιστού Apache.