WireGuard ááŒá±á¬áá·áºáá«á
áá á¹á ááºážááááá¬
- LTE module ááŸáá·áº public IP ááááºá á¬áá«ááŸááá±á¬ Raspberry Pi 3 á€áá±áá¬ááœáẠVPN áá¬áá¬áá áºáá¯ááŸááááá·áºááẠ(áááºážááá¯á á¬áá¬ážááœááºáááºážáá±á¬ááºááŸáá±á«áºáááºá áááºážáá»áŸá±á¬ááºáá°)
- áááºááœááºáá±ážá¡á¬ážáá¯á¶ážá¡ááœáẠVPN ááá¯áá¯á¶ážáááá·áº Android áá¯ááºáž
- ááœááºáááºá¡ááœááºáž VPN áá áºáá¯áá¬áá¯á¶ážááá·áºááá·áº Linux áááºááºáá±á¬á·
VPN ááá¯á· áá»áááºáááºááá·áº á
ááºáá
á¹á
ááºážááá¯ááºážááẠá¡ááŒá¬ážá
ááºáá
á¹á
ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááá¯á· áá»áááºáááºááá¯ááºááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá á
ááºááŸá
áºáá¯áá¯á¶ážááẠVPN ááœááºáááºáá¡á
áááºá¡ááá¯ááºážáá
áºáá¯ááŒá
áºáá«áá áá¯ááºážááẠáááºááºáá±á¬á·áá±á«áºááœáẠáááºáá¬áá¬áá
áºáá¯ááá¯á· áá»áááºáááºááá¯ááºááá·áºáááºá á
áá
áºááá·áºááœááºážááŸá¯ááẠá¡áá±á¬áºáá±ážááá¯ážááŸááºážáá«áá Desktop ááŸáá·áº VPN (Ethernet ááŸáááá·áº) áá»áááºáááºááŒááºážá¡ááŒá±á¬ááºáž áááºá
ááºážá
á¬ážááá¯ááºáá«áááºá
ááŒáá¯ážááẠááŸáá·áº ááŒáá¯ážáá²á·áá»áááºáááºááŸá¯áá»á¬ážááẠá¡áá»áááºááŒá¬áá¬áááºááŸáá·áºá¡áá»áŸ áá¯á¶ááŒá¯á¶ááŸá¯ áá»á±á¬á·áááºážáá¬áááºááᯠááá·áºááœááºážá
ááºážá
á¬ážááẠ(
software ááá¯áááºáááº
WireGuard áá±ážáááºá
áá»áœááºá¯ááºááœáẠáá±á¬ááºáá¯á¶ážáá±á«áº Fedora Linux 31 ááŸáááŒá®ážá ááá·áºááœááºážááŒááºážáááŒá¯áá® áááºá
áœá²á
á¬á¡á¯ááºááᯠáááºááẠá¡ááœááºáá»ááºážáá±áá«áááºá á¡áá¯ááºáá»á¬ážááᯠááœá±á·ááá¯ááºááááºá wireguard-tools
áááºážááá¯á·ááᯠáááºáááºááŒá®ážáá±á¬áẠáá¬á·ááŒá±á¬áá·áº á¡áá¯ááºáááŒá
áºáááºááᯠá¡ááŒá±ááŸá¬áááá«á áááºáá±á·áá»áº áááºáááºáá¬ážááŒááºáž áááŸáááŒá±á¬ááºáž áááºáá¶á
á¯á¶á
ááºážááááŸáááá«áááºá wireguard-dkms
(ááœááºáááºáááá¯ááºáá¬áá
áºáá¯ááŸáá·áº)á ááá¯á·áá±á¬áº áááºážááẠáá»áœááºá¯ááºáááŒáá·áºááŒá°ážáá±ážááá¯ááŸá±á¬ááºáááºážááœáẠáááŸááá«á
á¡áááºá áá»áœááºá¯ááºááẠááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáááºááŒá®ážáá«áá áá»áœááºá¯ááºááẠááŸááºáááºáá±á¬ ááŒá±ááŸááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºáááá·áºáááº-
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
áá»áœááºá¯ááºá Raspberry Pi ááœáẠRaspbian Buster ááŒáá·áºááŒá°ážááŸá¯ááᯠááá·áºááœááºážáá¬ážááŒá®ážá ááá¯áá±áá¬ááœáẠáááºáá±á·ááºá»áá
áºáᯠááŸáááŸáá·áºááŒá®ážááŒá
áºáááºá wireguard
á ááá·áºááœááºážáá«
$ sudo apt install wireguard
áá»áœááºá¯ááºá Android áá¯ááºážááœáẠá¡ááá®áá±ážááŸááºážááᯠááá·áºááœááºážáá¬ážáá«áááºá
áá±á¬á·áá»á¬ážáááºáááºááŒááºážá
áááºáá°ááœááºáá°á á áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážááŒááŒááºážá¡ááœááºá Wireguard ááẠVPN áááºáá°ááœááºáá°áá»á¬ážááᯠá á áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážááŒááẠááá¯ážááŸááºážáá±á¬áá¯áá¹áááá/á¡áá»á¬ážááŒááºáá°áá®ážá¡á á®á¡á ááºááá¯á¡áá¯á¶ážááŒá¯áááºá á¡á±á¬ááºáá« command ááá¯áá¯á¶ážááŒá®áž 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
áááºážááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž áá±á¬á·ááœá²áá¯á¶ážáᯠ(ááŒá±á¬ááºááá¯ááº) áá±ážáááºá áá»áœááºá¯ááºááá¯á·ááẠconfigs ááŸáááá¯ááºáá»á¬ážááᯠáááºááœáŸááºážáááºááá¯ááºáá±á¬áºáááºáž á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá€áá±áá¬ááœáẠáá°ážáá°áá«- áá±á¬á·áá áºáá¯á á®ááẠbase64 ááŸá á á¬ááŒá±á¬ááºážáá áºááŒá±á¬ááºážááŒá áºáááºá
VPN áá¬áᬠ(Raspberry Pi) á¡ááœáẠááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááá¯ááºááᯠáááºáá®ážáá±áááº
configuration ááá±á¬áºáá±á¬áºáá±ážááá¯ážááŸááºážáá«áááºá á¡á±á¬ááºáá«ááá¯ááºááá¯áá»áœááºáá±á¬áºáááºáá®ážáá²á·áááºá /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 ááœááºáááºááᯠá¡á±á¬ááºáá« command ááŒáá·áº á¡ááœááºááá° ááŒáŸáá·áºáááºááá¯ááºáááº-
$ sudo wg-quick up wg0
á¡áá±ážá
áááºá¡áá»ááºáá
áºáá»ááº- áá»áœááºá¯ááºá¡áá¯á¶ážááŒá¯áá²á·ááá·áº DNS áá¬áá¬á¡ááŒá
Ạdnsmasq
network interface ááŸáá·áº áá»áááºáááºáá¬ážáááºá br0
á
ááºáá
á¹á
ááºážááœá±áááºáž ááá·áºáá¬ážáááºá wg0
ááœáá·áºááŒá¯áá¬ážáá±á¬ á
ááºáá»á¬ážá
á¬áááºážááá¯á· dnsmasq ááœáẠáááºážááᯠconfiguration file ááœáẠnetwork interface line á¡áá
áºáá
áºáá¯ááá·áºááŒááºážááŒáá·áº áá¯ááºáá±á¬ááºáááºá /etc/dnsmasq.conf
á¥ááá¬:
interface=br0
interface=wg0
ááá¯á·á¡ááŒááºá UDP áá¬ážáá±á¬ááºááŸá¯ááá¯á·áẠ(51280) ááá¯á· á¡ááœá¬ážá¡áá¬ááᯠááœáá·áºááŒá¯ááẠiptable á ááºážáá»ááºážááᯠááá·áºááœááºážáá¬ážáá«áááºá
$ 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 áá¬áᬠhost ááᯠáááºááŸááºááẠááá¯á¡ááºáááºá
- setting á¡á¬ážááŒáá·áº
AllowedIPs
á¡áá±á«áº10.200.200.0/24
áá»áœááºá¯ááºááá¯á·ááẠá¡ááœááºážááá¯ááºážááœááºáááºááᯠáááºáá±á¬ááºááẠVPN ááá¯áᬠá¡áá¯á¶ážááŒá¯áá«áááºá á¡ááŒá¬ážáá±á¬ IP ááááºá á¬áá»á¬áž/áá¬áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááá¯á· áááºážááŒá±á¬ááºážá¡ááœá¬ážá¡áá¬ááẠâáá¯á¶ááŸááºâ ááœáá·áºáá¬ážáá±á¬ áá»ááºáááºáá»á¬ážááŸáá áºááá·áº áááºáááºááœá¬ážáá±áááºááŒá áºáááºá áááºážááẠáááºááºáá±á¬á·áá±á«áºááŸá ááŒáá¯áááºááŒááºáááºáá¬ážáá±á¬ DNS áá¬áá¬ááá¯áááºáž á¡áá¯á¶ážááŒá¯áááºááŒá áºáááºá
á
ááºážáááºááŒááºážááŸáá·áº á¡ááá¯á¡áá»á±á¬áẠá
áááºááŒááºážá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá°áá®áá±á¬ á¡áááá·áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá wg-quick
О systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Android áá¯ááºážááœáẠáááá¯ááºážááá·áºááᯠá áá áºááá·áºááœááºážááŒááºážá
Andriod áá¯ááºážá¡ááœáẠá¡ááœááºáááºáá°áá±á¬ configuration file áá
áºáá¯ááᯠáááºáá®ážááẠ(á¡á²áá«ááᯠáá±á«áºááŒáá·áºáá¡á±á¬áẠ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 tunnel ááŸáááá·áº áááºážááŒá±á¬ááºážá¡á¬ážáá¯á¶ážááᯠááŒááºáááºážáá« (AllowedIPs = 0.0.0.0/0
).
ááá¯ááºááᯠááá·áºááá¯ááá¯ááºážá ááºáá á¹á ááºážááá¯á· áá°ážáá°ááá·áºá¡á á¬ážá áááºážááᯠQR áá¯ááºá¡ááŒá ẠááŒá±á¬ááºážáá²ááá¯ááºáááº-
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
QR áá¯ááºááẠASCII á¡ááŒá Ạááœááºááá¯ážááºááá¯á· ááœááºáááºááŒá áºáááºá áááºážááᯠAndroid VPN á¡ááºááºá០á áááºááºáááºááá¯ááºááŒá®áž VPN á¥áááºááá¯ááºáá±á«ááºážááᯠá¡ááá¯á¡áá»á±á¬áẠá áá áºááá·áºááœááºážáááºááŒá áºáááºá
áá±á¬ááºáá»ááº
WireGuard á
áá
áºááá·áºááœááºážááŒááºážááẠOpenVPN ááŸáá·áº ááŸáá¯ááºážááŸááºáá»áŸáẠááá¯ážááŸááºážáá«áááºá
source: www.habr.com