Při instalaci routeru jsem narazil na zajímavý VPN server SoftEther VPN. Dříve jsem používal OpenVPN, nicméně distribuce certifikátů a nastavení mi přišlo složitější. Zejména tedy zprovoznění OpenVPN na mobilních zařízeních. Co se týče SoftEther VPN, nemusel jsem na smartphonu instalovat žádný další software či telefon rootovat. Sepisuji postup na kompilaci software na Linuxu a překážky, se kterými jsem se setkal.
Stažení a kompilace
Aktuální verzi zdrojového kódu jsem stáhnul zde: https://www.softether.org/5-download. Další alternativa stažení je přímo z GITu https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.
V rozbaleném adresáři je třeba nejdříve spustit:
./configure make
Při kompilaci ovšem došlo k této chybě:
cc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/M ayaqua/ -O2 -fsigned-char -m64 -c src/Mayaqua/Cfg.c -o tmp/objs/Mayaqua/Cfg.o cc: error: unrecognized command line option ‘-m64’ make: *** [Makefile:111: tmp/objs/Mayaqua/Cfg.o] Chyba 1
Problém se mi podařilo vyřešit editací vytvořeného Makefile. Odstranil jsem příznaky -m64 ze 4 řádků, kde jsou proměnné OPTIONS_COMPILE_DEBUG, OPTIONS_LINK_DEBUG, OPTIONS_COMPILE_RELEASE, OPTIONS_LINK_RELEASE. Výsledek proměnných v Makefie pak vypadal takto:
OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/C edar/ -I./src/Mayaqua/ -g -fsigned-char -m64 OPTIONS_LINK_DEBUG=-g -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I. /src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 OPTIONS_LINK_RELEASE=-O2 -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz
Dále jsem musel nainstalovat tyto balíčky, abych mohl software zkompilovat, protože při kompilaci se objevovali další chyby.
apt-get install libreadline-dev zlib1g-dev
Nyní už se podařilo SoftEther VPN zkompilovat. A nainstalovat.
make make install
Aktualizace SoftEther VPN
Složku s instalací nechávám na serveru, abych mohl software snadno průběžně aktualizovat. K aktualizaci kódu mi slouží GIT. Nejprve tedy vstoupím do složky a aktualizuji zdrojový kód:
git pull
Jako další krok smažu staré binární soubory a soubory, který vznikly při kompilaci. Pro jistotu zmíním, že se tím nemaže již nainstalovaný kód. Takže VPN server může běžet a paralelně s tím budu kompilovat nový zdrojový kód.
make clean
A teď znovu nakonfigurovat:
./configure
Konfigurací vzniknul nový soubor Makefile, který opět obsahuje příznak -m64, který jsem musel odmazat – viz výše. Na závěr konečně kompilace a instalace nového kódu.
make make install
SoftEther VPN je nainstalovaný v adresáři /usr. Je tam klient i server. Konfigurační soubor serveru /usr/vpnserver/vpn_server.config není aktualizací nijak dotčen – byly aktualizovány binární soubory. A pro jistotu ještě zmíním, že konfigurační soubor serveru se needituje ručně, ale skrze vpn klienta /usr/vpncmd/vpncmd.
Co se týče nastavení SoftEther VPN, tak lze využít některý ze zdrojů níže.