Η πύλη απαντά σε IKEv2 στην UDP 4443 για κάποιον λόγο, το προφίλ έχει πεδίο με όνομα Server, πληκτρολογείτε το όνομα κεντρικού υπολογιστή και τη θύρα, και το τηλέφωνο αναφέρει ότι δεν μπορεί να φτάσει τον διακομιστή ή δεν μπορεί να επιλύσει τη διεύθυνση. Τίποτα δεν μπλοκάρεται. Η εγγενής φόρμα του Android περιμένει κεντρικό υπολογιστή, και το ίδιο ισχύει στα Windows. Μια προσαρμοσμένη θύρα είναι δυνατότητα του πελάτη πριν γίνει ρύθμιση του διακομιστή, και μόνο ορισμένοι πελάτες σας αφήνουν να την εκφράσετε. Περάστε τα τρία μέρη με σειρά: τι μπορεί να πει ο πελάτης, σε τι ακούει ο διακομιστής και αν και τα δύο άκρα πλαισιώνουν τα πακέτα με τον ίδιο τρόπο.

Τι έστειλε στην πραγματικότητα το τηλέφωνο

Ένα αλφαριθμητικό host:port σε πεδίο που προορίζεται για όνομα επιλύεται ως όνομα. Ο επιλυτής δεν επιστρέφει τίποτα για το vpn.example.net:4443, και το σφάλμα που βλέπετε είναι αποτυχία επίλυσης ονόματος ή μη προσβασιμότητας, όχι λήξη χρόνου σε θύρα. Αυτή η διάκριση έχει σημασία, γιατί μια νέα προσπάθεια με συντομότερο όνομα ή άλλο δίκτυο δεν θα διορθώσει ποτέ ένα αλφαριθμητικό που η φόρμα δεν μπορεί να αναλύσει.

Το εγγενές προφίλ IKEv2 στο Android, όπως και ο ενσωματωμένος πελάτης VPN των Windows, είναι καρφιτσωμένο στις τυπικές θύρες IKE. Κανένα από τα δύο δεν εμφανίζει πεδίο θύρας, και καμία επεξεργασία προφίλ δεν προσθέτει ένα. Αν ο ακροατής του παρόχου βρίσκεται πραγματικά στην 4443, ο ενσωματωμένος πελάτης είναι το λάθος εργαλείο και όχι ένα εργαλείο με λάθος ρυθμίσεις.

Χρησιμοποιήστε πελάτη που εκθέτει τη θύρα

Ο πελάτης strongSwan για Android τεκμηριώνει ρυθμιζόμενη θύρα διακομιστή στις προηγμένες ρυθμίσεις προφίλ, γι’ αυτό εμφανίζεται σε σχεδόν κάθε συνταγή που λειτουργεί για αυτόν τον σχεδιασμό. Αυτή η υποστήριξη ανήκει σε εκείνον τον πελάτη: μια άλλη εφαρμογή IKEv2, ή μια παραλλαγή κατασκευαστή της ίδιας εφαρμογής, μπορεί να μην εκθέτει το ίδιο πεδίο, παρόλο που ο υποκείμενος δαίμονας strongSwan το υποστηρίζει.

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

Ο διακομιστής έχει δύο θύρες και οι δύο πρέπει να ταιριάζουν

Το IKE ξεκινά στην UDP 500, και η διέλευση NAT μετακινεί συνήθως το IKE και το ενθυλακωμένο ESP στην UDP 4500. Πρόκειται για χωριστές ρυθμίσεις στο strongSwan, οπότε ένας διακομιστής που μεταφέρεται σε μία προσαρμοσμένη θύρα πρέπει να αλλάξει και τις δύο στην ίδια τιμή:

plugins {
  socket-default {
    port = 4443
    port_nat_t = 4443
  }
}

Με μία θύρα για τους δύο ρόλους, ο δαίμονας πρέπει να διακρίνει το IKE από το ESP-μέσα-σε-UDP στην ίδια υποδοχή, κάτι που κάνει με τον δείκτη τεσσάρων byte που δεν είναι ESP και προηγείται ενός μηνύματος IKE. Γι’ αυτό ένας πελάτης δεν μπορεί να διαπραγματευτεί στην προσαρμοσμένη θύρα και μετά να συνεχίσει σιωπηλά στην 4500, και γι’ αυτό η φράση “απλώς αλλάξτε τη θύρα” κρύβει μια απαίτηση πλαισίωσης.

Μια προώθηση δεν είναι ακροατής

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

Η διαδρομή πρέπει επίσης να επιτρέπει UDP από άκρη σε άκρη. Το ότι το TCP 443 περνά από δίκτυο ξενοδοχείου ή παρόχου δεν λέει τίποτα για το IKEv2 σε θύρα UDP, ακόμη και με τον ίδιο αριθμό. Εκεί όπου επιτρέπεται μόνο το TCP 443, μια προσαρμοσμένη θύρα UDP δεν μετατρέπει το IKEv2 σε HTTPS, και η σωστή απάντηση μπορεί να είναι άλλη διαδρομή πρόσβασης και όχι άλλο πείραμα με θύρα.

Ξεχωρίστε τα τρία στάδια όταν δοκιμάζετε

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

tcpdump -ni eth0 -vv udp port 4443

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

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