Κάθε εκτεθειμένη υπηρεσία παίρνει την ίδια συμβουλή: βάλτε fail2ban πάνω της. Για μια πύλη VPN η συμβουλή ούτε λάθος είναι ούτε αρκετή, και το να τη μεταχειρίζεστε ως τυπικό βήμα σκλήρυνσης είναι ακριβώς το πώς καταλήγουν οι άνθρωποι με μια φυλακή (jail) που δεν μπλοκάρει τίποτα χρήσιμο. Το Fail2ban διαβάζει τις εγγραφές αποτυχίας στις οποίες το δείχνετε και ζητά από ένα backend επιβολής να αποκλείσει τις αντίστοιχες πηγές. Η όλη αξία του εξαρτάται από το ποια επιφάνεια ταυτοποίησης παρήγαγε την εγγραφή, αν η διεύθυνση μέσα σε αυτή είναι ο πραγματικός πελάτης και τι συμβαίνει σε όλους τους άλλους πίσω από αυτή τη διεύθυνση.

Τι είναι το fail2ban μηχανικά

Ένα φίλτρο αντιστοιχίζει γραμμές σε ένα αρχείο καταγραφής, μια φυλακή μετρά αντιστοιχίσεις ανά πηγή και μια ενέργεια εφαρμόζει αποκλεισμό μέσω ενός backend τείχους προστασίας. Τρία κινούμενα μέρη, και καθένα μπορεί να είναι λάθος ανεξάρτητα.

Κανένα από τα τρία δεν αγγίζει τη διαδρομή ταυτοποίησης: το fail2ban αντιδρά σε αποδείξεις εκ των υστέρων και ποτέ δεν επικυρώνει το ίδιο ένα διαπιστευτήριο. Μια φυλακή μπορεί επομένως να τρέχει καθαρά ενώ η επιφάνεια που ονομάζει παραμένει ακριβώς τόσο εκτεθειμένη όσο πριν.

Ο ακροατής της σήραγγας δεν είναι φόρμα σύνδεσης

Ένας ακροατής OpenVPN που προστατεύεται με tls-auth ή tls-crypt απορρίπτει πακέτα χωρίς την προστασία του καναλιού ελέγχου πριν αρχίσει η συνηθισμένη επεξεργασία TLS. Ένας σαρωτής που δεν έχει ποτέ το κλειδί δεν παράγει τίποτα που μπορεί να μετρήσει το φίλτρο σας. Η ταυτοποίηση με πιστοποιητικό προσθέτει άλλη μια πύλη, επειδή δεν υπάρχει κωδικός πρόσβασης για μάντεμα. Το έργο Fail2ban τεκμηριώνει ένα γενικό μοντέλο με γνώμονα τα αρχεία καταγραφής, και ένα γενικό φίλτρο VPN δεν μετατρέπει ένα μη ταυτοποιημένο πακέτο σε σημαντικό συμβάν αποτυχίας.

Αν η πύλη δέχεται μόνο πιστοποιητικά, η ιστορία brute-force από την οποία αμύνεστε μπορεί να μην υπάρχει καθόλου σε αυτή τη θύρα.

Ποια επιφάνεια προστατεύετε λοιπόν;

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

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

Η απόδοση προέλευσης είναι ο αδύναμος κρίκος

Ένας αποκλεισμός είναι τόσο καλός όσο η διεύθυνση που στοχεύει. Όταν η υπηρεσία βρίσκεται πίσω από έναν τοπικό αντίστροφο διακομιστή μεσολάβησης, η διεύθυνση πελάτη στο αρχείο καταγραφής μπορεί να είναι ο μεσολαβητής, και ο αποκλεισμός του αφαιρεί όλους. Το να εμπιστεύεστε μια προωθημένη κεφαλίδα από μη αξιόπιστη πηγή δίνει σε έναν επιτιθέμενο τη δυνατότητα να αποκλείει αυθαίρετες διευθύνσεις. Στο UDP οι διευθύνσεις προέλευσης μπορούν να πλαστογραφηθούν, οπότε η μέτρησή τους αξίζει περισσότερη προσοχή από τη μέτρηση μιας ολοκληρωμένης σύνδεσης TCP.

Καταγράψτε τη μέθοδο απόδοσης προέλευσης στο README της φυλακής, επειδή μια προωθημένη κεφαλίδα από μη αξιόπιστο άλμα μετατρέπει έναν αποκλεισμό σε όπλο.

Το παράπλευρο κόστος είναι άλλοι άνθρωποι

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

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

Πότε να το υιοθετήσετε και πότε να διορθώσετε κάτι άλλο

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

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

Σχετικά άρθρα