Fortigate – Sprawdzanie, która zasada będzie pasować.

Sprawdzany jak śledzić, która polityka zapory będzie pasować na podstawie adresu IP, portów i protokołu oraz najlepszej trasy do użycia poleceń CLI

$ diag firewall iprope lookup <src_ip> <src_port> <dst_ip> <dst_port> <protocol> <Source interface>

diag firewall iprope lookup X.X.X.X 12345 Y.Y.Y.Y 53 tcp port2
<src [X.X.X.X-12345] dst [Y.Y.Y.Y-53] proto tcp dev port2> matches policy id: 2

Zimbra – odblokowanie kont

W zależności od ustawień w panelu administracyjnym „Strona główna -> Konfiguruj -> Klasa usługi -> default -> Zaawansowane ->Polityka błędnego logowania, Zimbra może zablokować konto, jeżeli kilkakrotnie zostało źle podane hasło. Musimy ręcznie odblokować takie konto, ustalając wcześniej przyczynę blokady.

Sprawdzamy status konta:

$ su zimbra
$ zmprov ga admin@nazwadomeny.pl  zimbraAccountStatus

Gdy status jest ustawiony na Locked lub Lockout to sprawdzamy przyczynę blokady.

Szukanie blokady z powodu zbyt dużej ilości błędnych logowań

$ grep -E "account=admin@.* error=account lockout due to too many failed logins" /opt/zimbra/log/audit.log

Przyczynę zablokowania możemy szukać w szerokim kontekście grep -C 10 przeszukując też inne logi, próbując ustalić co się wydarzyło.

$ grep -C 10  -E "authentication failed.+admin@" /opt/zimbra/log/mailbox.log  /opt/zimbra/log/audit.log /var/log/zimbra.log

Odblokowanie konta

$ su zimbra
$ zmprov ma admin@nazwadomeny.pl zimbraAccountStatus active

Regex -wyrażenia regularne

Do testowania regex możemy użyć strony regexr .com

Kotwice

^Przykładowy tekst - Tekst rozpoczynający się "Przykładowy tekst"
Przykładowy tekst$ - Tekst kończący się "Przykładowy tekst"

Kwantyfikatory

Tekst* - Dopasowuje dowolny ciąg zawierający "Teks" z następstwem 0 lub więcej znaku "t"
Tekst+ - Dopasowuje dowolny ciąg zawierający "Teks" z następstwem 1 lub więcej znaku "t"
Tekst? - Dopasowuje dowolny ciąg zawierający "Teks" z następstwem 0 lub 1 znaku "t"
Tekst{5} - Dopasowuje dowolny ciąg zawierający "Teks" z następstwem 5 znakami "t"
Tekst{5,} - Dopasowuje dowolny ciąg zawierający "Teks" z następstwem przynajmniej 5 znakami "t"
Tekst{5,8} - Dopasowuje dowolny ciąg zawierający "Teks" z 5 do 8 znakami "t"
Te(kst)* - Dopasowuje dowolny ciąg zawierający "Te" z następstwem wystąpienia "kst" 0 lub więcej razy

Klasy znaków

\d - Dopasowuje znak, który jest cyfrą
\w - Dopasowuje znak alfanumeryczny lub '_'
\s - Dopasowuje znak biały
\D, \W, \S - Jak powyżej ale z zaprzeczeniem (nie zawierający cyfr, ...)
. - Dopasowuje znak

Flagi

/tekst/g (global)- Przeszukuje cały ciąg nie kończąc na pierwszym dopasowaniu
/tekst/m (multiline)- Na każdej linii osobno możemy stosować kotwice ^ $
/tekst/i (insensitive) - Wielkość liter nie ma znaczenia 

Nawiasy kwadratowe (zakresy)

[abc] - Dopasowuje znak, który jest "a", "b" lub "c"
[a-c] - Dopasowuje znak, który jest z przedziału "a" do "c"
[a-z] - Dopasowuje znak, który jest małą literą
[a-zA-Z] - Dopasowuje znak, który jest małą lub wielką literą
[0-9] - Dopasowuje znak, który jest cyfrą

Lub

kot|pies - Dopasuje "kot" lub "pies"
tekst(a|b) - Dopasuje "teksta" lub "tekstb"

Fortigate – Poziom logowania inspekcji ssl

Aby łatwiej diagnozować problemy z głęboką inspekcją i inspekcją certyfikatów możemy w profilach inspekcji włączyć opcje  ssl-negotiation-log oraz ssl-handshake-log.

$ config firewall ssl-ssh-profile
$ edit <nazwa_profilu>
$ set ssl-anomalies-log enable
$ set ssl-exemptions-log enable
$ set ssl-negotiation-log enable
$ set ssl-server-cert-log enable
$ next
$ end

Aby widzieć która wersja TLS została użyta do połączenia, włączamy widoczność kolumny „TLS Version” w „Log & Raport > SSL”. Możemy włączyć też kolumnę Common Name Identifier i Hostname.

FortiGate – Czas trwania bezczynnej sesji

Konfiguracja limity czasu trwania, bezczynnej sesji.

TTL sesji to czas, przez jaki sesja TCP, UDP lub SCTP może być bezczynna, zanim zostanie porzucona przez jednostkę FortiGate.

config system session-ttl
    config port
        edit 1
            set protocol 6
            set timeout 1000
            set start-port 444
            set end-port 444
        next
    end
end

timeout – 1 to 604800 sec. Domyślnie 300.

vSphere – problem z konsolidacją

vSphere czasem wyświetla komunikat o konieczności konsolidacji dysku. Może się zdarzyć, że wykonanie konsolidacji nie daje efektu. Mimo, że na liście snapshotów nie ma, żadnych pozycji, to w katalogu VM istnieją pliki *0000x.vmdk, oraz w konfiguracji dysków maszyny widzimy, że maszyna używa pliku *0000x.vmdk.

Możliwe rozwiązania:

  1. Tworzymy snapshot z opcją „Quiesce guest file system”, po utworzeniu usuwamy wszystkie snapshoty „Delete all”. Sprawdzamy w konfiguracji VM czy nadal jest używany dysk *0000x.vmdk
  2. Możemy również spróbować migrować maszynę wirtualną do innego datastorage.
  3. Jeżeli problem nadal istnieje to zatrzymujemy VM, tworzymy kopię maszyny „Clone > Clone to virtual machine”. Następnie uruchamiamy skopiowaną maszynę, sprawdzamy czy działa prawidłowo, i usuwamy oryginalną VM. ESXi bez vCenter nie pozwala klonować maszyn VM. Musimy w cli użyć polecenia „vmkfstools -i” do zrobienia kopii virtualnego dysku z którym mamy problem.

Iperf – Test przepustowości

Badanie przepustowości sieci pomiędzy dwoma linuksami.

Testowanie TCP

# Linux 1 - uruchomienie serwera ipref
$ iperf -s

# Linux 2 - uruchomienie klienta ipref
$ iperf -c <IP serwera ipref>

Testowanie UDP

# Linux 1 - uruchomienie serwera ipref
$ iperf -s -u

# Linux 2 - uruchomienie klienta ipref
$ iperf -c <IP serwera ipref> -u -b 1000M

Fortigate – diagnozowanie problemów SSL VPN

$ diagnose debug disable 

$ diagnose debug reset 

$ diagnose debug console timestamp enable

$ diagnose vpn ssl debug-filter src-addr4 < Source ip>

$ diagnose debug application sslvpn -1 

$ diagnose debug application fnbamd -1 

$ diagnose debug enable 


# Po zakończeniu

$ post log collection disable the debug

$ diagnose debug disable 

$ diagnose debug reset 

Debian – Instalacja .Net Core 6 SDK

Instalacja repozytoriów

$ wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ rm packages-microsoft-prod.deb

Instalacja .Net Core 6 SDK

$ sudo apt update
$ sudo apt install dotnet-sdk-6.0

Możemy zainstalować samo środowisko uruchomieniowe, bez SDK

$ sudo apt update
$ sudo apt install dotnet-runtime-6.0

Na podstawie: https://docs.microsoft.com/pl-pl/dotnet/core/install/linux-debian

Fortigate – Firewall dla połączeń przychodzących

Firewall Policy filtruje ruch przechodzący przez Fortigate np. z sieci Lan do Wan i z Wan do Lan. Jeżeli chcemy sprawdzać ruch adresowany do Fortigate np: połączenia ipsec, musimy skonfigurować Local in policy

Przykład pozwalający na połączenia ipsec tylko ze znanego nam adresu Oddzial.

Tworzymy obiekt adresu naszego hosta Oddzial.

config firewall address
    edit "Oddzial"
         set subnet X.X.X.X 255.255.255.255
    next

Tworzymy obiekt adresu naszego WAN IP

edit "WAN"
    set subnet Y.Y.Y.Y 255.255.255.255
next
end

Przygotowujemy dwie polityki lokalne. Pierwsza zezwoli na połączenia przychodzące ipsec z adresu IP „Oddzial”, druga zablokuje pozostałe adresy.

config firewall local-in-policy
    edit 1
        set intf "wan"
        set srcaddr "Oddzial"
        set dstaddr "WAN"
        set action accept
        set service "IKE"
        set schedule "always"
    next
    edit 2
        set intf "wan"
        set srcaddr "all"
        set dstaddr "WAN"
        set action deny
        set service "IKE"
        set schedule "always"
    next
end