Προαπαιτούμενα
Βήμα 1: Ενημερώστε το σύστημα
Βήμα 2: Τροποποίηση της θύρας SSH (Προαιρετικό)
Βήμα 3: Εγκαταστήστε και ρυθμίστε το fail2ban για προστασία του SSH
Το Fail2ban, όπως υποδηλώνει το όνομά του, είναι ένα βοηθητικό πρόγραμμα που έχει σχεδιαστεί για να βοηθά στην προστασία μηχανών Linux από επιθέσεις ωμής βίας σε επιλεγμένες ανοιχτές θύρες, ειδικά στη θύρα SSH. Για λόγους λειτουργικότητας και διαχείρισης του συστήματος, αυτές οι θύρες δεν μπορούν να κλείσουν χρησιμοποιώντας τείχος προστασίας. Υπό αυτές τις συνθήκες, είναι καλή ιδέα να χρησιμοποιήσετε το Fail2ban ως συμπληρωματικό μέτρο ασφαλείας σε ένα τείχος προστασίας για να περιορίσετε την κυκλοφορία επιθέσεων ωμής βίας σε αυτές τις θύρες.
Σε αυτό το άρθρο, θα σας δείξω πώς να εγκαταστήσετε και να ρυθμίσετε το Fail2ban για την προστασία της θύρας SSH, του πιο συνηθισμένου στόχου επίθεσης, σε μια παρουσία διακομιστή Vultr Debian 9.
Προαπαιτούμενα
- Ένα νέο παράδειγμα διακομιστή Debian 9 (Stretch) x64.
- Συνδεθήκατε ως
root
.
- Όλες οι αχρησιμοποίητες θύρες έχουν αποκλειστεί με τους κατάλληλους κανόνες IPTables.
Βήμα 1: Ενημερώστε το σύστημα
apt update && apt upgrade -y
shutdown -r now
Μετά την εκκίνηση του συστήματος, συνδεθείτε ξανά ως root
.
Βήμα 2: Τροποποίηση της θύρας SSH (Προαιρετικό)
Δεδομένου ότι ο προεπιλεγμένος αριθμός θύρας SSH 22
είναι πολύ δημοφιλής για να αγνοηθεί, η αλλαγή του σε έναν λιγότερο γνωστό αριθμό θύρας, ας πούμε, 38752
θα ήταν μια έξυπνη απόφαση.
sed -i "s/#Port 22/Port 38752/g" /etc/ssh/sshd_config
systemctl restart sshd.service
Μετά την τροποποίηση, πρέπει να ενημερώσετε τους κανόνες IPTables ανάλογα:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p tcp --dport 38752 -j ACCEPT
Αποθηκεύστε τους ενημερωμένους κανόνες IPTables σε ένα αρχείο για λόγους επιμονής:
iptables-save > /etc/iptables.up.rules
touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
echo '#!/bin/sh' >> /etc/network/if-pre-up.d/iptables
echo '/sbin/iptables-restore < /etc/iptables.up.rules' >> /etc/network/if-pre-up.d/iptables
Με αυτόν τον τρόπο, οι κανόνες IPTables θα είναι επίμονοι ακόμα και μετά την επανεκκίνηση του συστήματος. Από εδώ και στο εξής, θα πρέπει να συνδεθείτε από τη 38752
θύρα.
Χρησιμοποιήστε το apt
για να εγκαταστήσετε τη σταθερή έκδοση του Fail2ban που είναι αυτήν τη στιγμή 0.9.x
:
apt install fail2ban -y
Μετά την εγκατάσταση, η υπηρεσία Fail2ban θα ξεκινήσει αυτόματα. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να εμφανίσετε την κατάστασή του:
service fail2ban status
Στο Debian, οι προεπιλεγμένες ρυθμίσεις φίλτρου Fail2ban θα αποθηκευτούν τόσο στο /etc/fail2ban/jail.conf
αρχείο όσο και στο /etc/fail2ban/jail.d/defaults-debian.conf
αρχείο. Θυμηθείτε ότι οι ρυθμίσεις στο τελευταίο αρχείο θα αντικαταστήσουν τις αντίστοιχες ρυθμίσεις στο προηγούμενο.
Χρησιμοποιήστε τις παρακάτω εντολές για να δείτε περισσότερες λεπτομέρειες:
cat /etc/fail2ban/jail.conf | less
cat /etc/fail2ban/jail.d/defaults-debian.conf
fail2ban-client status
fail2ban-client status sshd
Για ενημέρωσή σας, τα αποσπάσματα κώδικα σχετικά με το SSH παρατίθενται παρακάτω:
Σε /etc/fail2ban/jail.conf
:
[DEFAULT]
bantime = 600
...
maxentry = 5
[sshd]
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Σε /etc/fail2ban/jail.d/defaults-debian.conf
:
[sshd]
enabled = true
Επειδή τα περιεχόμενα στα δύο παραπάνω αρχεία διαμόρφωσης ενδέχεται να αλλάξουν σε μελλοντικές ενημερώσεις συστήματος, θα πρέπει να δημιουργήσετε ένα τοπικό αρχείο διαμόρφωσης για να αποθηκεύσετε τους δικούς σας κανόνες φίλτρου fail2ban. Και πάλι, οι ρυθμίσεις σε αυτό το αρχείο θα αντικαταστήσουν τις αντίστοιχες ρυθμίσεις στα δύο αρχεία που αναφέρονται παραπάνω.
vi /etc/fail2ban/jail.d/jail-debian.local
Εισαγάγετε τις ακόλουθες γραμμές:
[sshd]
port = 38752
maxentry = 3
Σημείωση: Βεβαιωθείτε ότι χρησιμοποιείτε τη δική σας θύρα SSH. Εκτός από port
και που maxentry
αναφέρθηκαν παραπάνω, όλες οι άλλες ρυθμίσεις θα χρησιμοποιούν τις προεπιλεγμένες τιμές.
Αποθήκευση και έξοδος:
:wq
Επανεκκινήστε την υπηρεσία Fail2ban για να φορτώσετε τη νέα διαμόρφωση:
service fail2ban restart
Η εγκατάσταση μας έχει ολοκληρωθεί. Από εδώ και στο εξής, εάν οποιοδήποτε μηχάνημα στείλει λανθασμένα διαπιστευτήρια SSH στην προσαρμοσμένη θύρα SSH ( 38752
) του διακομιστή Debian περισσότερες από τρεις φορές, η IP αυτού του δυνητικά κακόβουλου μηχανήματος θα αποκλειστεί για 600 δευτερόλεπτα.