Server kimi WireGuard və Raspberry Pi ilə sadə VPN qurun

WireGuard-dan bəri hissəsi olmaq gələcək Linux 5.6 kernelindən istifadə edərək, bu VPN-ni mənimlə ən yaxşı şəkildə necə birləşdirəcəyimi görməyə qərar verdim Raspberry Pi-də LTE Router/Access Point.

Оборудование

  • LTE modulu və ictimai IP ilə Raspberry Pi 3. VPN serveri olacaq (bundan sonra kənar gəzən)
  • Bütün rabitələr üçün VPN istifadə etməli olan Android telefonu
  • Yalnız şəbəkə daxilində VPN istifadə etməli olan Linux noutbuku

VPN-ə qoşulan hər bir cihaz hər bir digər cihaza qoşula bilməlidir. Məsələn, hər iki cihaz VPN şəbəkəsinin bir hissəsidirsə, telefon noutbukda veb serverə qoşula bilməlidir. Quraşdırma kifayət qədər sadədirsə, o zaman VPN və masaüstünə (Ethernet vasitəsilə) qoşulmaq barədə düşünə bilərsiniz.

Nəzərə alsaq ki, simli və simsiz bağlantılar zaman keçdikcə daha az təhlükəsiz olur (hədəflənmiş hücumlar, KRACK WPA2 haker hücumu и WPA3-ə qarşı əjdaha qanı hücumu), hansı mühitdə işləməsindən asılı olmayaraq, bütün cihazlarım üçün WireGuard-dan istifadə etməyi ciddi düşünürəm.

Proqram təminatı

WireGuard təmin edir əvvəlcədən tərtib edilmiş paketlər əksər Linux, Windows və macOS paylamaları üçün. Android və iOS üçün proqramlar proqram kataloqları vasitəsilə çatdırılır.

Məndə ən son Fedora Linux 31 var və quraşdırmadan əvvəl təlimatı oxumaq üçün çox tənbəl idim. Sadəcə paketləri tapdım wireguard-tools, onları quraşdırdı və sonra heç nəyin niyə işləmədiyini başa düşə bilmədi. Sonrakı araşdırma nəticəsində məlum oldu ki, məndə paket quraşdırılmayıb wireguard-dkms (şəbəkə sürücüsü ilə) və mənim paylamamın deposunda deyildi.

Təlimatları oxusaydım, düzgün addımlar alardım:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

Raspberry Pi-də Raspbian Buster paylanması quraşdırılıb, artıq paket var wireguard, quraşdırın:

$ sudo apt install wireguard

Proqramı android telefonuma quraşdırdım WireGuardVPN Google App Store-un rəsmi kataloqundan.

Açarların quraşdırılması

Düyünlərin autentifikasiyası üçün Wireguard VPN qovşaqlarının autentifikasiyası üçün sadə şəxsi/ictimai açar sxemindən istifadə edir. Aşağıdakı əmrlə VPN açarlarını asanlıqla yarada bilərsiniz:

$ 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

Bu bizə üç açar cütü (altı fayl) verir. Biz konfiqurasiyadakı fayllara istinad etməyəcəyik, lakin məzmunu buraya köçürün: hər bir düymə base64-də bir sətirdir.

VPN Server üçün Konfiqurasiya Faylının yaradılması (Raspberry Pi)

Konfiqurasiya olduqca sadədir, mən aşağıdakı faylı yaratdım /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

Bir neçə qeyd:

  • Müvafiq yerlərdə düymələri olan fayllardan sətirləri daxil etməlisiniz
  • Mənim VPN daxili diapazondan istifadə edir 10.200.200.0/24
  • Komandalar üçün PostUp/PostDown Mənim wwan0 xarici şəbəkə interfeysim var, sizdə fərqli ola bilər (məsələn, eth0)

VPN şəbəkəsi asanlıqla aşağıdakı əmrlə gündəmə gətirilir:

$ sudo wg-quick up wg0

Kiçik bir detal: DNS server kimi istifadə etdim dnsmasq şəbəkə interfeysinə qoşulur br0, mən də cihazlar əlavə etdim wg0 icazə verilən cihazların siyahısına. Dnsmasq-da bu, konfiqurasiya faylına şəbəkə interfeysi ilə yeni sətir əlavə etməklə həyata keçirilir /etc/dnsmasq.conf, məsələn:

interface=br0
interface=wg0

Həmçinin, dinləyən UDP portuna (51280) trafikə icazə vermək üçün iptable qaydası əlavə etdim:

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

İndi hər şey işləyir, biz VPN tunelinin avtomatik işə salınmasını qeyd edə bilərik:

$ sudo systemctl enable [email protected]

Laptop müştəri konfiqurasiyası

Laptopda konfiqurasiya faylı yaradın /etc/wireguard/wg0.conf eyni parametrlərlə:

[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

Qeydlər:

  • Edgewalker əvəzinə ictimai IP və ya VPN server hostunu təyin etməlisiniz
  • Ayarlayaraq AllowedIPs haqqında 10.200.200.0/24, biz yalnız daxili şəbəkəyə daxil olmaq üçün VPN-dən istifadə edirik. Bütün digər IP ünvanlara/serverlərə trafik “müntəzəm” açıq kanallar vasitəsilə davam edəcək. Laptopda əvvəlcədən konfiqurasiya edilmiş DNS serveri də istifadə olunacaq.

Test və avtomatik işə salmaq üçün eyni əmrlərdən istifadə edirik wg-quick и systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

Android telefonunda müştəri qurmaq

Android telefonu üçün biz çox oxşar konfiqurasiya faylı yaradırıq (gəlin ona zəng edək 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

Laptop konfiqurasiyasından fərqli olaraq, telefon VPN serverimizi DNS serveri kimi istifadə etməlidir (string DNS), həmçinin bütün trafiki VPN tunelindən keçir (AllowedIPs = 0.0.0.0/0).

Faylı mobil cihazınıza köçürmək əvəzinə onu QR koda çevirə bilərsiniz:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

QR kodu konsola ASCII olaraq çıxacaq. Onu Android VPN proqramından skan etmək və avtomatik olaraq VPN tunelini qurmaq olar.

Buraxılış

WireGuard-ı qurmaq OpenVPN ilə müqayisədə sadəcə sehrlidir.

Mənbə: www.habr.com

Добавить комментарий