ืืืื WireGuard
ะะฑะพััะดะพะฒะฐะฝะธะต
- Raspberry Pi 3 ืขื ืืืืื LTE ืืืชืืืช IP ืฆืืืืจืืช. ืืืื ืืื ืฉืจืช VPN (ืืืื ืืืงืกื ืืื ื ืงืจื ืืืงืจ ืงืฆื)
- ืืืคืื ืื ืืจืืืื ืฉืืืื ืืืฉืชืืฉ ื-VPN ืขืืืจ ืื ืืชืงืฉืืจืช
- ืืืฉื ื ืืื ืืื ืืงืก ืฉืืืืจ ืืืฉืชืืฉ ืจืง ื-VPN ืืชืื ืืจืฉืช
ืื ืืืฉืืจ ืฉืืชืืืจ ื-VPN ืืืื ืืืืืช ืืกืืื ืืืชืืืจ ืืื ืฉืืจ ืืืืฉืืจืื. ืืืืืื, ืืืคืื ืืืืจ ืืืืืช ืืกืืื ืืืชืืืจ ืืฉืจืช ืืื ืืจื ื ืืืืฉื ื ืืื ืื ืฉื ื ืืืืฉืืจืื ืื ืืืง ืืจืฉืช 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
ืืืืคืื ืืื ืืจืืืื ืฉืื ืืชืงื ืชื ืืช ืืืคืืืงืฆืื
ืืชืงื ืช ืืคืชืืืช
ืขืืืจ ืืืืืช ืขืืืชืื, 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
ืื ื ืืชื ืื ื ืฉืืืฉื ืืืืืช ืืคืชื (ืฉืืฉื ืงืืฆืื). ืื ื ืชืืืืก ืืงืืฆืื ืืชืฆืืจื, ืืื ื ืขืชืืง ืืช ืืชืืื ืืืื: ืื ืืคืชื ืืื ืฉืืจื ืืืช ื-base64.
ืืฆืืจืช ืงืืืฅ ืชืฆืืจื ืขืืืจ ืฉืจืช ื-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]
ืืืืจืช ืืงืื ืืืืคืื ืื ืืจืืืื
ืขืืืจ ืืืคืื ืื ืืจืืืื ืื ื ืืืฆืจืื ืงืืืฅ ืชืฆืืจื ืืืื ืืืื (ืืื ื ืงืจื ืืื 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. ื ืืชื ืืกืจืืง ืืืชื ืืืคืืืงืฆืืืช ื-VPN ืฉื ืื ืืจืืืื ืืืื ืืืืืจ ืืืืืืืืช ืื ืืจืช VPN.
ืคืื
ืืืืจืช WireGuard ืืื ืคืฉืื ืงืกืืื ืืืฉืืืื ื-OpenVPN.
ืืงืืจ: www.habr.com