Πώς να εγκαταστήσετε το Fail2Ban για προστασία SSH στο CentOS/RHEL 8


Το Fail2ban είναι ένα δωρεάν, ανοιχτού κώδικα και ευρέως χρησιμοποιούμενο εργαλείο πρόληψης εισβολής που σαρώνει αρχεία καταγραφής για διευθύνσεις IP που εμφανίζουν κακόβουλα σημάδια, όπως πάρα πολλές αποτυχίες κωδικού πρόσβασης και πολλά άλλα, και τα αποκλείει (ενημερώνει το τείχος προστασίας κανόνες για την απόρριψη των διευθύνσεων IP). Από προεπιλογή, αποστέλλεται με φίλτρα για διάφορες υπηρεσίες, συμπεριλαμβανομένου του sshd.

Σε αυτό το άρθρο, θα εξηγήσουμε πώς να εγκαταστήσετε και να ρυθμίσετε το fail2ban για την προστασία του SSH και τη βελτίωση της ασφάλειας διακομιστή SSH έναντι επιθέσεων ωμής βίας στο CentOS/RHEL 8.

Εγκατάσταση του Fail2ban στο CentOS/RHEL 8

Το πακέτο fail2ban δεν βρίσκεται στα επίσημα αποθετήρια, αλλά είναι διαθέσιμο στο αποθετήριο EPEL. Αφού συνδεθείτε στο σύστημά σας, αποκτήστε πρόσβαση σε μια διεπαφή γραμμής εντολών και, στη συνέχεια, ενεργοποιήστε το αποθετήριο EPEL στο σύστημά σας όπως φαίνεται.

# dnf install epel-release
OR
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Στη συνέχεια, εγκαταστήστε το πακέτο Fail2ban εκτελώντας την ακόλουθη εντολή.

# dnf install fail2ban

Ρύθμιση παραμέτρων Fail2ban για προστασία SSH

Τα αρχεία διαμόρφωσης fail2ban βρίσκονται στον κατάλογο /etc/fail2ban/ και τα φίλτρα αποθηκεύονται στον κατάλογο /etc/fail2ban/filter.d/ κατάλογο (το αρχείο φίλτρου για sshd είναι /etc/fail2ban/filter.d/sshd.conf).

Το καθολικό αρχείο διαμόρφωσης για τον διακομιστή fail2ban είναι /etc/fail2ban/jail.conf, ωστόσο, δεν συνιστάται η άμεση τροποποίηση αυτού του αρχείου, καθώς πιθανότατα θα αντικατασταθεί ή θα βελτιωθεί σε περίπτωση πακέτου αναβάθμιση στο μέλλον.

Εναλλακτικά, συνιστάται να δημιουργήσετε και να προσθέσετε τις διαμορφώσεις σας σε ένα αρχείο jail.local ή ξεχωριστά αρχεία .conf κάτω από το /etc/fail2ban/jail. d/ κατάλογο. Λάβετε υπόψη ότι οι παράμετροι διαμόρφωσης που ορίζονται στο jail.local θα αντικαταστήσουν ό,τι ορίζεται στο jail.conf.

Για αυτό το άρθρο, θα δημιουργήσουμε ένα ξεχωριστό αρχείο που ονομάζεται jail.local στον κατάλογο /etc/fail2ban/ όπως φαίνεται.

# vi /etc/fail2ban/jail.local

Μόλις ανοίξει το αρχείο, αντιγράψτε και επικολλήστε την ακόλουθη διαμόρφωση σε αυτό. Η ενότητα [DEFAULT] περιέχει καθολικές επιλογές και το [sshd] περιέχει παραμέτρους για τη φυλακή sshd.

[DEFAULT] 
ignoreip = 192.168.56.2/24
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd] 
enabled = true

Ας εξηγήσουμε εν συντομία τις επιλογές στην παραπάνω διαμόρφωση:

  • ignoreip: καθορίζει τη λίστα με τις διευθύνσεις IP ή τα ονόματα κεντρικών υπολογιστών που δεν πρέπει να αποκλειστούν.
  • bantime: καθόρισε τον αριθμό των δευτερολέπτων για τον οποίο αποκλείεται ένας κεντρικός υπολογιστής (δηλαδή η πραγματική διάρκεια αποκλεισμού).
  • maxretry: καθορίζει τον αριθμό των αποτυχιών πριν αποκλειστεί ένας κεντρικός υπολογιστής.
  • findtime: το fail2ban θα αποκλείσει έναν κεντρικό υπολογιστή εάν έχει δημιουργήσει maxretry κατά τη διάρκεια των τελευταίων findtime δευτερολέπτων.
  • banaction: απαγόρευση ενέργειας.
  • backend: καθορίζει το backend που χρησιμοποιείται για τη λήψη τροποποίησης του αρχείου καταγραφής.

Επομένως, η παραπάνω διαμόρφωση σημαίνει ότι εάν μια IP έχει αποτύχει 3 φορές τα τελευταία 5 λεπτά, απαγορεύστε την για 6 ώρες και αγνοήστε το Διεύθυνση IP 192.168.56.2.

Στη συνέχεια, ξεκινήστε και ενεργοποιήστε την υπηρεσία fail2ban προς το παρόν και ελέγξτε εάν είναι ενεργοποιημένη και εκτελείται χρησιμοποιώντας την ακόλουθη εντολή systemctl.

# systemctl start fail2ban
# systemctl enable fail2ban
# systemctl status fail2ban

Παρακολούθηση αποτυχημένης και αποκλεισμένης διεύθυνσης IP με χρήση fail2ban-client

Αφού ρυθμίσετε το fail2ban για να ασφαλίσει το sshd, μπορείτε να παρακολουθείτε τις αποτυχημένες και αποκλεισμένες διευθύνσεις IP χρησιμοποιώντας το fail2ban-client. Για να δείτε την τρέχουσα κατάσταση του διακομιστή fail2ban, εκτελέστε την ακόλουθη εντολή.

# fail2ban-client status

Για να παρακολουθήσετε τη φυλακή sshd, εκτελέστε.

# fail2ban-client status sshd

Για να καταργήσετε τον αποκλεισμό μιας διεύθυνσης IP στο fail2ban (σε όλα τα jails και τη βάση δεδομένων), εκτελέστε την ακόλουθη εντολή.

# fail2ban-client unban 192.168.56.1

Για περισσότερες πληροφορίες σχετικά με το fail2ban, διαβάστε τις παρακάτω σελίδες man.

# man jail.conf
# man fail2ban-client

Αυτό συνοψίζει αυτόν τον οδηγό! Εάν έχετε οποιεσδήποτε ερωτήσεις ή σκέψεις που θέλετε να μοιραστείτε σχετικά με αυτό το θέμα, μη διστάσετε να επικοινωνήσετε μαζί μας μέσω της παρακάτω φόρμας σχολίων.