Košík je prázdný

V posledních letech se Virtualizace na úrovni operačního systému, známá také jako kontejnerizace, stala klíčovou technologií v oblasti vývoje softwaru a provozu IT infrastruktury. Mezi nejpopulárnější nástroje patří Docker, avšak narůstající obavy o bezpečnost vedly k vývoji alternativních řešení, jako je Podman. Tento článek se zaměřuje na využití Podmanu pro spouštění rootless (bezrootových) kontejnerů na operačním systému CentOS, což přináší vyšší úroveň bezpečnosti tím, že eliminuje potřebu spouštět kontejnery s root (správcovskými) privilegii.

Základy Podmanu a rootless kontejnery

Podman (Pod Manager) je nástroj open source, který umožňuje budování, správu a spouštění kontejnerů a podů (skupin kontejnerů) bez nutnosti spouštění centrálního démona. To je zásadní rozdíl oproti Dockeru, kde démon běží s root privilegii a spravuje kontejnery. Rootless režim Podmanu umožňuje uživatelům spouštět kontejnery pod jejich vlastním uživatelským účtem bez zvýšených privilegií, což významně snižuje riziko bezpečnostních problémů spojených s privilegovaným přístupem.

Konfigurace Podmanu na CentOSu

CentOS, jakožto oblíbená distribuce Linuxu pro serverové nasazení, poskytuje stabilní základ pro nasazení kontejnerů. Instalace Podmanu na CentOS je přímočará, dostupná prostřednictvím standardních repozitářů distribuce:

  1. Aktualizace systému: Před instalací je doporučeno aktualizovat systém pomocí příkazu sudo yum update.
  2. Instalace Podmanu: Instalace se provádí pomocí příkazu sudo yum install podman.

Po instalaci můžete pomocí příkazu podman --version ověřit úspěšnou instalaci Podmanu.

Nastavení a spuštění rootless kontejnerů

Pro spuštění rootless kontejnerů je třeba nejprve nastavit uživatelské prostředí tak, aby umožňovalo izolaci bez privilegií. Podman automaticky detekuje, když je spuštěn uživatelem bez root privilegií, a upraví své chování tak, aby využíval uživatelské namespacy Linuxu pro izolaci procesů. Uživatelé mohou také nastavit subuid a subgid pro definování rozsahů UID a GID, které mohou být přiřazeny kontejnerům, čímž se zvyšuje bezpečnostní izolace.

Bezpečnostní výhody rootless Podmanu

Hlavní bezpečnostní výhodou rootless režimu Podmanu je eliminace potřeby spouštět kontejnery s root privilegii. To znamená, že i v případě kompromitace kontejneru, útočník není schopen získat root přístup k hostitelskému systému. Dále, vzhledem k použití uživatelských namespaců, každý kontejner a proces v něm běží pod unikátním UID/GID, což znesnadílá napadení systémových zdrojů či eskalaci privilegií. Tento přístup poskytuje silnou izolaci mezi kontejnery i mezi kontejnery a hostitelským systémem, což je zásadní pro zabezpečení v multi-uživatelských prostředích.

 

Praktické příklady využití

Pro ilustraci využití Podmanu v rootless režimu si představme, že potřebujeme spustit webový server v kontejneru. Následující příkaz vytvoří a spustí kontejner s obrazem Nginx, přičemž vystaví port 8080:

podman run -d --name mynginx -p 8080:80 nginx

Tento kontejner běží pod uživatelským účtem, který jej spustil, a nevyžaduje root privilegia ani pro přístup k síťovým portům, což je zajištěno přesměrováním portů.

Dalším příkladem je vývoj aplikací, kde vývojáři potřebují různé verze databázových serverů nebo vývojových nástrojů. S Podmanem mohou vývojáři jednoduše spouštět různé verze těchto nástrojů v izolovaných kontejnerech bez rizika konfliktu nebo potřeby zasahovat do hlavního systému:

podman run -d --name mypostgres -e POSTGRES_PASSWORD=mysecretpassword postgres:13

Integrace s existujícími nástroji a systémy

Podman je navržen tak, aby byl plně kompatibilní s Dockerem, což znamená, že většina Docker souborů a příkazů pracuje s Podmanem bez potřeby jakékoliv úpravy. To umožňuje snadnou migraci z Dockeru na Podman a využívání stávajících CI/CD pipeline a orchestrace, jako je Kubernetes, s minimálním úsilím o přizpůsobení.

 

Využití Podmanu pro spouštění rootless kontejnerů na CentOSu nabízí výrazné bezpečnostní výhody tím, že eliminuje potřebu spouštět kontejnery s root privilegii. Tato technologie poskytuje silnou izolaci a minimalizuje riziko bezpečnostních incidentů, což je zásadní pro bezpečný provoz v produkčním prostředí. Pro organizace a jednotlivce, kteří se zajímají o zlepšení bezpečnosti svých kontejnerových nasazení, je Podman cenným nástrojem, který by měl být zvážen jako součást jejich bezpečnostní strategie.