áĄááźá áş WireGuard áĄááŹáááş áĄááá Linux á .á áážáŹ áᎠVPN ááᯠááťá˝ááşááąáŹáˇáşáá˛áˇ VPN áá˛áˇ áááşáááŻááąáŤááşá¸á ááşáááá˛áááŻáᏠááźááˇáşáááŻáˇ ááŻáśá¸ááźááşáááŻááşáááşá .
áá ášá ááşá¸áááááŹ
- LTE module áážááˇáş public IP ááááşá áŹááŤáážáááąáŹ Raspberry Pi 3 á¤ááąááŹáá˝ááş VPN ááŹááŹáá áşááŻáážáááááˇáşáááş (áááşá¸áááŻá áŹááŹá¸áá˝ááşáááşá¸ááąáŹááşáážááąáŤáşáááşá áááşá¸ááťážáąáŹááşáá°)
- ááŻááşá¸áá˝ááˇáşááŹá¸áááş Androidáááşáá˝ááşááąá¸áĄáŹá¸ááŻáśá¸áĄáá˝ááş VPN ááᯠáĄááŻáśá¸ááźáŻááááş
- áážááşááťááşá áŹáĄáŻááş Linuxáá˝ááşáááşáĄáá˝ááşá¸áᏠVPN ááᯠáĄááŻáśá¸ááźáŻáááˇáşáááş
VPN áááŻáˇ ááťáááşáááşáááˇáş á
ááşáá
ášá
ááşá¸áááŻááşá¸áááş áĄááźáŹá¸á
ááşáá
ášá
ááşá¸ááťáŹá¸áĄáŹá¸ááŻáśá¸áááŻáˇ ááťáááşáááşáááŻááşáááŤáááşá áĽáááŹáĄáŹá¸ááźááˇáşá á
ááşáážá
áşááŻááŻáśá¸áááş VPN áá˝ááşáááşááĄá
áááşáĄáááŻááşá¸áá
áşááŻááźá
áşááŤáá ááŻááşá¸áááş áááşááşááąáŹáˇááąáŤáşáá˝ááş áááşááŹááŹáá
áşááŻáááŻáˇ ááťáááşáááşáááŻááşáááˇáşáááşá á
áá
áşáááˇáşáá˝ááşá¸áážáŻáááş áĄááąáŹáşááąá¸áááŻá¸áážááşá¸ááŤáá Desktop áážááˇáş VPN (Ethernet áážááááˇáş) ááťáááşáááşááźááşá¸áĄááźáąáŹááşá¸ áááşá
ááşá¸á
áŹá¸áááŻááşááŤáááşá
ááźááŻá¸áááş áážááˇáş ááźááŻá¸áá˛áˇááťáááşáááşáážáŻááťáŹá¸áááş áĄááťáááşááźáŹááŹáááşáážááˇáşáĄááťáž ááŻáśááźáŻáśáážáŻ ááťáąáŹáˇáááşá¸ááŹáááşááᯠáááˇáşáá˝ááşá¸á
ááşá¸á
áŹá¸áááş (, и ) ááťá˝ááşááąáŹáş/ááťá˝ááşá áĄááąá¸áĄáááşááŹá¸ááźáŽá¸ áĄááŻáśá¸ááźáŻáááŻáˇ á
ááşá¸á
áŹá¸ááąááŤáááş WireGuard áááşáááˇáşáááşáááşá¸ááťááşáá˝ááşáááᯠááťá˝ááşáŻááşá á
ááşáá
ášá
ááşá¸áĄáŹá¸ááŻáśá¸áĄáá˝ááşá
software áááŻáááşáááş
WireGuard ááąáŹááşááśáˇ ááźááˇáşááźá°á¸áážáŻáĄááťáŹá¸á áŻáĄáá˝ááş Linux, Windows и macOSááťážáąáŹááşáá˝ážáŹááťáŹá¸áĄáá˝ááş Android áážááˇáş iOS ááᯠapp store ááťáŹá¸áážáá áşáááˇáş ááąá¸áááŻáˇáááşá
ááťá˝ááşááąáŹáˇáşáážáŹ ááąáŹááşááŻáśá¸ááąáŤáş Fedora áážáááŤáááş Linux áá ááŤá install áááŻááşáááşáážáŹ manual áááŻáááşáááŻáˇ ááťááşá¸ááąáá˛áˇáááşá package áá˝áąáááŻáᲠáá˝áąáˇáá˛áˇáááşá 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 ááťá˝ááşááąáŹáş application ááᯠinstall ááŻááşáááŻááşááŤááźáŽ áááŹá¸áááş Google App Store áááşáááąáŹááşáážá
ááąáŹáˇááťáŹá¸áááşáááşááźááşá¸á
node ááťáŹá¸ááᯠáĄááąáŹááşáĄááŹá¸á áá á áşáááş Wireguard VPN node ááťáŹá¸ááᯠauthenticate ááŻááşáááş áááŻá¸áážááşá¸ááąáŹ private/public key scheme áá áşááŻááᯠáĄááŻáśá¸ááźáŻáááşá áĄáąáŹááşá፠command ááźááˇáş VPN key ááťáŹá¸ááᯠáĄáá˝ááşááá° generate ááŻááşáááŻááşáááşá
$ 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 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 ááŹáᏠhost ááᯠáááşáážááşáááş áááŻáĄááşáááşá
- setting áĄáŹá¸ááźááˇáş
AllowedIPsáĄááąáŤáş10.200.200.0/24ááťá˝ááşáŻááşáááŻáˇáááş áĄáá˝ááşá¸áááŻááşá¸áá˝ááşáááşááᯠáááşááąáŹááşáááş VPN áááŻáᏠáĄááŻáśá¸ááźáŻááŤáááşá áĄááźáŹá¸ááąáŹ IP ááááşá áŹááťáŹá¸/ááŹááŹááťáŹá¸áĄáŹá¸ááŻáśá¸áááŻáˇ áááşá¸ááźáąáŹááşá¸áĄáá˝áŹá¸áĄááŹáááş âááŻáśáážááşâ áá˝ááˇáşááŹá¸ááąáŹ ááťááşáááşááťáŹá¸áážáá áşáááˇáş áááşáááşáá˝áŹá¸ááąáááşááźá áşáááşá áááşá¸áááş áááşááşááąáŹáˇááąáŤáşáážá ááźááŻáááşááźááşáááşááŹá¸ááąáŹ DNS ááŹááŹáááŻáááşá¸ áĄááŻáśá¸ááźáŻáááşááźá áşáááşá
á
ááşá¸áááşááźááşá¸áážááˇáş áĄáááŻáĄááťáąáŹááş á
áááşááźááşá¸áĄáá˝ááş ááťá˝ááşáŻááşáááŻáˇáááş áá°ááŽááąáŹ áĄááááˇáşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻááŤáááşá wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceclient ááᯠá áá áşáááˇáşáá˝ááşá¸ááźááşá¸ Android-ááŻááşá¸
ááŻááşá¸áĄáá˝ááş Android ááťá˝ááşáŻááşáááŻáˇáááş áĄáá˝ááşáááşáá°ááąáŹ 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.confQR ááŻááşááᯠASCII áĄááźá áş console áááŻáˇ ááŻááşááąá¸ááŤáááşá áĄááşááşááž á áááşáááşáááŻááşááŤáááşá Android VPN áážááˇáş VPN tunnel ááᯠáĄáááŻáĄááťáąáŹááş configure ááŻááşááŤá
ááąáŹááşááťááş
áááˇáşáĄáąáŹááşááŻááşááźááşá¸ WireGuard áážááŻááşá¸áážááşááťážááş áááŻá¸áááŻá¸áážááşá¸áážááşá¸ áážáąáŹáşáááşááąáŹ OpenVPN.
source: www.habr.com
