Čoraz viac ľudí si namiesto platených, hotových služieb prevádzkuje vlastnú VPN: je to lacnejšie, lepšie z hľadiska súkromia a dáva vám plnú kontrolu nad serverom. Jednou z najúčinnejších možností pre regióny s agresívnym blokovaním siete je AmneziaWG, protokol vyvinutý projektom Amnezia na báze WireGuard.
Klasický WireGuard je rýchly a spoľahlivý, ale má pevnú štruktúru paketov a predvídateľné handshake, ktoré systémy DPI (Deep Packet Inspection) dokážu spoľahlivo odtlačiť a zablokovať. AmneziaWG to rieši: pridáva nepotrebné pakety do bežného pripojenia WireGuard, náhodne upravuje hlavičky a mení veľkosť polí handshake – charakteristický podpis WireGuardu tak zmizne a prevádzka sa už neodlišuje od bežnej UDP prevádzky.
Už používate klasický tunel a rozmýšľate, či sa oplatí prejsť na iný? Porovnajte to s obyčajným nastavením OpenVPN/PPTP v článku Nastavenie VPN servera v systéme Linux: PPTP alebo OpenVPN? alebo s jednoduchým nastavením WireGuard (bez obfuskacie) v článku Ako nastaviť Wireguard VPN na vašom serveri.
Táto príručka nastavuje server AmneziaWG manuálne, bez Dockeru alebo webového panela – čo najmenšia možná záťaž na samotnom VPS, konfigurovaná výlučne z príkazového riadku. Je to najľahšia možnosť a funguje dobre na lacnom VPS, pretože nepotrebuje žiadne grafické rozhranie, žiadnu databázu ani reverznú proxy. Uvedený príklad servera používa zástupnú IP adresu – nahraďte ju adresou vášho vlastného VPS všade, kde sa zobrazí.
Čo budete potrebovať: VPS s Ubuntu 22.04/24.04 alebo Debian 11/12, root prístup a IP adresu vášho VPS. Názov domény nie je potrebný – AmneziaWG nepoužíva certifikáty, takže nie je potrebné nič obnovovať a DPI nemá čo označovať ako TLS handshake.
Ešte nemáte server? Pozrite si časť Ako si objednať server.
Pripojenie k serveru
Windows (PuTTY)
Otvorte PuTTY, zadajte IP adresu vášho VPS do poľa Názov hostiteľa, nastavte port na 22 a prihláste sa ako root pomocou hesla, ktoré vám poskytovateľ VPS poslal e-mailom.
IP adresa servera: vaša IP adresa
prihlásiť sa ako: root
Heslo: vaše heslo
1. Otvorte PuTTY a do poľa Názov hostiteľa zadajte IP adresu vášho VPS.
2. Nastavte port na 22.
3. Prihláste sa ako root.
4. Použite heslo, ktoré vám poskytovateľ VPS poslal e-mailom.
Výsledok by mal byť nasledovný:
Podrobný návod na pripojenie cez PuTTY/SSH nájdete v článku Ako sa pripojiť k Linuxovému serveru cez SSH.
Linux / macOS (terminál)
ssh root@YOUR_SERVER_IP
Všetky nižšie uvedené príkazy sa spúšťajú na serveri v tej istej SSH relácii – ktorá pokrýva časti 2 až 5 plus kontroly na strane servera v časti 9. Časti 6 – 8 (inštalácia a konfigurácia VPN klienta) sa vykonávajú na vašom vlastnom zariadení so systémom Windows/macOS/Linux, pretože to je zariadenie, na ktorom musí VPN bežať; každá z týchto častí explicitne uvádza, ktoré riadky, ak nejaké existujú, sa stále dotýkajú servera.
Príprava servera
Aktualizujte systém
Pred inštaláciou čohokoľvek obnovte zoznam balíkov a aktualizujte nainštalované balíky:
apt update -y && apt upgrade -y
Ak sa týmto aktualizuje jadro, reštartujte počítač pred zostavením modulu jadra AmneziaWG v časti 3, inak môže DKMS zostaviť s nesprávnymi hlavičkami jadra a modul sa nepodarí načítať. (Pripomenutie si apt a fungovania správcov balíkov v systéme Linux nájdete v časti Správcovia balíkov v systéme Linux .) Skontrolujte pomocou:
cat /var/run/reboot-required
Povoliť presmerovanie IP
Toto nastavenie umožňuje serveru preposielať pakety klientov na internet – bez neho sa tunel síce síce otvorí, ale neprejde cez neho žiadna prevádzka.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
Prvý príkaz vytvorí vyhradený konfiguračný súbor; druhý ho použije bez reštartu servera.
Konfigurácia firewallu (UFW)
Viac informácií o pravidlách UFW nájdete v časti Konfigurácia brány firewall v systéme Linux
Otvorte dva porty, ktoré budete potrebovať: 22/tcp pre SSH (preskočenie tohto pravidla môže viesť k strate prístupu k serveru) a 42666/udp, port, na ktorom bude AmneziaWG počúvať.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Obe pravidlá by sa mali vo výstupe stavu ufw zobraziť ako POVOLENÉ.
Inštalácia AmneziaWG
Debian priamo nepodporuje PPA v štýle Ubuntu, takže repozitár je potrebné pridať manuálne, a nie pomocou príkazu add-apt-repository. V Ubuntu to funguje rovnako.
Pridajte repozitár manuálne
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Pridajte podpisový kľúč GPG
Namiesto zastaraného príkazu apt-key použite súbor s kľúčenkami Dearmored a načítajte skutočný podpisový kľúč PPA (odtlačok prsta 75C9DD72C799870E310542E24166F2C257290828):
apt install -y gnupg2
gpg --keyserver keyserver.ubuntu.com --recv-keys 57290828
gpg --export 57290828 | tee /usr/share/keyrings/amnezia.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Aktualizovať a nainštalovať
apt update
apt install -y amneziawg
Overte, či je modul načítaný
modprobe amneziawg
lsmod | grep amnezia
Generovanie konfigurácie servera a klienta
Inštalácia pomocných nástrojov
Nainštalujte závislosť qrcode, potom vytvorte vyhradený pracovný adresár a stiahnite si doň skript generátora konfigurácie komunity:
apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py
Ak python3-qrcode nie je dostupný v repozitároch vašej distribúcie, použite príkaz pip3 install qrcode --break-system-packages (tento príznak je povinný v systémoch Debian 12+/Ubuntu 24.04, ktoré štandardne blokujú nespravované inštalácie pip). Nespúšťajte obe inštalácie – vyberte si jednu.
Vygenerujte konfiguráciu servera
Vytvorte súbor /etc/amnezia/amneziawg/awg0.conf. Vnútornú podsieť a UDP port tunela môžete ponechať na predvolených hodnotách alebo si nastaviť vlastné:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
Príznak -i nastavuje internú sieťovú adresu a masku tunela; -p nastavuje UDP port servera (ten istý, ktorý bol otvorený v kroku 2.3).
Vytvorenie šablóny konfigurácie klienta
python3 awgcfg.py --create
Toto uloží šablónu do rovnakého priečinka, z ktorého sa vytvárajú jednotlivé konfigurácie klientov – už obsahuje verejný kľúč servera, jeho IP adresu a parametre obfuskácie (Jc, Jmin, Jmax, S1, S2, H1–H4), ktoré odlišujú AmneziaWG od obyčajného WireGuardu.
Pridať klientov
Vytvorte jeden záznam pre každé zariadenie – názov môže byť ľubovoľný, napr. názov zariadenia:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Generovanie klientskych súborov a QR kódov
python3 awgcfg.py -c -q
Priečinok ~/awg bude teraz obsahovať súbory ako laptop.conf a phone.conf a tiež zodpovedajúce QR kódy PNG, ktoré môžete naskenovať priamo do mobilnej aplikácie.
Priečinok ~/awg bude teraz obsahovať súbory ako laptop.conf a phone.conf a tiež zodpovedajúce QR kódy PNG, ktoré môžete naskenovať priamo do mobilnej aplikácie.
Spustenie služby a povolenie automatického spustenia
Otvorte rozhranie awg0 a povoľte jeho automatické spustenie po reštarte:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
Stav by mal ukazovať aktívny (ukončený) s povolenou jednotkou pri spustení. Ak sa konzola „zasekne“ a zobrazuje protokoly, stlačte Q pre ukončenie.
Skontrolujte zoznam aktívnych peerov a prevádzku na peer pomocou:
awg show
Pripojenie z Windowsu
Všetko v tejto časti sa deje na vašom počítači so systémom Windows, nie cez SSH – VPN klient musí byť nainštalovaný na zariadení, ktoré bude tunel skutočne používať. Jediným krokom, ktorý sa týka servera, je stiahnutie scp vo verzii 6.2 a aj tento príkaz sa zadáva na vašom počítači a stiahne sa súbor, ktorý server už vygeneroval v časti 4.
Nainštalujte klienta
AmneziaWG má špeciálnu aplikáciu pre Windows – jej rozhranie odzrkadľuje štandardného klienta WireGuard, ale rozumie parametrom obfuskácie. Stiahnite si inštalátor z oficiálneho repozitára projektu:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
Vyššie uvedený odkaz je stránka s vydaniami spravovaného klienta pre Windows – stiahnite si odtiaľ najnovší súbor .msi/.exe. Toto je stránka, ktorú otvoríte v prehliadači, nie príkaz, ktorý vložíte do terminálu.
Spustite inštalátor a prejdite krok za krokom sprievodcom nastavením; predvolené nastavenia nie je potrebné meniť.
Importovať konfiguráciu
Skopírujte konfiguračný súbor klienta zo servera do počítača – najjednoduchší spôsob je scp, spustite ho v PowerShelle na počítači, nie na serveri:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
V aplikácii AmneziaWG kliknite na „Importovať tunel(e) zo súboru“, vyberte laptop.conf a zapnite prepínač vedľa nového tunela.
Pripájanie z macOS
Existujú dve podporované možnosti:
- AmneziaWG (Mac App Store): ľahký klient, funguje na macOS 12 a novších. Vyhľadajte „AmneziaWG“ v App Store, nainštalujte ho, potom použite možnosť „Importovať tunel(e) zo súboru“ a vyberte súbor .conf – rovnaký pracovný postup ako v prípade klienta pre Windows.
- AmneziaVPN (plná aplikácia, macOS 14+): stiahnite si súbor .pkg z github.com/amnezia-vpn/amnezia-client/releases/latest, ak radšej používate plnohodnotnú aplikáciu Amnezia namiesto ľahkého klienta AmneziaWG.
V prípade potreby najskôr skopírujte konfiguráciu klienta, rovnako ako v kroku 6.2:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Pripájanie z Linuxu
Na stolnom počítači alebo notebooku s Linuxom máte dve možnosti:
- GUI: nainštalujte si plnú desktopovú klientsku verziu AmneziaVPN z github.com/amnezia-vpn/amnezia-client/releases a potom importujte súbor .conf rovnakým spôsobom ako vo Windows/macOS.
- CLI s použitím rovnakých nástrojov amneziawg, aké sa používajú na serveri (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Spustite tento kód pre odpojenie.
awg-quick down awg0
Ak chcete, aby sa tunel automaticky spustil pri prihlásení, povoľte ho ako službu:
systemctl enable --now awg-quick@awg0
Overenie spojenia
S aktívnym tunelom zo sekcie 6, 7 alebo 8 sa vráťte na svoje zariadenie (nie do SSH relácie) a otvorte v prehliadači ľubovoľný nástroj na kontrolu „aká je moja IP adresa“ – zobrazená adresa by sa mala zhodovať s IP adresou vášho VPS. Ak chcete overiť zvnútra SSH relácie, spustite na serveri príkaz awg show a overte, či klientov peer zobrazuje nedávne nadviazanie spojenia a nenulovú prevádzku.
Referencie:
|
Pole |
Hodnota |
|
adresa |
VAŠA_IP_ADRESA_TUNELA (adresa klienta v tuneli, napr. 10.10.8.2/32 — priradená automaticky pri pridaní klienta v kroku 4.4) |
|
Endpoint |
YOUR_SERVER_IP:42666 (Externá IP adresa servera a port UDP, ku ktorému sa klient pripája.) |
|
DNS |
8.8.8.8 |
|
Jc / Jmin / Jmax |
počet a veľkosť „nevyžiadaných“ paketov odoslaných pred handshake – môže sa medzi serverom a klientom líšiť bez prerušenia spojenia |
|
S1 / S2 |
veľkosť polí handshake padding – musí sa zhodovať bajt po bajte medzi serverom a každým klientom |
|
H1 – H4 |
hlavičky paketového typu, ktoré maskujú protokol ako bežnú prevádzku – musia sa tiež presne zhodovať a musia byť navzájom jedinečné |
Identické musia byť iba S1/S2 a H1–H4 na oboch koncoch tunela; Jc, Jmin a Jmax sa týkajú výlučne toho, ako každá strana dopĺňa svoju vlastnú odchádzajúcu nevyžiadanú prevádzku, takže hodnoty klienta a servera sa môžu legitímne líšiť, ako je to v príklade vyššie.
Záver
Dodržiavaním tohto návodu necháte svoj VPS bežať na vlastnom serveri AmneziaWG: protokol kompatibilný s WireGuardom s obfuskáciou prevádzky, ktorú je pre systémy DPI citeľne ťažšie odlíšiť od bežnej prevádzky UDP ako pri obyčajnom WireGuarde. Služba beží ako jednotka systemd awg-quick@awg0 a prežije reštart servera bez akejkoľvek akcie z vašej strany.
Výsledné súbory .conf a QR kódy v priečinku ~/awg fungujú nielen s klientom systému Windows, ale je možné ich importovať aj do aplikácií AmneziaWG alebo Amnezia pre Android, iOS, macOS a Linux, ako aj do routerov Keenetic a OpenWrt.
Nových klientov môžete kedykoľvek pridať opakovaním krokov 4.4–4.5 (python3 awgcfg.py -a "name", potom awgcfg.py -c -q) a reštartovaním rozhrania pomocou príkazu systemctl restart [email protected].
Niekoľko návykov, ktoré sa oplatí dodržiavať po spustení servera:
- Udržujte systém aktualizovaný. Pravidelne znova spúšťajte príkazy apt update -y && apt upgrade -y a po aktualizácii jadra reštartujte systém, aby DKMS znovu zostavil modul amneziawg s novým jadrom.
- Zálohujte ~/awg. Obsahuje súkromný kľúč každého klienta a vlastný pár kľúčov servera v awg0.conf; jeho strata znamená opätovné vygenerovanie konfigurácií pre každé zariadenie.
- Stratené zariadenia ihneď zrušte. Odstráňte príslušný blok [Peer] zo súboru /etc/amnezia/amneziawg/awg0.conf a spustite príkaz systemctl restart. [chránené e-mailom].
Ak sa pripojenie nenadviaže, skontrolujte postup v tomto poradí:
- stav služby (stav systemctl [chránené e-mailom])
- pravidlá brány firewall (stav ufw — port 42666/udp musí byť otvorený)
- stav DKMS/modulu, ak sa rozhranie ani nespustí (stav dkms, lsmod | grep amnezia)
- zoznam aktívnych peerov na serveri (awg show)
- že konfigurácia klienta ukazuje na správnu IP adresu externého servera
Porovnávate AmneziaWG s inými možnosťami pred rozhodnutím? Pozrite si časti Nastavenie VPN servera v systéme Linux: PPTP alebo OpenVPN? a Ako nastaviť Wireguard VPN na vašom serveri . Ak potrebujete iba jednoduchý proxy server namiesto plného VPN tunela, konfigurácia 3proxy v systéme CentOS/ArchLinux je ľahšou alternatívou. Informácie o všeobecnom zabezpečení servera po spustení VPN nájdete v časti Používatelia systému Linux: Správa a povolenia.