GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nakonfigurovat selinux na Cent OS

Úvod

Security Enhanced Linux nebo SELinux je pokročilý mechanismus řízení přístupu zabudovaný do většiny moderních distribucí Linuxu. Původně jej vyvinula americká Národní bezpečnostní agentura, aby chránila počítačové systémy před škodlivým vniknutím a neoprávněnou manipulací. Postupem času byl SELinux uvolněn ve veřejné doméně a různé distribuce jej od té doby začlenily do svého kódu

Mnoho systémových administrátorů považuje SELinux za poněkud neprobádané území. Téma se může zdát skličující a místy dost matoucí. Správně nakonfigurovaný systém SELinux však může výrazně snížit bezpečnostní rizika a znalost tohoto systému vám může pomoci při odstraňování chybových zpráv souvisejících s přístupem. V tomto tutoriálu se seznámíme s koncepty SELinuxu – jeho balíčky, příkazy a konfigurační soubory

Instalace balíčků SELinux

V SELinuxu se používá řada balíčků. Některé jsou nainstalovány ve výchozím nastavení. Zde je seznam distribucí založených na Red Hatu:

  • policycoreutils (poskytuje nástroje pro správu SELinuxu)
  • policycoreutils-python (poskytuje nástroje pro správu SELinuxu)
  • zásady selinux (poskytuje referenční politiku SELinux)
  • selinux-policy-targeted (poskytuje cílenou politiku SELinux)
  • libselinux-utils (poskytuje některé nástroje pro správu SELinuxu)
  • setroubleshoot-server (poskytuje nástroje pro dešifrování zpráv protokolu auditu)
  • nástroje (poskytuje nástroje pro monitorování protokolu auditu, politiku dotazování a správu kontextu souborů)
  • setools-console (poskytuje nástroje pro monitorování protokolu auditu, politiku dotazování a správu kontextu souborů)
  • mcstrans (nástroje pro převod různých úrovní do snadno srozumitelného formátu)

Některé z nich jsou již nainstalovány. Chcete-li zkontrolovat, jaké balíčky SELinux jsou nainstalovány ve vašem systému CentOS 7, můžete spustit několik příkazů, jako je ten níže (s různými vyhledávacími výrazy za grep ) jako uživatel root:

rpm -qa | grep selinux

Výstup by měl vypadat nějak takto:

libselinux-utils-2.2.2-6.el7.x86_64
libselinux-2.2.2-6.el7.x86_64
selinux-policy-targeted-3.12.1-153.el7.noarch
selinux-policy-3.12.1-153.el7.noarch
libselinux-python-2.2.2-6.el7.x86_64

Můžete pokračovat a nainstalovat všechny balíčky pomocí příkazu níže (yum pouze aktualizuje všechny, které již máte), nebo pouze ty, které ve vašem systému chybí:

yum install policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Nyní bychom měli mít systém, ve kterém jsou načteny všechny balíčky SELinux.

Režimy SELinux

Je čas začít si hrát se SELinuxem, takže začněme s režimy SELinux. SELinux může být kdykoli v kterémkoli ze tří možných režimů:

  • Vynucování
  • Povolné
  • Zakázáno

V režimu vynucení bude SELinux vynucovat své zásady v systému Linux a ujistěte se, že jsou zakázány jakékoli pokusy o neoprávněný přístup ze strany uživatelů a procesů. Odepření přístupu se také zapisují do příslušných souborů protokolu. O zásadách SELinux a protokolech auditu si povíme později.

Permisivní režim je jako částečně povolený stav. SELinux neuplatňuje své zásady v permisivním režimu, takže žádný přístup není odepřen. Jakékoli porušení zásad je však stále zaznamenáno v protokolech auditu. Je to skvělý způsob, jak otestovat SELinux před jeho vynucením.

Deaktivovaný režim je samozřejmý – systém nebude fungovat se zvýšeným zabezpečením.

Kontrola režimů a stavu SELinux

Můžeme spustit getenforce pro kontrolu aktuálního režimu SELinux.

getenforce

SELinux by měl být aktuálně vypnutý, takže výstup bude vypadat takto:

Disabled

Můžeme také spustit sestatus příkaz:

sestatus

Když je SELinux zakázán, výstup zobrazí:

SELinux status:        disabled

Konfigurační soubor SELinux

Hlavní konfigurační soubor pro SELinux je /etc/selinux/config. Pro zobrazení jeho obsahu můžeme spustit následující příkaz:

cat /etc/selinux/config

Výstup bude vypadat nějak takto:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

V tomto souboru jsou dvě směrnice. Direktiva SELINUX určuje režim SELinux a může mít tři možné hodnoty, jak jsme diskutovali dříve.

Povolení a zakázání SELinux

Povolení SELinuxu je poměrně jednoduché; ale na rozdíl od jeho deaktivace by mělo být provedeno ve dvou krocích. Předpokládáme, že SELinux je aktuálně vypnutý a že jste nainstalovali všechny balíčky SELinux z předchozí sekce.

Jako první krok musíme upravit /etc/selinux/config soubor změnit direktivu SELINUX na permisivní režim.

vi /etc/sysconfig/selinux
...
SELINUX=permissive
...

Nastavení stavu na povolený první je nezbytný, protože každý soubor v systému musí mít svůj kontext označený, než bude možné vynutit SELinux. Pokud nejsou všechny soubory správně označeny, procesy běžící v omezených doménách mohou selhat, protože nemají přístup k souborům se správným kontextem. To může způsobit selhání procesu spouštění nebo spuštění s chybami. Představíme kontextydomény dále v tutoriálu.

Nyní proveďte restart systému:

reboot

Proces restartu uvidí všechny soubory na serveru označené kontextem SELinux.

Ve druhé fázi musíme upravit konfigurační soubor, abychom změnili direktivu SELINUX z permisivnívynucení/etc/sysconfig/selinux soubor:

...
SELINUX=enforcing
...

Poté znovu restartujte server.

reboot

Jakmile bude server opět online, můžeme spustit sestatus pro kontrolu stavu SELinuxu. Nyní by měl zobrazit další podrobnosti o serveru:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          error (Success)
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Cent OS
  1. Jak nakonfigurovat Greylisting ve SmarterMail

  2. Jak zakázat SELinux na CentOS?

  3. Jak nainstalovat a nakonfigurovat „setroubleshootd“ na CentOS/RHEL

  1. Jak nainstalovat Bugzillu 5.0 na CentOS 7

  2. Jak nakonfigurovat IMAP s SSL

  3. Jak nakonfigurovat OpenSSH na CentOS 7

  1. Jak deaktivovat SElinux na CentOS 7

  2. Jak deaktivovat SELinux na CentOS 8

  3. Jak zakázat SELinux na CentOS 7