$ diagnose debug reset #reset wszystkich wcześniejszych ustawień debug
$ diagnose debug enable #włączenie debug
$ diagnose debug flow filter clear #czyszczenie filtrów przepływów
$ diagnose debug flow filter addr 192.168.128.100 #ustawienie śledzonego ip
$ diagnose debug flow filter proto 1 #id protokołu.Tutaj ICMP
$ diagnose debug flow show fun enable #włącz pokazywanie funkcji
$ diagnose debug flow show iprope enable #włącz komunikaty śladu dotyczące iprope
$ diagnose debug flow trace start 20 #rozpoczęcie śledzenia 20 sesji
id=20085 trace_id=126 func=print_pkt_detail line=5783 msg="vd-root:0 received a packet(proto=1, 192.168.100.99:1->192.168.128.100:2048) from internal5. type=8, code=0, id=1, seq=224."
id=20085 trace_id=126 func=init_ip_session_common line=5955 msg="allocate a new session-00657adf"
id=20085 trace_id=126 func=rpdb_srv_match_input line=1030 msg="Match policy routing id=2141519874: to 192.168.128.100 via ifindex-40"
id=20085 trace_id=126 func=vf_ip_route_input_common line=2605 msg="find a route: flag=04000000 gw-XX.XX.XX.XX via IPSEC"
id=20085 trace_id=126 func=fw_forward_handler line=869 msg="Allowed by Policy-1:"
id=20085 trace_id=126 func=ipsecdev_hard_start_xmit line=625 msg="enter IPSec interface IPSEC"
id=20085 trace_id=126 func=_do_ipsecdev_hard_start_xmit line=229 msg="output to IPSec tunnel IPSEC"
id=20085 trace_id=126 func=esp_output4 line=867 msg="IPsec encrypt/auth"
id=20085 trace_id=126 func=ipsec_output_finish line=546 msg="send to XX.XX.XX.XX via wan2"
$ diagnose debug flow trace stop #zatrzymanie
$ diagnose debug disable #wyłączenie debug
Author Archive: tomeks
Fortigate – zarządzanie procesami
Lista procesów.
# diagnose sys top
lub wyszukanie konkretnego procesu np proxyd
# diag sys process pidof proxyd
Ubicie procesu
# diagnose sys kill 11 <process_id>
lub
# fnsysctl killall <process name>
np
# fnsysctl killall proxyd
DIRB to skaner treści internetowych
DIRB wyszukuje istniejące obiekty sieciowe. Działa poprzez uruchomienie ataku słownikowego na serwer sieciowy i analizę odpowiedzi. Wraz z dirb instalowany jest zestaw wstępnie skonfigurowanych list słownikowych pomocnych w skanowaniu. Słowniki znajdują się w katalogu /usr/share/wordlists/dirb/. Możemy skorzystać z innych otwarto źródłowych słowników np: SecList
DIRB jest pomocny w audycie aplikacji internetowych podczas testów bezpieczeństwa wykorzystujących „Fuzzing”. Fuzzing to technika testowania oprogramowania, w której wysyłamy do programu różne losowe, prawidłowe i nieprawidłowe dane, następnie obserwujemy działanie programu.
Instalacja
$ sudo apt install dirb
Przykład użycia
$ dirb https://adres.strony/ /usr/share/wordlists/dirb/common.txt
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Sat Dec 4 20:30:41 2021
URL_BASE: https://adres.strony/
WORDLIST_FILES: /usr/share/wordlists/dirb/small.txt
-----------------
GENERATED WORDS: 959
---- Scanning URL: https://adres.strony/ ----
+ https://adres.strony/0 (CODE:301|SIZE:0)
+ https://adres.strony/admin (CODE:302|SIZE:0)
Tutaj znalazł 2 obiekty „0” i „admin”
Systemd – usługi użytkownika
Systemd umożliwia zarządzania usługami przez użytkownika.
Aby konto mogło korzystać z usług systemd bez konieczności logowania musimy włączyć funkcję „linger”
$ loginctl enable-linger nazwa_użytkownika
Logujemy się na użytkownika i w katalogu domowym tworzymy katalog i plik usługi. Przy konfiguracji nie podajemy User w sekcji [Service]
$ mkdir -p ~/.config/systemd/user/
$ vi ~/.config/systemd/user/myapp.service
[Unit]
Description=My demo application
[Service]
ExecStart=plikUslugi
WorkingDirectory=/home/myapp/html
[Install]
WantedBy=default.target
Najpierw musisz przeładować systemd, aby mógł pobrać plik jednostki.
$ systemctl --user daemon-reload
Uruchamiamy usługę i włączamy aby uruchamiała się przy starcie sytemu
$ systemctl --user start myapp.service
$ systemctl --user enable myapp.service
SSH – Generowanie kluczy autoryzujących, połączenie bez hasła
Domyślnie do autoryzacji użytkownika w połączeniu ssh wykorzystujemy hasło. Znacznym ułatwieniem jest wygenerowanie pary kluczy asymetrycznych po stronie klienta i zainstalowanie klucza publicznego na serwerze ssh z którym chcemy się łączyć.
Generowanie kluczy rsa na komputerze kliencie:
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa
Your public key has been saved in /home/user/.ssh/id_rsa.pub
...
Przesłanie klucza publicznego ~/.ssh/id_rsa.pub na serwer ssh, z którym będziemy się łączyć:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@sshserver
Teraz już możemy zestawić połączenie z ssh bez hasła.
$ ssh user@sshserver
W czasie przesyłania klucza, program poprosi nas o podanie hasła do konta na serwerze ssh.
Serwer może nie być skonfigurowany do akceptowania uwierzytelniania klucza publicznego. Upewnij się, że /etc/ssh/sshd_config na serwerze zawiera PubkeyAuthentication yes. Pamiętaj o ponownym uruchomieniu procesu sshd na serwerze.
GNS3 – podłączenie do fizycznej sieci
Często podłączenie GNS3 do sieci fizycznej z użyciem komponentu Cloud może sprawić duże problemy.
Jeżeli w naszym przypadku występuje problem, możemy dodać do GNS3 VM dodatkową kartę sieciową ustawioną w trybie Bridged.

Teraz przy wstawianiu komponentu Cloud do projektu wybieramy jako serwer maszynę GNS3 VM

Podłączając komponent wirtualnym kablem, wybieramy dodaną kartę sieciową, która pracuje w trybie Bridged na GNS3 VM.

iDrac6 KVM problem z połączeniem
Starsze wersje iDrac KVM wykorzystują SSLv3, który uznawany jest za niebezpieczny. Aby uruchomić zdalny dostęp KVM musi na czas połączenia uznać SSLv3 jako bezpieczny.
W katalogu instalacji javy w pliku lib\security\java.security komentujemy linijkę zawierającą jdk.tls.disabledAlgorithms=SSLv3
Polecenia diagnostyczne
Odczytywanie logów
$ show logging flash
# lub
$ show logging buffered level warnings
# lub w nowych wersjach
$ show info-center logfile 4
Docker – polecenia
Uruchomienie nowego kontenera
# docker run <nazwaKontenera>
$ docker run ubuntu
Uruchomienie kontenera w trybie interaktywnym z shellem
$ docker run -it ubuntu bash
root@a52191c360d2:/#
Wyświetlanie wszystkich kontenerów
$ docker container -a # opcja -a pokaże również kontenery nie uruchomione
lub
$ docker ps -a
Uruchomienie wyłączonego kontenera
# docker start <CONTAINER ID> | <NAMES>
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a52191c360d2 ubuntu "bash" 9 minutes ago Exited (0) 9 minutes ago magical_shtern
$ docker start a52191c360d2
lub
$ docker start magical_shtern
Zatrzymanie kontenera pracującego w tle
# docker stop <CONTAINER ID> | <NAMES>
$ docker stop a52191c360d2
Kopiowanie plików między kontenerem a lokalnym systemem plików
# docker cp <[NAZWA KONTENERA | CONTAINER ID]>:<SCIEZKA DO PLIKU W KONTENERZE> <LOKALNA SCIEZKA DO PLIKU>
lub
# docker cp <LOKALNA SCIEZKA DO PLIKU> <[NAZWA KONTENERA | CONTAINER ID]>:<SCIEZKA DO PLIKU W KONTENERZE>
Wyświetlenie listy obrazów
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest daab1c66d467 6 days ago 65.6MB
Tworzenie nowego obrazu na podstawie kontenera
# docker commit <CONTAINER ID> <NAZWA_NOWEGO_OBRAZU>
$ docker commit a52191c360d2 nowy_obraz
sha256:534f2be1cee938f127815d93323d07e02ecd8f723c4df052ed8241ecb7922511
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nowy_obraz latest 534f2be1cee9 14 seconds ago 65.6MB
ubuntu latest daab1c66d467 6 days ago 65.6MB
Podgląd historii warstw w obrazie
# docker history <NAZWA OBRAZU>
$ docker history nowy_obraz
Pobranie obrazu z docker hub. Polecenie docker run <nazwa obrazu> pobiera obraz jeżeli go nie posiadamy i uruchamia kontener. Możemy pobrać obraz bez uruchamiania kontenera.
# docker push <NAZWA OBRAZU>
$ docker run alpine
Zmiana nazwy obrazu. Źródłowy obraz nie zostanie usunięty.
# docker tag <NAZWA OBRAZU> <NAZWA KONTA DOCKER>/<NOWA NAZWA OBRAZU>
Wysyłanie obrazu do docker hub. Aby to zrobić musimy posiadać na docker hub konto i się do niego zalogować. Nazwa obrazu musi być podana w formacie <NAZWA KONTA DOCKER>/<NOWA NAZWA OBRAZU>
# docker login
# docker push <NAZWA KONTA DOCKER>/<NOWA NAZWA OBRAZU>
Docker – Dockerfile
Dockerfile to plik, który pomaga utworzyć własne obrazy Dockerowe.
Dla każdego polecenia z Dockerfile jest uruchamiany nowy kontener i zapisywana nowa warstwa obrazu.
$ mcedit Dockerfile
FROM ubuntu # bazowy obraz
COPY plik.txt . # skopiuje plik do kontenera
RUN apt-get -y update && apt-get -y install nano # zainstaluje w kontenerze edytor nano
Budowanie obrazu na podstawie Dockerfile.
# docker build [--tag name:tag] <ścieżka do kontekstu>
$ docker build --tag moj_ubuntu:1.0 .
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
moj_ubuntu 1.0 de40b0f082a5 0 days ago 93.4MB
$ docker run de40b0f082a5 cat plik.txt # uruchomi nasz nowy obraz i wyświetli zawartość skopiowanego pliku plik.txt
Ścieżka do kontekstu to folder w którym mogą się znajdować pliki, które w procesie budowy obrazu zostaną wysłane do demona Dockera. W kontekście powinny znajdować się tylko niezbędne elementy do budowy, aby nie wydłużać procesu przesyłania ich demona.
Plik Dockerfile domyślnie jest wyszukiwany w folderze kontekstu. Możemy podać inną lokalizację pliku za pomocą parametru -f.