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

Το Fail2Ban είναι ένα απλό, αλλά χρήσιμο εργαλείο που μπορεί να παρακολουθεί τον διακομιστή σας από κακόβουλες επιθέσεις και να το μπλοκάρει προτού να καταστρέψει τον όλεθρο.

Εγκατάσταση

Το Fail2Ban είναι διαθέσιμο στο αποθετήριο του Ubuntu, ώστε να μπορείτε να το εγκαταστήσετε εύκολα με την εντολή:

 sudo apt-get εγκαταστήσετε το fail2ban 

Για τους χρήστες Red Hat ή Centos, μπορείτε να εγκαταστήσετε το Fail2Ban μέσω του αποθετηρίου EPEL.

Μόλις εγκαταστήσετε το Fail2Ban, το επόμενο βήμα είναι να μετακινήσετε το αρχείο διαμόρφωσης σε έναν τοπικό φάκελο, ώστε να μην αλλάξετε τυχαία το κύριο αρχείο διαμόρφωσης.

 sudo cp /etc/fail2ban/jail.conf/etc/fail2ban/jail.local 

Διαμόρφωση

Μόλις εγκατασταθεί, το Fail2Ban θα ξεκινήσει αυτόματα την παρακολούθηση του διακομιστή σας για κακόβουλη επίθεση. Στις περισσότερες περιπτώσεις, οι προεπιλεγμένες ρυθμίσεις επαρκούν για την προστασία του ιστότοπού σας, αλλά εάν έχετε κάποια προσαρμοσμένη διαμόρφωση διακομιστή (όπως διαφορετική θύρα πρόσβασης SSH) ή θέλετε να ενεργοποιήσετε άλλες υπηρεσίες, μπορείτε να το κάνετε αυτό:

 sudo nano /etc/fail2ban/jail.local 

Το αρχείο διαμόρφωσης χωρίζεται σε διαφορετικές ενότητες. Το πρώτο που θα συναντήσετε είναι το [DEFAULT].

 [DEFAULT] # "ignoreip" μπορεί να είναι μια διεύθυνση IP, μια μάσκα CIDR ή ένας κεντρικός υπολογιστής DNS ignoreip = 127.0.0.1/8 bantime = 600 maxretry = 3 # "backend" καθορίζει το backend που χρησιμοποιείται για την τροποποίηση των αρχείων. Οι διαθέσιμες # επιλογές είναι "gamin", "polling" και "auto". # yoh: Για κάποιο λόγο ο αποστολέας Debian python-gamin δεν λειτούργησε όπως αναμενόταν # Αυτό το τεύχος άφησε το ToDo, έτσι η δημοσκόπηση είναι προεπιλεγμένη backend για τώρα backend = auto # # Διεύθυνση ηλεκτρονικού ταχυδρομείου προορισμού που χρησιμοποιείται αποκλειστικά για τις παρεμβολές σε # φυλακή. τοπικά} αρχεία ρυθμίσεων. destemail = root @ localhost 

Οι λίγες παράμετροι που πρέπει να λάβετε υπόψη εδώ είναι ignoreip, bantime και maxretry .

  • ignoreip - αυτός είναι ο τόπος όπου βρίσκεστε στο Whitelist το IP που δεν θέλετε να μπλοκάρει. Η προεπιλογή είναι το τοπικόhost (127.0.0.1/8). Μπορείτε να προσθέσετε επιπλέον IP στο πεδίο, χωρίζοντας κάθε IP με ένα κενό.
  • bantime - αυτό είναι το χρονικό διάστημα σε δευτερόλεπτα για να αποκλείσετε την πρόσβαση IP από τον διακομιστή σας. Η προεπιλογή είναι 10 λεπτά (600 δευτερόλεπτα)
  • maxretry - αυτός είναι ο αριθμός των αποτυχημένων προσπαθειών σύνδεσης πριν την αποκλεισμό του IP.

Υπάρχει επίσης το πεδίο destemail όπου μπορείτε να καθορίσετε μια διεύθυνση ηλεκτρονικού ταχυδρομείου για να ειδοποιήσει πού εντοπίζεται μια κακόβουλη επίθεση. Ένα πράγμα που πρέπει να σημειωθεί είναι ότι αυτό θα λειτουργήσει μόνο αν έχετε εγκαταστήσει ένα διακομιστή αλληλογραφίας.

Το επόμενο τμήμα είναι οι "Ενέργειες".

 # ACTIONS # # Προεπιλεγμένη ενέργεια απαγόρευσης (π.χ. iptables, iptables-new, # iptables-multiport, shorewall, κ.λπ.) Χρησιμοποιείται για τον ορισμό # μεταβλητών action_ *. Μπορεί να αντικατασταθεί παγκοσμίως ή ανά # τμήμα στο jail.local file banaction = iptables-multiport # ενέργεια email. Δεδομένου ότι 0.8.1 upstream fail2ban χρησιμοποιεί sendmail # MTA για την αλληλογραφία. Αλλάξτε την παράμετρο διαμόρφωσης mta στο mail # αν θέλετε να επιστρέψετε σε συμβατικό 'mail'. mta = sendmail # Προεπιλεγμένο πρωτόκολλο πρωτοκόλλου = tcp # Καθορίστε αλυσίδα όπου πρέπει να προστεθούν άλματα στο iptables- * actions chain = INPUT # # Συντομεύσεις δράσης. Για να ορίσετε την παράμετρο δράσης # Η απλούστερη ενέργεια που πρέπει να ακολουθήσετε: αποκλεισμός μόνο action_ =% (banaction) s [όνομα =% (__ όνομα __) s, port = "% (port) s" ", αλυσίδα ="% (αλυσίδα) s "] # απαγόρευση & αποστολή ενός μηνύματος ηλεκτρονικού ταχυδρομείου με αναφορά whois στο destemail. (% s), % = (%), % = (%) (% s-whois [όνομα =% (__ όνομα __) s, dest = "% (destemail) s", πρωτόκολλο = "% (πρωτόκολλο) s" με την αναφορά whois και τις σχετικές γραμμές # προς το destemail. (% s), % = (% s), % = (%)% s (όνομα_δεδομένου% s-whois-lines [όνομα =% (__ όνομα __) s, dest = "% (destemail) s", logpath =% (logpath) s, αλυσίδα = "% (αλυσίδα) s"] # Επιλέξτε προεπιλεγμένη ενέργεια. Για να αλλάξετε, απλώς αντικαταστήστε την τιμή της ενέργειας με την παρεμβολή # στην επιλεγμένη συντόμευση ενέργειας (π.χ. action_mw, action_mwl, κ.λπ.) στο jail.local # global (τμήμα [DEFAULT]) ή ανά συγκεκριμένη ενότητα action =% 

Οι περισσότερες από τις ρυθμίσεις εδώ μπορούν να παραμείνουν προεπιλεγμένες αν δεν θέλετε να αλλάξετε την banaction και το protocol . Η προεπιλεγμένη "banaction" είναι μέσω του IPTable. Μπορείτε να χρησιμοποιήσετε τη ρύθμιση πολλαπλών θυρών ή να δημιουργήσετε ένα νέο IpTable για αυτό. Η προεπιλεγμένη τιμή για το "πρωτόκολλο" είναι tcp, αλλά μπορείτε να την αλλάξετε σε udp, ανάλογα με τη σύνδεση που χρησιμοποιείτε.

Το τελευταίο τμήμα της ενότητας "Jail", όπου μπορείτε να διαμορφώσετε το Fail2Ban για να παρακολουθείτε τον διακομιστή Apache, τον διακομιστή FTP, τον διακομιστή αλληλογραφίας και τον διακομιστή DNS.

 [ssh] ενεργοποιημένη = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6 

Στις περισσότερες περιπτώσεις, απλά πρέπει να αλλάξετε τη ρύθμιση " enabled = false " σε " enabled = true " και θα ενεργοποιηθεί για την υπηρεσία αυτή. Εάν δεν χρησιμοποιείτε τη συνηθισμένη θύρα 20 για SSH, μπορείτε επίσης να αλλάξετε τον αριθμό θύρας στην παραπάνω ρύθμιση.

Αφού τελειώσετε με τη διαμόρφωση, πατήστε "Ctrl + o" για αποθήκευση και "ctrl + x" για έξοδο.

Τέλος, επανεκκινήστε την υπηρεσία Fail2Ban με την εντολή:

 sudo υπηρεσία fail2ban επανεκκίνηση 

Ποιους άλλους τρόπους χρησιμοποιείτε για την προστασία του διακομιστή SSH;