Από WireGuard μελλοντικός πυρήνας Linux 5.6, αποφάσισα να δω πώς να ενσωματώσω καλύτερα αυτό το VPN με το .
Оборудование
- Raspberry Pi 3 με μονάδα LTE και δημόσια IP. Θα υπάρχει διακομιστής VPN (εφεξής edgewalker)
- Τηλέφωνο ενεργοποιημένο Android, το οποίο πρέπει να χρησιμοποιεί VPN για όλες τις επικοινωνίες
- Laptop Linux, το οποίο θα πρέπει να χρησιμοποιεί VPN μόνο εντός του δικτύου
Κάθε συσκευή που συνδέεται σε VPN πρέπει να μπορεί να συνδεθεί με κάθε άλλη συσκευή. Για παράδειγμα, ένα τηλέφωνο θα πρέπει να μπορεί να συνδεθεί με έναν διακομιστή web σε φορητό υπολογιστή, εάν και οι δύο συσκευές αποτελούν μέρος ενός δικτύου VPN. Εάν η ρύθμιση είναι αρκετά απλή, τότε μπορείτε να σκεφτείτε τη σύνδεση σε VPN και επιτραπέζιο υπολογιστή (μέσω Ethernet).
Λαμβάνοντας υπόψη ότι οι ενσύρματες και ασύρματες συνδέσεις γίνονται λιγότερο ασφαλείς με την πάροδο του χρόνου (, и ), σκέφτομαι σοβαρά να χρησιμοποιήσω WireGuard για όλες τις συσκευές μου, ανεξάρτητα από το περιβάλλον στο οποίο λειτουργούν.
Εγκατάσταση λογισμικού
WireGuard παρέχει για τις περισσότερες διανομές Linux, Windows и macOSΑιτήσεις για Android και το iOS παρέχονται μέσω καταστημάτων εφαρμογών.
Έχω την τελευταία έκδοση του Fedora Linux 31, και πριν την εγκατάσταση ήμουν πολύ τεμπέλης για να διαβάσω το εγχειρίδιο. Μόλις βρήκα τα πακέτα. wireguard-tools, τα εγκατέστησαν και μετά δεν μπορούσα να καταλάβω γιατί δεν λειτουργούσε τίποτα. Περαιτέρω έρευνα αποκάλυψε ότι δεν είχα εγκαταστήσει το πακέτο wireguard-dkms (με πρόγραμμα οδήγησης δικτύου), και δεν ήταν στο αποθετήριο της διανομής μου.
Αν είχα διαβάσει τις οδηγίες, θα είχα κάνει τα σωστά βήματα:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Έχω εγκαταστήσει τη διανομή Raspbian Buster στο Raspberry Pi μου, υπάρχει ήδη ένα πακέτο wireguard, εγκαταστήστε το:
$ sudo apt install wireguardΣτο τηλέφωνο Android Εγκατέστησα την εφαρμογή από τον επίσημο κατάλογο του Google App Store.
Εγκατάσταση κλειδιών
Για την επαλήθευση της ταυτότητας των κόμβων Wireguard Χρησιμοποιεί ένα απλό σχήμα ιδιωτικού/δημόσιου κλειδιού για τον έλεγχο ταυτότητας κόμβων VPN. Μπορείτε εύκολα να δημιουργήσετε κλειδιά VPN με την ακόλουθη εντολή:
$ wg genkey | tee wg-laptop-private.key | wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key | wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key | wg pubkey > wg-mobile-public.keyΑυτό μας δίνει τρία ζεύγη κλειδιών (έξι αρχεία). Δεν θα αναφερθούμε σε αρχεία στις ρυθμίσεις παραμέτρων, αλλά αντιγράψτε τα περιεχόμενα εδώ: κάθε κλειδί είναι μία γραμμή στη βάση64.
Δημιουργία αρχείου διαμόρφωσης για διακομιστή VPN (Raspberry Pi)
Η διαμόρφωση είναι αρκετά απλή, δημιούργησα το παρακάτω αρχείο /etc/wireguard/wg0.conf:
[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE
[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32
[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32Μερικές σημειώσεις:
- Στα κατάλληλα σημεία πρέπει να εισάγετε τις γραμμές από τα αρχεία με τα πλήκτρα
- Το VPN μου χρησιμοποιεί εσωτερική εμβέλεια
10.200.200.0/24 - Για ομάδες
PostUp/PostDownΈχω μια εξωτερική διεπαφή δικτύου wwan0, μπορεί να έχετε διαφορετική (για παράδειγμα, eth0)
Το δίκτυο VPN δημιουργείται εύκολα με την ακόλουθη εντολή:
$ sudo wg-quick up wg0 Μια μικρή λεπτομέρεια: ως διακομιστής DNS, χρησιμοποίησα dnsmasq συνδεδεμένο σε διεπαφή δικτύου br0, πρόσθεσα και συσκευές wg0 στη λίστα των επιτρεπόμενων συσκευών. Στο dnsmasq, αυτό γίνεται προσθέτοντας μια νέα γραμμή με τη διεπαφή δικτύου στο αρχείο διαμόρφωσης /etc/dnsmasq.conf, για παράδειγμα:
interface=br0
interface=wg0Επίσης, πρόσθεσα έναν κανόνα iptable για να επιτρέπεται η κυκλοφορία στη θύρα UDP ακρόασης (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTΤώρα που όλα λειτουργούν, μπορούμε να καταχωρήσουμε την αυτόματη εκκίνηση του τούνελ VPN:
$ sudo systemctl enable wg-quick@wg0.serviceΔιαμόρφωση πελάτη φορητού υπολογιστή
Στον φορητό υπολογιστή, δημιουργήστε ένα αρχείο διαμόρφωσης /etc/wireguard/wg0.conf με τις ίδιες ρυθμίσεις:
[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820Σημειώσεις:
- Αντί για το edgewalker, πρέπει να καθορίσετε έναν δημόσιο κεντρικό υπολογιστή IP ή VPN
- Έχοντας εγκαταστήσει
AllowedIPsεπί10.200.200.0/24, χρησιμοποιούμε μόνο το VPN για πρόσβαση στο εσωτερικό δίκτυο. Η επισκεψιμότητα προς όλες τις άλλες διευθύνσεις IP/διακομιστές θα συνεχίσει να διέρχεται από "κανονικά" ανοιχτά κανάλια. Θα χρησιμοποιηθεί επίσης ο προρυθμισμένος διακομιστής DNS στον φορητό υπολογιστή.
Για δοκιμή και αυτόματη εκκίνηση, χρησιμοποιούμε τις ίδιες εντολές wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceΡύθμιση του πελάτη για Android-τηλέφωνο
Για τηλέφωνο Android Δημιουργούμε ένα πολύ παρόμοιο αρχείο ρυθμίσεων (ας το ονομάσουμε mobile.conf):
[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820 Σε αντίθεση με τη διαμόρφωση του φορητού υπολογιστή, το τηλέφωνο θα πρέπει να χρησιμοποιεί τον διακομιστή VPN ως διακομιστή DNS (συμβολοσειρά DNS), καθώς και περάστε όλη την κίνηση μέσω της σήραγγας VPN (AllowedIPs = 0.0.0.0/0).
Αντί να αντιγράψετε το αρχείο στην κινητή συσκευή σας, μπορείτε να το μετατρέψετε σε κωδικό QR:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confΟ κωδικός QR θα εξαχθεί στην κονσόλα ως ASCII. Μπορεί να σαρωθεί από την εφαρμογή. Android VPN και να διαμορφώσετε αυτόματα τη σήραγγα VPN.
Παραγωγή
προσαρμογή WireGuard απλά μαγικό σε σύγκριση με OpenVPN.
Πηγή: www.habr.com
