SELinux

SELinux pro začátečníky pomocí CentOS

SELinux pro začátečníky pomocí CentOS
Security-Enhanced Linux nebo SELinux, vyvinutý NSA, aby zabránil zlovolnému přístupu a vniknutí, je pokročilá funkce řízení přístupu, která je dodávána s většinou moderních distribucí Linux. SELinux je definován jako systém povinné kontroly přístupu (MAC) vyvinutý jako náhrada za systém kontroly přístupu podle vlastního uvážení (DAC).

SELinux se může zdát skličující a velmi těžko implementovatelný ve většině moderních systémů. Konfigurace SELinuxu má však obrovské výhody jak při prosazování zabezpečení, tak při řešení problémů.

Tento výukový program bude diskutovat různé koncepty implementované SELinuxem a prozkoumá různé praktické metody implementace SELinuxu.

POZNÁMKA: Než začneme, je dobré použít příkazy v tomto tutoriálu jako uživatel root nebo uživatel ve skupině sudoers.

Nainstalujte si balíčky SELinux

Nainstalujme si různé balíčky SELinux, které zase pomohou pracovat se zásadami SELinuxu.

Než přistoupíme k instalaci balíčků SELinux, je dobré ověřit, které jsou nainstalovány v aktuálním systému.

Ve většině instalací distribucí REHL jsou některé balíčky nainstalovány ve výchozím nastavení. Mezi tyto balíčky patří:

  1. setools - tento balíček se používá pro monitorování protokolů, zásad dotazování a správu kontextových souborů.
  2. policycoreutils-python - poskytuje základní nástroje pythonu pro správu SELinuxu
  3. policycoreutils - tento balíček také poskytuje nástroje pro správu SELinuxu.
  4. mcstrans - mcstrans poskytuje překladový démon SELinux, který překládá různé úrovně do snadných formátů, kterým lze snadno porozumět.
  5. setools-console - podobně jako setools.
  6. Selinux-policy - poskytuje odkaz na konfiguraci zásad SELinux
  7. Selinux-policy-cílené - podobné jako SELinux-policy
  8. Libselinux-utils - nástroje SELinux libselinux, které pomáhají spravovat SELinux
  9. Setroubleshoot-server - nástroje pro řešení problémů se SELinuxem

Chcete-li ověřit, které balíčky jsou ve vašem systému již nainstalovány, můžete použít příkaz rpm -qa a výsledek přepsat na grep pro SELinux jako:

rpm -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-cílené-3.14.3-54.el8_3.2.noarch
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarch
libselinux-2.9-4.el8_3.x86_64

To by vám mělo poskytnout výstup ze všech nainstalovaných balíčků pro podporu SELinux

Pokud ve vašem systému nejsou nainstalovány všechny balíčky SELinux, použijte yum k jejich instalaci, jak je znázorněno v níže uvedeném příkazu:

yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-cílené libselinux-utils setroubleshoot-server setools setools-console mcstrans

Režimy a stavy SELinux

Začněme nyní hrát se SELinuxem, konkrétně s režimy SELinux.

Režimy SELinux

Pokud je povoleno, SELinux může mít tři možné režimy:

Režim vynucování

Pokud bude režim SELinux vynucovat, zajistí, že nebude odepřen žádný neoprávněný přístup do systému jakýmkoli uživatelem nebo procesy. Režim vynucování také uchovává protokoly o všech pokusech o neoprávněný přístup.

Povolující režim

Povolující režim funguje jako částečně povolený stav SELinux. V tomto režimu není odepřen žádný přístup, protože SELinux v tomto režimu nevynucuje své zásady. Povolený režim však uchovává protokol o všech pokusech o porušení zásad. Tento režim je velmi efektivní pro testování před jeho úplným povolením, protože uživatelé a komponenty mohou stále komunikovat se systémem, ale stále shromažďují protokoly. To vám umožní doladit váš systém způsobem, který uznáte za vhodný.

Zakázaný režim

Zakázaný režim lze také považovat za deaktivovaný stav, ve kterém je SELinux deaktivován a nenabízí žádné Zabezpečení.

Státy SELinux

Jakmile je systém SELinux nainstalován. Může mít binární stavy: povoleno a zakázáno. Chcete-li zobrazit stav SELinuxu, použijte příkaz:

dostat sílu
Zakázáno

Výše uvedený výstup naznačuje, že SELinux je aktuálně zakázán.

Můžete také použít příkaz sestatus, jak je znázorněno níže:

sestatus
Stav SELinux: deaktivován

Povolit a zakázat SELinux

Stavy a konfiguraci SELinuxu řeší konfigurační soubor umístěný v / etc / selinux / config. K zobrazení jeho obsahu můžete použít příkaz cat.

cat / etc / selinux / config
# Tento soubor řídí stav systému SELinux v systému.
# SELINUX = může nabývat jedné z těchto tří hodnot:
#enforcing - je vynucena bezpečnostní politika SELinux.
#permissive - SELinux namísto vynucení vytiskne varování.
#disabled - nejsou načteny žádné zásady SELinux.
SELINUX = prosazování
# SELINUXTYPE = může nabývat jedné z těchto tří hodnot:
# cílené - cílené procesy jsou chráněny,
# minimum - Úprava cílené politiky. Chráněny jsou pouze vybrané procesy.
# mls - Víceúrovňová bezpečnostní ochrana.
SELINUXTYPE = cílené

Z výše uvedeného výstupu máme povoleny dvě hlavní směrnice. Směrnice SELINUX specifikovala režim, ve kterém je SELinux konfigurován. Směrnice SELINUXTYPE určuje sadu zásad SELinux. Ve výchozím nastavení používá SELinux cílené zásady, které vám umožňují přizpůsobit oprávnění řízení přístupu. Druhou zásadou je víceúrovňové zabezpečení nebo MLS.

V některých verzích najdete minimální zásady.

cd / etc / selinux /
[ls -l
celkem 4
-rw-r - r-- 1 root root 548 16. února 22:40 konfigurace
drwxr-xr-x 1 kořenový kořen 4096 16. února 22:43 ml
-rw-r - r-- 1 kořenový kořen 2425 21. července 2020 semanage.konf
drwxr-xr-x 1 root root 4096 16. února 22:40 cílené

Podívejme se nyní, jak povolit SELinux v systému. Doporučujeme nejprve nastavit režim SELINUX na tolerantní a nevynucený.

nano / etc / selinux / config

Nyní upravte směrnici SELINUX jako:

SELINUX = tolerantní

Po uložení souboru proveďte restart systému.

restartovat

POZNÁMKA: Před prosazováním SELinuxu důrazně doporučujeme nastavit direktivu SELINUX na tolerantní.

Po restartu systému zkontrolujte všechny protokoly hlášené SELinuxem v / var / log / messages.

Dále se ujistěte, že nemáte žádné chyby, a vynuťte SELinux nastavením direktivy pro vynucení v / etc / selinux / config

Nakonec můžete zobrazit stav SELinux pomocí příkazu sestatus:

Stav SELinux: povoleno
Mount SELinuxfs: / sys / fs / selinux
Kořenový adresář SELinux: / etc / selinux
Načtený název zásady: cílené
Aktuální režim: vynucování
Režim z konfiguračního souboru: chyba (úspěch)
Stav zásad MLS: povoleno
Stav zásady deny_unknown: povoleno
Kontrola ochrany paměti: aktuální (zabezpečená)
Maximální verze zásady jádra: 31

Můžete také použít příkaz setenforce k přepínání mezi různými režimy SELinux. Chcete-li například nastavit režim na permisivní, použijte příkaz:

setenforce tolerantní

Tento režim je dočasný a po restartu bude obnoven na jeden v konfiguračním souboru.

Stav sestatus SELinux: povoleno
Mount SELinuxfs: / sys / fs / selinux
Kořenový adresář SELinux: / etc / selinux
Načtený název zásady: cílené
Aktuální režim: tolerantní
Režim z konfiguračního souboru: vynucování
Stav zásad MLS: povoleno
Stav zásady deny_unknown: povoleno
Kontrola ochrany paměti: aktuální (zabezpečená)
Maximální verze zásady jádra: 31

Zásady a kontext SELinux

Abychom se vyhnuli nejasnostem pro začátečníky SELinuxu, nebudeme se ponořit hlouběji do toho, jak jsou implementovány zásady SELinuxu, ale jednoduše se ho dotkneme, abychom získali představu.

SELinux funguje implementací bezpečnostních zásad. Zásada SELinux odkazuje na pravidlo, které se používá k definování přístupových práv pro každý objekt v systému. Objekty odkazují na uživatele, procesy, soubory a role.

Každý kontext je definován ve formě uživatel: role: typ: úroveň.

Například vytvořte adresář ve svém domovském adresáři a zobrazte jeho kontext zabezpečení SELinux, jak je znázorněno v následujících příkazech:

mkdir ~ / linuxhint_dir
ls -Z ~ / | grep linuxhint

Zobrazí se výstup, jak je znázorněno níže:

unconfined_u: object_r: user_home_t: s0 linuxhint_dir

Můžete také najít další adresáře s kontexty zabezpečení jako:

system: _u: object_r: user_home_t: s0

Můžete si uvědomit, že výše uvedený výstup sleduje syntaxi uživatele: role: typ: úroveň.

Závěr

To byl návod pro začátečníky k SELinuxu pomocí CentOS 8. Přestože je tento tutoriál určen pro začátečníky, je více než dost, aby se vaše nohy rozběhly v SELinuxu a odstranily zastrašující povahu SELinuxu.

Děkuji za přečtení.

Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...