SoftEther VPN – komu to może być potrzebne i dlaczego…

Wstęp

SoftEther, pełna nazwa SoftEther VPN (SoftEther Virtual Private Network), to wieloplatformowe oprogramowanie do tworzenia sieci VPN (Virtual Private Network), które zostało opracowane na Uniwersytecie Tsukuba w Japonii przez zespół pod kierownictwem Daiyę Tamari. SoftEther jest skrótem od „Software Ethernet” i jest jednym z najbardziej zaawansowanych i wydajnych rozwiązań VPN dostępnych na rynku.

Oprogramowanie SoftEther VPN oferuje szeroką gamę funkcji, które czynią go wyjątkowym wśród innych narzędzi VPN. Jest kompatybilne z wieloma protokołami VPN, takimi jak SSL-VPN, OpenVPN, L2TP/IPsec, EtherIP, a także z natywnymi protokołami Microsoft Windows VPN.

Obrazek posiada pusty atrybut alt; plik o nazwie image-44.png

Obrazek posiada pusty atrybut alt; plik o nazwie image-46.png

Jednym z kluczowych atutów SoftEther VPN jest jego wydajność i stabilność. SoftEther jest znany z wysokiej przepustowości i niskiego opóźnienia, co czyni go idealnym rozwiązaniem dla zastosowań wymagających dużej przepustowości, takich jak transmisje wideo, gry online czy przesyłanie dużych plików. Ponadto, SoftEther VPN jest zaprojektowany z myślą o bezpieczeństwie, oferując zaawansowane funkcje szyfrowania i uwierzytelniania, które chronią dane użytkowników przed nieautoryzowanym dostępem.

SoftEther VPN jest również łatwy w użyciu dzięki intuicyjnemu interfejsowi użytkownika i szerokiej dokumentacji. Oprogramowanie jest dostępne jako open-source, co oznacza, że jest darmowe do użytku komercyjnego i niekomercyjnego.

Fjuczery (funkcjonalności i możliwości) SoftEthera:

  • Łatwość ustanowienia sieci VPN zarówno do dostępu zdalnego, jak i typu site-to-site.
  • Tunelowanie SSL-VPN w HTTPS w celu przejścia przez NAT i zapory sieciowe.
  • Rewolucyjny VPN przez ICMP i DNS.
  • Odporność na wysoce ograniczone firewalle.
  • Mostkowanie Ethernet (L2) i routing IP (L3) przez VPN.
  • Wbudowana funkcja dynamicznego DNS i możliwość omijania NAT, czyli serwer VPN za NAT i bez przekierowania portów, choć obniża to wydajność takiego VPNa.
  • Szyfrowanie AES 256-bitowe i 4096-bitowe RSA.
  • Dodatkowe funkcje bezpieczeństwa, takie jak logowanie.
  • SoftEther VPN oferuje rozbudowane narzędzia do zarządzania i monitorowania sieci VPN. Administratorzy mogą zarządzać użytkownikami, monitorować połączenia, konfigurować polityki bezpieczeństwa oraz analizować ruch sieciowy za pomocą intuicyjnego interfejsu graficznego lub interfejsu wiersza poleceń.
  • Wysoka przepustowość klasy 1 Gb/s przy niskim zużyciu pamięci i procesora.
  • Obsługiwane systemy: Windows, Linux, Mac, Android, iPhone, iPad i Windows Mobile.
  • Obsługa SSL-VPN (HTTPS) i 6 głównych protokołów VPN (OpenVPN, IPsec, L2TP, MS-SSTP, L2TPv3 i EtherIP) są obsługiwane jako protokoły podkładowe tunelowania VPN.
  • Wygodny konfigurator serwera VPN dla systemów Windows i MacOS.
  • Wysoka elastyczność i skalowalność i obsługa HA.

Instalacja i konfiguracja serwera VPN

Ogólnie można SoftEther VPN serwer można zainstalować na różnych systemach operacyjnych: np. Windows, Linux, FreeBSD .

https://www.softether.org/5-download

Dla Windows wystarczy pobrać plik wykonywalny i go uruchomić.

W przypadku ogólnym dla systemów Linux należy wykonać kilka kroków

Krok 1: Aktualizacja systemu

Zaleca się, aby najpierw zaktualizować system, aby upewnić się, że wszystkie pakiety są w najnowszych wersjach.

sudo apt update lub yum update 
sudo apt upgradelub sudo dnf upgrade

Krok 2: Pobranie SoftEther VPN Server

Przejdź na stronę pobierania SoftEther VPN i pobierz najnowszą wersję dla systemu Linux.

wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.34-9745-rtm/softether-vpnserver-v4.34-9745-rtm-linux-x64-64bit.tar.gz

Krok 3: Rozpakowanie archiwum

Rozpakuj pobrany plik tar.gz.

tar -xzvf softether-vpnserver-v4.34-9745-rtm-linux-x64-64bit.tar.gz

Krok 4: Kompilacja SoftEther VPN Server

Przejdź do katalogu vpnserver i uruchom skrypty kompilacji.

cd vpnserver
make

Podczas kompilacji zostaniesz zapytany o potwierdzenie licencji. Wpisz 1, 1 i 1, aby zaakceptować wszystkie warunki.

Krok 5: Przeniesienie plików i konfiguracja usług

Przenieś skompilowane pliki do /usr/local i skonfiguruj usługi systemowe.

cd ..
sudo mv vpnserver /usr/local/
cd /usr/local/vpnserver/
sudo chmod 600 *
sudo chmod 700 vpnserver
sudo chmod 700 vpncmd

Krok 6: Konfiguracja skryptu startowego

Utwórz skrypt startowy dla SoftEther VPN Server.

sudo nano /etc/systemd/system/vpnserver.service

Dodaj następujące linie do pliku:

[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Type=forking
PIDFile=/usr/local/vpnserver/vpnserver.pid

[Install]
WantedBy=multi-user.target

Zapisz i zamknij plik (Ctrl+X, następnie Y, aby zapisać i Enter, aby potwierdzić).

Krok 7: Uruchomienie i automatyczne uruchamianie usługi

Włącz i uruchom usługę SoftEther VPN Server.

sudo systemctl daemon-reload
sudo systemctl enable vpnserver
sudo systemctl start vpnserver

Ubuntu od wersji 22.04 i Debian od wersji Bullseye posiadają w swoich repozytoriach pakiety dla SoftEthera.

wojtek@moje-ubuntu24:~$ sudo apt list softether*
Lista... Gotowe
softether-common/noble,now 5.01.9674+git20200806+8181039+dfsg2-2build3 amd64 [zainstalowany,automatycznie]
softether-vpnbridge/noble 5.01.9674+git20200806+8181039+dfsg2-2build3 amd64
softether-vpnclient/noble,now 5.01.9674+git20200806+8181039+dfsg2-2build3 amd64 [zainstalowany]
softether-vpncmd/noble,now 5.01.9674+git20200806+8181039+dfsg2-2build3 amd64 [zainstalowany,automatycznie]
softether-vpnserver/noble,now 5.01.9674+git20200806+8181039+dfsg2-2build3 amd64 [zainstalowany]

W zależności od potrzeb wybierz czy chcesz zainstalować VPN server, bridge lub klienta VPN.

FreeBSD posiada w swoich repozytoriach już gotowy pakiet SoftEthera

SoftEther możesz również zainstalować na OPNsense za pomocą komend z shella FreeBSD. Wystarczy że zalogujesz się jako root bezpośrednio lub przez SSH na maszynie wirtualnej lub fizycznej i wydasz kilka poleceń.

Krok 1: Aktualizacja systemu

root@freebsdbox:~ # pkg upgrade
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
Checking integrity... done (0 conflicting)
Your packages are up to date.

Krok 2: Instalacja pakietu SoftEther VPN

root@freebsdbox:~ # pkg install softether

Krok 3: Konfiguracja Auto-startu serwera vpn

root@freebsdbox:~ # sysrc softether_server_enable=yes
softether_server_enable:  -> yes

Krok 4: START SOFTETHERA

Możesz zrestartować cały system lub wpisać poniższą komendę.

root@freebsdbox:~ # /usr/local/etc/rc.d/softether_server start
The SoftEther VPN Server service has been started.

Konfiguracja serwera VPN SoftEther

Do konfiguracji możesz użyć linii poleceń wpisując polecenie vpncmd lub wygodnego okienkowego konfiguratora.

Po wybraniu 3 i uruchomieniu komendy check nastąpi sprawdzenie systemu operacyjnego pod względem pracy z serwerem VPN.

root@freebsdbox:~ # vpncmd

1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

Select 1, 2 or 3: 3

VPN Tools>check
Check command - Check whether SoftEther VPN Operation is Possible
---------------------------------------------------
Checking 'Kernel System'...
              Pass
Checking 'Memory Operation System'...
              Pass
Checking 'ANSI / Unicode string processing system'...
              Pass 
Checking 'File system'...
              Pass
Checking 'Thread processing system'...
              Pass
Checking 'Network system'...
              Pass

All checks passed. It is most likely that SoftEther VPN Server / Bridge can operate normally on this system. The command completed successfully.

W systemach operacyjnych Windows, MacOS i Linux (za pomocą Wine) pobierz i użyj konfiguratora SoftEther VPN.

Po instalacji SoftEther VPN Server Managera kliknij na New Settings i wprowadź ustawienia swojego serwera VPN. Możesz tez użyć tego Managera do zarządzania poszczególnymi Hubami na serwerze VPN. Szczególnie przydatna opcja w sytuacji gdy masz dużo Hubów i dajesz do poszczególnych dostęp kilku użytkownikom np. z różnych firma, a Ty jako administrator zarządzasz całym serwerem.

Konfiguracja VPN serwera za pomocą aplikacji.

Przy pierwszej konfiguracji wymagane jest ustawienie hasła administratora dla całego serwera VPN.

Pojawi się potem konfigurator, który pozwala na wybór funkcji serwera VPN

Jeżeli chcesz aby Twój serwer przyjmował połączenia od klientów mobilnych to wybierz pierwszą opcję Remote Access Vpn Server . Jeśli ma to być mostek pomiędzy sieciami to opcja druga Site-to-site jest właściwa i odpowiednio dla koncentratora VPN Server That Accepts Connection from Other Sites (Center), a dla zakończeń tuneli VPN Server or VPN Bridge at Each Site (Edge) . Other Advanced Configuration of VPN zostaną omówione przy innej okazji.

SoftEther ma wbudowana funkcję dynamicznego DNS.

W kolejnym kroku konfiguracji możesz włączyć protokoły VPN L2TP.

Jeśli nie masz publicznego adresu IP dla swojego serwera VPN możesz skorzystać z VPN Azure Cloud. Włączenie tej opcji umożliwi przekierowanie połączeń do serwera VPN poprzez serwery w Azure z zastrzeżeniem, że działa to jednak wolniej i z większymi późnieniami.

Po tych etapach pojawi się okno z opcją do konfiguracji użytkowników i tworzenia mostków z interfejsami sieciowymi, ale te konfiguracje możesz przeprowadzić później.

Tu trzeba zwrócić uwagę z jakim interfejsem sieciowym łączymy tunel VPN. Jeżeli masz SoftEther VPN serwer zainstalowany na OPNsense i masz tam dwa interfejsy sieciowe WAN i LAN oraz chcesz mieć dostęp do sieci LAN za pomocą VPN to sprawa jest prosta. Ustawiasz wtedy bridge do interfejsu LAN.

Poniżej okno tworzenia Bridge z interfejsem sieciowym we FreeBSD.

W systemach Linux i Windows możesz dodatkowo utworzyć wirtualny interfejs tap. FreeBSD nie obsługuje tego typu interfejsów na chwilę obecną.

Poniżej dla Linux i Windows.

Po przejściu etapów konfiguracji możesz przystąpić do tworzenia wirtualnego Huba.

Konfiguracja wirtualnego Huba

Przy tworzeniu Huba możesz każdemu z nich nadać hasło do zabezpieczenia dostępu do konfiguracji oraz ograniczyć ilość połączeń VPN.

Skupimy się tu na podstawowej konfiguracji wirtualnego Huba VPN dla dostępu użytkowników do sieci lokalnej. Jako metodę autoryzacji użytkowników wybierzemy samopodpisane certyfikaty.

Przejdź do zarządzania użytkownikami klikając w przycisk Manage Users.

Wpisz nazwę użytkownika i pełną jego nazwę dla łatwiejszej identyfikacji, wybierz typ autoryzacji jako Individual Certificate Authentication i kliknij Create Certification. Otworzy się okno tworzenia certyfikatu dla użytkownika.

Kolejno zapisz certyfikat i klucz prywatny najlepiej w jednym pliku PKCA#12 . Możesz tu zabezpieczyć klucz prywatny hasłem żeby uniemożliwić przenoszenie go na inne komputery.

Koniecznie zapisz plik pod taką samą nazwą jak nazwa użytkownika. Zapisany plik przenieś na komputer będzie używany do łączenia się za pomocą SoftEthera. Zostanie wykorzystany przy tworzeniu nowego połączenia VPN.

Ważna rzecz jaką powinieneś zrobić na nowo utworzonym wirtualnym Hubie to ustawienia logowania połączeń. Po przyciskiem Log Save Settings są dostepne ustawienia logowania.

Odkliknij Save Packet Log gdyż domyślnie jest to aktywne. Powoduje to, że wszystkie pakiety są logowane i przez to mogą zająć bardzo dużo miejsca. Security Log warto natomiast zostawić jako aktywny. W razie potrzeby masz możliwość sprawdzenia połączeń do Huba VPN.

Instalacja i konfiguracja klienta SoftEthera

Pobierz klienta VPN ze strony https://www.softether-download.com/en.aspx?product=softether i uruchom instalatora.

Po zainstalowaniu uruchom SoftEther VPN Client Managera.

Zacznij od dodania nowego połączenia (Add VPN Connection) . Zostaniesz poinformowany, że najpierw wymagane jest dodanie wirtualnego interfejsu sieciowego. Jak już zostanie utworzony co chwilkę zajmie ponownie kliknij w dodawanie nowego połączenia. Tym razem otworzy się okno do konfiguracji nowego połączenia VPN.

Nadaj nazwę temu połączeniu, wpisz adres na jakim jest dostępny VPN serwer, wpisz port na którym działa. Jeżeli połączenie jest prawidłowo wpisane na liście rozwijanej Virtual Hub Name powinien się pojawić Twój wirtualny Hub. W tym przykładzie został użyty inny nietypowy port SoftEthera . Dla podniesienia poziomu bezpieczeństwa możesz podać certyfikat serwera do którego będzie zestawiane połączenie. Najwygodniejszym sposobem autoryzacji użytkownika jest certyfikat. W polu User Name wpisz dokładnie taką nazwę jaka została nadana podczas tworzenia konta użytkownika. Przyciskiem Specify Client Certificate prześlesz certyfikat tego użytkownika.

Przyjrzyj się ustawieniom zaawansowanym.

Możesz zwiększyć ilość jednoczesnych połączeń TCP w celu zwiększenia przepustowości VPNu. Natomiast jeżeli nie chcesz aby połączenie VPN nie wpływało na routing w systemie operacyjnym z którego jest zestawiane połączenie to zaznacz opcję No Adjustments of Routing Table.

Wystarczy zatem kliknąć w nowo utworzone połaczenie i powinien pojawić się komunikat o zestawianiu połączenia i jeżeli wszystko jest prawidłowo skonfigurowane pokaże się adres IP przydzielony z serwera DHCP z sieci lokalnej. Menadżer klienta VPN zapewnia możliwość utworzenia połączenia VPN, które będzie się uruchamiało po starcie systemu Windows. Możesz również dodawać nowe wirtualne interfejsy sieciowe. Poszczególne połączenia VPN mogą korzystać z innych wirtualnych interfejsów jeżeli potrzebna jest jakaś niestandardowa konfiguracja.

Jest też możliwość utworzenia skrótu do połączenia np. na pulpicie lub przełączenia menadżera w tryb prosty Easy mode i zabezpieczenia go dodatkowo hasłem aby nie można było zmieniać, usuwać i dodawać połączeń VPN.

Jeśli nie chcesz aby Twoje połaczenie było bezpośrednio łączone do sieci lokalnej i korzystało z lokalnego serwera DHCP możesz zastosować opcję Secure NAT, zapewni to dodatkową translację adresów dla użytkowników łączących się poprzez VPN.

Podsumowanie

SoftEther VPN jest bardzo elastyczny w konfiguracji i ma ogromne możliwości tworzenia różnych konfiguracji sieci VPN. Na jednym serwerze możesz mieć kilka protokołów VPN w zależności od potrzeb. Jest przez to doskonałą alternatywą dla typowo komercyjnych protokołów powiązanych z producentami urządzeń sieciowych.