11. Virtualizace a kontejnerizace
Co se po vás bude chtít?
Virtualizace
Základní pojmy
-
Co je virtualizace:
- Abstrakce hardwarových prostředků
- Běh více operačních systémů na jednom fyzickém stroji
- Izolace prostředí
-
Typy virtualizace:
- Plná virtualizace - kompletní emulace HW
- Paravirtualizace - upravený guest OS
- Hardwarová virtualizace - podpora v CPU (VT-x, AMD-V)
Hypervisory
-
Typ 1 (bare-metal):
- Běží přímo na hardware
- Příklady: VMware ESXi, Microsoft Hyper-V, Xen, KVM
- Použití: servery, datacentra
-
Typ 2 (hosted):
- Běží nad hostitelským OS
- Příklady: VirtualBox, VMware Workstation
- Použití: vývoj, testování, desktopy
Komponenty virtuálního stroje
-
Virtuální hardware:
- vCPU, vRAM, virtuální disky
- Virtuální síťové adaptéry
- Virtuální storage controllers
-
Snapshoty:
- Zachycení stavu VM v čase
- Možnost návratu k předchozímu stavu
- Využití při testování a zálohování
Síťování ve virtualizaci
- Typy virtuálních sítí:
- NAT - překlad adres přes host
- Bridged - přímé připojení k fyzické síti
- Host-only - izolovaná síť jen s hostem
- Internal - komunikace pouze mezi VM
Kontejnerizace
Základní pojmy
-
Co je kontejner:
- Izolované prostředí pro běh aplikace
- Sdílí kernel s hostitelským systémem
- Lehčí než virtuální stroje
-
Rozdíl VM vs kontejner:
- VM: vlastní OS, těžší, pomalejší start
- Kontejner: sdílený kernel, lehký, rychlý start
Docker
-
Základní koncepty:
- Image - šablona pro vytvoření kontejneru
- Container - běžící instance image
- Dockerfile - skript pro vytvoření image
- Registry - úložiště images (Docker Hub)
-
Základní příkazy:
docker pull- stažení imagedocker run- spuštění kontejnerudocker ps- výpis běžících kontejnerůdocker build- sestavení image z Dockerfiledocker stop/start- zastavení/spuštění kontejneru
-
Dockerfile:
FROM- základní imageRUN- spuštění příkazu při builduCOPY/ADD- kopírování souborůEXPOSE- definice portůCMD/ENTRYPOINT- příkaz při spuštění
-
Volumes:
- Persistentní úložiště dat
- Sdílení dat mezi kontejnery
- Mapování hostitelských adresářů
-
Networking:
- Bridge network (výchozí)
- Host network
- Overlay network (pro clustery)
Docker Compose
-
Účel:
- Definice multi-kontejnerových aplikací
- Konfigurace v YAML souboru
- Orchestrace více služeb
-
Základní použití:
docker-compose up- spuštění služebdocker-compose down- zastavení služeb- Definice závislostí mezi službami
Kubernetes (základy)
-
Co je Kubernetes:
- Orchestrace kontejnerů
- Automatické škálování
- Self-healing, load balancing
-
Základní koncepty:
- Pod - nejmenší jednotka, jeden nebo více kontejnerů
- Service - síťový přístup k podům
- Deployment - definice desired state
- Namespace - logické oddělení prostředků
Bezpečnost virtualizace a kontejnerů
Bezpečnost VM
-
Izolace:
- Oddělení VM od hostitele
- Oddělení VM mezi sebou
- VM escape jako bezpečnostní riziko
-
Hardening:
- Aktualizace hypervisoru
- Omezení sdílených prostředků
- Síťová segmentace
Bezpečnost kontejnerů
-
Image security:
- Použití důvěryhodných base images
- Skenování images na zranitelnosti
- Minimalizace velikosti image
-
Runtime security:
- Neprivilegované kontejnery
- Read-only filesystémy
- Resource limits (CPU, memory)
- Seccomp, AppArmor, SELinux
-
Bezpečnostní rizika:
- Escape z kontejneru
- Zranitelnosti v base image
- Špatná konfigurace
- Secrets management
Využití v kybernetické bezpečnosti
-
Izolované testovací prostředí:
- Sandboxing malware
- Penetrační testování
- Bezpečná analýza
-
Reprodukovatelnost:
- Konzistentní prostředí pro testování
- CI/CD pro bezpečnostní nástroje
-
Honeypoty:
- Snadné nasazení pomocí kontejnerů
- Rychlá obnova po kompromitaci
Připrav se na HAXAGONu
Docker:
- Docker - Úvod
- Docker - První kontejner
- Docker - Images
- Docker - Dockerfile
- Docker - Docker Hub
- Docker - Compose
- Docker - Volumes
- Docker - Environment variables
- Docker - Network
- Docker - Opakování