Προστατέψτε το Zimbra OSE από ωμή βία και επιθέσεις DoS

Το Zimbra Collaboration Suite Open-Source Edition διαθέτει πολλά ισχυρά εργαλεία στο οπλοστάσιό του για τη διασφάλιση της ασφάλειας των πληροφοριών. Ανάμεσά τους Postscreen — μια λύση για την προστασία ενός διακομιστή αλληλογραφίας από επιθέσεις botnet, ClamAV — ένα antivirus που μπορεί να σαρώσει εισερχόμενα αρχεία και μηνύματα ηλεκτρονικού ταχυδρομείου για κακόβουλο λογισμικό και SpamAssassin — ένα από τα καλύτερα φίλτρα ανεπιθύμητης αλληλογραφίας σήμερα. Ωστόσο, αυτά τα εργαλεία δεν είναι σε θέση να παρέχουν προστασία για το Zimbra OSE από τέτοιου είδους επιθέσεις όπως η ωμή βία. Όχι η πιο κομψή, αλλά ακόμα αρκετά αποτελεσματική, επίθεση brute-force με κωδικό πρόσβασης με χρήση ειδικού λεξικού είναι γεμάτη όχι μόνο με την πιθανότητα ενός επιτυχημένου hack με όλες τις επακόλουθες συνέπειες, αλλά και με τη δημιουργία ενός σημαντικού φορτίου στον διακομιστή που επεξεργάζεται όλες τις ανεπιτυχείς προσπάθειες χακάρισμα του διακομιστή με το Zimbra OSE.

Προστατέψτε το Zimbra OSE από ωμή βία και επιθέσεις DoS

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

Προστατέψτε το Zimbra OSE από ωμή βία και επιθέσεις DoS

Για προστασία από ωμή βία, μια πολύ καλύτερη επιλογή είναι ένα ειδικό εργαλείο που ονομάζεται DoSFilter, το οποίο είναι ενσωματωμένο στο Zimbra OSE και μπορεί να τερματίσει αυτόματα τη σύνδεση με το Zimbra OSE μέσω HTTP. Με άλλα λόγια, η αρχή του DoSFilter είναι παρόμοια με την αρχή του PostScreen, μόνο που χρησιμοποιείται για διαφορετικό πρωτόκολλο. Αρχικά σχεδιασμένο για να περιορίζει τον αριθμό των ενεργειών που μπορεί να εκτελέσει ένας χρήστης, το DoSFilter μπορεί επίσης να παρέχει προστασία από επιθέσεις ωμής βίας. Η βασική του διαφορά από το εργαλείο που είναι ενσωματωμένο στο Zimbra είναι ότι μετά από έναν ορισμένο αριθμό ανεπιτυχών προσπαθειών, δεν αποκλείει τον ίδιο τον χρήστη, αλλά τη διεύθυνση IP από την οποία γίνονται πολλές προσπάθειες σύνδεσης σε έναν συγκεκριμένο λογαριασμό. Χάρη σε αυτό, ένας διαχειριστής συστήματος όχι μόνο μπορεί να προστατευτεί από την ωμή βία, αλλά και να αποφύγει τον αποκλεισμό των εργαζομένων της επιχείρησης προσθέτοντας απλώς το εσωτερικό δίκτυο της επιχείρησής του στη λίστα των αξιόπιστων διευθύνσεων IP και υποδικτύων.

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

Μπορείτε να διαμορφώσετε το DoSFilter χρησιμοποιώντας τις ακόλουθες εντολές κονσόλας:

  • zimbraHttpDosFilterMaxRequestsPerSec — Χρησιμοποιώντας αυτήν την εντολή, μπορείτε να ορίσετε τον μέγιστο αριθμό επιτρεπόμενων συνδέσεων για έναν χρήστη. Από προεπιλογή, αυτή η τιμή είναι 30 συνδέσεις.
  • zimbraHttpDosFilterDelayMillis — Χρησιμοποιώντας αυτήν την εντολή, μπορείτε να ορίσετε μια καθυστέρηση σε χιλιοστά του δευτερολέπτου για συνδέσεις που υπερβαίνουν το όριο που έχει οριστεί από την προηγούμενη εντολή. Εκτός από τις ακέραιες τιμές, ο διαχειριστής μπορεί να καθορίσει 0 για να μην υπάρχει καθυστέρηση και -1 για να τερματίσει απλώς όλες τις συνδέσεις που υπερβαίνουν το καθορισμένο όριο. Από προεπιλογή, αυτή η τιμή είναι -1.
  • zimbraHttpThrottleSafeIPs — Χρησιμοποιώντας αυτήν την εντολή, ο διαχειριστής μπορεί να καθορίσει αξιόπιστες διευθύνσεις IP και υποδίκτυα που δεν θα υπόκεινται στους παραπάνω περιορισμούς. Σημειώστε ότι η σύνταξη αυτής της εντολής μπορεί να διαφέρει ανάλογα με το επιθυμητό αποτέλεσμα. Για παράδειγμα, εισάγοντας την εντολή zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, θα ξαναγράψετε εντελώς ολόκληρη τη λίστα και θα αφήσετε μόνο μία διεύθυνση IP σε αυτήν. Εάν εισάγετε την εντολή zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, τότε η διεύθυνση IP που εισαγάγατε θα προστεθεί στη λευκή λίστα. Ομοίως, χρησιμοποιώντας το σύμβολο της αφαίρεσης, μπορείτε να αφαιρέσετε οποιαδήποτε IP από την επιτρεπόμενη λίστα.

Λάβετε υπόψη ότι το DoSFilter ενδέχεται να δημιουργήσει ορισμένα ζητήματα κατά τη χρήση των επεκτάσεων Zextras Suite Pro. Για να τις αποφύγετε, συνιστούμε να αυξήσετε τον αριθμό των ταυτόχρονων συνδέσεων από 30 σε 100 χρησιμοποιώντας την εντολή zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Επιπλέον, συνιστούμε να προσθέσετε το εσωτερικό δίκτυο της εταιρείας στη λίστα με τα επιτρεπόμενα. Αυτό μπορεί να γίνει χρησιμοποιώντας την εντολή zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Αφού κάνετε οποιεσδήποτε αλλαγές στο DoSFilter, φροντίστε να επανεκκινήσετε τον διακομιστή αλληλογραφίας χρησιμοποιώντας την εντολή επανεκκίνηση zmmailboxdctl.

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

Για να ασφαλίσετε πλήρως τον εταιρικό διακομιστή σας με το Zimbra OSE, μπορείτε να χρησιμοποιήσετε μια λύση όπως το Fail2ban, το οποίο είναι ένα πλαίσιο που μπορεί να παρακολουθεί συνεχώς τα αρχεία καταγραφής των συστημάτων πληροφοριών για επαναλαμβανόμενες ενέργειες και να αποκλείει τον εισβολέα αλλάζοντας τις ρυθμίσεις του τείχους προστασίας. Ο αποκλεισμός σε τόσο χαμηλό επίπεδο σάς επιτρέπει να απενεργοποιήσετε τους εισβολείς ακριβώς στο στάδιο της σύνδεσης IP με τον διακομιστή. Έτσι, το Fail2Ban μπορεί να συμπληρώσει τέλεια την προστασία που έχει δημιουργηθεί με το DoSFilter. Ας μάθουμε πώς μπορείτε να κάνετε φίλους με το Fail2Ban και το Zimbra OSE και έτσι να αυξήσετε την ασφάλεια της υποδομής πληροφορικής της εταιρείας σας.

Όπως κάθε άλλη εφαρμογή εταιρικής κατηγορίας, η Zimbra Collaboration Suite Open-Source Edition διατηρεί λεπτομερή αρχεία καταγραφής της λειτουργίας της. Τα περισσότερα από αυτά είναι αποθηκευμένα σε φάκελο /opt/zimbra/log/ με τη μορφή αρχείων. Εδώ είναι μερικά μόνο από αυτά:

  • mailbox.log — Αρχεία καταγραφής υπηρεσιών αλληλογραφίας αποβάθρας
  • audit.log — αρχεία καταγραφής ελέγχου ταυτότητας
  • clamd.log — αρχεία καταγραφής λειτουργίας προστασίας από ιούς
  • freshclam.log — αρχεία καταγραφής ενημερώσεων προστασίας από ιούς
  • convertd.log — αρχεία καταγραφής μετατροπέα συνημμένων
  • zimbrastats.csv — αρχεία καταγραφής απόδοσης διακομιστή

Επίσης, τα αρχεία καταγραφής Zimbra μπορούν να βρεθούν στο αρχείο /var/log/zimbra.log, όπου φυλάσσονται τα αρχεία καταγραφής της Postfix και της ίδιας της Zimbra.

Για να προστατεύσουμε το σύστημά μας από ωμή βία, θα παρακολουθούμε γραμματοκιβώτιο.log, έλεγχος.log и zimbra.log.

Για να λειτουργήσουν όλα, πρέπει να έχετε εγκατεστημένο το Fail2Ban και τα iptables στον διακομιστή σας με το Zimbra OSE. Εάν χρησιμοποιείτε Ubuntu, μπορείτε να το κάνετε χρησιμοποιώντας τις εντολές dpkg -s fail2ban, εάν χρησιμοποιείτε CentOS, μπορείτε να το ελέγξετε χρησιμοποιώντας τις εντολές yum λίστα εγκατεστημένη fail2ban. Εάν δεν έχετε εγκατεστημένο το Fail2Ban, η εγκατάστασή του δεν θα είναι πρόβλημα, καθώς αυτό το πακέτο είναι διαθέσιμο σχεδόν σε όλα τα τυπικά αποθετήρια.

Μόλις εγκατασταθεί όλο το απαραίτητο λογισμικό, μπορείτε να ξεκινήσετε τη διαμόρφωση του Fail2Ban. Για να το κάνετε αυτό, πρέπει να δημιουργήσετε ένα αρχείο ρυθμίσεων. /etc/fail2ban/filter.d/zimbra.conf, στις οποίες θα γράψουμε κανονικές εκφράσεις για αρχεία καταγραφής OSE Zimbra που θα αντιστοιχούν σε μη έγκυρες προσπάθειες σύνδεσης και θα ενεργοποιούν μηχανισμούς Fail2Ban. Ακολουθεί ένα παράδειγμα περιεχομένου zimbra.conf με ένα σύνολο κανονικών εκφράσεων που ταιριάζουν με διάφορα σφάλματα που επιστρέφονται από το Zimbra OSE όταν αποτυγχάνει ο έλεγχος ταυτότητας:

# Fail2Ban configuration file
 
[Definition]
failregex = [ip=<HOST>;] account - authentication failed for .* (no such account)$
                        [ip=<HOST>;] security - cmd=Auth; .* error=authentication failed for .*, invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=soap; error=authentication failed for .* invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=imap; error=authentication failed for .* invalid password;$
                        [oip=<HOST>;.* SoapEngine - handler exception: authentication failed for .*, account not found$
                        WARN .*;ip=<HOST>;ua=ZimbraWebClient .* security - cmd=AdminAuth; .* error=authentication failed for .*;$

ignoreregex =

Μόλις γραφτούν οι τυπικές εκφράσεις για το Zimbra OSE, ήρθε η ώρα να ξεκινήσετε την επεξεργασία της ίδιας της διαμόρφωσης Fail2ban. Οι ρυθμίσεις για αυτό το βοηθητικό πρόγραμμα βρίσκονται στο αρχείο /etc/fail2ban/jail.conf. Για κάθε περίπτωση, ας δημιουργήσουμε ένα αντίγραφο ασφαλείας χρησιμοποιώντας την εντολή cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Μετά από αυτό, θα φέρουμε αυτό το αρχείο περίπου στην ακόλουθη μορφή:

# Fail2Ban configuration file
 
[DEFAULT]
ignoreip = 192.168.0.1/24
bantime = 600
findtime = 600
maxretry = 5
backend = auto
 
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=admin@company.ru, sender=fail2ban@company.ru]
logpath = /var/log/messages
maxretry = 5
 
[sasl-iptables]
enabled = false
filter = sasl
backend = polling
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=sasl, dest=support@company.ru]
logpath = /var/log/zimbra.log
 
[ssh-tcpwrapper]
enabled = false
filter = sshd
action = hostsdeny
sendmail-whois[name=SSH, dest=support@ company.ru]
ignoreregex = for myuser from
logpath = /var/log/messages
 
[zimbra-account]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-account]
sendmail[name=zimbra-account, dest=support@company.ru ]
logpath = /opt/zimbra/log/mailbox.log
bantime = 600
maxretry = 5
 
[zimbra-audit]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-audit]
sendmail[name=Zimbra-audit, dest=support@company.ru]
logpath = /opt/zimbra/log/audit.log
bantime = 600
maxretry = 5
 
[zimbra-recipient]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-recipient]
sendmail[name=Zimbra-recipient, dest=support@company.ru]
logpath = /var/log/zimbra.log
bantime = 172800
maxretry = 5
 
[postfix]
enabled = true
filter = postfix
action = iptables-multiport[name=postfix, port=smtp, protocol=tcp]
sendmail-buffered[name=Postfix, dest=support@company.ru]
logpath = /var/log/zimbra.log
bantime = -1
maxretry = 5

Αν και αυτό το παράδειγμα είναι αρκετά γενικό, αξίζει να διευκρινίσετε ορισμένες ρυθμίσεις που ίσως θέλετε να αλλάξετε όταν διαμορφώνετε μόνοι σας το Fail2Ban:

  • Ignoreip — χρησιμοποιώντας αυτήν την παράμετρο, μπορείτε να καθορίσετε μια συγκεκριμένη IP ή υποδίκτυο, διευθύνσεις από τις οποίες δεν πρέπει να ελέγχει το Fail2Ban. Συνήθως, το εσωτερικό δίκτυο της εταιρείας και άλλες αξιόπιστες διευθύνσεις προστίθενται στη λίστα παράβλεψης.
  • Bantime — Ο χρόνος για τον οποίο θα απαγορευτεί ο δράστης. Μετρήθηκε σε δευτερόλεπτα. Η τιμή -1 σημαίνει μόνιμη απαγόρευση.
  • Maxretry — Ο μέγιστος αριθμός φορών που μια διεύθυνση IP μπορεί να προσπαθήσει να αποκτήσει πρόσβαση στον διακομιστή.
  • Sendmail — Μια ρύθμιση που σας επιτρέπει να στέλνετε αυτόματα ειδοποιήσεις μέσω email σχετικά με την ενεργοποίηση του Fail2Ban.
  • Βρείτε χρόνο — Μια ρύθμιση που σας επιτρέπει να καθορίσετε ένα χρονικό διάστημα μετά το οποίο μια διεύθυνση IP μπορεί να προσπαθήσει να αποκτήσει ξανά πρόσβαση στον διακομιστή αφού εξαντληθεί ο μέγιστος αριθμός ανεπιτυχών προσπαθειών (η παράμετρος maxretry)

Αφού αποθηκεύσετε το αρχείο με τις ρυθμίσεις Fail2Ban, το μόνο που μένει είναι να επανεκκινήσετε αυτό το βοηθητικό πρόγραμμα χρησιμοποιώντας την εντολή επανεκκίνηση της υπηρεσίας fail2ban. Μετά την επανεκκίνηση, τα κύρια αρχεία καταγραφής του Zimbra θα παρακολουθούνται συνεχώς για αντιστοιχίσεις κανονικών εκφράσεων. Αυτό θα επιτρέψει στον διαχειριστή να εξαλείψει ουσιαστικά κάθε πιθανότητα διείσδυσης εισβολέα όχι μόνο στα γραμματοκιβώτια Open-Source Edition του Zimbra Collaboration Suite, αλλά και να προστατεύσει όλες τις υπηρεσίες που εκτελούνται εντός του Zimbra OSE και να γνωρίζει τυχόν προσπάθειες απόκτησης μη εξουσιοδοτημένης πρόσβασης.

Για όλες τις ερωτήσεις σχετικά με το Zextras Suite, μπορείτε να επικοινωνήσετε με την Εκπρόσωπο Zextras Αικατερίνα Τριανταφυλλίδη μέσω email katerina@zextras.com

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο