Norėdami prijungti Linux maršrutizatorių su strongSwan prie VPSnet privataus tinklo per IPsec, VPSnet valdymo skydelyje pridėkite padalinį, tada jo swanctl failą įdėkite į /etc/swanctl/conf.d, pagal skydelio komandas sukurkite XFRM tunelio sąsają bei maršrutus ir įkelkite konfigūraciją. Tunelis veikia su sąsaja: srautas į VPSnet tinklus nukreipiamas į XFRM sąsają. Išbandyta su Ubuntu 24.04.5 LTS, strongSwan 5.9.13 ir pastoviu viešuoju IPv4 adresu.
Prieš pradedant
- VPSnet valdymo skydelyje atidarykite savo VPN, pasirinkite Prijungti padalinį (maršrutizatorių), pažymėkite strongSwan ir spauskite Toliau. Įveskite padalinio tinklus ir maršrutizatoriaus viešąjį adresą.
- Iškart nusikopijuokite bendrąjį raktą: jis rodomas vieną kartą.
- Padalinio konfigūracijoje (kortelė CLI (kopijuoti ir įklijuoti)) užpildykite Pavadinimai jūsų maršrutizatoriuje: Programinės įrangos versija (5.9 arba 6.x), XFRM sąsajos id (skaičius, kurio nenaudoja jokie kiti maršrutizatoriaus tuneliai) ir Tunelio sąsajos pavadinimas. Tada atsisiųskite ryšio .conf failą.
Paveikslėliuose rodomos pavyzdinės reikšmės (dokumentacijai skirti adresai). Įveskite reikšmes iš savo instrukcijos skydelyje.
Šio gido paveikslėliuose – bandymo metu gauta terminalo išvestis, kurioje adresai, pavadinimai ir raktai pakeisti pavyzdinėmis reikšmėmis.
1. Įdiekite strongSwan ir pasirinkite pavadinimus
Terminal
Ubuntu sistemoje paketai vadinasi strongswan-swanctl ir charon-systemd. Pasitikrinkite versiją ir jau naudojamas XFRM sąsajas, tada pasirinkite id ir pavadinimą, kurių nenaudoja kiti tuneliai (čia – 27 ir vpsnet27).
sudo apt install strongswan-swanctl charon-systemd
swanctl --version
ip -d link show type xfrm
2. Įdėkite konfigūracijos failą
/etc/swanctl/conf.d/
Atsisiųstą failą nukopijuokite į /etc/swanctl/conf.d/ ir palikite skaitymo teisę tik root naudotojui: jame yra bendrasis raktas. Faile aprašytas ryšys su pasiūlymais ir jūsų pasirinktu XFRM id.
sudo install -m 600 vpsnet-a10e8857.conf /etc/swanctl/conf.d/
3. Sukurkite tunelio sąsają ir maršrutus
ip link / ip route
Paleiskite skydelio žingsnio „Komandos“ eilutes: jos sukuria XFRM sąsają su MTU 1400, nukreipia į ją VPSnet tinklus ir įjungia IP persiuntimą. Perkrovus sąsaja ir maršrutai dingsta, todėl įtraukite juos į tinklo konfigūraciją arba paleidimo skriptą. Jei VPN įjungta interneto prieiga per VPN adresą, skydelis prideda dar tris eilutes (ip rule, table), kurios biuro interneto srautą siunčia per VPN.
sudo ip link add vpsnet27 type xfrm if_id 27
sudo ip link set vpsnet27 up mtu 1400
sudo ip route add 172.31.250.0/24 dev vpsnet27
sudo ip route add 10.255.0.0/24 dev vpsnet27
printf 'net.ipv4.ip_forward = 1\n' | sudo tee /etc/sysctl.d/90-vpsnet-forward.conf
sudo sysctl -p /etc/sysctl.d/90-vpsnet-forward.conf
4. Įkelkite konfigūraciją
swanctl --load-all
swanctl --load-all nuskaito /etc/swanctl/swanctl.conf ir visus conf.d failus. Jei maršrutizatoriuje yra kitų strongSwan ryšių, prieš paleisdami įsitikinkite, kad visi jie yra tuose failuose.
sudo swanctl --load-all
5. Patikrinkite tunelį
swanctl --list-sas
Mūsų VPN tunelį užmezga per minutę: ryšys rodomas kaip ESTABLISHED su INSTALLED child, o maršrutas į VPSnet tinklą eina per tunelio sąsają. Tada iš biuro kompiuterio paleiskite ping į VPSnet serverio privatų adresą.
sudo swanctl --list-sas --ike vpsnet-a10e8857
ip route get 172.31.250.1
Patikra ir galimos problemos
- Skydelyje atidarykite padalinį ir spauskite Tikrinti tunelį: patikrinama, ar maršrutizatorius atsako, ar sutampa raktai ir ar eina srautas.
- SA nėra: patikrinkite, ar UDP 500 ir 4500 iš VPN adreso pasiekia maršrutizatorių, eilutę remote_addrs ir raktą. journalctl -u strongswan parodys, kodėl nepavyksta susiderėti.
- Ryšys yra, bet ping nepraeina: patikrinkite, ar maršrutai eina į tunelio sąsają, ar jos if_id sutampa su failu ir ar įjungtas IP persiuntimas.
DUK
Kurioms strongSwan versijoms skirtas šis gidas?
Gidas parengtas ir išbandytas su Ubuntu 24.04.5 LTS ir strongSwan 5.9.13 (swanctl, charon-systemd), kai viešasis IPv4 adresas pastovus. Jei naudojate strongSwan 6, laukelyje „Programinės įrangos versija“ pasirinkite 6.x – skydelis failą paruoš šiai versijai.
Kodėl XFRM sąsaja?
Mūsų VPN srautą siunčia pagal maršrutus. Kai tunelis turi sąsają, VPSnet tinklus pridedate ar pašalinate keisdami tik maršrutus.
Naudoju Libreswan. Ar yra gidas?
Gido žingsnis po žingsnio dar nėra. Skydelyje pasirinkite Libreswan – gausite jam paruoštą konfigūraciją; ji rodoma ir privačių tinklų puslapio skiltyje „Kaip prisijungti“.
Mano maršrutizatoriaus viešasis adresas keičiasi. Ar vis tiek galiu prisijungti?
Šis gidas skirtas pastoviam adresui – tokį atvejį išbandėme. Pridėdami padalinį pažymėkite „Adresas keičiasi“: tada konfigūracijoje bus nustatymai šiam atvejui, o tunelį turės užmegzti jūsų maršrutizatorius.
Pamečiau bendrąjį raktą. Ką daryti?
Raktas rodomas vieną kartą. Skydelyje atidarykite padalinį ir pasirinkite „Pakeisti raktą“: sukuriamas naujas raktas, jis parodomas vieną kartą, o senasis nustos veikti, kai maršrutizatorius kitą kartą jungsis.
Ar tuneliui reikia NAT?
Ne. VPSnet serveriai mato biuro kompiuterių adresus.




