Konfiguracja Sophos Firewall Remote Access w systemie Linux
W przypadku Sophos Firewall Remote Access w systemie Linux najprostszym rozwiązaniem jest SSL VPN ze standardowym klientem OpenVPN. Sophos Connect nie jest dostępny dla systemu Linux. Plik .ovpn pobiera się z VPN Portal, a następnie używa w terminalu lub za pośrednictwem NetworkManager.
Często wcześniej wymieniana alternatywa IPsec z NetworkManager-strongSwan nie pasuje do aktualnej konfiguracji Sophos Firewall: Remote access VPN > IPsec w SFOS 22 akceptuje tylko profile IKEv1, natomiast wtyczka NetworkManager-strongSwan obsługuje wyłącznie IKEv2.
⚠️ Nie należy instalować nieoficjalnego „Sophos Connect dla systemu Linux” ani przełączać profilu SFOS Remote Access na IKEv2 na potrzeby tej instrukcji. Opisana poniżej metoda z OpenVPN jest udokumentowaną przez Sophos ścieżką dla systemu Linux.
Dla innych urządzeń dostępne są osobne instrukcje: Sophos Connect w systemie Windows i Sophos Connect w systemie macOS, a także SSL VPN na iPhonie i iPadzie oraz SSL VPN w systemie Android.
Wymagania
- Na Sophos Firewall skonfigurowano politykę Remote Access SSL VPN w Remote access VPN > SSL VPN.
- Użytkownik lub jego grupa jest przypisana do tej polityki.
- Odpowiednia reguła firewalla zezwala na wymagany ruch ze strefy
VPN. - W Administration > Device access dostęp do VPN portal jest dozwolony dla wymaganej strefy. Przy dostępie z Internetu jest to strefa
WAN; ze względu na dodatkową ekspozycję należy włączyć ją tylko w razie potrzeby i chronić przed wielokrotnymi próbami logowania. - Użytkownik ma dostęp do VPN Portal i może się zalogować. Domyślny port to 443; faktycznie skonfigurowany port widnieje w Administration > Admin and user settings.
- W systemie Linux dostępne są lokalne uprawnienia
sudodo instalacji pakietu i uruchomienia OpenVPN. - Jeśli aktywowano MFA, logowanie wraz z kodem weryfikacyjnym działa prawidłowo.
Konfigurację po stronie firewalla opisano w artykule Konfiguracja Sophos Firewall SSL VPN Remote Access. Jeśli później pliku .ovpn nie ma w VPN Portal, ma on 0 bajtów lub zawiera tylko komunikat o błędzie, artykuł Sophos Firewall: brak pliku .ovpn lub 0 bajtów prowadzi przez kontrolę policy, użytkownika, certyfikatu i systemu.
Konfiguracja SSL VPN z OpenVPN
1. Instalacja OpenVPN
Poniższe polecenia pakietów wykonuje się w lokalnym terminalu Debiana lub Ubuntu. Pierwsze zapytanie jest tylko do odczytu, nie wymaga podwyższonych uprawnień i pokazuje, czy pakiet był już zainstalowany. Przed zmianą należy zanotować ten stan początkowy:
dpkg-query -W -f='${Status}\n' openvpn 2>/dev/null
Wynik install ok installed oznacza, że OpenVPN jest już obecny. Brak wyniku zwykle oznacza brak pakietu. apt instaluje następnie klienta i wymagane zależności ze skonfigurowanych repozytoriów; potrzebne są lokalne uprawnienia sudo i aktualne metadane pakietów:
sudo apt install openvpn
Jako zwykły użytkownik można użyć openvpn --version, aby sprawdzić dostępność programu. Pierwszy wiersz powinien podać zainstalowaną wersję OpenVPN:
openvpn --version
Jeśli wcześniej pakietu nie było, bezpośrednim wycofaniem jest sudo apt remove openvpn. Polecenie usuwa pakiet, ale zwykle pozostawia pliki konfiguracyjne; najpierw trzeba rozłączyć aktywny tunel i sprawdzić zanotowany stan początkowy. Jeśli OpenVPN był już zainstalowany, niczego nie należy wycofywać. Usunięcie potwierdza się, powtarzając zapytanie dpkg-query tylko do odczytu.
Inne dystrybucje także udostępniają ten pakiet przez menedżer pakietów; nazwę i składnię trzeba sprawdzić w ich dokumentacji. Do graficznego zarządzania w GNOME można dodatkowo zainstalować wtyczkę OpenVPN dla NetworkManager. Najpierw należy zanotować jej poprzedni stan za pomocą dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome 2>/dev/null. Poniższe polecenie Debiana/Ubuntu wymaga sudo i instaluje wtyczkę oraz brakujące zależności:
sudo apt install network-manager-openvpn-gnome
Po instalacji dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome powinno zwrócić install ok installed; aby interfejs graficzny zaoferował wtyczkę, może być potrzebne ponowne zalogowanie. Jeśli wcześniej jej nie było, sudo apt remove network-manager-openvpn-gnome usuwa ją ponownie. Najpierw należy rozłączyć VPN zarządzany przez NetworkManager, a potem powtórzyć zapytanie tylko do odczytu, aby potwierdzić poprzedni brak pakietu. Tej wtyczki nie należy mylić z network-manager-strongswan: importuje ona plik .ovpn i używa OpenVPN.
2. Pobieranie konfiguracji OpenVPN
- Otworzyć VPN Portal Sophos Firewall w przeglądarce.
- Zalogować się jako użytkownik VPN.
- W sekcji VPN > VPN configuration kliknąć Download configuration for Windows, macOS, Linux.
- Pobrać plik
.ovpni zapisać go w bezpiecznym miejscu.
Plik może zawierać osadzone certyfikaty, klucz prywatny i dane połączenia przypisane do użytkownika. Nie należy przesyłać go niezaszyfrowaną pocztą elektroniczną ani umieszczać w publicznie dostępnych lokalizacjach. W razie ujawnienia administrator musi go unieważnić lub zastąpić odpowiednie dane dostępowe; samo usunięcie lokalnej kopii nie wystarcza.
3. Uruchamianie połączenia w terminalu
Następne polecenia wykonuje się w lokalnym terminalu systemu Linux. Należy zastąpić <linux-user> lokalną nazwą użytkownika i dopasować ścieżkę do pobranego pliku. stat najpierw odczytuje bez podwyższonych uprawnień bieżący numeryczny tryb pliku. Wartość trzeba zanotować, aby móc cofnąć zmianę uprawnień:
stat -c '%a %n' "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
chmod 600 "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
stat -c '%a %n' "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
chmod 600 daje prawa odczytu i zapisu wyłącznie właścicielowi; drugie zapytanie musi pokazać tryb 600. sudo nie jest potrzebne, jeśli zalogowany użytkownik jest właścicielem pliku. Aby wycofać zmianę, należy wykonać chmod <poprzedni-tryb> "/home/<linux-user>/Downloads/sophos-vpn.ovpn", zastąpić <poprzedni-tryb> zanotowaną wartością i sprawdzić ją poleceniem stat. Szersze prawa należy przywracać tylko wtedy, gdy są świadomie wymagane.
Następne polecenie uruchamia OpenVPN z podwyższonymi uprawnieniami, ponieważ klient tworzy interfejs tunelu i tymczasowe trasy. W systemie Linux bezpośrednio uruchomiony proces OpenVPN nie stosuje samodzielnie otrzymanych serwerów DNS; profil wymaga odpowiedniego skryptu up/down lub integracji systemowej. Taką integrację DNS może zapewnić NetworkManager:
sudo openvpn --config "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
OpenVPN najpierw prosi o lokalne hasło sudo, a potem o dane logowania VPN. W przypadku MFA należy użyć formatu wskazanego przez administratora; zależnie od konfiguracji uwierzytelniania kod jednorazowy łączy się z hasłem albo podaje osobno. Kryteriami powodzenia są komunikat Initialization Sequence Completed i obecny interfejs tunelu. Połączenie działa na pierwszym planie. Ctrl+C zatrzymuje OpenVPN i stanowi również wycofanie: klient usuwa tymczasowy interfejs tunelu i zainstalowane przez siebie trasy; każda faktycznie skonfigurowana integracja DNS musi też przywrócić swoje tymczasowe wartości DNS. Następnie należy potwierdzić poniższymi kontrolami zniknięcie interfejsu i trasy VPN oraz powrót zwykłego rozwiązywania nazw.
4. Importowanie połączenia do NetworkManager
- Otworzyć ustawienia sieciowe.
- Dodać nowe połączenie VPN i wybrać Import from file.
- Wybrać pobrany plik
.ovpn. - Zapisać nazwę użytkownika, jeśli jest to zgodne z przyjętym modelem operacyjnym.
- Uruchomić połączenie i wprowadzić dane logowania VPN w formacie MFA wskazanym przez administratora.
Import tworzy osobny profil połączenia NetworkManager i może skopiować osadzone w pliku klucze lub certyfikaty. Usunięcie pobranego pliku .ovpn nie usuwa więc zaimportowanego profilu. Nie należy zapisywać hasła w profilu, chyba że model operacyjny wyraźnie przewiduje chroniony magazyn. Aby wycofać import, należy rozłączyć VPN, usunąć zaimportowany profil w ustawieniach sieciowych i potwierdzić, że nie widnieje już na liście połączeń.
NetworkManager jest wygodniejszy w codziennym użyciu niż stale otwarty terminal. Nienadzorowane uruchamianie nie jest jednak automatycznie możliwe w przypadku interaktywnego logowania lub MFA. Nie należy zapisywać danych logowania w niezabezpieczonym pliku wyłącznie po to, aby umożliwić automatyczne uruchamianie.
Dlaczego NetworkManager-strongSwan nie pasuje do tej konfiguracji
W SFOS 22 Sophos zezwala dla Remote access VPN > IPsec wyłącznie na profile IKEv1, w których Dead Peer Detection jest wyłączony lub ustawiony na Disconnect. Wtyczka NetworkManager-strongSwan zestawia natomiast tylko połączenia IKEv2. Dlatego przy użyciu opisywanej wcześniej procedury oba punkty końcowe nie mogą wynegocjować tunelu.
Samo oprogramowanie strongSwan nadal oferuje funkcje IKEv1, ale nie jest to ta sama ścieżka graficzna co wtyczka NetworkManager. Ręczna konfiguracja IKEv1 wymaga odpowiednich parametrów, uwierzytelniania, Traffic Selectorów oraz przetestowanej konfiguracji klienta. Bez wiarygodnej konfiguracji docelowej nie należy korzystać z ogólnego przykładu znalezionego w Internecie.
Sophos wskazuje kompatybilnego klienta innej firmy jako możliwość korzystania z IPsec w systemie Linux. Eksportowany plik .tgb nie zawiera jednak wszystkich ustawień zaawansowanych konfiguracji Sophos Connect i nie można go po prostu zaimportować do NetworkManager jako profilu IKEv2. Jeśli IPsec jest niezbędny, wybrany klient musi wyraźnie obsługiwać konfigurację IKEv1 firewalla i zostać przetestowany we własnym środowisku. W wyborze odpowiedniego rozwiązania pomaga artykuł Sophos Connect czy SSL VPN: które rozwiązanie Remote Access jest odpowiednie?.
Sprawdzanie połączenia
Po zestawieniu połączenia nie należy sprawdzać wyłącznie stanu klienta. Decydujące znaczenie ma to, czy trasa, DNS i reguła firewalla odpowiadają żądanemu celowi.
Poniższe polecenia wykonuje zwykły użytkownik w lokalnym terminalu systemu Linux. Są tylko do odczytu, więc nie wymagają sudo ani wycofania. Prywatny adres przykładowy 10.20.30.40 należy zastąpić dozwolonym celem wewnętrznym, a zarezerwowaną nazwę intranet.example.net — wewnętrzną nazwą FQDN, którą ma rozwiązywać DNS VPN:
ip addr show
ip route get 10.20.30.40
getent hosts intranet.example.net
Oczekiwane wyniki:
- OpenVPN zgłasza pomyślne połączenie i dostępny jest interfejs tunelu.
- Sprawdzenie trasy pokazuje dla celu wewnętrznego ścieżkę VPN zamiast zwykłej bramy internetowej.
- Sprawdzenie DNS zwraca adres wewnętrzny, jeśli wewnętrzne serwery DNS zostały przydzielone i zintegrowane przez wybranego klienta Linux.
- Dozwolona usługa wewnętrzna jest dostępna, natomiast cel celowo niedozwolony pozostaje zablokowany.
- W Log Viewer firewalla pojawia się ruch testowy ze strefy
VPNz oczekiwaną regułą. - Po ponownym zalogowaniu uwierzytelnianie ponownie wymaga przewidzianego potwierdzenia MFA.
Jeśli tunel jest zestawiony, ale ruch nie przepływa, pomocny będzie artykuł Testowanie reguły firewalla za pomocą Log Viewer, Policy Test i Packet Capture.
Typowe błędy
- Brak konfiguracji dla systemu Linux w VPN Portal: użytkownik lub grupa nie jest przypisana do polityki Remote Access SSL VPN. Sprawdzić politykę i logowanie do portalu.
- OpenVPN zgłasza błąd uwierzytelniania: sprawdzić nazwę użytkownika, hasło, przebieg MFA, członkostwo w grupie i wybraną metodę uwierzytelniania.
- Tunel jest zestawiony, ale cele wewnętrzne pozostają niedostępne: sprawdzić dozwolone sieci polityki SSL VPN, regułę firewalla ze strefy
VPNdo strefy docelowej oraz trasę do sieci wewnętrznej. - Brakuje trasy VPN lub wskazuje ona lokalne Wi-Fi: sieć dzierżawy SSL VPN i cele wewnętrzne nie mogą nakładać się na sieci lokalne ani popularne podsieci domowe. Sprawdzić zakresy w SSL VPN global settings, a po korekcie rozłączyć i ponownie zestawić tunel.
- Adresy IP działają, ale nazwy wewnętrzne nie: sprawdzić przydzielane serwery DNS, domenę wyszukiwania i dostępność wewnętrznego serwera DNS.
- Full Tunnel łączy się, ale Internet przestaje działać: przy Use as default gateway sprawdzić także regułę firewalla ze strefy
VPNdo Internetu, wymagane polityki ochrony oraz regułę SNAT/masquerading dla##ALL_SSLVPN_RWlub##ALL_SSLVPN_RW6. - Zamknięto terminal i utracono połączenie: jest to normalne przy bezpośrednim wywołaniu
openvpn --config. W celu graficznego zarządzania należy zaimportować plik.ovpndo NetworkManager. - NetworkManager nie oferuje importu pliku: brakuje wtyczki OpenVPN dla NetworkManager lub usługa NetworkManager nie załadowała jeszcze nowo zainstalowanej wtyczki.
- Stary plik
.ovpnprzestał działać: po zmianie protokołu SSL VPN, certyfikatu serwera SSL lub CA, Override hostname albo portu SSL VPN należy ponownie pobrać plik. - NetworkManager-strongSwan nie nawiązuje połączenia: nie przełączać na IKEv2. Wtyczka nie jest kompatybilna z profilem IKEv1 Remote Access na Sophos Firewall.
- Znaleziono rzekomego klienta Sophos Connect dla systemu Linux: nie instalować go bez weryfikacji. Sophos nie udostępnia oficjalnego klienta dla systemu Linux.
FAQ
Czy istnieje oficjalny klient Sophos Connect dla systemu Linux?
Który plik należy pobrać z VPN Portal dla systemu Linux?
.ovpn pojawia się tylko wtedy, gdy użytkownikowi przypisano politykę Remote Access SSL VPN.Dlaczego połączenie VPN jest rozłączane po zamknięciu terminala?
sudo openvpn --config działa na pierwszym planie terminala. Aby zarządzać połączeniem graficznie, można zaimportować plik .ovpn do NetworkManager.Czy NetworkManager może służyć do Sophos Firewall Remote Access?
.ovpn. Wtyczka NetworkManager-strongSwan obsługuje natomiast tylko IKEv2 i nie pasuje do profilu IKEv1 Remote Access IPsec w SFOS 22.