Είναι το WireGuard το υπέροχο VPN του μέλλοντος;

Είναι το WireGuard το υπέροχο VPN του μέλλοντος;

Ήρθε η ώρα που το VPN δεν είναι πλέον κάποιο εξωτικό εργαλείο των γενειοφόρου διαχειριστή συστήματος. Οι χρήστες έχουν διαφορετικές εργασίες, αλλά το γεγονός είναι ότι όλοι χρειάζονται ένα VPN.

Το πρόβλημα με τις τρέχουσες λύσεις VPN είναι ότι είναι δύσκολο να ρυθμιστούν σωστά, είναι δαπανηρή η συντήρηση και είναι γεμάτες από κώδικα παλαιού τύπου αμφιβόλου ποιότητας.

Πριν από αρκετά χρόνια, ο Καναδός ειδικός σε θέματα ασφάλειας πληροφοριών Jason A. Donenfeld αποφάσισε ότι το είχε βαρεθεί και άρχισε να εργάζεται WireGuard. Το WireGuard ετοιμάζεται τώρα για συμπερίληψη στον πυρήνα του Linux και έχει λάβει ακόμη και επαίνους από Linus Torvalds και Γερουσία των ΗΠΑ.

Ισχυρισμένα πλεονεκτήματα του WireGuard σε σχέση με άλλες λύσεις VPN:

  • Εύχρηστος.
  • Χρησιμοποιεί σύγχρονη κρυπτογραφία: Noise protocol frame, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF κ.λπ.
  • Συμπαγής, ευανάγνωστος κώδικας, ευκολότερος στην έρευνα για τρωτά σημεία.
  • Υψηλή απόδοση.
  • Σαφής και περίτεχνος προσδιορισμός.

Βρέθηκε ασημένια σφαίρα; Μήπως ήρθε η ώρα να θάψετε το OpenVPN και το IPSec; Αποφάσισα να ασχοληθώ με αυτό, και ταυτόχρονα το έκανα script για αυτόματη εγκατάσταση ενός προσωπικού διακομιστή 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 αναμένεται να προστεθεί στο εγγύς μέλλον.

Συγκριτική αξιολόγηση αποτελεσμάτων με επίσημη ιστοσελίδα:

Είναι το WireGuard το υπέροχο VPN του μέλλοντος;

Η εμπειρία χρήσης μου

Δεν είμαι ειδικός σε VPN. Κάποτε ρύθμισα το OpenVPN με μη αυτόματο τρόπο και ήταν πολύ κουραστικό και δεν δοκίμασα καν το IPSec. Υπάρχουν πάρα πολλές αποφάσεις που πρέπει να λάβετε, είναι πολύ εύκολο να πυροβολήσετε τον εαυτό σας στο πόδι. Επομένως, χρησιμοποιούσα πάντα έτοιμα σενάρια για τη διαμόρφωση του διακομιστή.

Έτσι, το WireGuard, από την άποψή μου, είναι γενικά ιδανικό για τον χρήστη. Όλες οι αποφάσεις χαμηλού επιπέδου λαμβάνονται στις προδιαγραφές, επομένως η διαδικασία προετοιμασίας μιας τυπικής υποδομής VPN διαρκεί μόνο λίγα λεπτά. Είναι σχεδόν αδύνατο να εξαπατήσετε στη διαμόρφωση.

Διαδικασία εγκατάστασης περιγράφεται αναλυτικά στον επίσημο ιστότοπο, θα ήθελα να σημειώσω ξεχωριστά το εξαιρετικό Υποστήριξη OpenWRT.

Τα κλειδιά κρυπτογράφησης δημιουργούνται από το βοηθητικό πρόγραμμα wg:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )

Στη συνέχεια, πρέπει να δημιουργήσετε μια διαμόρφωση διακομιστή /etc/wireguard/wg0.conf με το ακόλουθο περιεχόμενο:

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

και σηκώστε το τούνελ με ένα σενάριο wg-quick:

sudo wg-quick up /etc/wireguard/wg0.conf

Σε συστήματα με systemd μπορείτε να το χρησιμοποιήσετε sudo systemctl start [email protected].

Στον υπολογιστή-πελάτη, δημιουργήστε μια διαμόρφωση /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # Внешний IP сервера
PersistentKeepalive = 25 

Και σηκώστε το τούνελ με τον ίδιο τρόπο:

sudo wg-quick up /etc/wireguard/wg0.conf

Το μόνο που μένει είναι να ρυθμίσετε το NAT στον διακομιστή έτσι ώστε οι πελάτες να έχουν πρόσβαση στο Διαδίκτυο και τελειώσατε!

Αυτή η ευκολία χρήσης και η συμπαγής βάση της βάσης κώδικα επιτεύχθηκε με την εξάλειψη της λειτουργικότητας διανομής κλειδιών. Δεν υπάρχει πολύπλοκο σύστημα πιστοποιητικών και όλος αυτός ο εταιρικός τρόμος· τα σύντομα κλειδιά κρυπτογράφησης διανέμονται όπως τα κλειδιά SSH. Αλλά αυτό δημιουργεί ένα πρόβλημα: το WireGuard δεν θα είναι τόσο εύκολο να εφαρμοστεί σε ορισμένα υπάρχοντα δίκτυα.

Μεταξύ των μειονεκτημάτων, αξίζει να σημειωθεί ότι το WireGuard δεν θα λειτουργεί μέσω διακομιστή μεσολάβησης HTTP, καθώς μόνο το πρωτόκολλο UDP είναι διαθέσιμο ως μεταφορά. Τίθεται το ερώτημα: θα καταστεί δυνατή η συσκότιση του πρωτοκόλλου; Φυσικά, αυτό δεν είναι το άμεσο καθήκον ενός VPN, αλλά για το OpenVPN, για παράδειγμα, υπάρχουν τρόποι να μεταμφιεστεί σε HTTPS, το οποίο βοηθά τους κατοίκους των ολοκληρωτικών χωρών να χρησιμοποιούν πλήρως το Διαδίκτυο.

Ευρήματα

Συνοψίζοντας, αυτό είναι ένα πολύ ενδιαφέρον και πολλά υποσχόμενο έργο, μπορείτε ήδη να το χρησιμοποιήσετε σε προσωπικούς διακομιστές. Ποιο είναι το κέρδος; Υψηλή απόδοση σε συστήματα Linux, ευκολία εγκατάστασης και υποστήριξης, συμπαγής και ευανάγνωστη βάση κώδικα. Ωστόσο, είναι πολύ νωρίς για να βιαστείτε να μεταφέρετε μια σύνθετη υποδομή στο WireGuard· αξίζει να περιμένετε να συμπεριληφθεί στον πυρήνα του Linux.

Για να εξοικονομήσω τον χρόνο μου (και σας), ανέπτυξα Αυτόματο πρόγραμμα εγκατάστασης WireGuard. Με τη βοήθειά του, μπορείτε να δημιουργήσετε ένα προσωπικό VPN για εσάς και τους φίλους σας χωρίς καν να καταλαβαίνετε τίποτα γι 'αυτό.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο