Насб кардани VPN оддӣ бо WireGuard ва Raspberry Pi ҳамчун сервер

Зеро WireGuard қисми мешавад аз ядрои дарпешистодаи Linux 5.6, ман қарор додам, ки бубинам, ки чӣ гуна беҳтарин ин VPN-ро бо Роутер LTE/нуқтаи дастрасӣ дар Raspberry Pi.

Таҷҳизот

  • Raspberry Pi 3 бо модули LTE ва суроғаи IP ҷамъиятӣ. Дар ин ҷо сервери VPN мавҷуд хоҳад буд (минбаъд дар матн он номида мешавад канорӣ)
  • Телефони Android, ки бояд VPN-ро барои ҳама муошират истифода барад
  • Ноутбуки Linux, ки бояд танҳо VPN дар дохили шабака истифода кунад

Ҳар як дастгоҳе, ки ба VPN пайваст мешавад, бояд ба ҳама дастгоҳҳои дигар пайваст шавад. Масалан, агар ҳарду дастгоҳ қисми шабакаи VPN бошанд, телефон бояд ба веб-сервери ноутбук пайваст шавад. Агар танзимот хеле содда бошад, шумо метавонед дар бораи пайваст кардани мизи корӣ ба VPN (тавассути Ethernet) фикр кунед.

Бо дарназардошти он, ки пайвастҳои ноқилӣ ва бесим бо мурури замон камтар ва камтар бехатар мешаванд (ҳамлаҳои ҳадафнок, Ҳамлаи крекинги KRACK WPA2 и Ҳамлаи аждаҳо бар зидди WPA3), Ман ба таври ҷиддӣ фикр мекунам, ки WireGuard-ро барои ҳама дастгоҳҳои худ, новобаста аз он ки онҳо дар кадом муҳит ҳастанд, истифода барам.

Насби нармафзор

WireGuard таъмин менамояд бастаҳои пешакӣ тартибдодашуда барои аксари тақсимоти Linux, Windows ва macOS. Барномаҳои Android ва iOS тавассути феҳристҳои барномаҳо интиқол дода мешаванд.

Ман 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

Дар телефони Android ман барномаро насб кардам WireGuardVPN аз каталоги расмии Google App Store.

Насб кардани калидҳо

Барои аутентификатсияи ҳамсолон, 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]

Насб кардани муштарӣ дар телефони 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 оддӣ аст.

Манбаъ: will.com

Илова Эзоҳ