Szkolenia GNU/Linux
Cele szkolenia
Celem szkolenia jest przygotowanie grupy uczestników do samodzielnej pracy w środowisku systemów GNU/Linux. Szkolenie będzie prowadzone z naciskiem na dobre praktyki, bezpieczeństwo oraz wydajność pracy. Zostaną zaprezentowane wybrane elementy systemu operacyjnego wraz z dokładnym opisem ich działania.
Czym się kierujemy
Nasze wieloletnie doświadczenie w pracy z systemami GNU/Linux, zarówno od strony użytkowników, jak i aktywnych twórców i kontrybutorów, pozwoliły na wykształcenie solidnych fundamentów, na podstawie których formujemy następujące założenia:
Konieczność rozumienia niższych warstw
Projektowanie, wdrażanie wysokopoziomowych, skomplikowanych usług na poziomie gwarantującym stabilność i bezpieczeństwo nie jest możliwe bez dokładnego zrozumienia elementów składowych niższego poziomu.
Zasady bezpieczeństwa
Zgodnie z zasadami bezpieczeństwa przyjętymi w kryptografii, stosowanymi w profesjonalnych środowiskach wymagających bezwzględnego bezpieczeństwa - każde rozwiązanie należy domyślnie uznać za niegodne zaufania. Zmiany statusu dokonuje się jedynie po zapoznaniu się z projektem technicznym oraz ze sposobem implementacji.
Powyższe założenie jest ściśle związane z kolejnym, sformułowanym już w XIX wieku przez Augusta Kerckhoffsa:
Systemy czy algorytmy powinny być projektowane z założeniem, że przeciwnik/atakujący od razu pozna wszystkie szczegóły.
Innymi słowy, uznanie rozwiązania za bezpieczne nie może opierać się wyłącznie na założeniu, że szczegóły implementacyjne są niejawne.
To prowadzi do naszej ostatniej zasady:
Dziedzina techniczna, jaką jest szeroko rozumiana informatyka powinna być dziedziną, w której rozwiązania buduje się w oparciu o wiedzę techniczną, a nie teorie czy przypuszczenia.
Forma prowadzenia zajęć
Zajęcia będą prowadzone zdalnie na wybranej platformie audio/video.
Dla każdej teoretycznej części szkolenia przewidziane są sesje praktyczne, na których każdy z uczestników będzie miał okazję samodzielnie wykonać przygotowane ćwiczenia. Sesje praktyczne będą przeprowadzane w toku indywidualnym w celu zapewnienia największego poziomu zrozumienia. Dokładamy wszelkich starań, aby przygotowane ćwiczenia poruszały kwestie jak najbardziej zbliżone do realnych wyzwań spotykanych w środowiskach produkcyjnych.
Program szkolenia
Po zakończeniu szkolenia, każdy z uczestników zyska doświadczenie pozwalające na podejmowanie samodzielnych decyzji, pozna metody pracy z systemami GNU/Linux oraz dogłębnie zrozumie zasady ich działania.
Uwaga!
Przedstawiamy przykładowy zakres szkolenia, ostateczna forma jest do ustalenia indywidulanie.
Samodzielna instalacja systemów GNU/Linux
- przegląd systemów operacyjnych i menadżerów pakietów,
- wykorzystanie standardowego instalatora,
- manualna instalacja z wykorzystaniem niskopoziomowych narzędzi,
- metody automatyzacji.
Partycjonowanie dysków
- tablice partycji (GPT, DOS),
- przegląd narzędzi do partycjonowania.
Obsługa dedykowanych narzędzi systemów plików (np. btrfs)
Przegląd mechanizmów takich jak:
- copy on write,
- filesystem-level compression,
- subvolumes,
- quota,
- snapshots,
- shrink/grow.
Obsługa woluminów logicznych (LVM, device-mapper)
Komplet wiedzy na temat zarządzania pamięcią trwałą:
- RAID,
- fizyczne woluminy,
- logiczne woluminy,
- zwiększanie rozmiaru podrzędnych systemów plików.
Zarządzanie użytkownikami oraz procesem logowania
Moduł poświęcony zarządzaniu użytkownikami:
- mechanizmy uwierzytelniania użytkowników (PAM),
- lokalna baza użytkowników,
- integracja z centralną bazą użytkowników (LDAP, Active Directory, IPA),
- zdecentralizowana baza użytkowników.
Szyfrowanie danych
Metody ochrony danych w systemach GNU/Linux:
- szyfrowanie na poziomie urządzeń blokowych (LUKS2),
- szyfrowanie na poziomie systemu plików,
- szyfrowanie katalogów domowych użytkowników.
Sprawne posługiwanie się środowiskiem tekstowym GNU/Linux
Rozszerzony moduł szkoleniowy obejmujący zagadnienia takie jak:
- działanie systemu wejścia/wyjścia,
- deskryptory plików i potoki,
- GNU Coreutils,
- sposoby edycji plików tekstowych.
W tym module przewidujemy prezentację szeregu przykładów oraz udostępnienie wyzwań typu capture the flag.
Posługiwanie się menadżerem systemu i usług - systemd
Zarządzanie systemem za pomocą pakietu narzędzi systemd:
- budowa oraz zasady działania,
- zarządzanie serwisami,
- tworzenie własnych serwisów,
- tworzenie zadań uruchamianych cyklicznie (systemd-timer) jako następca cron,
- analiza procesu uruchamiania systemu.
Obsługa zestawu narzędzi OpenSSH po stronie klienta
- konfiguracja klienta,
- uzyskiwanie dostępu do zdalnego hosta,
- praca z serwerami typu jump host,
- lokalne/zdalne przekierowania portów za pomocą ssh,
- wykorzystanie dynamicznego lokalnego/zdalnego mechanizmu przekierowania portów na poziomie aplikacji (socks proxy),
- wykorzystanie wbudowanego w SSH tunelowania L3 do budowy tymczasowych sieci VPN,
- dostępu do zdalnego systemu plików.
Obsługa narzędzi OpenSSH po stronie serwera
- konfiguracja serwera,
- metody dostępu do serwera SSH,
- projektowania bezpiecznej stacji przesiadkowej SSH.
Podstawy programowania w języku Python
Wykorzystanie języków skryptowych do automatyzacji systemu operacyjnego, przykłady oraz mała sesja ćwiczeń obejmujących między innymi:
- moduł os,
- moduł sys,
- pracę z plikami,
- pracę z socketami,
- pracę z biblioteką do smtp,
- praca z HTTP(S) - biblioteka requests.
Technologia konteneryzacji
- budowa oraz zasady działania mechanizmów izolacji w jądrze Linux,
- implementacja minimalnego silnika konteneryzacji z wykorzystaniem GNU Bash i/lub Python,
- architektura, sposób działania popularnych rozwiązań: Docker, Podman,
- budowania własnych obrazów, gotowych do użycia z Docker, Podman czy Kubernetes.
Wykorzystania technologii wirtualizacji do projektowania wydajnych i niezawodnych środowisk
- rodzaje oraz formaty obrazów dysków stosowane w wirtualizacji,
- praca offline z wybranymi formatami obrazów dysków,
- procedury naprawy "uszkodzonych" systemów operacyjnych,
- przeciwdziałanie awariom,
- projektowanie środowisk, których niezawodność możliwa jest do udowodnienia przed wdrożeniem.
Monitorowanie systemu operacyjnego
Przegląd metod monitorowania systemu operacyjnego oraz implementacja szybkich, lekkich i niezawodnych systemów monitorowania infrastruktury.
Wymagania dotyczące kandydatów
Dostępność czasowa
Szkolenie podzielane jest na połączone ze sobą sekcje, wymagamy aby każdy z uczestników brał udział we wszystkich przygotowanych sekcjach szkoleniowych.
Szkolenie oraz materiały przygotowane są w sposób, który uniemożliwia dołączenie do jednej sesji, z pominięciem innych.
Środowisko pracy
Każdy z uczestników powinien mieć przygotowany własny system operacyjny GNU/Linux lub posiadać możliwość instalacji takiego systemu w ramach pierwszych sesji praktycznych.
Wirtualizacja
Każdy z uczestników powinien mieć możliwość uruchomienia na swojej lokalnej stacji przynajmniej dwóch maszyn wirtualnych (minimum 512MiB RAM dla każdej z nich).
Uwaga!
Posiadamy możliwość udostępnienia naszej wirtualnej platformy szkoleniowej, wtedy nie ma konieczności wykorzystywania własnego sprzętu.
Szacowane terminy realizacji
Szkolenie przewidziane jest na minimum 15 pełnych dni roboczych, jest przeprowadzane przez dwóch prowadzących, z podziałem na dwie grupy liczące maksymalnie po cztery osoby każda.
Sugerujemy podział szkolenia na przynajmniej dwie tury, oddalone od siebie o kilka dni roboczych.
Ze względu na indywidualny tok szkolenia - przewidujemy możliwość przedłużenia szkolenia o kolejne dni robocze. Ewentualne przedłużenie szkolenia będzie na bieżąco konsultowane ze Zleceniodawcą.
Indywidualny program szkolenia
Zachęcamy do kontaktu w sprawie ustalenia indywidualnego toku szkolenia, zarówno zakres, jak i terminy możemy dostosować tak, aby spełniały wymagania Klienta.
Cena szkolenia
Szkolenie wyceniamy na podstawie ilości dni oraz ostatecznego programu, a nie ilości uczestników.
Cena za powyższy, przykładowy zakres szkolenia wynosi 5000zł netto za jeden dzień.