AWS VPN na Linuksie – co zamiast niedziałającego oficjalnego klienta

Jest sobie pewna firma. Miała VPN oparty na standardowym protokole OpenVPN. W pewnym momencie ogłosiła dumnie wprowadzenie „SAML-based federated authentication”, czyli użycie SSO zamiast zaszywania użytkownika i hasła. Funkcja ta została zrobiona tak, że nie da się użyć szeroko dostępnych klientów OpenVPN. Firma dostarcza swojego własnego klienta. Napisanego w .Necie.

Pewnie w tym momencie trafnie przeczuwacie, czym to się skończyło. Na Ubuntu 22.10 i nowszych ta aplikacja po prostu nie działa.

Dla odmiany, na Fedorze tego problemu nie ma.

Bo oficjalny klient VPN jest wydawany tylko na Ubuntu. Gdzie indziej nie działa, ponieważ nie miał działać.

Mógłbym to jeszcze jakoś skomentować, ale sytuacja wystarczająco jasno mówi sama za siebie.

Jeśli macie tego pecha, że wasza firma włączyła SAML w VPN-ie popularnego dostawcy chmury, a posiadacie system spod znaku pingwina, wciąż jest dla was nadzieja. Powstał niezależny klient o nazwie openaws-vpn-client i u mnie działa całkiem stabilnie.

Ale jak to, że nie działa?

Też nie mogłem początkowo uwierzyć w to, co widzę. Firma taka, że każdy słyszał nazwę, a nie Januszsoft. VPN nie dla sekretarek, tylko dla programistów, a wśród programistów tak około 30% używa Linuksa (ankieta StackOverflow 2022).

Tymczasem, wymagania do instalacji: Ubuntu 18.04 albo Ubuntu 20.04, żadne inne. Nawiasem mówiąc, w maju obecnego roku 18.04 przestało dostawać poprawki bezpieczeństwa w ramach bezpłatnego supportu. Jeśli ktoś zaleca ten niebezpieczny zabytek informatyki, to samemu sobie wyrabia pewną opinię.

Zadałem pytanie na oficjalnym forum, czy są znane jakieś sposoby, by na współczesnym Ubuntu doprowadzić oficjalnego klienta do działania. Dziś minęło około 7 miesięcy, dostałem 4 upvote’y. Odpowiedzi przedstawicieli firmy brak.

Niezależny klient

openaws-vpn-client to trochę Frankenstein: UI napisany przez 1 człowieka w Ruście, korzystający z łatki na OpenVPN-a stworzonej przez innego programistę. Nie ma binarek.

Jeśli tylko kompilowaliście coś ze źródeł, pewnie zapalają wam się lampki alarmowe. Tak, często wróży to konieczność instalacji dziwnych pakietów, a bywa, że coś i tak nie działa.

Moje doświadczenia z postawieniem u siebie Rusta i skompilowaniem tej aplikacji były bardzo pozytywne. Widać, że to nowoczesny język z przemyślanym toolingiem. Myślę, że spokojnie dacie sobie radę.

Co najważniejsze: działa i to wcale nie gorzej od tego, jak działał oficjalny klient parę wersji Ubuntu temu.

Reputacja firmy

Napiszę jeszcze tylko, co można z całej historii wyciągnąć poza mało odkrywczym wnioskiem, że na Linuksie bywają problemy z kiepskiej jakości VPN-ami (albo na Maku, gdy wychodzi nowa wersja systemu).

Nie ma co przy wyborze bibliotek, frameworków, chmur i innych usług kierować się mało konkretnymi przesłankami jak „reputacja firmy”. Choćby wszystkie portale branżowe trąbiły, jak to firma X wyprzedza konkurencję (nie ten X, Elon go zarżnął i w niczym nie będzie przodować), akcje biły rekordy a logo nie znikało z filmików promowanych na YouTubie – nie można brać nic w ciemno. Przed wprowadzeniem do projektu biblioteki albo do zespołu narzędzia, sprawdzamy, jak to działa i zerkamy w dokumentację, patrzymy na fora na tematy ze słowem „problem” w tytule.


Autorstwo grafiki

Creative Commons License
Except where otherwise noted, the content by Piotr Kubowicz is licensed under a Creative Commons Attribution 4.0 International License.