Το SSH στη δημόσια IP του διακομιστή WireGuard αποτυγχάνει στα Windows
Μια διαδρομή και ένας κανόνας τείχους προστασίας είναι δύο ξεχωριστές αποφάσεις. Στα Windows ένας ομότιμος με /0 ενεργοποιεί περιοριστικούς κανόνες, και η ίδια η μεταφορά της σήραγγας είναι η εξαίρεση.
Οι σήραγγες που σηκώνονται ενώ το SSH στη δημόσια διεύθυνση του διακομιστή σταματά να λειτουργεί μοιάζουν με διακομιστή που απορρίπτει τη σύνδεση. Στα Windows η πιθανότερη αιτία είναι τοπική: ένα AllowedIPs πλήρους σήραγγας με /0 ενεργοποιεί περιοριστικούς κανόνες τείχους προστασίας που επιτρέπουν τη μεταφορά της ίδιας της σήραγγας και ελάχιστα άλλα. Τα κρυπτογραφημένα πακέτα που φτάνουν σε αυτή τη διεύθυνση δεν λένε τίποτα για το αν μια ξεχωριστή σύνδεση TCP στην ίδια διεύθυνση επιτρέπεται να βγει.
Διαχώρισε τη δημόσια διεύθυνση του άκρου από την εσωτερική διεύθυνση σήραγγας πριν αγγίξεις τη λίστα ομοτίμων. Σχεδόν κάθε απόπειρα να διορθωθεί αυτό με επεξεργασία του AllowedIPs κάνει την πολιτική πιο αδύναμη αντί για τη διαδρομή σωστή.
Η άδεια δρομολόγησης και η άδεια του τείχους προστασίας είναι διαφορετικές
Μια διαδρομή αποφασίζει πού θα σταλεί ένα πακέτο, και ένας κανόνας τείχους προστασίας αποφασίζει αν επιτρέπεται να σταλεί καθόλου. Επομένως η προσθήκη διαδρομής για τη δημόσια IP του άκρου παράγει μια διαδρομή που το φίλτρο μπορεί ακόμη να μπλοκάρει, και αυτή ακριβώς είναι η σύγχυση που δημιουργεί αυτό το σύμπτωμα. Στα Windows το φίλτρο είναι μέρος της υλοποίησης και όχι πρόσθετο, άρα καμία καταχώριση διαδρομής δεν το αλλάζει. Οι δύο αποφάσεις είναι ξεχωριστές και αλλού, αν και οι προεπιλογές διαφέρουν.
Γι’ αυτό ένα traceroute προς το άκρο μπορεί να πετύχει ενώ μια απόπειρα SSH αποτυγχάνει. Το πρώτο το μεταφέρει η υπηρεσία που κατέχει την εξαίρεση, το δεύτερο όχι.
Τι κάνει το /0 στα Windows
Με έναν μόνο ομότιμο του οποίου οι επιτρεπόμενες διευθύνσεις καλύπτουν όλο τον χώρο IPv4, το WireGuard for Windows εφαρμόζει μια περιοριστική στάση τείχους προστασίας που μπλοκάρει κίνηση που διαφορετικά θα έβγαινε έξω από τη σήραγγα. Η μεταφορά της ίδιας της υπηρεσίας σήραγγας επιτρέπεται, γιατί αλλιώς το VPN δεν θα μπορούσε να λειτουργήσει. Μια άλλη εφαρμογή προς την ίδια δημόσια διεύθυνση δεν λαμβάνει τέτοια άδεια, αφού η εξαίρεση ανήκει στη μεταφορά και όχι στη διεύθυνση. Σημειώσεις δικτύωσης των Windows περιγράφουν αυτή τη συμπεριφορά και τον σχετικό έλεγχο στον επεξεργαστή.
Αυτοί οι κανόνες είναι ο μηχανισμός πίσω από τον όρο kill switch. Ενεργοποιούνται από τη μορφή της διαμόρφωσης και όχι από ένα πλαίσιο ελέγχου με αυτό το όνομα.
Οι εξαιρέσεις αλλάζουν το μοντέλο προστασίας
Η αντικατάσταση του /0 με δύο μισά προεπιλεγμένα προθέματα είναι ο τεκμηριωμένος τρόπος να διατηρηθεί ευρεία δρομολόγηση χωρίς την περιοριστική σημασιολογία, και είναι διαφορετικό μοντέλο προστασίας, όχι συντομότερη γραφή. Η αφαίρεση της διεύθυνσης του άκρου από τα επιτρεπόμενα προθέματα είναι η άλλη συνήθης λύση, που επιμηκύνει τη λίστα και αλλάζει επίσης ποιοι κανόνες ενεργοποιούνται. Καμία δεν είναι τοπική αλλαγή με τοπικό αποτέλεσμα. Καθεμία μετακινεί το όριο για κάθε ροή στο μηχάνημα, όχι μόνο για τη σύνδεση που επισκευάζατε.
Όπου το άμεσο δημόσιο SSH είναι πραγματικά απαραίτητο, ο κάτοχος του προφίλ πρέπει να σχεδιάσει και την εξωτερική διαδρομή και την άδεια του τείχους προστασίας της, και να αποφασίσει τι συμβαίνει στην άσχετη κίνηση όταν πέσει η σήραγγα. Η ξεχωριστή εξέταση IPv4 και IPv6 ανήκει σε αυτό, αφού οι κανόνες εκφράζονται ανά οικογένεια. Μια ευρεία παράκαμψη που προστίθεται για να σωθεί μία συνεδρία διαχείρισης συνήθως εκθέτει περισσότερα από τη συνεδρία.
Δοκίμασε τη διαδρομή διαχείρισης που διάλεξες
Αποφάσισε πρώτα αν η διαχείριση πρέπει να ταξιδεύει μέσα στη σήραγγα ή έξω από αυτήν, και μετά δοκίμασε αυτή την επιλογή αντί και τις δύο μαζί. Οι παρακάτω εντολές ελέγχουν τις διευθύνσεις του πελάτη, την κατάσταση του ομοτίμου και μια σύνδεση σε κάθε στόχο. Εκτέλεσέ τες από τον πελάτη Windows όσο η σήραγγα είναι σηκωμένη.
ipconfig | findstr /i "WireGuard IPv4"
wg show
ssh -v [email protected]
Test-NetConnection 203.0.113.9 -Port 22
Ένα επιτυχές SSH στην εσωτερική διεύθυνση αποδεικνύει ότι η σήραγγα μεταφέρει κίνηση διαχείρισης και ότι το ίδιο το τείχος προστασίας του διακομιστή τη δέχεται από το εύρος των ομοτίμων. Μια αποτυχία και στους δύο στόχους είναι πρόβλημα στην πλευρά του διακομιστή ή στο κλειδί, όχι πρόβλημα δρομολόγησης των Windows. Αν η εσωτερική διεύθυνση λειτουργεί και η εξωτερική όχι, η τοπική στάση του τείχους προστασίας κάνει ακριβώς αυτό για το οποίο σχεδιάστηκε. Διάβασε τα τρία αποτελέσματα με αυτή τη σειρά πριν επεξεργαστείς ένα προφίλ.
Κατέγραψε τη διαδρομή διαχείρισης, τη διεύθυνση που χρησιμοποιήθηκε και τη συμπεριφορά όταν η σήραγγα είναι κάτω. Αυτή η σημείωση είναι που εμποδίζει τον επόμενο να διευρύνει την παράκαμψη για να κερδίσει πέντε λεπτά.