WireGuard-dan bəri
Оборудование
- 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 (
Proqram təminatı
WireGuard təmin edir
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
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ında10.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