FortiGate – Failed to save some changes: Value conflicts with system settings.

Pewnie też mieliście okazję zobaczyć ten komunikat i przyznam szczerze, że jest on trochę irytujący, bo nie da się z tym nic zrobić z poziomu GUI. Trzeba z CLI. Problem jest związany z funkcją Content Disarm and Reconstruction, która jest dostępna tylko w trybie inspekcji Proxy. Rozwiązania są tutaj:

Na początku trzeba stworzyć profil dla protokołów w CLI:

anzena-forti # config firewall profile-protocol-options 
anzena-forti (profile-protocol~ons) # edit nowy
new entry 'nowy' added
anzena-forti (nowy) # config smtp
anzena-forti (smtp) # set options fragmail oversize
anzena-forti (smtp) # end
anzena-forti (nowy) # end
anzena-forti #

Potem taki profil trzeba przypisać do polityk firewalla, w których chcemy używać profilu AntiVirus z włączoną wspomnianą opcją. Należy znaleźć ID i do takiego ID polityki firewalla przypisać opcje protokołów, które właśnie zdefiniowaliśmy. Będąc w Policy & Objects > Firewall Policy i przechodząc do szczegółów wybranej reguły zobaczymy jej szczegóły (i potrzebne ID):

Przypisanie profilu protokołów wygląda dla takiej polityki w ten sposób:

anzena-forti # config firewall policy 
anzena-forti (policy) # edit 13
anzena-forti (13) # set utm-status enable
anzena-forti (13) # set profile-protocol-options nowy 
anzena-forti (13) # end
anzena-forti #

FortiGate i JPK w urzędach

Ten krótki post zostawiam dla pań i panów pracujących w IT, którzy w FG mają problemy z przepuszczeniem ruchu dla wysyłek JPK. Takie coś się wysyła w urzędach gminy i miast (nie wiem jak jest w starostwach powiatowych) i robi to ta aplikacja. Ostatnio siedziałem nad tym problemem z jednym z moich klientów i rozwiązanie jest następujące – na początku należy sobie zadać pytania:

  • Z jakich komputerów owe JPK jest wysyłane?
  • Czy te komputery mają zmienny adres IP?
  • Czy jednym z komputerów do JPK jest laptop? Jeśli tak, używa karty bezprzewodowej w sieci urzędu?

Po ustaleniu tego musimy zrobić politykę, w której przepuszczamy ruch dla konkretnych adresów bez dokładnego filtrowania aplikacji. Dlatego musimy mieć zawsze te same adresy hostów, które te JPK wysyłają. Jeśli mamy do czynienia z laptopem to musimy zrobić w DHCP rezerwację zarówno dla karty przewodowej jak i bezprzewodowej. Na początku warto zacząć od dodania wspomnianych rezerwacji, zrobimy to w ustawieniach interfejsu lokalnego, w IP Address Assignment Rules (możemy wpisać adresy ręcznie lub dodać je z listy adresów, które dostały swoją dzierżawę w DHCP automatycznie):

Potem warto w Device Inventory zapisać urządzenia do listy adresów – można to zrobić ręcznie, ale jeśli na interfejsach mamy włączoną opcję Device Detection to tutaj samo się znajdzie, o tak:

Tutaj tak samo – można takie adresy sobie zdefiniować ręczne w Addresses, klikając w Create New > Address, poniżej przykład definicji takiego komputera. Warto dodać, że tutaj zdefiniowałem adres z końcówką /32 – to oznacza wskazanie na konkretny adres hosta, poza tym określiłem tutaj w Interface interfejs, do którego urządzenie jest podłączone. To oznacza, że ten adres można wykorzystać tylko w politykach dotyczących tego właśnie interfejsu.

Po tym warto stworzyć sobie grupę użytkowników, którzy łączą się do serwerów na wysyłkę JPK. Na na wdrożeniu nazwałem Nadawcy JPK. Wtedy to jest jaśniejsze w konfiguracji. Do tej grupy dodajemy wszystkie komputery, które mają JPK wysyłać.

Takie dodanie obiektów wygląda tak:

Mając to, robimy w taki sam grupę adresów, ale tym razem dla adresów serwerów i one powinny wyglądać tak:

Musimy zrobić takie 4 obiekty z różnymi FQDNami:

  • e-dokumenty.mf.gov.pl
  • mf.gov.pl
  • blob.am5prdstr10a.store.core.windows.net
  • blob.am3prdstr10a.store.core.windows.net

Potem trzeba (nie trzeba, ale warto) zrobić grupę, którą można nazwać np. Serwery JPK i dodać te adresy do grupy. Na końcu trzeba stworzyć politykę, która z interfejsu lokalnego do interfejsu WAN przepuszcza ruch z grupy Nadawcy JPK do grupy Serwery JPK. Jeśli chodzi o porty – puściłem tutaj dowolne porty, bo nie byłem w stanie znaleźć portów, które są wykorzystywane w snifferze. Wydaje mi się, że to były porty HTTP+S, ale gdy stworzyłem taką politykę z tymi portami to nie byłem w stanie wysłać JPK.

Na samym końcu taką politykę powinniśmy mieć zdefiniowaną nad ogólnymi politykami dla użytkowników, na przykład w ten sposób:

I gotowe.

Wyświetlanie listy przydziałów z DHCP w FortiGate (CLI)

anzena-forti # anzena-forti # execute dhcp lease-list internal7
internal7
  IP            MAC-Address             Hostname            VCI                 SSID                AP                  Expiry
  192.168.30.102        00:0c:29:2e:9a:42       endpoint-3          MSFT 5.0                                                    Wed Jun 17 13:07:42 2020
  192.168.30.103        00:0c:29:23:aa:4a       xubuntu                                                                         Wed Jun 17 22:03:58 2020
  192.168.30.100        00:0c:29:c9:58:c6       ENDPOINT-1          MSFT 5.0                                                    Fri Jun 19 10:30:52 2020
  192.168.30.104        00:0c:29:7c:6a:73       gns3vm                                                                          Fri Jun 19 11:38:13 2020
  192.168.30.101        00:0c:29:27:fc:19       endpoint-4          MSFT 5.0                                                    Tue Jun 23 08:04:09 2020

Dodanie dodatkowych kontrolerów domeny w FortiGate do profilu LDAP, włączenie komunikatów o wygasających hasłach i opcja na odnowienie ich

Niestety, tych opcji aktualnie (w wersji FortiOS 6.4.1 jeszcze nie ma w interfejsie, więc trzeba to zrobić przez CLI. Dla przykładu mój profil i poniżej przykład dodania dodatkowych kontrolerów domeny:

anzena-forti # config user ldap
anzena-forti (ldap) # edit serba.local
anzena-forti (serba.local) # set secondary-server dc2.serba.local
anzena-forti (serba.local) # set tertiary-server dc3.serba.local
anzena-forti (serba.local) # set password-expiry-warning enable
anzena-forti (serba.local) # set password-renewal enable
anzena-forti (serba.local) # end

Zmiana nazwy certyfikatu CA w FortiGate

Dzięki temu certyfikat nie jest nazwany domyślnie tak jak na górze, lecz tak jak ten na dole:

anzena-forti # config vpn certificate ca
anzena-forti (ca) # rename CA_CERT_2 to SERBA-CA
table name 'CA_CERT_2' is not found!
Command fail. Return code 2 //jak widać wielkość liter ma znaczenie!
anzena-forti (ca) # rename CA_Cert_2 to SERBA-CA
anzena-forti (ca) # end

Wake on LAN na FortiGate i Mikrotiku

Rachunki za prąd mi nieźle podskoczyły, więc od niedawna włączam kompa tylko wtedy, jeśli go potrzebuję. Dlatego wcześniej łączę się do domu po VPNie i korzystam z opcji Wake on LAN – dzięki czemu mogę zdalnie włączyć komputer, bo niestety on nie ma interfejsu IPMI, ani nie ma w domu drugiej osoby, która mi ten przycisk wciśnie.

FortiGate:

execute wake-on-lan lan 00:d8:61:04:20:69

gdzie lan to nazwa intefejsu, do którego jest podpięty mój komputer, a następnie jest adres MAC mojej karty sieciowej w komputerze.

Mikrotik:

tool wol interface=ether4 mac=00:d8:61:04:20:69

Tutaj tak samo jak wyżej, jedynie nieco inne polecenie.

Certyfikat w agencie FSSO dla FortiGate

Zawsze jak uczę się czegoś (na przykład w pracy) staram się wyciągnąć z tego 100%. Przez to natrafiłem na 1 opcję w agencie FSSO FortiGate’a, której nigdzie nikt nie używa: FortiGate SSL. Nie trudno się domyślić, że tu chodzi o to, by komunikacja z FortiGate’m była szyfrowana (domyślnie jest przesyłana plaintextem). Więc skoro zabezpieczamy wszystko najlepiej to czemu tego nie zmienić?

Problem w tym, że w dokumentacji FortiGate’a ani w ich Cookbooku tego nie ma. Są inne rzeczy, ale tą funkcjonalność ktoś po prostu pominął i nie ma totalnie nic o jej konfiguracji, więc próbowałem się dowiedzieć na własną rękę jak ją się ustawia.

Na początku należy mieć własne CA. Na przykład ja używam do tego CA, które można postawić w AD (Usługi certyfikatów Active Directory):

Ja zawsze do niego doinstalowuję funkcję Rejestracja w sieci Web dla urzędu certyfikacji. Dzięki temu możemy przez stronkę taki certyfikat sobie podpisać, zakładając, że postawiliśmy sobie takie CA na serwerze dc1.serba.local wystarczy wejść na stronkę http://dc1.serba.local/certsrv (oczywiście da się zmienić na HTTPS) i tam możemy załatwić robotę. Część robię za pomocą OpenSSL, więc warto mieć zainstalowaną windowsową wersję lub korzystać z Windows Subsystem for Linux (korzystam z tego „czegoś” w Windows Store, w praktyce daje mi to możliwość korzystania ze wszystkich (prawie) poleceń z Ubuntu lecz będąc na Windowsie).

Zaczynamy od utworzenia klucza prywatnego:

openssl req -newkey rsa:2048 -keyout local.key
Generating a RSA private key
..........+++++
........+++++
writing new private key to 'local.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:PL
State or Province Name (full name) [Some-State]:SL
Locality Name (eg, city) []:Tychy
Organization Name (eg, company) [Internet Widgits Pty Ltd]:it.supra.tf
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:it.supra.tf
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
-----BEGIN CERTIFICATE REQUEST-----
MIICzDCCAbQCAQAwgYYxCzAJBgNVBAYTAlBMMQswCQYDVQQIDAJTTDEOMAwGA1UE
BwwFVHljaHkxFDASBgNVBAoMC2l0LnN1cHJhLnRmMQswCQYDVQQLDAJJVDEUMBIG
A1UEAwwLaXQuc3VwcmEudGYxITAfBgkqhkiG9w0BCQEWEnJhZG9zbGF3QHNlcmJh
Lm92aDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNpWo2R6qcUQKCO
3rTL2nBnPa33lS9mtvC+j7HHU2ZNHgSYsm6jVP0t3ARWEGPg4soTI95GBojO4KbA
lUNw8D5tza0rj45C70VeNZkk5n6Y9OsoMyOrOPThZTmfJWdZXfN90rZC2leAdy24
7fTkcJ3jgkgHWgjbsu6kWvCLXgzPY71VfIFufDuUTLGHyD4RIAjT6MjML4SMToFU
vSQ3fwUbe+ayAV/XB0O2PR+zJ7TD1W4MoaJwTklPOb0pT/6sGNmOsxQiyoaqbK3q
nW8x37PKCXthwObpJMnyROXsyYCZqaHiDxtK7jEao4jyhUkzqcJyvHrv0RLwMZzr
OFgzxVECAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQA+h+TmOmJuzdcAaeYdZmjs
bL1VJR4ih38/LU+ELjha+380SPA9bvbmHNYcGLtc8Y5aMi00TZoRwZ6HO4ALA11Y
JD0f5bC3c/JulHuBy+5wCMw4JyM8GFz2yrayi1wqXJVDp57kDjrB1GWhX8sG2oh6
yf+Y6wJk9zyO48Aglgg7w/ZtEjnyBID182yUxSNEJuBoOooNmGqCQrvTJZFgnXzJ
NQT1f4KlCZhE8g9bA8dWuIW7aAm2ssck/QI15jyj22zNYk0c5m+kdcDhjss6qjFw
m0LXnHCLWWdnBKqqraTy5G7ZNTDGxl43n74bRCGAJkotkh5RxX+e3BzihyCjg5dH
-----END CERTIFICATE REQUEST-----

Dzięki temu mam wygenerowany taki klucz prywatny w pliku local.key:

-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIeJPiXvMmk/gCAggA
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECGT+mYCIj3sOBIIEyKw37DJsFB6q
GzhFg4K8z71ffvVeEYJwpH5t6PdH5Scg8dV1yXMbKdEL3ZDzpk0sVnghjAb6Z/YW
dXXTeO8oAQqBCdt6B7a+6cA7+Gp3xHOEQlZKE/ijFkvBPPL4cFP3LQ+yQkfzI0i9
sZuuocF8srxtIuOYPbb6DVJZI0C+xB0/QWQnF4WdyncYNt4cXTaxU0kZrC7LDNnO
AIULHXAzhedntLUTViD26w2VhvqOxAwXxarVRNQuKevG0JLjvD/kK5AoufeIpusr
kfNhP3sT9ITPI5P9G7nJSLl8CaLRa8DO8WxxMN/UBppwXBg4BfWqtfQG4GyW+8Xw
pF4dnJrywOtAuVWY2bZnb6CBJGd3JCAqgt+c+ROGM9HjromsfYu1vMgBZ6d9iZ29
EeQhkLGeISjXWDI6t9D8WCNEcWD7Fs7wPq1jmSdo9Dx7GU2kcoEjHB1S38Kgy7u/
nXSb6YcwkRX7pZy5Or2ATL2i/yf2Pu93z8dP5v099gJqcSajeIAxvdLf9A5kdGsr
x6VWZWYldA4CN963jEG7e8vXorF8+QZe9W7M7sZ/K7xHRapklo4i7QExL/WcLOE5
5e7amAiesYjTzqaQKouTY+UXLm9EG/Czjc1tMIaYr3WCxX92RSB1GB1AP2U/epmh
oL9AqPtoe4jT+xQPnipCypxRSn1xnZV90rgNusEiVaC5nhVlOHSABE2BEHi/xjTr
t1v2yzxSXn+g4+olx6iKzHRxR0yTt2duU63LjD8eFj2WxDs07O+31uWZ9BEHyPmP
8bELgEg0H9IqK2AJRyCGN1SFLi7yt5hekbk0CixZryScjPT2C6HLeca7ghEuRmvL
L6dv1rRM2pKKdrX1FtDkVntj2Evt4ngYJnVoK3EbIxxwAxHpv35h5RHYFowyO8kO
uttBvbEqOz8KZpprPbT3g9qlITyuRqULT8Yi+0+X6JIEJ0ayEDz8+1226R6osoGe
w5kwT8POQTrkMuutyO5huPKWMgLR74XM18tUHI5k/x/698C1QLtSXACtheteH5x+
nUKJOVTraScoX5DOE+kQ7D7FnRR1uJyQdh5+XcF6mZ1tcZcsDiu9HiUHD12xP1dM
wEqMyd6mBl1AxJVuf72aXBpSi7A58zeqKc7CdMovdm/uRVHzXHPcKUYy8fAtrJFN
OVJ7nZGLBVpSKroKXuM06PgR7QYrs42HmXopkD8w5h7qRJV8zxCc0iUl1dU7511f
MspTboffXGOkj+3jp80aAoWTm4axMvsklUN6zzxoNgsGUBmdv/twxtJzv8TLFFTz
I+WldMQ4JUINrWEHYSbYcgbn7MycvwLv9+f8a+I3KHQglRMk+LTulQLcU/wwM36e
4/F11Cr0NqjMp0jNRC6D+P7up9FHD2McXaCvtcXopWgmpa4RoGRl/IdmJtC+q3oF
Qomt71wLsgiv4J84mt+XKPfJhbJeaAcLRJAka2zk7KmLGkAKQYu1yMb480H5eOwF
Yck1Eh39ciLpysIPNnk7ZQ+t2dX/r3VrrMwnbrsFXzl14VsPJd7vLuh9nH8Zx8gS
fNVFCt/hB1mJ+zeTP6qgJiSLzjCn5lg85NzGDWela3F8CsVR3+7Qms4m66yqSFm+
QemTVykHMDke5IP1mFj3OA==
-----END ENCRYPTED PRIVATE KEY-----

Następnie warto sobie przygotować config do generowania CSR (certificate signing request), czyli żądanie podpisania certyfikatu, ja sobie zapisałem go w pliku o nazwie config.cnf. Istotne w tym szablonie są pola CN oraz DNS.1 – one muszą być adresem FQDN naszego hosta, na którym jest zainstalowany FSSO Collector (w sensie agent), w moim przypadku jest to fsso-collector.serba.local:

[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=PL
ST=SL
L=Tychy
O=it.supra.tf
OU=IT
[email protected]
CN = fsso-collector.serba.local

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = fsso-collector.serba.local

Mając coś takiego gotowe tworzymy sobie CSR poleceniem:

openssl req -new -sha256 -key local.key -out fsso-collector.serba.local.csr -config config.cnf

W ten sposób otrzymujemy coś takiego:

-----BEGIN CERTIFICATE REQUEST-----
MIIDEzCCAfsCAQAwgZUxCzAJBgNVBAYTAlBMMQswCQYDVQQIDAJTTDEOMAwGA1UE
BwwFVHljaHkxFDASBgNVBAoMC2l0LnN1cHJhLnRmMQswCQYDVQQLDAJJVDEhMB8G
CSqGSIb3DQEJARYScmFkb3NsYXdAc2VyYmEub3ZoMSMwIQYDVQQDDBpmc3NvLWNv
bGxlY3Rvci5zZXJiYS5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBALjPgatD84GPdQlt5GytCUSjs7Mr4k3yn7mUW2QbEr9zAQ5/uRWo/rep6ptr
N2HBP4vFzCTGA4c1OGwg0yzzkz3uGEVUiJ0qdudutHGYEfDpr2Hd0kH6eH7MIqGx
GBqhe9+XRugtSojE2jDPGL3UU2eDhx8fzzovbbi+IyuOsOEtCwGl2FvPP9AnT2/s
owTOxlU2ZqaAauL+72pa0ciSdDfWh9Lat2FeWIPD34qAt/n9yK4fXpSWgWm0y+zB
ackruljZxd6gw4x0KBKdUq+a8vPdz6RK2ODBnQEG02DkxvdjfgzkzX2aNbR9QWAC
HuPGB6FdzidIf+UoBUaUKrFabhMCAwEAAaA4MDYGCSqGSIb3DQEJDjEpMCcwJQYD
VR0RBB4wHIIaZnNzby1jb2xsZWN0b3Iuc2VyYmEubG9jYWwwDQYJKoZIhvcNAQEL
BQADggEBADa3+JoA0OjayAo2e9IX232mHrzgPtF4B4IY61xQACuIsqQW7IoLIaR5
h5HyPhRENecWws6ORwBcnKvIJykuXj4H1PaacUiTQgkOIAPnSltjGIkA8cnvtQYA
RrsKx4QTgbtr64+1E2xFRN+3Z6cOwyDB8yhOCS2k4UnyuC5XSJsQySI0GFqGdVGl
wLsT8IYQRcMkvlih3g+7hARb9C9TNW/se/UN/xL/q3ssWZfZ3QRuphDpn1zYo5au
XeuIXilt+R3bDvW3o5ThyKta/mGSt0Zr01KxviNalHvqLSYXSf4eHErstimNrqJp
+l05rq3qpcmbTp6Rq7IJ5F4j6hp2axI=
-----END CERTIFICATE REQUEST-----

Takie coś musimy przesłać do naszego CA, a w wyniku tego dostaniemy certyfikat. Wchodzimy więc na stronę naszego urzędu certyfikacji (musimy się przedtem autoryzować naszym kontem administracyjnym):

Po tym wybieramy Żądanie certyfikatu.

Następnie zaawansowane żądanie certyfikatu.

Tutaj sprawa jest prosta – wklejamy naszą zawartość CSRki i wybieramy odpowiedni szablon certyfikatu. W skrócie jest kilka predefiniowanych w naszym CA, można je zmieniać z przystawki certification authority i szablon Serwer sieci Web jest do serwerów HTTP, więc w sam raz, bo jest właśnie ten nam tutaj potrzebny. Klikamy Prześlij >.

Tutaj musimy tylko pobrać sam certyfikat i musi być szyfrowany algorytmem Base-64. Często w certyfikatach potrzebne są nam certyfikaty CA (chain) oraz certyfikat serwera (certificate). W niektórych serwerach wystawia się je w jednym pliku, przy czym najpierw jest zawartość certyfikatu serwera, a potem certyfikat CA (takie pliki są określane mianem fullchain). Tutaj wystarczy sam certyfikat serwera, a plik certyfikatu CA musi być dodany na naszym FortiGate. Taki można wrzucić tutaj:

Następnie certyfikat serwera oraz klucz prywatny, który stworzyliśmy na samym początku musimy podać w ustawieniach zaawansowanych (przycisk Advanced Settings) FSSO collectora:

U góry wskazujemy plik certyfikatu, w środku plik klucza prywatnego oraz na dole podajemy hasło, jakie zdefiniowaliśmy dla tego klucza, po czym klikamy Test, a jak hasło jest prawidłowe to klikamy OK. Dodam, że warto odblokować na firewallu w Windowsie komunikację pomiędzy naszym FortiGate’m a hostem z agentem na porcie TCP 8001 w dwie strony, bo inaczej to nie zadziała.

Po stronie FortiGate musimy jeszcze w ustawieniach External Connectors zaznaczyć opcję Trusted SSL Certificate i wybrać CA, które podpisało ten certyfikat i teoretycznie wszystko powinno być okej…

…ale jednak nie. Okazuje się, że nawet w najnowszej wersji FortiOS po włączeniu tego FortiGate dalej próbuje się łączyć z wykorzystaniem SSLa do collectora po porcie 8000 zamiast 8001. Tego się dowiedziałem w trakcie troubleshootingu z supportem Fortinetu (który sam przyznał, że dodali taką funkcję, bo 1 klient o to poprosił, ale w sumie tego nie ma nigdzie opisanego), więc w skrócie taki port trzeba aktualnie zmienić w CLI:

anzena-forti (fsso) # show config user fsso
    edit "serba.local"
        set server "fsso-collector.serba.local"
        set port 8001   <======== w tym jest problem, trzeba to zmienić z 8000 na 8001
        set password ENC H7/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==
        set ssl enable
        set ssl-trusted-cert "SERBA-CA"
    next
end

Zmieniamy to poleceniami:

anzena-forti # config user fsso
anzena-forti (fsso) # edit serba.local
anzena-forti (serba.local) # set port 8001
anzena-forti (serba.local) # end

Po tym komunikacja FortiGate z FSSO Collectorem po SSLu będzie działać.

Na koniec dodam, że Pan z Fortinet TAC sprawdzał to za pomocą sniffera poprzez CLI wykonując polecenie:

diag sniff packet any "port 8000" 6 0 a

Poza tym włączał debug mode poleceniami:

di de en
di de authd fsso server-status

Update: po aktualizacji do wersji FortiOS 6.4.2 zauważyłem, że dodano wiele portów do profili FSSO:

anzena-forti (fsso) # edit serba.local

anzena-forti (serba.local) # 
set      Modify value.
unset    Set to default value.
get      Get dynamic and system information.
show     Show configuration.
next     Configure next table entry.
abort    End and discard last config.
end      End and save last config.
 
anzena-forti (serba.local) # set 
type                       Server type.
*server                     Domain name or IP address of the first FSSO collector agent.
*port                       Port of the first FSSO collector agent.
password                   Password of the first FSSO collector agent.
server2                    Domain name or IP address of the second FSSO collector agent.
port2                      Port of the second FSSO collector agent.
password2                  Password of the second FSSO collector agent.
server3                    Domain name or IP address of the third FSSO collector agent.
port3                      Port of the third FSSO collector agent.
password3                  Password of the third FSSO collector agent.
server4                    Domain name or IP address of the fourth FSSO collector agent.
port4                      Port of the fourth FSSO collector agent.
password4                  Password of the fourth FSSO collector agent.
server5                    Domain name or IP address of the fifth FSSO collector agent.
port5                      Port of the fifth FSSO collector agent.
password5                  Password of the fifth FSSO collector agent.
ldap-server                LDAP server to get group information.
group-poll-interval        Interval in minutes within to fetch groups from FSSO server, or unset to disable.
user-info-server           LDAP server to get user information.
ssl                        Enable/disable use of SSL.
ssl-trusted-cert           Trusted server certificate or CA certificate.
source-ip                  Source IP for communications to FSSO agent.
source-ip6                 IPv6 source for communications to FSSO agent.
interface-select-method    Specify how to select outgoing interface to reach server.

Poniżej przykład mojej konfiguracji:

config user fsso
    edit "serba.local"
        set server "dc1.serba.local"
        set port 8001
        set password ENC 2ADfLnGWaMcPrHrwp8gIddCjZsNg9EsPidsh4Gdy+eWPIi0GC6Dycw74/LqRRZNgpZJT44X9X6EpZV4qE3gCI01pgo5xUk4B0sqQGd+6YObAZEBvwT2vBzNFNXNI9ZZX2Db+n0GmrNIUECD0bUhDUalmZeeIqa341M0YirrJAJ+bv9AAgsMB891F77JpX4QNqzV4Gg==
        set server2 "dc2.serba.local"
        set port2 8001
        set password2 ENC BJJKjYuknd0U+rMXrzjS8DLcgENw8aE+kW2gKipuXxh+gJYHB1TAdpr4GNDXRWY7/gSe5K0lrl8Y7L7fS2EHTJMsJx/MZ1q8NL2qSbAk7sZpkXMmFlSOBwXUg9RKN9eH/6TT6f1CZLOHc6vqjT11XXbdrKNgy6y9wNCipuef+PKK9OMrlxxh/yQjJ2TvA7rrPvP+Bg==
        set ssl enable
        set ssl-trusted-cert "SERBA-CA"
    next
end