Υπάρχει μια τελετή μύησης για όποιον είναι νέος στο να τρέχει τον δικό του server: αποφασίζετε να στήσετε ένα firewall, πληκτρολογείτε μερικές εντολές ufw, πατάτε enable — και το terminal σας σιωπά. Το SSH χάθηκε. Δεν κρασάρατε τίποτα, δεν σας χάκαραν. Απλώς κλειδώσατε την πόρτα με τον εαυτό σας απέξω.
Συμβαίνει και σε καλούς sysadmins. Συνέβη σε έναν πελάτη μας την περασμένη εβδομάδα, γι' αυτό το γράφω. Τα καλά νέα: είναι εντελώς ανακτήσιμο σε λιγότερο από ένα λεπτό, και δεν χρειάζεται να κάνετε επανεγκατάσταση ή να χάσετε ούτε ένα αρχείο. Ιδού πώς.

Τι πραγματικά πήγε στραβά
Το ufw (Uncomplicated Firewall) εξ ορισμού αρνείται όλα τα εισερχόμενα. Τη στιγμή που τρέχετε ufw enable, οτιδήποτε δεν επιτρέψατε ρητά απορρίπτεται — συμπεριλαμβανομένης της συνεδρίας SSH στην οποία κάθεστε. Αν ξεχάσατε να κάνετε ufw allow το SSH port σας πρώτα, κόψατε τη δική σας σύνδεση τη στιγμή που ο κανόνας τίθεται σε ισχύ.
Αυτή είναι η κλασική εκδοχή. Υπάρχουν δύο άλλες γεύσεις που πιάνουν τους ανθρώπους:
- Επιτρέψατε το λάθος port. Τυπογραφικό, ή επιτρέψατε το service port (ας πούμε 8080) και ξεχάσατε το 22.
- Επιτρέψατε το 22 αλλά μετά ορίσατε έναν κανόνα
denyυψηλότερα στη λίστα που το επισκιάζει. Το ufw είναι ευαίσθητο στη σειρά.
Είτε έτσι είτε αλλιώς ο ίδιος ο server είναι μια χαρά — τρέχει, ο δίσκος άθικτος, η εφαρμογή σας ακόμη βουίζει πίσω από τον τοίχο. Είναι καθαρά ένα πρόβλημα πρόσβασης δικτύου. Που είναι ακριβώς γιατί η λύση είναι εύκολη.
Η λάθος κίνηση: επανεγκατάσταση
Το πρώτο ένστικτο είναι συχνά «απλώς κάνε reset τον server και ξεκίνα από την αρχή.» Μην — όχι γι' αυτό. Μια επανεγκατάσταση διαγράφει τα πάντα για να πάρετε πίσω ένα λειτουργικό SSH, όταν το πράγμα που μπλοκάρει το SSH είναι μία εντολή firewall που μπορείτε να αναιρέσετε σε δέκα δευτερόλεπτα. Θα καίγατε το σπίτι επειδή κλειδώσατε την μπροστινή πόρτα.
Η επανεγκατάσταση είναι η σωστή επιλογή όταν θέλετε καθαρή αρχή. Για ένα ufw lockout, είναι υπερβολή.
Η σωστή κίνηση: το web console
Κάθε VPS που αξίζει τον κόπο σας δίνει ένα out-of-band console — έναν τρόπο εισόδου στη μηχανή που δεν πάει μέσω SSH ούτε καν του network stack. Στο EQVPS είναι το κουμπί Console στη σελίδα του server σας. Είναι ένα serial console: μόνο κείμενο, συνδεδεμένο κατευθείαν στο VM με τον τρόπο που θα ήταν μια οθόνη και ένα πληκτρολόγιο. Ένας κανόνας firewall δεν έχει καμία δύναμη πάνω του, γιατί δεν είναι κίνηση δικτύου.

Κάντε κλικ, συνδεθείτε με τα διαπιστευτήρια root σας (ή αποκαλύψτε τον κωδικό στον πίνακα αν δεν τον έχετε πρόχειρο), και είστε στο box — firewall ή όχι firewall.
Τώρα αναιρέστε τη ζημιά. Ταχύτερη διαδρομή:
sudo ufw disable
Αυτό σβήνει το firewall και κρατά τους κανόνες σας, ώστε να μπορείτε να το ξανα-ενεργοποιήσετε αργότερα μόλις διορθώσετε το λάθος. Το SSH επιστρέφει κατευθείαν.
Αν προτιμάτε να μη ρίξετε το firewall εντελώς, απλώς ανοίξτε το port που χάσατε:
sudo ufw allow 22
sudo ufw status numbered
Η προβολή status numbered αξίζει μια ματιά — δείχνει τη σειρά των κανόνων, που είναι εκεί που κρύβονται οι περιπτώσεις «επέτρεψα το 22 αλλά ακόμη μπλοκάρει». Αν ένα deny κάθεται πάνω από το allow σας, διαγράψτε το με sudo ufw delete <number>.
Το NAT gotcha που χάνουν οι περισσότεροι οδηγοί
Αν είστε σε ένα πακέτο NAT, υπάρχει μια παγίδα εδώ. Συνδέεστε με SSH σε ένα υψηλό port — κάτι σαν 20266 — οπότε το φυσικό ένστικτο είναι ufw allow 20266. Αυτό δεν κάνει τίποτα.
Στο NAT, αυτό το εξωτερικό port προωθείται στο port 22 μέσα στο VM. Το ufw τρέχει μέσα στο VM και βλέπει πάντα μόνο το 22. Οπότε ο κανόνας που πραγματικά χρειάζεστε είναι:
sudo ufw allow 22
Επιτρέψτε το 20266 και θα κοιτάτε μια ακόμη-χαλασμένη σύνδεση αναρωτώμενοι γιατί. Επιτρέψτε το 22 και είστε μέσα. Ίδια ιδέα για οποιαδήποτε υπηρεσία: επιτρέψτε το port στο οποίο ακούει η διεργασία μέσα στο box, όχι το προωθημένο που συνδέεστε από έξω.
Πώς να μην το ξανακάνετε
Η λύση παίρνει ένα λεπτό, αλλά το να μην τη χρειάζεστε είναι πιο ωραίο. Δύο συνήθειες:
Επιτρέψτε το SSH port σας πριν το ενεργοποιήσετε. Με αυτή τη σειρά, πάντα:
sudo ufw allow 22
sudo ufw enable
Κάντε το ανάποδα και επιστρέφετε στο console.
Κρατήστε μια δεύτερη συνεδρία ανοιχτή όσο αλλάζετε κανόνες firewall. Συνδεθείτε δύο φορές. Κάντε τις αλλαγές σας σε ένα παράθυρο· αν το SSH πεθάνει, το άλλο παράθυρο είναι ακόμη ζωντανό για να το διορθώσει. Παλιό κόλπο, σας σώζει κάθε φορά.
Και αν στήνετε ένα φρέσκο box, η checklist ασφαλείας νέου-VPS μας καλύπτει το ufw με τη σωστή σειρά, μαζί με SSH keys και τη χούφτα άλλων πραγμάτων που πραγματικά μετρούν στα πρώτα δέκα λεπτά.
Το συμπέρασμα
Ένα ufw lockout φαίνεται τρομακτικό και είναι σχεδόν τίποτα. Ο server δεν έφυγε ποτέ· απλώς χρειάζεστε μια πόρτα που ένα firewall δεν μπορεί να κλείσει με δύναμη — το web console — και μία εντολή. Κρατήστε το ufw disable και το console στην τσέπη σας, επιτρέψτε το port σας πριν το ενεργοποιήσετε την επόμενη φορά, και δεν θα ιδρώσετε ξανά γι' αυτό.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.