Ποια θύρα VPN να ανοίξετε σε ένα τείχος προστασίας: πρωτόκολλο προς πρωτόκολλο
Το PPTP θέλει TCP 1723 και GRE, το L2TP/IPsec θέλει UDP 500 και 4500 και ESP, και τα SSTP, OpenVPN και WireGuard χρειάζονται από μία θύρα. Δείτε τι πρέπει να ανοίξετε.
Δύο ξεχωριστοί κανόνες αποφασίζουν αν μια σήραγγα VPN θα περάσει ένα τείχος προστασίας: η θύρα στην οποία καλεί ο πελάτης και το πρωτόκολλο που μεταφέρει το φορτίο. Ανοίξτε μόνο τον πρώτο και η σήραγγα επικυρώνεται, αλλά μετά δεν κινεί δεδομένα. Το ελάχιστο είναι μία θύρα TCP και GRE για το PPTP, δύο θύρες UDP και ESP για το L2TP/IPsec και το IKEv2, και μία θύρα για τα SSTP, OpenVPN και WireGuard. Η κατεύθυνση, η παρακολούθηση κατάστασης και το NAT κρίνουν τα υπόλοιπα.
Ξεκινήστε από τη θύρα στην οποία καλεί ο πελάτης
Κάθε οικογένεια έχει ένα σημείο εισόδου που ο πελάτης αγγίζει πρώτο, και αυτό το σημείο πρέπει να ονομάζει ο κανόνας σας. Οι πελάτες PPTP συνδέονται στην TCP 1723. Το L2TP/IPsec ξεκινά IKE στην UDP 500 και περνά στην UDP 4500 όταν χρησιμοποιείται διέλευση NAT, με το ίδιο το πλαίσιο L2TP στην UDP 1701 μέσα στη σήραγγα. Το SSTP τυλίγει τη συνεδρία σε TLS στην TCP 443, το IKEv2 διαπραγματεύεται στις UDP 500 και 4500, το OpenVPN χρησιμοποιεί από προεπιλογή UDP 1194 αλλά συχνά μετακινείται στην TCP 443, και το WireGuard ακούει στην UDP 51820.
| Family | Rule to add on the gateway | Typical mistake |
|---|---|---|
| WireGuard | UDP port from ListenPort, for the peer address | Assuming 51820 when the config says otherwise |
| OpenVPN | The configured UDP or TCP port, often 443 | Opening 1194 after the server moved |
| SSTP | TCP 443 limited to the gateway IP | Allowing 443 to any destination |
| IKEv2 | UDP 500 and UDP 4500, plus ESP | Allowing only 500 and losing NAT-T |
| L2TP/IPsec | UDP 500, 4500, ESP, and 1701 inside the tunnel | Exposing 1701 to the internet |
| PPTP | TCP 1723 and IP protocol 47 | Writing a rule for TCP 47 |
Θεωρήστε αυτούς τους αριθμούς προεπιλογές και όχι σταθερές ιδιότητες. Μια διεπαφή WireGuard χρησιμοποιεί όποια θύρα ακρόασης δηλώνει η διαμόρφωσή της, και ένας διακομιστής OpenVPN μπορεί να κάθεται σε όποια θύρα διάλεξε ο διαχειριστής. Διαβάστε τη διαμόρφωση του διακομιστή πριν γράψετε τον κανόνα, γιατί ένα τείχος ανοιγμένο για την 1194 δεν κάνει τίποτα για διακομιστή που μετακινήθηκε στην 443.
Η τρίτη στήλη είναι εκεί όπου τα περισσότερα δελτία αλλαγών πάνε στραβά. Ο κανόνας υπάρχει, αλλά δείχνει στον λάθος προορισμό, στη λάθος κατεύθυνση ή στη λάθος μεταφορά.
Τα GRE και ESP είναι αριθμοί πρωτοκόλλου, όχι θύρες
Τα GRE και ESP δεν έχουν καθόλου θύρες, οπότε μια φόρμα τείχους που δέχεται μόνο αριθμούς θυρών δεν μπορεί να τα εκφράσει. Το GRE είναι πρωτόκολλο IP 47 και το ESP είναι πρωτόκολλο IP 50, και τα δύο ταιριάζουν μέσω του πεδίου πρωτοκόλλου της κεφαλίδας IP. Ένας κανόνας γραμμένος ως θύρα TCP 47 δεν ταιριάζει με τίποτα, και έτσι μια πολιτική PPTP φαίνεται σωστή και πάλι ρίχνει κάθε πακέτο μετά τη χειραψία.
Τα οικιακά ρούτερ κρύβουν αυτό πίσω από ένα κουτάκι διέλευσης που εγκαθιστά τον κανόνα του πρωτοκόλλου και, για το GRE, τον βοηθό NAT που χρειάζεται για την αντιστοίχιση της ροής. Σε ένα πραγματικό τείχος προσθέτετε το πρωτόκολλο μόνοι σας: επιτρέψτε το πρωτόκολλο IP 47 προς τον διακομιστή PPTP, επιτρέψτε το πρωτόκολλο IP 50 προς την πύλη IPsec. Όπου η πλατφόρμα δεν προσφέρει πεδίο πρωτοκόλλου, η ενθυλάκωση είναι η διέξοδος, γι' αυτό το IKEv2 μπορεί να πέσει πίσω στην UDP 4500 και γι' αυτό τα OpenVPN και WireGuard δεν συναντούν ποτέ το πρόβλημα.
Ελέγξτε με τι ταιριάζει πραγματικά ο κανόνας πριν κατηγορήσετε τον πελάτη. Ένας μετρητής πακέτων που μένει στο μηδέν στην πύλη λέει ότι ο κανόνας δεν ενεργοποιήθηκε ποτέ, και καμία ποσότητα επανεγκατάστασης στην πλευρά του πελάτη δεν το αλλάζει.
Η κατεύθυνση, η κατάσταση και το NAT αλλάζουν την απάντηση
Ένας πελάτης που καλεί προς τα έξω και μια πύλη που ακούει προς τα μέσα είναι διαφορετικές απαιτήσεις, και η ίδια λίστα θυρών μπορεί να είναι σωστή στη μία κατεύθυνση και λάθος στην άλλη. Ένα τείχος με κατάσταση παρακολουθεί τη ροή UDP στις 500 και 4500 και αφήνει τις απαντήσεις να γυρίσουν χωρίς δεύτερο κανόνα. Τα ESP και GRE δεν φέρουν θύρες, οπότε μια συσκευή NAT δεν έχει πού να πιαστεί και χρειάζεται βοηθό ή ενθυλάκωση για να ακολουθήσει τη συνεδρία.
Η διέλευση NAT είναι το κομμάτι που χάνεται. Το IKEv2 ξεκινά στην UDP 500, ανιχνεύει συσκευή NAT και συνεχίζει στην UDP 4500, οπότε μια πολιτική που επιτρέπει μόνο την 500 δίνει σήραγγα που στήνεται και μετά σωπαίνει. Το L2TP/IPsec κάνει την ίδια κίνηση. Αν η καταγραφή σας δείχνει την πρώτη ανταλλαγή αλλά όχι συνεχή κίνηση, ψάξτε για κανόνα που σταματά στην 500.
Καταγράψτε την κατεύθυνση με κάθε κανόνα. Το «επίτρεψε UDP 4500» δεν σημαίνει τίποτα αν δεν πείτε από πού και προς πού, και ένας κανόνας σωστός για περιοδεύοντα πελάτη είναι συνήθως λάθος για ομότιμο τοποθεσίας-σε-τοποθεσία.
Ελέγξτε κάθε διαδρομή με καταγραφή
Τρέξτε την καταγραφή στην πύλη, όχι στον πελάτη: ο πελάτης καταγράφει μόνο ό,τι έφτασε. Αυτά τα φίλτρα καλύπτουν τις παραπάνω οικογένειες και δείχνουν ποιο στάδιο λείπει:
sudo tcpdump -ni any tcp port 1723
sudo tcpdump -ni any udp port 500 or udp port 4500
sudo tcpdump -ni any proto gre
sudo tcpdump -ni any proto 50
Διαβάστε την έξοδο ως ακολουθία. Όταν η διαπραγμάτευση εμφανίζεται αλλά το πρωτόκολλο φορτίου όχι, η απόρριψη συμβαίνει κάπου ανάμεσα στον πελάτη και την πύλη. Όταν εμφανίζονται και τα δύο και η σελίδα εξακολουθεί να αποτυγχάνει, το τείχος δεν είναι πια ύποπτο· κοιτάξτε τη δρομολόγηση, το DNS ή τη δεξαμενή διευθύνσεων που δόθηκε στον πελάτη.
Σε μηχάνημα χωρίς tcpdump, τα ίδια στοιχεία έρχονται από μετρητές διεπαφής και κανόνων. Bytes που μπαίνουν αλλά δεν βγαίνουν στη διεπαφή της σήραγγας δείχνουν την επιστροφή και όχι τον αρχικό κανόνα επιτρεπτού.
Αφήστε ένα σύνολο κανόνων που μπορείτε να υπερασπιστείτε
Το SSTP στην TCP 443 δεν ξεχωρίζει από συνηθισμένο HTTPS για οποιοδήποτε φίλτρο βασισμένο σε θύρες, και αυτό είναι το νόημα όταν ένα δίκτυο επιτρέπει μόνο κίνηση ιστού. Γι' αυτό και ο κανόνας για την 443 πρέπει να ονομάζει την πύλη ως προορισμό αντί για όλο το διαδίκτυο. Διαγράψτε τους προσωρινούς κανόνες από οπουδήποτε προς οπουδήποτε μόλις δουλέψει η σήραγγα. Σημειώστε ποιος κανόνας ταίριαξε, τον αριθμό πρωτοκόλλου όπου υπάρχει και την κατεύθυνση, ώστε ο επόμενος να ξεκινήσει από στοιχεία.
Οι πύλες cloud σημείου-προς-τοποθεσία κάνουν την επιλογή ορατή: το προφίλ που κατεβάσατε χρησιμοποιεί είτε SSTP στην 443 είτε IKEv2 στις 500 και 4500, και πρέπει να ανοίξετε μόνο αυτό που επιλέγει πραγματικά το προφίλ. Το PPTP δεν αξίζει την εξαίρεση GRE σε ένα σύγχρονο δίκτυο, αφού οι κινητοί πάροχοι συχνά ρίχνουν το πρωτόκολλο 47 ανεξάρτητα από το τείχος σας. Πριν κλείσετε το δελτίο, επιβεβαιώστε ότι ο κανόνας ταιριάζει με τη θύρα στη διαμόρφωση του διακομιστή, ότι το πεδίο πρωτοκόλλου έχει οριστεί εκεί που το χρειάζεται η οικογένεια, και ότι ο προορισμός είναι η πύλη και όχι οποιαδήποτε διεύθυνση.