Από το WireGuard
Оборудование
- Raspberry Pi 3 με μονάδα LTE και δημόσια IP. Θα υπάρχει διακομιστής VPN (εφεξής edgewalker)
- Ένα τηλέφωνο Android που πρέπει να χρησιμοποιεί VPN για όλες τις επικοινωνίες
- Φορητός υπολογιστής Linux που χρειάζεται να χρησιμοποιεί VPN μόνο εντός του δικτύου
Κάθε συσκευή που συνδέεται σε VPN πρέπει να μπορεί να συνδεθεί με κάθε άλλη συσκευή. Για παράδειγμα, ένα τηλέφωνο θα πρέπει να μπορεί να συνδεθεί με έναν διακομιστή web σε φορητό υπολογιστή, εάν και οι δύο συσκευές αποτελούν μέρος ενός δικτύου VPN. Εάν η ρύθμιση είναι αρκετά απλή, τότε μπορείτε να σκεφτείτε τη σύνδεση σε VPN και επιτραπέζιο υπολογιστή (μέσω Ethernet).
Λαμβάνοντας υπόψη ότι οι ενσύρματες και ασύρματες συνδέσεις γίνονται λιγότερο ασφαλείς με την πάροδο του χρόνου (
Εγκατάσταση λογισμικού
Το WireGuard παρέχει
Έχω το πιο πρόσφατο 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 μου
Εγκατάσταση κλειδιών
Για τον έλεγχο ταυτότητας κόμβων, το 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 [email protected]
Διαμόρφωση πελάτη φορητού υπολογιστή
Στον φορητό υπολογιστή, δημιουργήστε ένα αρχείο διαμόρφωσης /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 [email protected]
Ρύθμιση πελάτη σε τηλέφωνο 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