Öz VPN serverini qurmaq: Ubuntu 24.04-də WireGuard addım-addım

Öz VPN serverini qurmaq: Ubuntu 24.04-də WireGuard addım-addım

Öz VPN serveriniz olanda trafikiniz naməlum şirkətin serverindən keçmir, IP ünvanı sabit qalır və girişi yalnız siz idarə edirsiniz. WireGuard bunun üçün ən yüngül və sürətli vasitədir: Ubuntu 24.04 olan bir VPS-də bütün qurulum 15-20 dəqiqə çəkir. Aşağıda paket quraşdırılmasından telefonda QR kodla qoşulmağa qədər hər addım var.

WireGuard nədir və nə lazımdır

WireGuard müasir VPN protokoludur: kodu kiçikdir, Linux kernelinə daxil edilib və UDP üzərində işləyir. Hər cihazın öz açar cütü olur. Gizli açar cihazda qalır, açıq açar isə qarşı tərəfə verilir. Server yalnız açıq açarını tanıdığı cihazlarla danışır, tanımadığı paketlərə ümumiyyətlə cavab vermir. Bu səbəbdən port skanerləri üçün demək olar ki, görünməzdir.

Qurulum üçün bunlar lazımdır:

  • Ubuntu 24.04 olan VPS və root və ya sudo girişi. 1 vCPU və 2 GB RAM bir neçə istifadəçi üçün kifayətdir.
  • SSH ilə qoşulma bacarığı. Əgər bu sizin üçün yenidirsə, əvvəlcə SSH əsasları və VPS-ə qoşulma yazısına baxın.
  • Telefonda və ya kompüterdə rəsmi WireGuard tətbiqi.

Nümunədə VPN şəbəkəsi 10.8.0.0/24, server ünvanı 10.8.0.1, ilk müştəri 10.8.0.2 olacaq.

Serverin hazırlanması

1. Paketləri quraşdırın

sudo apt update
sudo apt install -y wireguard qrencode

wireguard paketi wg və wg-quick alətlərini gətirir, kernel modulu Ubuntu 24.04-də artıq mövcuddur. qrencode isə müştəri konfiqurasiyasını QR koda çevirmək üçündür.

2. Açar cütlərini yaradın

Hər tərəfin (server və hər müştəri) öz gizli və açıq açarı olur. Açarları root kimi və qorunan icazələrlə yaradın:

sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee client1.key | wg pubkey > client1.pub

sudo -i root sessiyası açır, bu bələdçinin qalan əmrləri də həmin sessiyada icra olunur. umask 077 sayəsində fayllar yalnız root tərəfindən oxunur. Gizli açarı (.key) heç kimə göndərməyin, mesajlaşma tətbiqinə yapışdırmayın.

3. Server konfiqurasiyası: wg0.conf

Əvvəlcə internetə çıxan şəbəkə interfeysinin adını öyrənin (adətən eth0 və ya ens3):

ip -o -4 route show to default | awk '{print $5}'

Sonra nano /etc/wireguard/wg0.conf ilə faylı yaradın. SERVER_KEY yerinə cat server.key, CLIENT1_PUB yerinə cat client1.pub nəticəsini yazın, eth0-ı öz interfeysinizlə əvəz edin:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_KEY
PostUp = iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

[Peer]
# client1
PublicKey = CLIENT1_PUB
AllowedIPs = 10.8.0.2/32

PostUp və PostDown sətirləri NAT qaydasını əlavə edib silir: müştərinin trafiki serverin IP-si ilə internetə çıxır. Serverdəki AllowedIPs isə bu müştəriyə hansı daxili ünvanın aid olduğunu göstərir.

Şəbəkə və təhlükəsizlik divarı

4. IP yönləndirməni (forwarding) aktiv edin

Linux standart olaraq paketləri bir interfeysdən digərinə ötürmür. Bunu daimi aktiv edin:

echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl --system

Yoxlamaq üçün sysctl net.ipv4.ip_forward əmri = 1 göstərməlidir.

5. UFW qaydaları

Təhlükəsizlik divarını aktiv edəndə SSH-i bağlamamaq vacibdir, ona görə əvvəlcə onu icazəyə əlavə edin:

ufw allow OpenSSH
ufw allow 51820/udp
ufw route allow in on wg0 out on eth0
ufw enable
ufw status verbose

ufw route allow sətri olmadan tunel qurulacaq, amma internet işləməyəcək, çünki UFW standart olaraq yönləndirilən trafiki bloklayır. UFW və iptables-in məntiqini dərindən öyrənmək üçün VPS-də firewall: iptables və UFW yazısı faydalıdır.

6. Tuneli işə salın

systemctl enable --now wg-quick@wg0
wg show

enable sayəsində WireGuard server yenidən başlayanda avtomatik qalxır. wg show interfeysi, dinlənən portu və peer siyahısını göstərir.

Müştəri konfiqurasiyası və QR kod

/etc/wireguard/client1.conf faylını yaradın. CLIENT1_KEY yerinə cat client1.key, SERVER_PUB yerinə cat server.pub, SERVER_IP yerinə VPS-in IP-sini yazın:

[Interface]
PrivateKey = CLIENT1_KEY
Address = 10.8.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUB
Endpoint = SERVER_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0 bütün IPv4 trafikini tunelə yönləndirir. PersistentKeepalive mobil şəbəkədə və NAT arxasında bağlantının qopmamasına kömək edir.

İndi faylı terminalda QR koda çevirin:

qrencode -t ansiutf8 < /etc/wireguard/client1.conf

Telefonda WireGuard tətbiqini açın, "+" düyməsi ilə "QR koddan yarat" seçin və ekrandakı kodu skan edin. Kompüterdə isə tətbiqə client1.conf faylını idxal edin.

Yalnız daxili şəbəkə (split tunnel)

Bəzən bütün interneti tuneldən keçirmək lazım olmur, məsələn, yalnız serverdəki daxili panelə və ya verilənlər bazasına təhlükəsiz giriş istəyirsiniz. Bu halda müştəri faylında AllowedIPs = 10.8.0.0/24 yazın. Onda yalnız VPN şəbəkəsinə gedən trafik tuneldən keçəcək, adi saytlar isə birbaşa açılacaq.

Yoxlama və yeni istifadəçi əlavə etmək

Telefonda tuneli aktiv edin və serverdə yenidən wg show yazın. Peer altında latest handshake və transfer sətirləri görünürsə, bağlantı işləyir. Brauzerdə IP yoxlama saytı artıq serverin IP-sini göstərməlidir. Problem olarsa, xidmətin jurnalına journalctl -u wg-quick@wg0 ilə baxın.

Yeni müştəri üçün yeni açar cütü yaradın, wg0.conf-a növbəti ünvanla (10.8.0.3/32) yeni [Peer] bloku əlavə edin və mövcud bağlantıları qırmadan dəyişikliyi tətbiq edin:

wg syncconf wg0 <(wg-quick strip wg0)

Bu əmr sudo -i ilə açılmış root sessiyasında (bash) işləyir. Əgər problem çıxarsa, sadəcə systemctl restart wg-quick@wg0 edin.

Tez-tez verilən suallar

Handshake yoxdur, nə yoxlamalıyam?

Ən çox səbəb 51820/udp portunun bağlı olması və ya açarların qarışdırılmasıdır. Serverdə serverin gizli açarı, müştəridə isə serverin açıq açarı olmalıdır.

Tunel qoşulur, amma saytlar açılmır?

Adətən ip_forward aktiv deyil, ufw route allow qaydası yoxdur və ya PostUp-da interfeys adı səhvdir. Hər üçünü yoxlayın.

WireGuard, yoxsa Outline?

WireGuard daha sürətli və yüngüldür, konfiqurasiya fayllarla aparılır. Komandaya qrafik panel ilə açar paylamaq istəyirsinizsə, Outline VPN serverinin qurulmasına baxın.

Bakı serverində WireGuard nəyə yarayır?

Azərbaycan IP-si tələb edən xidmətlərə xaricdən daxil olmaq üçün. Bu barədə xaricdən e-taxes.gov.az açılmır yazısında ətraflı danışmışıq.

Müştəri konfiqurasiyalarını komanda üzvlərinə göndərərkən onları açıq çatda paylaşmayın, komandada parol və girişləri təhlükəsiz paylaşmaq qaydalarına əməl edin. Öz VPN-iniz üçün Bakıda VPS Starter paketi kifayətdir, digər seçimlər VPS paketləri səhifəsindədir. Hostinq.az-ın Bakı VPS-ləri tam root girişi və limitsiz trafiklə gəlir, ona görə VPN trafiki üçün əlavə hesablama aparmaq lazım deyil.

Paylaş: