Ήρθε η ώρα που το VPN δεν είναι πλέον κάποιο εξωτικό εργαλείο των γενειοφόρου διαχειριστή συστήματος. Οι χρήστες έχουν διαφορετικές εργασίες, αλλά το γεγονός είναι ότι όλοι χρειάζονται ένα VPN.
Το πρόβλημα με τις τρέχουσες λύσεις VPN είναι ότι είναι δύσκολο να ρυθμιστούν σωστά, είναι δαπανηρή η συντήρηση και είναι γεμάτες από κώδικα παλαιού τύπου αμφιβόλου ποιότητας.
Πριν από αρκετά χρόνια, ο Καναδός ειδικός σε θέματα ασφάλειας πληροφοριών Jason A. Donenfeld αποφάσισε ότι το είχε βαρεθεί και άρχισε να εργάζεται WireGuard. Το WireGuard ετοιμάζεται τώρα για συμπερίληψη στον πυρήνα του Linux και έχει λάβει ακόμη και επαίνους από Linus Torvalds και Γερουσία των ΗΠΑ.
Ισχυρισμένα πλεονεκτήματα του WireGuard σε σχέση με άλλες λύσεις VPN:
Οι αρχές λειτουργίας μπορούν να περιγραφούν κάπως έτσι:
Δημιουργείται μια διεπαφή WireGuard και σε αυτήν εκχωρείται ένα ιδιωτικό κλειδί και μια διεύθυνση IP. Φορτώνονται οι ρυθμίσεις άλλων ομότιμων: τα δημόσια κλειδιά τους, οι διευθύνσεις IP κ.λπ.
Όλα τα πακέτα IP που φτάνουν στη διεπαφή WireGuard ενσωματώνονται σε UDP και παραδίδεται με ασφάλεια άλλους συνομηλίκους.
Οι πελάτες καθορίζουν τη δημόσια διεύθυνση IP του διακομιστή στις ρυθμίσεις. Ο διακομιστής αναγνωρίζει αυτόματα τις εξωτερικές διευθύνσεις των πελατών όταν λαμβάνονται σωστά επαληθευμένα δεδομένα από αυτούς.
Ο διακομιστής μπορεί να αλλάξει τη δημόσια διεύθυνση IP χωρίς να διακόψει την εργασία του. Ταυτόχρονα, θα στείλει μια ειδοποίηση στους συνδεδεμένους πελάτες και θα ενημερώσουν τη διαμόρφωσή τους αμέσως.
Χρησιμοποιείται η έννοια της δρομολόγησης Δρομολόγηση κρυπτοκλειδιών. Το WireGuard δέχεται και στέλνει πακέτα με βάση το δημόσιο κλειδί του ομότιμου. Όταν ο διακομιστής αποκρυπτογραφεί ένα σωστά πιστοποιημένο πακέτο, το πεδίο src ελέγχεται. Εάν ταιριάζει με τη διαμόρφωση allowed-ips με έλεγχο ταυτότητας, το πακέτο λαμβάνεται από τη διεπαφή WireGuard. Κατά την αποστολή ενός εξερχόμενου πακέτου, λαμβάνει χώρα η αντίστοιχη διαδικασία: λαμβάνεται το πεδίο dst του πακέτου και, βάσει αυτού, επιλέγεται το αντίστοιχο peer, το πακέτο υπογράφεται με το κλειδί του, κρυπτογραφείται με το κλειδί του ομότιμου και αποστέλλεται στο απομακρυσμένο τελικό σημείο. .
Όλη η βασική λογική του WireGuard καταλαμβάνει λιγότερες από 4 χιλιάδες γραμμές κώδικα, ενώ το OpenVPN και το IPSec έχουν εκατοντάδες χιλιάδες γραμμές. Για την υποστήριξη σύγχρονων κρυπτογραφικών αλγορίθμων, προτείνεται να συμπεριληφθεί ένα νέο κρυπτογραφικό API στον πυρήνα του Linux ψευδάργυρος. Αυτή τη στιγμή διεξάγεται μια συζήτηση για το αν είναι καλή ιδέα.
Παραγωγικότητα
Το πλεονέκτημα μέγιστης απόδοσης (σε σύγκριση με το OpenVPN και το IPSec) θα είναι αισθητό στα συστήματα Linux, αφού το WireGuard υλοποιείται ως λειτουργική μονάδα πυρήνα εκεί. Επιπλέον, υποστηρίζονται macOS, Android, iOS, FreeBSD και OpenBSD, αλλά σε αυτά το WireGuard εκτελείται στον χώρο χρηστών με όλες τις επακόλουθες συνέπειες απόδοσης. Η υποστήριξη των Windows αναμένεται να προστεθεί στο εγγύς μέλλον.
Δεν είμαι ειδικός σε VPN. Κάποτε ρύθμισα το OpenVPN με μη αυτόματο τρόπο και ήταν πολύ κουραστικό και δεν δοκίμασα καν το IPSec. Υπάρχουν πάρα πολλές αποφάσεις που πρέπει να λάβετε, είναι πολύ εύκολο να πυροβολήσετε τον εαυτό σας στο πόδι. Επομένως, χρησιμοποιούσα πάντα έτοιμα σενάρια για τη διαμόρφωση του διακομιστή.
Έτσι, το WireGuard, από την άποψή μου, είναι γενικά ιδανικό για τον χρήστη. Όλες οι αποφάσεις χαμηλού επιπέδου λαμβάνονται στις προδιαγραφές, επομένως η διαδικασία προετοιμασίας μιας τυπικής υποδομής VPN διαρκεί μόνο λίγα λεπτά. Είναι σχεδόν αδύνατο να εξαπατήσετε στη διαμόρφωση.
Το μόνο που μένει είναι να ρυθμίσετε το NAT στον διακομιστή έτσι ώστε οι πελάτες να έχουν πρόσβαση στο Διαδίκτυο και τελειώσατε!
Αυτή η ευκολία χρήσης και η συμπαγής βάση της βάσης κώδικα επιτεύχθηκε με την εξάλειψη της λειτουργικότητας διανομής κλειδιών. Δεν υπάρχει πολύπλοκο σύστημα πιστοποιητικών και όλος αυτός ο εταιρικός τρόμος· τα σύντομα κλειδιά κρυπτογράφησης διανέμονται όπως τα κλειδιά SSH. Αλλά αυτό δημιουργεί ένα πρόβλημα: το WireGuard δεν θα είναι τόσο εύκολο να εφαρμοστεί σε ορισμένα υπάρχοντα δίκτυα.
Μεταξύ των μειονεκτημάτων, αξίζει να σημειωθεί ότι το WireGuard δεν θα λειτουργεί μέσω διακομιστή μεσολάβησης HTTP, καθώς μόνο το πρωτόκολλο UDP είναι διαθέσιμο ως μεταφορά. Τίθεται το ερώτημα: θα καταστεί δυνατή η συσκότιση του πρωτοκόλλου; Φυσικά, αυτό δεν είναι το άμεσο καθήκον ενός VPN, αλλά για το OpenVPN, για παράδειγμα, υπάρχουν τρόποι να μεταμφιεστεί σε HTTPS, το οποίο βοηθά τους κατοίκους των ολοκληρωτικών χωρών να χρησιμοποιούν πλήρως το Διαδίκτυο.
Ευρήματα
Συνοψίζοντας, αυτό είναι ένα πολύ ενδιαφέρον και πολλά υποσχόμενο έργο, μπορείτε ήδη να το χρησιμοποιήσετε σε προσωπικούς διακομιστές. Ποιο είναι το κέρδος; Υψηλή απόδοση σε συστήματα Linux, ευκολία εγκατάστασης και υποστήριξης, συμπαγής και ευανάγνωστη βάση κώδικα. Ωστόσο, είναι πολύ νωρίς για να βιαστείτε να μεταφέρετε μια σύνθετη υποδομή στο WireGuard· αξίζει να περιμένετε να συμπεριληφθεί στον πυρήνα του Linux.
Για να εξοικονομήσω τον χρόνο μου (και σας), ανέπτυξα Αυτόματο πρόγραμμα εγκατάστασης WireGuard. Με τη βοήθειά του, μπορείτε να δημιουργήσετε ένα προσωπικό VPN για εσάς και τους φίλους σας χωρίς καν να καταλαβαίνετε τίποτα γι 'αυτό.