Jak połączyć się z fortigate na linuksie?

Witajcie

Pracuję w firmie, która korzysta z VPNa postawionego na fortigate, abym mógł cokolwiek zrobić muszę się połączyć z ich siecią. Pod Windowsem i macem nie ma z tym problemu bo jest FortiClient, odpalam, wpisuję IP, username, hasło i pre-shared key klikam connect i działa. Jednak bardzo mi zależy, żebym mógł pracować na linuksie, tylko za nic nie mogę skonfigurować VPNa pod linuxem. Pomożecie?

To co próbowałem to:

  • openforti VPN - niestety nie działa bo nie obsługuje uwierzytelniania po pre-shared-key tylko poprzez klucz certyfikatu
  • Strongswan + network-manager-strongswan ale co dziwne jak wybiorę metodę autoryzacji jako pre-shared-key to nie mam gdzie go wpisać w GUI ani nie mogę zatwierdzić konfiguracji - znalazłem informację na ten temat tu https://bugs.launchpad.net/ubuntu/+source/network-manager-strongswan/+bug/1697536 ale wynika z niej tylko tyle, że pre-shared-key jest tylko do IKE V2 a to połączenie to IKE V1
  • znalazłem taki opis https://lorenzo.mile.si/forticlient-ipsec-vpn-on-ubuntu-linux/1103/ który opisuje instalację połączenia do fortigate z wykorzystaniem linuxa i oprogramowania ShrewSoft VPN client ale kompilacja wywala się na make z takim błędem
    error: aggregate ‘EVP_CIPHER_CTX ctx_cipher’ has incomplete type and
    cannot be defined i z tego co znalazłem chodzi o zbyt nowe ssl dla tego pakietu.

Jak widać spędziłem masę czasu szukając rozwiązań i naprawdę już pomysły mi się kończą - może ktoś coś podpowie?

1lajk

I właśnie dlatego uwielbiam moje Manjaro:

Zechcesz rozwinąć? To, że pojawia się coś od fortigate nie znaczy, że będzie działać. Jeśli czytałeś posta wiesz, że już dużą część z tego testowałem. Oficjalny fortinet na przykład w ogóle nie obsługuje VPN po IPSEC, podobnie openfortiVPN

1lajk

Może spróbuj skonfigurować połączenie networkmanagerem z linii komend albo nmtui. Pre-shared-key powinien być dostępny dla obu wersji IKE. Możesz też spróbować ręcznie skonfigurować strongswan, będzie to trudniejsze, ale powinno być możliwe. Sam używam czystego strongswana do zestawienia IPSec z routerem od Cisco.

1lajk

Jaka dystrybucja?

Próbowałes oficjalnego repo?

https://www.forticlient.com/repoinfo

W tej chwili dystrybucja to ubuntu ale docelowo bez znaczenia, chcę kupić oddzielny PC do pracy więc postawię na nim cokolwiek. Co do oficjalnego klienta - próbowałem - ale on nie obsługuje IPSEC - patrz tutaj: https://www.forticlient.com/techspec

Strongswan też konfigurowałem na czysto i to i do innego VPNa po ipsec się łączy, do tego fortigate nie chce

1lajk

Ciągle mnie męczą o zakup ich urządzeń. Zadam im konkretne pytanie. Dam Ci znać w poniedziałek co mi powiedzą.

FortiClient jest również dostepny na Linux. Zajrzyj na stronę producenta. Opcjonalnie wtyczka do NetworkManager. Nie strongswan, lecz dedykowana dla forti. Fortigate ma jakąś swoją modyfikacje IPSec i swój ssl vpn, bo innym klientem się nie połączysz, tak samo w drugą stronę, FortiClient nie połączy się z innymi urzadzeniami, np. Mikrotik (FoetiClient ma problem z wynegocjowaniem fazy 1).

Dlatego właśnie unikam rozwiązań Fortigate i innych typu vendor locked in. Więcej z nimi problemów jak pożytku. I jeszcze na wszystko trzeba mieć subskrypcje za grube hajsy :smiley:

Nie wiem o jakim oprogramowaniu fortigate mówisz ale to co znalazłem oficjalnie na stronie fortigate nie obsługuje IPSec o czym pisałem już tutaj z kolei Open Ford i obsługuje tylko SSL VPN od nich nie ipek nie wiem czy mówimy o tym samym Sorry za ewentualne błędy Piszę z telefonu

W każdym razie IPSec na Forti jest tak skonfigurowany, że zwykłym klientem VPN się nie połączysz. Jeśli korzystasz SSL-VPN, to potrzebujesz wtyczkę do NetworkManager. W moim Gentoo nazywa się tak.

  • net-vpn/networkmanager-fortisslvpn [ Masked ]
    Latest version available: 1.2.8
    Latest version installed: [ Not Installed ]
    Size of files: 318 KiB
    Homepage: https://wiki.gnome.org/Projects/NetworkManager
    Description: NetworkManager Fortinet SSLVPN compatible plugin
    License: GPL-2+

  • net-vpn/openfortivpn
    Latest version available: 1.10.0
    Latest version installed: [ Not Installed ]
    Size of files: 74 KiB
    Homepage: https://github.com/adrienverge/openfortivpn
    Description: Fortinet compatible VPN client
    License: GPL-3-with-openssl-exception openssl

Pisałeś o StrongSWan, więc wynikało, że szukasz czegoś do IPSec.

Do tego:

StrongSWan obsługuje tylko IKEv2. Do IKE potrzebujesz OpenSWan. Jeśli chcesz mieć obsługę IKE i IKEv2, to Libreswan. Ja pod Gentoo używam Libreswan i wszystkie IPSeci śmigają bez problemu.

Na stronie producenta masz FortiClient dla Linux (Ubuntu, RedHat, CentOS) dla innych pewnie da się wyciągnąć binarki z paczki.

https://www.forticlient.com/downloads
https://www.forticlient.com/repoinfo

Może źle się wyraziłem napiszę to jeszcze raz nie korzystam z ssl-vpn w forticlient pod Windows wybieram typ połączenia jako IPsec więc zakładam że takiego połączenia trzeba użyć A klient który jest na stronie fortigate nie obsługuje ipsec stop Mam nadzieję że teraz nie ma wątpliwości co miałem na myśli

Próbuję z libreswanem i coś mi nie wychodzi, czy masz jakieś doświadczenie z fortigate na libreswan? Czy jesteś w stanie rzucić okiem na config:

/etc/ipsec.d/vpn.conf

conn vpn
authby=secret
left=%defaultroute
leftxauthclient=yes
leftmodecfgclient=yes
leftxauthusername=NAZWA_UZYTKOWNIKA
modecfgpull=yes
right=IP_VPN
rightxauthserver=yes
rightmodecfgserver=yes
rekey=no
auto=add
ike_frag=yes
esp=3des
aggrmode=yes

/etc/ipsec.d/vpn.secrets

: PSK “KLUCZ_WSPOLNY”
: XAUTH “HASLO”

Jak próbuję podnieść VPNa to mam

ipsec auto --up vpn
002 “vpn” #24: initiating v2 parent SA
133 “vpn” #24: initiate
133 “vpn” #24: STATE_PARENT_I1: sent v2I1, expected v2R1
010 “vpn” #24: STATE_PARENT_I1: retransmission; will wait 0.5 seconds for response
010 “vpn” #24: STATE_PARENT_I1: retransmission; will wait 1 seconds for response
010 “vpn” #24: STATE_PARENT_I1: retransmission; will wait 2 seconds for response
010 “vpn” #24: STATE_PARENT_I1: retransmission; will wait 4 seconds for response
010 “vpn” #24: STATE_PARENT_I1: retransmission; will wait 8 seconds for response

Niestety nic konkretnego na temat tego błędu nie znalazłem.

1lajk

Jak pisałem, unikam Fortigate. Dla mnie to gówniane rozwiązanie jak ASA od Cisco. Dlaczego kondonisz się z plikami tekstowymi skoro NetworkManager ma wtyczkę do Libreswan. Szkoda tylko, że Canonical nie dołączył jej do repo.

Do adminiki wybierz lepszy system, np. Gentoo. Pod tym systemem jest wszystko bez kondonienia się z jakimiś PPA, albo innymi AUR. I wszystko działa jak należy.

Jak pisałem, u mnie IPSeci śmigają na Libreswan. Tyle, że ja IPSeci zapinam na Mikrotiku, który przynajmniej nie gerneruje taki problemów jak Forti (Vendor lock-in). Hajs, hajs, hajs i hajs za dziadostwo jakie oferuje ten producent.

Myślę, że zapięcie IPSeca na Openswan czy Libreswan będzie trudnym wyzwaniem. Opcje są 2: albo producent ma własną iplementację IPSec kompatybilną tylko z Forticlient, albo została tak skonfigurowane po stronie serwera VPN, że i tak się nie zapniesz. Forticlient jako klient IPSec powinien zapinać się nie tylko z Fortiguardem, a z Mikrotikiem się nie zapina (nie przechodzi faza 1), chyba że wyłączysz uwierzytelnianie, wtedy powiedzmy, że działa. Do IPSec powinien łączyć się każdy klient, więc coś tu jest nie tak.

Dzięki za odpowiedzi, więc tak gwoli wyjaśnienia:

Nie mam wpływu na to co stosuje pracodawca, niby mówi, że wystawi dla mnie VPNa po OpenVPN no ale zobaczymy - wiadomo - w firmie są procedury i tak szybko się nie zrobi. Ogólnie to człowiek “mac style” użyczył mi nawet macbooka jakiegoś tam ale ma to coś 13’’ i dla mnie zdecydowanie za małe, mam do do tego nawet przejściówkę z USB-C na HDMI ale działa to jak chce więc dlatego chciałem linuksa.Dlaczego się bawię z plikami konfiguracyjnymi? W sumie to nawet nie wiem jak zainstalować ten plugin, tutaj https://github.com/NetworkManager/NetworkManager-libreswan nie widzę pakietów, później spróbuję zainstalować chociaż jak coś wyklepię ręcznie to wiadomo jak i ewentualnie gdzie szukać błędu.

Zgadza się - z pewnością wybiorę inny system jak pisałem docelowo będę chciał kupić oddzielny PC do pracy i na nim postawię coś bardziej się do tego nadające.

W Ubu niestety nie ma tego pluginu, co mnie dziwi. Może Manjaro.

Da się to fajnie wyklikać i nie trzeba grzebać w plikach.

Skoro gość jest mac style, to nie dziwi mnie forti. Pewnie Cisco też nie umie, a Mikrotiki uważa za zło, bo tez nie umie. W forti, klik klik i gotowe. No cóż.

Z tego co się orientuję, Forti nie wspiera OVPN, ale mogę się mylić.

Sprobuj na Manjaro, ewentualnie Sabayon (oparty na Gentoo), w tym drugim bez problemu zainstalujesz libreswan i wtyczkę do NM.

Podejrzewam, że dla Ubu jest jakieś PPA z tą wtyczką.

Z ciekawości chyba zainstaluje FortiClient dla Ubu.

Najlepiej by to było zestawić na routerach. Openswan-a ma openwrt, pewnie też ddwrt.

https://openwrt.org/docs/guide-user/services/vpn/ipsec/openswan/openswanxl2tpvpn

Nie z mirror-a, a z oficjalnego bierz.
https://wiki.gnome.org/Projects/NetworkManager/VPN
Zawsze to najnowsze.

Na Debianie trzeba tylko zmienić konfiguracje i prosto. Na Ubuntu pewnie podobnie, to jest konfiguracja dla 64bitowego systemu. Musisz zainstalować trochę zależności i pakietów potrzebnych do kompilacji. (Dodam sudo dla Ubuntu, będziesz miał wszystko)

sudo apt git build-essential autoconf libtool intltool libnl-3-dev libgtk-3-dev libnma-dev libsecret-1-dev

I prostu już z oficjalnego gitlab-a. (skopiuj całość ustawień z linii ./configure… )

git clone https://gitlab.gnome.org/GNOME/NetworkManager-libreswan.git

cd NetworkManager-libreswan

./autogen.sh

./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --libexecdir=/usr/lib/NetworkManager

make -j

sudo make install

I tyle na Debianie, może sprawdzę na Ubuntu (live, bo nie używam), jak byś miął jakieś problemy, ale chyba nie powinno być problemu. Można też zbudować paczki deb, zobaczymy.

Dzięki za pomoc, niestety dalej nie działa tzn. nie łączy się z VPNem, w syslogu mam takie coś:

Feb 16 16:01:29 Marek-PC NetworkManager[1235]: [1581865289.5719] audit: op=“connection-activate” uuid=“84d04eb2-2cbd-4411-ba2f-e1a8a9ff36c7” name=“vpntest” pid=12655 uid=1000 result=“success”
Feb 16 16:01:29 Marek-PC NetworkManager[1235]: [1581865289.5760] vpn-connection[0x55fd15652730,84d04eb2-2cbd-4411-ba2f-e1a8a9ff36c7,“vpntest”,0]: Started the VPN service, PID 12903
Feb 16 16:01:34 Marek-PC NetworkManager[1235]: [1581865294.5698] vpn-connection[0x55fd15652730,84d04eb2-2cbd-4411-ba2f-e1a8a9ff36c7,“vpntest”,0]: Timed out waiting for the service to start
Feb 16 16:01:52 Marek-PC systemd[1]: Starting Cleanup of Temporary Directories…

Pozostaje mi chyba liczyć na tego OpenVPNa, inna sprawa, że nie wiem co wpisać w nazwa grupy, zapewne musi być gdzieś ona zdefiniowana w konfiguracji fortigate, co prawda mogę podpytać ale nie sądzę aby to było to, podejżewam, że wtedy w syslogu widziałbym jakąś ifnormację o niewłaściwej grupie a nie po prostu timeout.

Tak, nazwę grupy musisz podać, a przynajmniej przy standardowym IPSec. Polityki IPSec przypisywane są do grupy.

W FortiClient nie widziałem takiej opcji, więc albo firewall ma to predefiniowane, albo jej nie używa.

Jak pisałem, zwyklymi klientami IPSec nie połączysz się z forti. Musi to być dedykowany klient, tak samo jak do Ciscowego IPSec używa się wtyczki VPNC. Choć przy Cisco są większe szanse, że zestawisz tunel przez Libreswan lub innego klienta IPSec, np. Shrew VPN Client.

Zdefiniowałeś zdalną sieć w libreswan? Dobrze podajesz algorytmy i hash fazy 1 i 2?

Na domyślnych ustawieniach Forti używa.

Faza 1 sha1, aes-128 oraz sha1, aes-256
Faza 2 sha1, aes-128 oraz sha1, aes-256

DH jeśli dobrze pamiętam Group2 i chyba bez PFS.

Te informacje lub plik konfiguracyjny musi podać Ci admin.

Małe sprostowanie @roobal. Strongswan umie zarówno IKEv1 i IKEv2. Używam obu i oba działają i oboma można zestawić połączenie z Cisco i nie trzeba używać vpnc/shrew. Z Fortigate nie próbowałem.

1lajk

Dzięki za info. U mnie nie banglał na Strong, dlatego wybrałem libre.

Z Cisco jest lepiej, VPNC jest po prostu przystosowany do Cisco (mniej z nim zabawy).