แ แแแแแ WireGuard
ะะฑะพััะดะพะฒะฐะฝะธะต
- Raspberry Pi 3 LTE แแแแฃแแแ แแ แกแแฏแแ แ IP แแแกแแแแ แแแ. แแฅ แแฅแแแแ VPN แกแแ แแแ แ (แจแแแแแแแจแ แขแแฅแกแขแจแ แแแก แ.แฌ แแฆแฃแ แแแแแ)
- Android แขแแแแคแแแ, แ แแแแแแช แฃแแแ แแแแแแงแแแแก VPN แงแแแแ แแแแฃแแแแแชแแแกแแแแก
- Linux แแแแขแแแ, แ แแแแแแช แฃแแแ แแแแแแงแแแแก แแฎแแแแ 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
Raspberry Pi-แแ แแแงแแแแแฃแแ แแแฅแแก Raspbian Buster แแแกแขแ แแแฃแชแแ, แแฅ แฃแแแ แแ แแก แแแแแขแ 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
แแก แแแแซแแแแก แกแแแ แแแกแแฆแแแแก แฌแงแแแแก (แแฅแแกแ แคแแแแ). แฉแแแ แแ แแแแแแ แแแแ แคแแแแแแก แแแแคแแแฃแ แแชแแแจแ, แแแแ แแ แแแแแแแแ แแ แจแแแแแแกแ แแฅ: แแแแแแฃแแ แแแกแแฆแแแ แแ แแก แแ แแ แฎแแแ 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
on10.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