SELinux (Security-Enhanced Linux) představuje klíčový bezpečnostní mechanismus v distribucích Linuxu založený na politikách, který poskytuje podporu pro přístupovou kontrolu zabezpečení. Při práci s Docker kontejnery na systému CentOS 7 může SELinux způsobovat problémy s přístupem k volume mountům, protože implicitně omezuje, které procesy mohou přistupovat k souborům na hostitelském systému. V tomto článku se dozvíte, jak nakonfigurovat SELinux tak, aby umožňoval spuštění Docker kontejnerů s vlastními volume mounty.
Přehled postupu
Konfigurace SELinux pro povolení Docker kontejnerů s vlastními volume mounty zahrnuje několik kroků, včetně nastavení správných kontextů SELinux na sdílené adresáře a přizpůsobení politik SELinux pro Docker. Tento průvodce vás provede celým procesem krok za krokem.
Krok 1: Zjištění stavu SELinux
Nejprve je potřeba zjistit, zda je SELinux aktivní. To lze provést pomocí následujícího příkazu:
getenforce
Pokud příkaz vrátí Enforcing
, SELinux je aktivní a vynucuje politiky bezpečnosti.
Krok 2: Nastavení kontextů SELinux
Pro povolení přístupu k volume mountům je nutné nastavit správný kontext SELinux na adresáře, které budou mountovány do kontejnerů. Použijte příkaz chcon
pro nastavení kontextu svirt_sandbox_file_t
, který umožňuje kontejnerům přístup:
chcon -Rt svirt_sandbox_file_t /cesta/k/volume
Nahraďte /cesta/k/volume
skutečnou cestou k adresáři, který chcete použít jako volume.
Krok 3: Použití pravidel boolean SELinux
SELinux nabízí tzv. boolean proměnné, které umožňují jemnější ovládání přístupových práv. Pro Docker jsou relevantní například:
docker_can_network
container_manage_cgroup
Pro povolení spuštění Docker kontejnerů s vlastními volume mounty může být potřeba povolit následující boolean:
setsebool -P container_manage_cgroup on
Krok 4: Audit a ladění
Při problémech s přístupem můžete použít nástroj audit2allow
pro analýzu logů auditu a identifikaci potřebných změn v politikách SELinux. Tento nástroj může také generovat modul SELinux, který můžete nainstalovat pro řešení specifických problémů s přístupem.
Konfigurace SELinux pro práci s Docker kontejnery na CentOS 7 vyžaduje pozornost k detailům a porozumění základním principům SELinux. Nastavením správných kontextů a použitím boolean proměnných SELinux můžete zajistit, že vaše Docker kontejnery budou moci bezpečně přistupovat k volume mountům. V případě potřeby neváhejte použít audit logy pro další ladění a přizpůsobení politik SELinux.