Wymagania SDA Gateway
Systemy operacyjne
Linux
Usługa SDA Glue dla systemu Linux została zbudowana na bazie SoftEther VPN Client i korzysta z natywnego stosu IP systemu Linux oraz iptables do zarządzania zaporą sieciową. Choć usługa może działać w innych dystrybucjach systemu Linux, nie została ona szczegółowo przetestowana w systemach opartych na nftables, takich jak Red Hat Enterprise Linux. Dla zapewnienia optymalnej kompatybilności i wsparcia zdecydowanie zalecamy wdrażanie Gateway w dystrybucjach opartych na Debianie.
Wymagania systemowe:
- Architektura: ARM, ARM64, i386 lub AMD64
- CPU i pamięć: procesor dwurdzeniowy minimum 1 GHz oraz 512 MB RAM
- Zarządzanie usługami: systemd
- Wersja jądra: 5.6+
- Dystrybucja: dystrybucje oparte na Debianie lub Ubuntu
- Zależności: SoftEther VPN Client (instalowany automatycznie podczas konfiguracji); OpenVPN (opcjonalnie, wymaga ręcznej instalacji)
Windows
Implementacja SDA Glue dla systemu Windows korzysta z OpenVPN Community Client i wymaga do działania funkcji translacji adresów sieciowych systemu Windows (WinNAT/NetNat). Należy pamiętać, że WinNAT może nie być domyślnie włączony we wszystkich wersjach systemu Windows i może wymagać ręcznej aktywacji.
Wymagania systemowe:
- System operacyjny: Windows 10 Professional/Enterprise lub Windows Server 2016 albo nowszy
- Architektura: ARM, ARM64, i386 lub AMD64
- CPU i pamięć: procesor dwurdzeniowy minimum 2 GHz oraz 2 GB RAM
- Uprawnienia: usługa wymaga podwyższonych uprawnień do zarządzania zasobami sieciowymi
- Zależności: OpenVPN Community Client (instalowany automatycznie podczas konfiguracji)
- Funkcje sieciowe: WinNAT/NetNat (instrukcje konfiguracji poniżej)
Weryfikacja WinNAT
Aby sprawdzić, czy funkcja WinNAT jest włączona w systemie:
- Otwórz PowerShell jako Administrator
- Wykonaj następujące polecenie:
Get-NetNat
Oczekiwane rezultaty:
- Funkcja włączona: polecenie wykonuje się poprawnie (może zwrócić pusty wynik, jeśli nie istnieją żadne konfiguracje NAT)
- Funkcja wyłączona: wyświetlany jest komunikat o błędzie „Get-NetNat : Invalid class”
Włączanie WinNAT
Jeśli WinNAT nie jest włączony, wykonaj poniższe kroki, aby go aktywować:
- Otwórz PowerShell jako Administrator
- Wykonaj następujące polecenia:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
- Po pomyślnym wykonaniu poleceń uruchom ponownie komputer
- Zweryfikuj aktywację, uruchamiając ponownie
Get-NetNat
Docker i Kubernetes
SDA Glue może być wdrażany w środowiskach kontenerowych, przy zachowaniu określonych wymagań konfiguracyjnych umożliwiających działanie funkcji VPN. Usługa wymaga dostępu do urządzenia TUN hosta oraz uprawnień do administrowania siecią, aby ustanowić bezpieczne tunele.
Wymagania systemowe:
- Architektura hosta: ARM64 lub AMD64
- Dostęp do urządzenia TUN:
--device=/dev/net/tun— dostęp do wirtualnego interfejsu tunelu sieciowego - Uprawnienia sieciowe:
--cap-add=NET_ADMIN— konfiguracja interfejsów sieciowych i zarządzanie routingiem
Urządzenie TUN (/dev/net/tun): interfejs TUN to wirtualne urządzenie sieciowe działające w warstwie 3 (poziom IP) stosu sieciowego, powszechnie wykorzystywane przez klientów VPN do ustanawiania bezpiecznych tuneli. Klienci VPN używają urządzeń TUN do szyfrowania danych przed przesłaniem ich przez serwer VPN za pośrednictwem tunelu. Bez dostępu do tego urządzenia skonteneryzowany SDA Glue nie może utworzyć tuneli sieciowych niezbędnych do zapewnienia łączności.
Uprawnienie NET_ADMIN: to uprawnienie systemu Linux pozwala kontenerowi wykonywać operacje związane z siecią, w tym konfigurację interfejsów, modyfikację tablicy routingu oraz zarządzanie zaporą sieciową. Kontenery VPN wymagają uprawnienia NET_ADMIN, aby zarządzać zasobami sieciowymi i ustanawiać właściwy routing dla bezpiecznej komunikacji z usługami SDA Cloud.
docker run -d \
--name glue \
--restart always \
--device=/dev/net/tun \
-p 8080:8080 \
-v glue-data:/var/lib/sdaglue \
--cap-add=NET_ADMIN \
public.ecr.aws/t9c5s2d1/sdaglue:latest