Το UFW λέει ότι δεν βρίσκει προφίλ που να ταιριάζει με το OpenSSH, και η αναζήτηση της αιτίας οδηγεί κατευθείαν στον διακομιστή SSH. Αυτή είναι η λάθος κατεύθυνση: το μήνυμα αφορά έναν ονομαστικό ορισμό τείχους προστασίας και δεν λέει τίποτα για το αν το sshd είναι εγκατεστημένο, σε λειτουργία ή σε ακρόαση. Ένα προφίλ εφαρμογής του UFW είναι μια λίστα θυρών και πρωτοκόλλων με μια ετικέτα. Η ανάγνωση του ορισμού απαιτεί μία εντολή και συνήθως τελειώνει την έρευνα.

Βήμα 1: καταγράψτε τα ονόματα που γνωρίζει πραγματικά το UFW

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

ufw app list
ufw app info OpenSSH

Η λίστα είναι μικρή σε μια προεπιλεγμένη εγκατάσταση, και τα ονόματα δεν είναι ονόματα πακέτων. Ένα προφίλ με όνομα OpenSSH μπορεί να λείπει ενώ το πακέτο openssh-server είναι εγκατεστημένο, και το αντίστροφο είναι επίσης δυνατό. Χρησιμοποιήστε το ακριβές όνομα που εκτυπώνει η λίστα· ένα όνομα προφίλ VPN ή ένας εκκινητής επιφάνειας εργασίας με παρόμοια γραφή δεν είναι προφίλ εφαρμογής του UFW. Αν λείπει το όνομα που θέλετε, αυτό είναι το εύρημα, και το επόμενο βήμα είναι να δείτε τι θα έπρεπε να το παρέχει.

Βήμα 2: διαβάστε τον ορισμό, όχι την ετικέτα

Ένα προφίλ είναι ένα αρχείο τύπου INI κάτω από /etc/ufw/applications.d, με όνομα, τίτλο, περιγραφή και πεδίο θυρών. Το πεδίο θυρών μπορεί να απαριθμεί πολλές θύρες και μεταφορές, οπότε η ετικέτα σας λέει λιγότερα από τον ορισμό. Το εγχειρίδιο του UFW τεκμηριώνει αυτά τα πεδία και τη λειτουργία ενημέρωσης εφαρμογών. Διαβάστε το αρχείο αντί να υποθέσετε ότι το όνομα σημαίνει μία γνωστή θύρα.

cat /etc/ufw/applications.d/openssh-server
ufw app info OpenSSH

Ένας ορισμός που περιέχει 22/tcp περιγράφει τη θύρα TCP 22 και τίποτα άλλο. Δεν αποδεικνύει ότι ο δαίμονας σε αυτό το μηχάνημα ακούει εκεί, και δεν καλύπτει μια δεύτερη θύρα που προσθέσατε αργότερα. Αν ο δαίμονας τρέχει αλλού, το προφίλ είναι η λάθος άδεια ακόμα και αν το όνομά του ταιριάζει με το προϊόν. Συγκρίνετε τον ακροατή με τον ορισμό πριν επιτρέψετε οποιοδήποτε από τα δύο.

ss -ltnp 'sport = :22'

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

Βήμα 3: διαχωρίστε το προφίλ από την υπηρεσία που εκτελείται

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

Για έναν διακομιστή VPN ο διαχωρισμός συνεχίζεται αφού επιτραπεί ο εξωτερικός ακροατής. Η άδεια για τη θύρα της κρυπτογραφημένης μεταφοράς δεν ενεργοποιεί την προώθηση στον πυρήνα, δεν προσθέτει κανόνα NAT και δεν δίνει στους χρήστες της σήραγγας πρόσβαση σε LAN. Κάθε ένα από αυτά είναι ξεχωριστή πολιτική με τη δική της ανασκόπηση. Ένα προφίλ που πήρε το όνομα του προϊόντος VPN περιγράφει μόνο τις θύρες που απαριθμεί, και η υπόλοιπη διαμόρφωση του διακομιστή παραμένει δική σας να τη γράψετε.

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

Βήμα 4: κρατήστε έναν δρόμο επιστροφής πριν επαναφορτώσετε το τείχος προστασίας

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

ufw status verbose
ufw allow 22/tcp
ufw app update OpenSSH

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

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

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