Vis daugiau žmonių naudojasi savo VPN, užuot naudojęsi mokamomis, paruoštomis paslaugomis: tai pigiau, geriau apsaugo privatumą ir suteikia visišką serverio kontrolę. Vienas iš efektyviausių variantų regionams, kuriuose naudojamas agresyvus tinklo blokavimas, yra „AmneziaWG“ – protokolas, kurį „Amnezia“ projektas sukūrė „WireGuard“ pagrindu.
Klasikinis „WireGuard“ yra greitas ir patikimas, tačiau turi fiksuotą paketų struktūrą ir nuspėjamą pasisveikinimą, kurį DPI (giliosios paketų inspekcijos) sistemos gali patikimai atpažinti ir blokuoti. „AmneziaWG“ tai išsprendžia: prie įprasto „WireGuard“ ryšio prideda nepageidaujamus paketus, atsitiktine tvarka suskirsto antraštes ir pakeičia pasisveikinimo laukų dydį – todėl išnyksta būdingas „WireGuard“ parašas ir srautas nebeišsiskiria iš įprasto UDP srauto.
Jau naudojate klasikinį tunelį ir svarstote, ar verta jį pakeisti? Palyginkite tai su paprasta OpenVPN/PPTP sąranka skyriuje VPN serverio sąranka „Linux“ sistemoje: PPTP ar OpenVPN? arba su įprasta „WireGuard“ (be maskavimo) skyriuje „ Kaip nustatyti „Wireguard VPN“ savo serveryje“.
Šiame vadove rankiniu būdu, be „Docker“ ar žiniatinklio skydelio, nustatomas „AmneziaWG“ serveris – tai mažiausias įmanomas VPS užimamas plotas, konfigūruojamas tik iš komandinės eilutės. Tai lengviausias variantas ir gerai veikia su biudžetiniu VPS, nes jam nereikia grafinės sąsajos, duomenų bazės ir atvirkštinio tarpinio serverio. Žemiau pateiktame serverio pavyzdyje naudojamas vietos rezervavimo IP adresas – pakeiskite jį savo VPS adresu visur, kur jis rodomas.
Ko jums reikės: VPS su „Ubuntu 22.04/24.04“ arba „Debian 11/12“, root prieiga ir jūsų VPS IP adresas. Domeno vardas nebūtinas – „AmneziaWG“ nenaudoja sertifikatų, todėl nereikia nieko atnaujinti ir DPI neturi jokių duomenų, kuriuos galėtų pažymėti kaip TLS patvirtinimo kodą.
Dar neturite serverio? Žr. Kaip užsisakyti serverį
Prisijungimas prie serverio
„Windows“ (PuTTY)
Atidarykite „PuTTY“, lauke „Host Name“ įveskite savo VPS IP adresą, nustatykite prievadą į 22 ir prisijunkite kaip root naudodami slaptažodį, kurį jums el. paštu atsiuntė VPS teikėjas.
Serverio IP adresas: jūsų IP adresas
prisijungti kaip: root
Slaptažodis: jūsų slaptažodis
1. Atidarykite „PuTTY“, įveskite savo VPS IP adresą lauke „Host Name“.
2. Nustatykite prievadą į 22.
3. Prisijunkite kaip root vartotojas.
4. Naudojant slaptažodį, kurį jums el. paštu atsiuntė VPS teikėjas.
Rezultatas turėtų būti toks:
Išsamesnį prisijungimo per „PuTTY“ / SSH aprašymą žr. Kaip prisijungti prie „Linux“ serverio per SSH.
Linux / macOS (terminalas)
ssh root@YOUR_SERVER_IP
Visos toliau pateiktos komandos vykdomos serveryje, toje pačioje SSH sesijoje – tai apima 2–5 skyrius, taip pat 9 skyriuje aprašytus serverio pusės patikrinimus. 6–8 skyriai (VPN kliento diegimas ir konfigūravimas) vykdomi jūsų pačių „Windows“ / „macOS“ / „Linux“ įrenginyje, nes tai yra įrenginys, kuriame turi veikti VPN; kiekviename iš šių skyrių aiškiai nurodoma, kurios eilutės, jei tokių yra, vis dar liečia serverį.
Serverio paruošimas
Atnaujinkite sistemą
Prieš diegdami bet ką, atnaujinkite paketų sąrašą ir atnaujinkite įdiegtus paketus:
apt update -y && apt upgrade -y
Jei tai atnaujina branduolį, prieš kompiliuodami „AmneziaWG“ branduolio modulį 3 skyriuje, paleiskite kompiuterį iš naujo, kitaip DKMS gali būti kompiliuojama naudojant neteisingas branduolio antraštes ir modulis nepavyks įkelti. (Norėdami atnaujinti informaciją apie „apt“ ir kaip veikia „Linux“ paketų tvarkyklės, žr. „Linux“ paketų tvarkyklės .) Patikrinkite:
cat /var/run/reboot-required
Įgalinti IP peradresavimą
Šis nustatymas leidžia serveriui persiųsti klientų paketus į internetą – be jo tunelis atsiras, bet juo nepraeis joks srautas.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system
Pirmoji komanda sukuria specialų konfigūracijos failą; antroji jį pritaiko neperkraudama serverio.
Užkardos (UFW) konfigūravimas
Daugiau apie UFW taisykles žr. Ugniasienės konfigūravimas sistemoje „Linux“
Atidarykite du reikalingus prievadus: 22/tcp SSH (praleiskite šią taisyklę ir rizikuojate prarasti prieigą prie serverio) ir 42666/udp – prievadą, kurio klausysis „AmneziaWG“.
apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status
Abi taisyklės ufw būsenos išvestyje turėtų būti rodomos kaip ALLOW.
AmneziaWG diegimas
„Debian“ tiesiogiai nepalaiko „Ubuntu“ stiliaus PPA, todėl saugyklą reikia pridėti rankiniu būdu, o ne naudojant „add-apt-repository“. Tai veikia taip pat ir „Ubuntu“ sistemoje.
Pridėti saugyklą rankiniu būdu
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list
Pridėti GPG pasirašymo raktą
Vietoj nebenaudojamos „apt-key“ komandos naudokite nebenaudojamą raktų rinkmeną ir gaukite tikrąjį PPA pasirašymo raktą (pirštų atspaudą 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
Atnaujinti ir įdiegti
apt update
apt install -y amneziawg
Patikrinkite, ar modulis įkeltas
modprobe amneziawg
lsmod | grep amnezia
Serverio ir kliento konfigūracijos generavimas
Įdiekite pagalbines programas
Įdiekite „qrcode“ priklausomybę, tada sukurkite specialų darbinį katalogą ir į jį atsisiųskite bendruomenės konfigūracijos generatoriaus skriptą:
apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py
Jei „python3-qrcode“ nėra jūsų distribucijos saugyklose, grįžkite prie „pip3 install qrcode --break-system-packages“ (ši vėliavėlė būtina „Debian 12+“ / „Ubuntu 24.04“, kurios pagal numatytuosius nustatymus blokuoja nevaldomus „pip“ diegimus). Nevykdykite abiejų diegimų – pasirinkite vieną.
Sukurkite serverio konfigūraciją
Sukurkite /etc/amnezia/amneziawg/awg0.conf. Galite palikti tunelio vidinį potinklį ir UDP prievadą pagal numatytuosius nustatymus arba nustatyti savo:
python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
-i 10.10.8.1/24 -p 42666
Funkcija „-i“ nustato tunelio vidinį tinklo adresą ir kaukę; parametras „-p“ nustato serverio UDP prievadą (tą patį, kuris buvo atidarytas 2.3 veiksme).
Sukurkite kliento konfigūracijos šabloną
python3 awgcfg.py --create
Tai išsaugo šabloną tame pačiame aplanke, iš kurio kuriamos atskiros kliento konfigūracijos – jame jau yra serverio viešasis raktas, jo IP adresas ir užmaskavimo parametrai (Jc, Jmin, Jmax, S1, S2, H1–H4), kurie skiria „AmneziaWG“ nuo paprasto „WireGuard“.
Pridėkite klientų
Sukurkite po vieną įrašą kiekvienam įrenginiui – pavadinimas gali būti bet koks, pvz., įrenginio pavadinimas:
python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Sukurkite kliento failus ir QR kodus
python3 awgcfg.py -c -q
Aplanke ~/awg dabar bus tokie failai kaip laptop.conf ir phone.conf, taip pat atitinkami PNG QR kodai, kuriuos galėsite nuskaityti tiesiai į mobiliąją programėlę.
Aplanke ~/awg dabar bus tokie failai kaip laptop.conf ir phone.conf, taip pat atitinkami PNG QR kodai, kuriuos galėsite nuskaityti tiesiai į mobiliąją programėlę.
Paslaugos paleidimas ir automatinio paleidimo įjungimas
Atidarykite „awg0“ sąsają ir įgalinkite ją automatiškai paleisti iš naujo paleidus kompiuterį:
systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]
Paleidimo metu būsena turėtų būti rodoma kaip aktyvi (išeita), o įrenginys įjungtas. Jei konsolė „užstringa“ ir rodomi žurnalai, paspauskite Q, kad išeitumėte.
Patikrinkite aktyvių bendraamžių sąrašą ir srautą tarp bendraamžių su:
awg show
Prisijungimas iš „Windows“
Viskas šiame skyriuje atliekama jūsų „Windows“ kompiuteryje, o ne per SSH – VPN klientas turi būti įdiegtas įrenginyje, kuris iš tikrųjų naudos tunelį. Vienintelis žingsnis, susijęs su serveriu, yra scp atsisiuntimas 6.2 versijoje, ir net ši komanda įvedama jūsų kompiuteryje, ištraukiant failą, kurį serveris jau sugeneravo 4 skyriuje.
Įdiekite klientą
„AmneziaWG“ turi specialią „Windows“ programėlę – jos sąsaja atspindi standartinį „WireGuard“ klientą, tačiau ji supranta kodavimo parametrus. Atsisiųskite diegimo programą iš oficialios projekto saugyklos:
https://github.com/amnezia-vpn/amneziawg-windows-client/releases
Aukščiau pateikta nuoroda yra palaikomo „Windows“ kliento leidimų puslapis – iš ten atsisiųskite naujausią .msi/.exe failą. Tai puslapis, kurį reikia atidaryti naršyklėje, o ne komanda, kurią reikia įklijuoti į terminalą.
Paleiskite diegimo programą ir atlikite sąrankos vedlio veiksmus; numatytųjų nustatymų keisti nereikia.
Importuokite konfigūraciją
Nukopijuokite kliento konfigūracijos failą iš serverio į savo kompiuterį – paprasčiausias būdas yra „scp“, paleiskite „PowerShell“ savo kompiuteryje, o ne serveryje:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
„AmneziaWG“ programėlėje spustelėkite „Importuoti tunelį(-ius) iš failo“, pasirinkite laptop.conf ir įjunkite jungiklį šalia naujo tunelio.
Prisijungimas iš macOS
Yra dvi palaikomos parinktys:
- „AmneziaWG“ („Mac App Store“): lengvas klientas, veikiantis „macOS 12“ ir naujesnėse versijose. „App Store“ ieškokite „AmneziaWG“, įdiekite ją, tada naudokite parinktį „Importuoti tunelį(-ius) iš failo“ ir pasirinkite savo .conf failą – ta pati darbo eiga kaip ir „Windows“ kliente.
- „AmneziaVPN“ (pilna programėlė, „macOS 14+“): atsisiųskite .pkg failą iš github.com/amnezia-vpn/amnezia-client/releases/latest, jei norite naudoti pilnai veikiančią „Amnezia“ programėlę, o ne lengvą, tik „AmneziaWG“ skirtą klientą.
Jei reikia, pirmiausia nukopijuokite kliento konfigūraciją, kaip ir 6.2 veiksme:
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .
Prisijungimas iš „Linux“
„Linux“ staliniame arba nešiojamajame kompiuteryje turite dvi parinktis:
- GUI: įdiekite pilną „AmneziaVPN“ darbalaukio klientą iš github.com/amnezia-vpn/amnezia-client/releases, tada importuokite .conf failą taip pat, kaip ir „Windows“ / „macOS“.
- CLI, naudojant tuos pačius „amneziawg“ įrankius, kurie naudojami serveryje (awg / awg-quick):
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0
Paleiskite šį kodą, kad atsijungtumėte.
awg-quick down awg0
Norėdami, kad tunelis būtų automatiškai paleistas prisijungus, įjunkite jį kaip paslaugą:
systemctl enable --now awg-quick@awg0
Ryšio tikrinimas
Kai tunelis iš 6, 7 arba 8 skyriaus yra aktyvus, grįžkite į savo įrenginį (ne į SSH sesiją) ir naršyklėje atidarykite bet kokį „koks mano IP adresas?“ tikrintuvą – rodomas adresas turėtų sutapti su jūsų VPS IP adresu. Norėdami patikrinti iš SSH sesijos, serveryje paleiskite „awg show“ ir įsitikinkite, kad kliento mazgas rodo neseniai įvykusį pasisveikinimą ir ne nulinį srautą.
Nuoroda:
|
Laukas |
Reikšmė |
|
Adresas |
JŪSŲ_TUNELIS_IP (kliento adresas tunelyje, pvz., 10.10.8.2/32 — priskiriamas automatiškai, kai klientas buvo pridėtas 4.4 veiksme) |
|
Pasekmė |
JŪSŲ_SERVERIO_IP:42666 (Išorinis serverio IP adresas ir UDP prievadas, prie kurio jungiasi klientas.) |
|
DNS |
8.8.8.8 |
|
Jc / Jmin / Jmax |
prieš paspaudimą išsiųstų „nepageidaujamų“ paketų skaičius ir dydis – gali skirtis tarp serverio ir kliento nenutraukiant ryšio |
|
S1 / S2 |
Rankos paspaudimo užpildymo laukų dydis – turi sutapti baitas po baito tarp serverio ir kiekvieno kliento |
|
H1 – H4 |
paketinio tipo antraštės, kurios maskuoja protokolą kaip įprastą srautą, taip pat turi tiksliai sutapti ir būti unikalios viena nuo kitos |
Tik S1/S2 ir H1–H4 turi būti identiški abiejuose tunelio galuose; Jc, Jmin ir Jmax yra tik apie tai, kaip kiekviena pusė papildo savo išeinantį nepageidaujamą srautą, todėl kliento ir serverio reikšmės gali teisėtai skirtis, kaip ir aukščiau pateiktame pavyzdyje.
Išvada
Vadovaujantis šiuo vadovu, jūsų VPS liks veikti su savo „AmneziaWG“ serveriu: su „WireGuard“ suderinamu protokolu su srauto maskavimu, kurį DPI sistemoms pastebimai sunkiau atskirti nuo įprasto UDP srauto nei paprastą „WireGuard“. Paslauga veikia kaip „systemd“ vienetas awg-quick@awg0 ir išgyvena serverio perkrovimą be jokių jūsų veiksmų.
Gauti .conf failai ir QR kodai, esantys ~/awg, veikia ne tik su „Windows“ klientu, bet ir gali būti importuoti į „AmneziaWG“ arba „Amnezia“ programas, skirtas „Android“, „iOS“, „macOS“ ir „Linux“, taip pat į „Keenetic“ ir „OpenWrt“ maršrutizatorius.
Naujus klientus galite bet kada pridėti pakartodami 4.4–4.5 veiksmus (python3 awgcfg.py -a „name“, tada awgcfg.py -c -q) ir paleisdami sąsają iš naujo naudodami komandą „systemctl restart [email protected]“.
Keletas įpročių, kuriuos verta išlaikyti, kai serveris veikia:
- Nuolat atnaujinkite sistemą. Periodiškai iš naujo paleiskite „apt update -y“ ir „apt upgrade -y“ komandas ir paleiskite sistemą iš naujo po branduolio atnaujinimų, kad DKMS iš naujo sukurtų „amneziawg“ modulį pagal naują branduolį.
- Sukurkite ~/awg atsarginę kopiją. Joje yra kiekvieno kliento privatusis raktas ir serverio raktų pora faile awg0.conf; jo praradimas reiškia, kad reikės iš naujo generuoti kiekvieno įrenginio konfigūracijas.
- Nedelsdami atšaukite prarastų įrenginių prijungimą. Pašalinkite atitinkamą [Peer] bloką iš /etc/amnezia/amneziawg/awg0.conf ir paleiskite systemctl restart. [apsaugotas el. paštu].
Jei ryšys neatsiranda, patikrinkite veiksmus tokia tvarka:
- paslaugos būsena (systemctl status [apsaugotas el. paštu])
- užkardos taisyklės (ufw būsena – 42666/udp prievadas turi būti atidarytas)
- DKMS/modulio būsena, jei sąsaja net nepasileidžia (dkms būsena, lsmod | grep amnezia)
- aktyvių serverio mazgų sąrašas (awg show)
- kad kliento konfigūracija nukreiptų į teisingą išorinio serverio IP adresą
Lyginate „AmneziaWG“ su kitomis parinktimis prieš įsipareigodami? Žr. VPN serverio sąranka „Linux“ sistemoje: PPTP ar OpenVPN? ir Kaip nustatyti „Wireguard VPN“ savo serveryje . Jei jums reikia tik paprasto tarpinio serverio, o ne viso VPN tunelio, 3 tarpinio serverio konfigūracija „CentOS“ / „ArchLinux“ sistemose yra lengvesnė alternatyva. Norėdami sužinoti apie bendrą serverio apsaugos stiprinimą, kai VPN veikia, žr. „Linux vartotojai: valdymas ir leidimai“.