рдХрд╛рд░рдг рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб
рдЙрдкрдХрд░рдгреЗ
- LTE рдореЙрдбреНрдпреВрд▓ рдЖрдгрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IP рдкрддреНрддреНрдпрд╛рд╕рд╣ рд░рд╛рд╕реНрдкрдмреЗрд░реА Pi 3. рдпреЗрдереЗ рдПрдХ рд╡реНрд╣реАрдкреАрдПрди рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕реЗрд▓ (рдпрд╛рдкреБрдвреЗ рдордЬрдХреВрд░рд╛рдд рддреНрдпрд╛рд▓рд╛ рдореНрд╣рдЯрд▓реЗ рдЖрд╣реЗ edgewalker)
- рдПрдХ Android рдлреЛрди рдЬреНрдпрд╛рдиреЗ рд╕рд░реНрд╡ рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рдВрд╕рд╛рдареА VPN рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
- Linux рд▓реЕрдкрдЯреЙрдк рдЬреНрдпрд╛рдиреЗ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдлрдХреНрдд VPN рд╡рд╛рдкрд░рд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ
VPN рд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрдгрд╛рд░реЗ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдЗрддрд░ рд╕рд░реНрд╡ рдЙрдкрдХрд░рдгрд╛рдВрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдд рд╕рдХреНрд╖рдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рджреЛрдиреНрд╣реА рдЙрдкрдХрд░рдгреЗ VPN рдиреЗрдЯрд╡рд░реНрдХрдЪрд╛ рднрд╛рдЧ рдЕрд╕рд▓реНрдпрд╛рд╕ рдлреЛрди рд▓реЕрдкрдЯреЙрдкрд╡рд░реАрд▓ рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдд рд╕рдХреНрд╖рдо рдЕрд╕рд╛рд╡рд╛. рдЬрд░ рд╕реЗрдЯрдЕрдк рдЕрдЧрджреА рд╕реЛрдкрд╛ рдЕрд╕реЗрд▓ рддрд░, рдЖрдкрдг рдбреЗрд╕реНрдХрдЯреЙрдкрд▓рд╛ рд╡реНрд╣реАрдкреАрдПрди (рдЗрдерд░рдиреЗрдЯрджреНрд╡рд╛рд░реЗ) рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛.
рд╡рд╛рдпрд░реНрдб рдЖрдгрд┐ рд╡рд╛рдпрд░рд▓реЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ рдХрдореА рдЖрдгрд┐ рдХрдореА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдд рдЖрд╣реЗрдд рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди (
рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдерд╛рдкрдирд╛
рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб рдкреНрд░рджрд╛рди рдХрд░рддреЗ
рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рдирд╡реАрдирддрдо Fedora Linux 31 рдЖрд╣реЗ, рдЖрдгрд┐ рдореА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдореЕрдиреНрдпреБрдЕрд▓ рд╡рд╛рдЪрдгреНрдпрд╛рдд рдЦреВрдк рдЖрд│рд╢реА рд╣реЛрддреЛ. рдиреБрдХрддреАрдЪ рдкреЕрдХреЗрдЬреЗрд╕ рд╕рд╛рдкрдбрд▓реА wireguard-tools
, рддреНрдпрд╛рдВрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ, рдЖрдгрд┐ рдирдВрддрд░ рдХрд╛рд╣реАрд╣реА рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА рд╣реЗ рд╕рдордЬреВ рд╢рдХрд▓реЗ рдирд╛рд╣реА. рдкреБрдвреАрд▓ рддрдкрд╛рд╕рд╛рдд рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рдкреЕрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдирд╛рд╣реА wireguard-dkms
(рдиреЗрдЯрд╡рд░реНрдХ рдбреНрд░рд╛рдпрд╡реНрд╣рд░рд╕рд╣), рдкрд░рдВрддреБ рддреЗ рдорд╛рдЭреНрдпрд╛ рд╡рд┐рддрд░рдгрд╛рдЪреНрдпрд╛ рднрд╛рдВрдбрд╛рд░рд╛рдд рдирд╡реНрд╣рддреЗ.
рдЬрд░ рдореА рд╕реВрдЪрдирд╛ рд╡рд╛рдЪрд▓реНрдпрд╛ рдЕрд╕рддреНрдпрд╛, рддрд░ рдореА рдпреЛрдЧреНрдп рдкрд╛рд╡рд▓реЗ рдЙрдЪрд▓рд▓реА рдЕрд╕рддреА:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
рдорд╛рдЭреНрдпрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИрд╡рд░ рд░рд╛рд╕реНрдкрдмрд┐рдпрди рдмрд╕реНрдЯрд░ рд╡рд┐рддрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рддреЗрдереЗ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдПрдХ рдкреЕрдХреЗрдЬ рдЖрд╣реЗ wireguard
, рддреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:
$ sudo apt install wireguard
рдорд╛рдЭреНрдпрд╛ Android рдлреЛрдирд╡рд░ рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓рд╛
рдХрд│рд╛рдВрдЪреА рд╕реНрдерд╛рдкрдирд╛
рдкреАрдЕрд░ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рдирд╕рд╛рдареА, рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб рд╡реНрд╣реАрдкреАрдПрди рдкреАрдЕрд░ рдСрдереЗрдВрдЯрд┐рдХреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзреА рдЦрд╛рдЬрдЧреА/рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреА рдпреЛрдЬрдирд╛ рд╡рд╛рдкрд░рддреЗ. рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рд╡рд╛рдкрд░реВрди рд╕рд╣рдЬ 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 рдордзреНрдпреЗ рдПрдХ рдУрд│ рдЖрд╣реЗ.
рд╡реНрд╣реАрдкреАрдПрди рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ (рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ)
рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ, рдореА рдЦрд╛рд▓реАрд▓ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ /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)
рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢рд╛рдиреЗ рд╡реНрд╣реАрдкреАрдПрди рдиреЗрдЯрд╡рд░реНрдХ рд╕рд╣рдЬрдкрдгреЗ рд╡рд╛рдврд╡рд▓реЗ тАЛтАЛрдЬрд╛рддреЗ:
$ sudo wg-quick up wg0
рдПрдХ рд▓рд╣рд╛рди рддрдкрд╢реАрд▓: рдореА рд╡рд╛рдкрд░рд▓реЗрд▓рд╛ DNS рд╕рд░реНрд╡реНрд╣рд░ рдореНрд╣рдгреВрди dnsmasq
рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрд╣реЗ br0
, рдореА рд╕рд╛рдзрдиреЗ рджреЗрдЦреАрд▓ рдЬреЛрдбрд▓реА wg0
рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рдВрдЪреНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ. dnsmasq рдордзреНрдпреЗ рд╣реЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдирд╡реАрди рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЗрди рдЬреЛрдбреВрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ /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
рдЯрд┐рдкрд╛:
- рдПрдЬрд╡реЙрдХрд░ рдРрд╡рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IP рдХрд┐рдВрд╡рд╛ VPN рд╕рд░реНрд╡реНрд╣рд░ рд╣реЛрд╕реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
- рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░
AllowedIPs
рд╡рд░10.200.200.0/24
, рдЖрдореНрд╣реА рдлрдХреНрдд рдЕрдВрддрд░реНрдЧрдд рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА VPN рд╡рд╛рдкрд░рддреЛ. рдЗрддрд░ рд╕рд░реНрд╡ рдЖрдпрдкреА рдкрддреНрддреЗ/рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓ рд░рд╣рджрд╛рд░реА тАЬрд╕рд╛рдорд╛рдиреНрдптАЭ рдЦреБрд▓реНрдпрд╛ рдЪреЕрдиреЗрд▓рдордзреВрди рдЬрд╛рдд рд░рд╛рд╣реАрд▓. рд╣реЗ рд▓реЕрдкрдЯреЙрдкрд╡рд░ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ DNS рд╕рд░реНрд╡реНрд╣рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реЗрд▓.
рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд▓реЙрдиреНрдЪрд╕рд╛рдареА рдЖрдореНрд╣реА рд╕рдорд╛рди рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рддреЛ wg-quick
╨╕ systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
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
), рдЖрдгрд┐ рд╡реНрд╣реАрдкреАрдПрди рдмреЛрдЧрджреНрдпрд╛рддреВрди рд╕рд░реНрд╡ рд░рд╣рджрд╛рд░реА рдкрд╛рд╕ рдХрд░рд╛ (AllowedIPs = 0.0.0.0/0
).
рддреБрдордЪреНрдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рдлрд╛рдЗрд▓ рдХреЙрдкреА рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рддреБрдореНрд╣реА рддреА QR рдХреЛрдбрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
QR рдХреЛрдб рдХрдиреНрд╕реЛрд▓рд╡рд░ ASCII рдореНрд╣рдгреВрди рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрд▓. рд╣реЗ Android VPN рдЕреЕрдкрд╡рд░реВрди рд╕реНрдХреЕрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ VPN рдмреЛрдЧрджрд╛ рд╕реЗрдЯ рдХрд░реЗрд▓.
рдирд┐рд╖реНрдХрд░реНрд╖
рдУрдкрдирд╡реНрд╣реАрдкреАрдПрдирдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рд╡рд╛рдпрд░рдЧрд╛рд░реНрдб рд╕реЗрдЯ рдХрд░рдгреЗ рд╣реЗ рдлрдХреНрдд рдЬрд╛рджреБрдИ рдЖрд╣реЗ.
рд╕реНрддреНрд░реЛрдд: www.habr.com